Wat is zero-knowledge proof en hoe waarborgt het online privacy? Ontdek wat het is en waarom het belangrijk is.
Stel je voor dat je een geheim hebt en iemand wil verifiëren dat je het weet, maar je wilt niet onthullen wat het geheim eigenlijk is. Hoe is dat mogelijk? Voer zero-knowledge proofs (ZKP) in, een cryptografisch concept dat precies dat mogelijk maakt.
Zero-knowledge proofs bieden, ondanks hun complex klinkende naam, een eenvoudig maar krachtig idee: kennis van iets bewijzen zonder de details prijs te geven.
Zero-knowledge proofs, geïntroduceerd in de jaren tachtig, zijn sindsdien een hoeksteen geworden van de moderne cryptografie en bieden een pad naar veilige en private digitale interacties in een steeds meer
Inhoudsopgave
Zero-knowledge proof (ZKP) uitgelegd
ZKP’s zijn een cryptografische methode waarmee de ene partij, de zogenaamde ‘prover’, aan een andere partij, de ‘verificateur’, kan aantonen dat zij over specifieke kennis beschikt zonder die kennis daadwerkelijk prijs te geven.
In eenvoudiger bewoordingen maken ZKP’s de verificatie van informatie mogelijk zonder de feitelijke inhoud ervan bekend te maken. Een van de beroemdste analogieën die bewijzen van nulkennis illustreren is het ‘Ali Baba-grot’-scenario:
Stel je een situatie voor waarin een bewijzer, laten we haar Peggy noemen, aan een verificateur, Victor, wil bewijzen dat ze de geheime wachtwoordzin kent om een grot binnen te gaan, zonder de wachtwoordzin zelf daadwerkelijk te onthullen.
Peggy neemt Victor mee naar de ingang van de grot, gaat naar binnen en gaat vervolgens via een andere route weer naar buiten. Vervolgens daagt ze Victor uit om de oorspronkelijke ingang te bepalen die ze gebruikte.
Als Victor de oorspronkelijke ingang kan vinden, zal Peggy de wachtwoordzin onthullen. Als Victor de oorspronkelijke ingang echter niet kan vinden, bewijst Peggy met succes haar kennis van de wachtwoordzin zonder deze bekend te maken.
In deze analogie vertegenwoordigt de grot de geheime kennis (de wachtwoordzin), en Peggy’s vermogen om de grot binnen te gaan en te verlaten demonstreert haar kennis van de wachtwoordzin.
Belangrijk is dat Victor geen kennis krijgt van de wachtwoordzin zelf, omdat hij niet kan zien via welke ingang Peggy de grot verliet.
Dit voorbeeld weerspiegelt hoe zero-knowledge proofs één partij in staat stellen kennis van een geheim te bewijzen zonder het geheim zelf te onthullen.
ZKP’s hebben brede toepassingen op gebieden als authenticatie, privacybehoudende protocollen en blockchain-technologie.
Hoe werken zero-knowledge proofs?
Zero-knowledge proof wordt bereikt door een complexe reeks interacties. De kern van ZKP’s zijn wiskundige algoritmen en protocollen die deze interactie mogelijk maken.
Een veel voorkomend type ZKP is het interactieve protocol, waarbij de bewijzer en verificateur een reeks stappen uitvoeren om de geldigheid van de verklaring vast te stellen.
Deze stappen zijn zo ontworpen dat de verificateur overtuigd kan worden van de kennis van de bewijzer, zonder dat de bewijzer enige specifieke informatie hoeft prijs te geven.
Neem bijvoorbeeld een scenario waarin Donald aan Joe wil bewijzen dat hij een geheim nummer kent.
Dit wordt bereikt door een reeks cryptografische berekeningen en uitwisselingen waarmee Joe de juistheid van Donalds bewering kan verifiëren zonder iets over het geheime nummer zelf te leren.
ZKP’s hebben brede toepassingen. Naast authenticatie- en privacybeschermende protocollen worden ZKP’s ook gebruikt in blockchain-technologie.
In een blockchain-netwerk kunnen ZKP’s bijvoorbeeld worden gebruikt om de geldigheid van transacties te bewijzen zonder gevoelige informatie vrij te geven, zoals het adres van de afzender of het verhandelde bedrag.
Soorten nulkennisbewijzen
Zero-knowledge proofs (ZKP’s) zijn er in verschillende soorten, die elk een specifiek doel dienen en unieke voordelen bieden.
De twee belangrijkste typen omvatten interactieve en niet-interactieve ZKP’s, en nog een paar, elk met zijn eigen kenmerken en toepassingen.
- Interactieve Zero-Knowledge Proofs (ZKIP’s): Interactieve ZKP’s vereisen dat de bewijzer en verificateur een reeks interacties uitvoeren om het bewijs te valideren. De verificateur presenteert uitdagingen of vragen aan de bewijzer, die correct moet reageren op basis van zijn bezit van de geheime informatie. Een voorbeeld is het Schnorr-protocol, dat wordt gebruikt om de kennis van een discrete logaritme te bewijzen zonder deze te onthullen.
-
Niet-interactieve Zero-Knowledge Proofs (NIZK’s): Niet-interactieve ZKP’s, geïntroduceerd in 1988, elimineren de noodzaak van interactie door gebruik te maken van cryptografische algoritmen op basis van vooraf overeengekomen parameters. Provers voeren hun informatie in een algoritme in om een bewijs te genereren, dat de verificateur vervolgens controleert met behulp van een ander algoritme. Hoewel ze efficiënter zijn, zijn NIZK’s rekenintensief. Voorbeelden zijn onder meer zk-SNARK’s en zk-STARK’s.
- zk-SNARK (Zero-Knowledge Beknopt niet-interactief argument van kennis): zk-SNARKs stellen een verificateur in staat een verklaring te valideren zonder er aanvullende details over te kennen. Ze zijn beknopt, niet-interactief en voldoen aan de eis van ‘deugdelijkheid’, waardoor bedrog onwaarschijnlijk wordt. zk-SNARK’s worden gebruikt in projecten zoals zkSync en Polygon zkEVM.
- zk-STARK (Zero-Knowledge schaalbaar transparant argument van kennis): zk-STARKs zijn vergelijkbaar met zk-SNARKs maar bieden schaalbaarheid en transparantie. Ze zijn sneller voor grotere getuigengroottes en vertrouwen op publiekelijk verifieerbare willekeur in plaats van op een vertrouwde opstelling. StarkNet gebruikt zk-STARKs voor schaalbaarheid en transparantie in zijn activiteiten.
- Statistische nulkennisbewijzen: Statistische ZKP’s stellen een bewijzer in staat een verificateur met grote waarschijnlijkheid te overtuigen, in plaats van met zekerheid. Ze zijn nuttig wanneer absolute zekerheid niet vereist is, zoals bij bepaalde cryptografische protocollen.
- Argumenten van kennis: Argumenten van kennis ZKP’s bewijzen dat de bewijzer een geheim kent zonder het te onthullen. Het Sigma-protocol is een voorbeeld dat wordt gebruikt bij digitale handtekeningen.
- Niet-Black-Box Zero-Knowledge-bewijzen: Met deze bewijzen kan de verificateur de interne werking van het bewijs inspecteren op aanvullende informatie, waardoor transparantie in bepaalde cryptografische toepassingen wordt gegarandeerd.
- Zero-Knowledge-bewijzen van kennis: Deze bewijzen tonen niet alleen de kennis van een geheim aan, maar bewijzen ook de kennis over hoe het te achterhalen. Het Schnorr-identificatieprotocol, dat wordt gebruikt in digitale handtekeningen, is een voorbeeld.
Zero-knowledge proof-applicaties
Zero-knowledge proofs hebben een breed scala aan toepassingen in verschillende industrieën en technologieën, dankzij hun vermogen om de privacy, veiligheid en efficiëntie in digitale interacties te verbeteren.
- Blockchain-technologie: Een van de meest prominente toepassingen van ZKP’s is de blockchain-technologie. ZKP’s kunnen worden gebruikt om de geldigheid van transacties te bewijzen zonder gevoelige informatie vrij te geven, zoals het adres van de afzender of het transactiebedrag. Dit kan de privacy en schaalbaarheid in blockchain-netwerken helpen verbeteren. ZKP’s worden bijvoorbeeld gebruikt in Zcash (ZEC), een op privacy gerichte cryptocurrency. Met ZKP’s kunnen gebruikers het eigendom van fondsen bewijzen zonder hun transactiegeschiedenis of rekeningsaldo bekend te maken.
- Identiteit verificatie: Zero-knowledge-bewijzen kunnen worden gebruikt voor veilige en privacybehoudende identiteitsverificatie. Ze kunnen bijvoorbeeld worden gebruikt om te bewijzen dat een persoon ouder is dan een bepaalde leeftijd, zonder de exacte leeftijd of geboortedatum bekend te maken. Organisaties zoals QEDIT maken gebruik van ZKP’s om bedrijven in staat te stellen de integriteit van hun gegevens te verifiëren zonder deze aan derden bloot te stellen, waardoor de privacy van gegevens wordt gewaarborgd.
- Digitaal stemmen: ZKP’s kunnen worden toegepast in digitale stemsystemen om de integriteit van het stemproces te waarborgen en tegelijkertijd de privacy van de kiezers te behouden. ZKP’s kunnen worden gebruikt om te bewijzen dat een stem correct is uitgebracht, zonder de daadwerkelijke stem bekend te maken. Een voorbeeld is het project ‘CIVITAS’, dat ZKP’s gebruikt om verifieerbaar en anoniem stemmen bij verkiezingen mogelijk te maken.
- Gegevens delen en samenwerken: ZKP’s kunnen het veilig en privé delen en samenwerken van gegevens mogelijk maken. ZKP’s kunnen bijvoorbeeld worden gebruikt om te bewijzen dat aan bepaalde voorwaarden wordt voldaan zonder de onderliggende gegevens prijs te geven, waardoor partijen kunnen samenwerken zonder gevoelige informatie in gevaar te brengen.
- Authenticatie en toegangscontrole: ZKP’s kunnen de authenticatie- en toegangscontrolemechanismen verbeteren. ZKP’s kunnen worden gebruikt om het eigendom van een digitaal activum te bewijzen zonder het activum zelf prijs te geven, waardoor de veiligheid bij digitale transacties wordt verbeterd. ZKP’s worden bijvoorbeeld gebruikt in het ‘Sovrin’-netwerk om individuen in staat te stellen eigenschappen over zichzelf te bewijzen, zoals leeftijd of kwalificaties, zonder onnodige persoonlijke informatie prijs te geven.
- Privacybehoudende technologieën: ZKP’s worden ook gebruikt in privacybeschermende technologieën, zoals anonieme inloggegevens en privé-set kruispuntprotocollen. Deze technologieën maken veilige interacties mogelijk zonder gevoelige informatie vrij te geven.
Voordelen en uitdagingen van zero-knowledge proofs
Zero-knowledge proofs (ZKP’s) bieden verschillende voordelen.
Voordelen
- Privacy: Een van de belangrijkste voordelen van ZKP’s is hun vermogen om privacy te bieden doordat één partij kennis van iets kan bewijzen zonder de feitelijke informatie prijs te geven. Dit is van cruciaal belang bij toepassingen waarbij de vertrouwelijkheid van gegevens voorop staat, zoals identiteitsverificatie.
- Beveiliging: ZKP’s verbeteren de beveiliging door verifieerbare berekeningen mogelijk te maken zonder gevoelige gegevens bloot te leggen. Dit is vooral belangrijk bij blockchain- en cryptocurrency-toepassingen, waarbij transacties moeten worden gevalideerd zonder transactiedetails vrij te geven.
- Efficiëntie: ZKP’s kunnen de reken- en communicatieoverhead die gepaard gaat met het bewijzen van de geldigheid van een verklaring aanzienlijk verminderen. Deze efficiëntie maakt ze geschikt voor gebruik in omgevingen met beperkte middelen.
- Transparantie: In sommige gevallen, zoals bij niet-interactieve ZKP’s die gebruik maken van publiekelijk verifieerbare willekeur, kunnen ZKP’s transparantie bieden bij het genereren en verifiëren van bewijzen, waardoor het vertrouwen in het systeem wordt vergroot.
- Schaalbaarheid: Bepaalde soorten ZKP’s, zoals zk-STARK’s, bieden schaalbaarheidsvoordelen, waardoor efficiënt bewijs genereren en verifiëren mogelijk is, zelfs met grote hoeveelheden gegevens.
Uitdagingen
ZKP’s brengen ook bepaalde uitdagingen met zich mee die moeten worden aangepakt voor een brede acceptatie:
- Complexiteit: Het implementeren en begrijpen van ZKP’s kan complex zijn en vereist expertise op het gebied van cryptografie en wiskunde. Deze complexiteit kan wijdverbreide adoptie en implementatie belemmeren.
- Computerintensiteit: Het genereren en verifiëren van ZKP’s kan rekenintensief zijn. Dit kan leiden tot schaalbaarheidsproblemen, vooral in applicaties met hoge transactievolumes.
- Betrouwbare installatie: Sommige ZKP’s vereisen een vertrouwde installatiefase om openbare parameters te genereren. Het garanderen van de integriteit van deze opstelling en het voorkomen van potentiële aanvallen kan een uitdaging zijn.
- Bewijskennis: ZKP’s gaan ervan uit dat de bewijzer over de geheime informatie beschikt die zij beweren te kennen. Het verifiëren van deze veronderstelling zonder het geheim te onthullen kan in bepaalde scenario’s een uitdaging zijn.
- Interoperabiliteit: Verschillende ZKP-systemen hebben mogelijk een beperkte interoperabiliteit, waardoor het moeilijk wordt om ZKP’s naadloos op verschillende platforms en applicaties te gebruiken.
De weg voor ons
Tegenwoordig zijn zero-knowledge proofs uitgegroeid tot een cruciale technologie voor het verbeteren van de privacy en schaalbaarheid in verschillende digitale toepassingen.
Onlangs gelanceerde door ZK aangedreven blockchains zoals Polygon zkEVM, zkSync Era en StarkNet zijn veelbelovend. Hun potentiële toepassingen en impact beginnen nog maar net te worden onderzocht.
Het zal fascinerend zijn om te zien hoe deze technologieën zich ontwikkelen en welke nieuwe mogelijkheden ze de komende jaren ontsluiten.