Hoe verifieer je informatie zonder toegang te delen? Dit is de uitdaging die zero-knowledge proofs proberen op te lossen.

Zero-knowledge proof (ZKP) wint de laatste tijd enorm aan populariteit voor verschillende doeleinden. Het maakt de verificatie van informatie mogelijk zonder de onderliggende gegevens vrij te geven, waardoor gevoelige informatie een hogere mate van veiligheid en privacy wordt geboden.

Maar wat is een zero-knowledge proof precies, hoe werkt het en wat zijn de use cases van een zero-knowledge proof systeem? Dat zoeken we uit.

Wat is een nulkennisbewijs?

Goldwasser, Micali en Rackoff stelden zero-knowledge proofs voor in hun paper "De kenniscomplexiteit van interactieve bewijssystemen."

In een zero-knowledge proof-systeem moet de ene partij (bewijzer) aan een andere partij (verificateur) bewijzen dat a specifieke bewering waar is zonder aanvullende informatie te onthullen, behalve dat de zin waar is WAAR. Dit wordt bereikt door een minimale hoeveelheid informatie aan de verificateur te presenteren, zodat deze kan bevestigen dat de bewering inderdaad waar is.

instagram viewer

Paul wil bijvoorbeeld dat Anita haar kennis bewijst van de code van een geheime magische deur die twee paden (A en B) in een grot met elkaar verbindt. Anita gaat meerdere keren door de deur, beginnend bij pad A en uitkomend via pad B, terwijl Paul buiten blijft.

Door deze prestatie meerdere keren te herhalen, bewijst Anita dat ze de code kent om de magische deur in de grot te openen zonder de code aan Paul te onthullen.

Hoe werkt een Zero-Knowledge Proof?

Bewijzen zonder kennis werken door de bewijzer en de verificateur een reeks interacties te laten uitvoeren. Deze interacties omvatten meestal meerdere communicatierondes. Tijdens elke interactie construeert de bewijzer een bewijs dat de waarheidsgetrouwheid van de bewering van de bewijzer ondersteunt.

De verificateur creëert vaak meerdere uitdagingen met betrekking tot de bewering die wordt bewezen. En de prover reageert elke keer met zorgvuldig vervaardigd bewijs om de verificateur te overtuigen van de waarheid van de verklaring zonder enige informatie met betrekking tot de verklaring vrij te geven.

Uitdagingen en interacties worden meerdere keren herhaald om de kans uit te sluiten dat de spreekwoordelijke uitspraak naar de uitspraak gokt.

Met een nulkennisbewijs kunt u een bewijs van kennis delen met de andere partij zonder aanvullende details van de kennis prijs te geven. Om dat mogelijk te maken, is het zero-knowledge-protocol afhankelijk van de algoritmen die sommige gegevens als invoer nemen en de uitvoer retourneren als waar of onwaar voor de gegeven invoer.

Hier zijn drie criteria waaraan een kennisvrij systeem moet voldoen.

1. Volledigheid

Als de bewering waar is, kan een eerlijke bewijzer een eerlijke verificateur overtuigen van de waarheid van de bewering.

2. degelijkheid

Als de bewering onjuist is (wat betekent dat een bewijzer de juiste bewering niet kent), kan geen enkele oneerlijke bewijzer een eerlijke verificateur overtuigen van de waarheidsgetrouwheid van de bewering.

3. Nul-Kennis

