Zero-knowledge proofs zijn cryptografische protocollen waarmee de ene partij (de bewijzer) aan een andere partij (de verifieerder) kan bewijzen dat zij over bepaalde informatie of kennis beschikken zonder de feitelijke informatie zelf prijs te geven. De term “zero-knowledge” benadrukt dat het bewijs geen enkele kennis of details onthult over de informatie die wordt bewezen, afgezien van het feit dat de bewijzer deze weet.
Het concept van zero-knowledge proofs werd in 1985 geïntroduceerd door Shafi Goldwasser, Silvio Micali en Charles Rackoff als een manier om privacy- en veiligheidsproblemen bij cryptografische transacties aan te pakken. Zero-knowledge proofs zijn vooral waardevol in scenario’s waarin privacy van cruciaal belang is, zoals digitale identiteitsverificatie, authenticatie en veilige communicatie.
Om beter te begrijpen hoe zero-knowledge proofs werken, kun je een klassiek voorbeeld overwegen dat bekend staat als het ‘Three-color Graph Coloring Problem’. de daadwerkelijke kleuren die voor elke regio zijn gekozen. Hier is een vereenvoudigde uitleg van het zero-knowledge-proofproces:
De opzet:
- De bewijzer en verificateur zijn het eens over een publieke verklaring of bewering, zoals de bewering dat de kaart met drie kleuren kan worden gekleurd.
Interactie:
- De bewijzer gaat een interactief protocol aan met de verificateur, waarbij ze ernaar streven de verificateur te overtuigen van de waarheid van de verklaring zonder de specifieke gebruikte kleuren te onthullen.
Executie:
- Door middel van een reeks interacties demonstreert de bewijzer zijn vermogen om de kaart in te kleuren, terwijl de verificateur bevestigt dat de bewering waar is.
- Bij de interacties moet de bewijzer bewijzen dat ze aangrenzende gebieden met verschillende kleuren kunnen kleuren zonder de werkelijke kleuren prijs te geven.
Verificatie:
- De verificateur is overtuigd van het vermogen van de bewijzer om aan de verklaring te voldoen op basis van de interacties.
- De verificateur leert echter niets over de daadwerkelijke kleuren die door de bewijzer worden gebruikt, waarbij de eigenschap “zero-knowledge” behouden blijft.
Zero-knowledge proofs zijn afhankelijk van cryptografische technieken om de veiligheid van het protocol te garanderen. De meest voorkomende typen zero-knowledge proofs zijn onder meer:
- Interactieve zero-knowledge proofs (iZKP’s): vereisen communicatie tussen de prover en de verificateur.
- Niet-interactieve zero-knowledge proofs (NIZKP’s): Hiermee kan de bewijzer een bewijs genereren dat zonder verdere interactie door de verificateur kan worden geverifieerd.
Toepassingen van zero-knowledge proofs gaan verder dan problemen met het kleuren van grafieken en omvatten wachtwoordauthenticatie, digitale identiteitsverificatie, anonieme inloggegevens en veilige transacties in blockchain-technologie, zoals de cryptocurrencies Zerocoin en Zcash.
Samenvattend bieden zero-knowledge proofs een krachtig hulpmiddel voor het bereiken van veiligheid en privacy in verschillende cryptografische toepassingen, doordat één partij het bezit van bepaalde informatie kan bewijzen zonder de informatie zelf prijs te geven.