Zero-knowledge proofs (ZKP's) zorgen ervoor dat de verificateur geen kennis verkrijgt over de bewering die wordt bewezen, behalve of deze waar of onwaar is. Bovendien kan de verificateur geen informatie over de bewering halen uit het bewijs van de bewijzer, dat is opgesteld om de waarheidsgetrouwheid van de bewering aan te tonen.

Soorten nulkennisbewijzen

Hieronder volgen twee hoofdtypen nulkennisbewijzen die u moet kennen.

Interactieve zero-knowledge bewijzen

In een interactief zero-knowledge proof-systeem construeert de bewijzer bewijs over de bewering en stuurt deze naar de verificateur. Vervolgens stelt de verificateur vragen en creëert hij uitdagingen. De spreekwoordvoerder reageert op de uitdagingen van de verificateur en zet de interactie voort. Door dit heen en weer communicatieproces kan de verificateur worden overtuigd van de waarheidsgetrouwheid van de verklaring.

Niet-interactieve zero-knowledge bewijzen

In een niet-interactief zero-knowledge proof-systeem creëert de bewijzer een enkel bewijs dat de bewijzer onafhankelijk kan verifiëren zonder enige verdere interactie.

Van de twee zijn interactieve nulkennisbewijzen rekenintensiever omdat interactieve ZKP-technologie extra berekeningen uitvoert vanwege heen-en-weer-interacties.

Zero-Knowledge Proof applicaties en use cases

Hier zijn enkele use-cases van zero-knowledge-protocollen.

Authenticatie

Zero-knowledge proofs (ZKP's) kan worden gebruikt om gebruikers te authenticeren zonder geheime informatie uit te wisselen, zoals gebruikersnamen of wachtwoorden. Dit kan de gebruikerservaring verbeteren en bedrijven bevrijden van het bewaren van grote hoeveelheden gebruikersgegevens op hun servers.

Privé transacties

Blockchain-transacties zijn niet privé. In plaats daarvan zijn ze gekoppeld aan pseudonieme crypto-wallet-adressen. En overheden kunnen die transacties traceren, waardoor ze darknet-criminelen kunnen pakken.

Het is legitiem om criminelen te vangen door die transacties te traceren. Maar hoe zit het met een onderdrukkend regime dat reguliere cryptogebruikers in de gaten houdt via informatie die is opgeslagen in het grootboek?

Door zero-knowledge proofs te implementeren, kunnen bedrijven afgeschermde transacties mogelijk maken waarbij de afzender- en ontvangeradressen en transactiebedragen worden verborgen voor de openbare blockchain.

Bijvoorbeeld, ZCash en Monero bieden privétransacties aan met behulp van zero-knowledge proofs.

Beveiligde toeleveringsketens

Het gebruik van zero-knowledge proof kan de veiligheid in een toeleveringsketen verbeteren. Het kan de gegevensintegriteit verifiëren, de inloggegevens van leveranciers valideren, de authenticiteit van producten of diensten bewijzen en veilige tracking mogelijk maken zonder dat gevoelige informatie moet worden vrijgegeven.

Bovendien stellen bedrijven met zero-knowledge proofs in staat om aan toezichthouders en autoriteiten te bewijzen dat ze voldoen aan de toepasselijke wetten en industriestandaarden.

Privé-identiteitsverificatie

Zero-knowledge proofs helpen de privacy van gebruikers te beschermen. Autoriteiten kunnen de identiteit van elke persoon verifiëren zonder gevoelige informatie vrij te geven.

Bijvoorbeeld een app voor gedecentraliseerde financiën (DeFi). mogelijk moet verifiëren dat een gebruiker tot een bepaald land behoort. Bij het traditionele proces moet de gebruiker zijn paspoortgegevens of rijbewijsnummer opgeven. Maar met behulp van een ZKP-gebaseerd identiteitsprotocol van derden kan de gebruiker bewijzen dat hij uit een lijst met toegestane landen komt, zelfs zonder de naam van zijn land te vertellen.

Bewijs van lidmaatschappen

Zero-knowledge proof kan gebruikers in staat stellen te bewijzen dat ze deel uitmaken van een grote openbare set zonder te vertellen tot welk deel van de openbare set ze behoren.

Zo lanceerde de Nederlandse ING Bank haar zero-knowledge set membership (ZKSM), waarmee gebruikers kunnen bewijzen dat ze lid zijn van de Europese Unie zonder te vertellen in welke landen ze wonen.

Nadelen van het gebruik van een Zero-Knowledge Proof

Zero-knowledge proof biedt grote voordelen. Maar ze hebben ook wat haken en ogen.

De grootste uitdaging zijn de hardwarekosten. Het genereren van nulkennisbewijzen vereist complexe berekeningen, vaak uitgevoerd op gespecialiseerde machines die duur zijn in aanschaf.

Bovendien vereist het verifiëren van bewijzen ook complexe berekeningen. Het is dus niet haalbaar om zero-knowledge proof te implementeren, tenzij bedrijven hiervoor grote budgetten hebben.

Ook belemmert het gebrek aan trainingsbronnen en ontwikkelaarstools voor ZKP-applicaties een bredere acceptatie van zero-knowledge proofs.

Zero-Knowledge bewijzen om de privacy te verbeteren

Hackers en bedreigingsactoren proberen voortdurend uw gevoelige informatie te bemachtigen. Neem dus de nodige maatregelen om uw gegevens te beschermen. Zoek naar applicaties op basis van nulkennisbewijzen en gebruik ze om uw privacy en veiligheid te beschermen.

U moet ook zero-knowledge encryptie gebruiken om uw gevoelige gegevens te beschermen.