Inhoudsopgave[Zich verstoppen][Laten zien]
Zowel in het echte leven als in de digitale wereld willen we vaak dingen aan anderen bewijzen. Voordat ze een kantoorgebouw betreden, geven werknemers meestal een soort identiteitsbewijs voordat ze naar binnen gaan.
Wanneer gebruikers proberen in te loggen op een app zoals Facebook of Twitter, moeten deze diensten de gebruiker eerst vragen om in te loggen met een wachtwoord en af en toe wordt er een eenmalige toegangscode (OTP) naar hun mobiele apparaat gestuurd.
Een nadeel van het leveren van bewijs is dat we vaak andere soorten informatie weggeven. Het verstrekken van een wachtwoord aan een website betekent nog steeds dat de website zelf een kopie van het gehashte wachtwoord op zijn servers bewaart. Als iemand de werknemers-ID-scanner van het kantoorgebouw zou hacken, kunnen ze mogelijk de privésleutels van iedereen krijgen.
Nulkennisbewijzen of ZKP's bieden een manier om een identiteit of transactie te valideren zonder aanvullende informatie te hoeven verstrekken. Vanwege de toepassingen in cryptografie zijn ZKP's aangepast door: blokketens om veilige en schaalbare validatieprotocollen te creëren.
Wat zijn nulkennisbewijzen?
Nul-kennisbewijzen werden voor het eerst voorgesteld door MIT-onderzoekers Silvio Micali, Charles Rackoff en Shafi Goldwasser in 1985 in hun paper "De kenniscomplexiteit van interactieve proefsystemen"
In dit artikel werd het begrip kenniscomplexiteit geïntroduceerd. Dit verwijst naar de hoeveelheid kennis over een bewijs overgedragen van de bewijzer naar de verificateur. Nul-kennisbewijzen zijn bedoeld om een partij in staat te stellen te bewijzen dat een specifieke verklaring waar is voor een andere partij zonder enige andere informatie te hoeven vrijgeven.
ZKP's kunnen worden gebruikt als een veilig alternatief voor de huidige authenticatiesystemen en kunnen ook worden toegevoegd aan blockchain-protocollen om transacties privé te houden.
Hoe werken ZKP's?
Voorbeeld uit de echte wereld
Laten we, om te illustreren hoe zero-knowledge proofs werken, eens kijken naar een abstract voorbeeld van een ZKP.
Laten we zeggen dat je een vriend hebt die rood-groen kleurenblind is. Je hebt twee identieke ballen bij je die alleen van kleur verschillen: een rode en een groene. Voor je vriend zien ze er identiek uit, maar als persoon zonder kleurenblindheid kun je ze gemakkelijk uit elkaar houden.
Is het voor jou mogelijk om aan je vriend te bewijzen dat ze een andere kleur hebben zonder te onthullen welke bal rood of groen is?
Er is in feite een manier om dit te bewijzen zonder de kleuren van de ballen te onthullen. Eerst moet je je vriend beide ballen achter zijn rug laten leggen en hem vertellen om een bal te laten zien en weer te verbergen. Vervolgens vertel je je vriend dat hij de keuze heeft om dezelfde bal nog een keer te laten zien of om te wisselen met de andere.
Elke keer dat er een nieuwe bal wordt getoond, kun je hem vertellen of hij de bal heeft verwisseld of niet. Als je de juiste call blijft raden, wordt het steeds waarschijnlijker dat de ballen anders gekleurd zijn. Je vriend moet er nu van overtuigd zijn dat de ballen verschillend gekleurd zijn zonder hem te hoeven vertellen welke ballen welke kleur hebben.
Praktische toepassingen
De meeste praktische voorbeelden van nulkennisbewijzen vallen in twee soorten.
Ten eerste kunnen ZKP's worden gebruikt bij het ontwerpen van protocollen. We kunnen ervoor zorgen dat verschillende partijen niet kunnen frauderen of misbruik kunnen maken van het protocol. Ten tweede kunnen ZKP's worden gebruikt voor identificatie.
Zo kunnen we ZKP's gebruiken om veilig in te loggen op een webapplicatie zonder het wachtwoord zelf te hoeven prijsgeven.
Laten we een paar voorbeelden bekijken van hoe we zero-knowledge proofs kunnen gebruiken.
E-stemmen
Een veelbesproken toepassing van ZKP's is hun mogelijke rol bij online stemmen. Laten we zeggen dat er een referendum komt waar gebruikers kunnen stemmen over een voorgesteld beleid. Elke kiesgerechtigde mag 1 of 0 stemmen op het stembiljet.
Met behulp van ZKP's kunnen kiezers hun recht om te stemmen bewijzen zonder hun identiteit bekend te maken. Dit zorgt ervoor dat elke stem echt anoniem is. Een extra ZKP zal ook worden gebruikt om te bewijzen dat de stem van een bepaalde gebruiker deel uitmaakt van de uiteindelijke telling.
Wat betreft de inhoud zelf van de stembiljetten, kan het stemsysteem ook een nulkennisbewijs genereren dat elk stembiljet een 1 of een 0 bevat. Dit wordt bereikt zonder de inhoud van het stembiljet zelf te hoeven kennen.
Blockchain-privacy
Blockchains zoals Bitcoin en Ethereum ondersteunen standaard geen privétransacties. Zolang uw Bitcoin-portemonnee openbaar is, kan iedereen naar een blokverkenner gaan, zoals: Blockstream om alle transacties te zien waar de portemonnee deel van uitmaakt.
Ondertussen geeft het gebruik van een dienst zoals een bank of betalingsdiensten zoals Cash App of Venmo u de mogelijkheid om privé transacties uit te voeren. Dit gemak gaat echter ten koste van het onthullen van uw informatie aan de gecentraliseerde service.
We kunnen anonimiteit combineren met decentralisatie door ZKP's toe te voegen aan het blockchain-protocol. Cryptocurrencies zoals ZCash gebruiken ZKP's om privétransacties te creëren waarmee munthouders hun anonimiteit kunnen behouden. Verschillende van deze cryptocurrencies gebruiken een type ZKP dat bekend staat als zk-SNARK.
Deze ZKP's vereisen geen interactie tussen de prover en de verifier.
Nul-Kennis Rollups
ZK-rollups zijn een schaalbare oplossing waarmee off-chain transacties direct en met minimale gaskosten kunnen worden geverifieerd. Ze zijn een manier om een groot aantal Layer 2-transacties te combineren en in te dienen bij het Layer 1-protocol.
Naast het bieden van privacy, maakt ZKP's het schalen van complexe systemen mogelijk. Blockchain-protocollen kunnen ZKP's gebruiken om te bewijzen dat gebruikers de juiste transacties hebben afgewikkeld, het juiste saldo hebben, enzovoort. Deze veilige maar schaalbare oplossingen zijn alleen mogelijk door de wiskundige bewijzen die off-chain in ZKP's worden gedaan.
Protocollen zoals Loopring gebruiken zero-knowledge proofs om off-chain transacties te helpen verwerken zonder de beveiliging in gevaar te brengen.
Voordelen van nulkennisbewijzen
- ZKP's vervangen minder betrouwbare vormen van authenticatie zoals pincodes of identificatiekaarten
- ZKPS vergroot de schaalbaarheid van blockchains
- Implementatie van ZKP vereist eenvoudige coderingsmethoden
- Het gebruik van ZKPS kan systemen veiliger maken doordat er geen onnodige informatie in het systeem hoeft te worden opgeslagen.
Conclusie
Gegevensprivacy is al een groot probleem in zowel gecentraliseerde als gedecentraliseerde systemen. Nul-kennisbewijzen bieden verschillende partijen een manier om transacties en identiteiten te bewijzen of te valideren zonder deze transacties of identiteiten te hoeven onthullen.
Naarmate blockchain-technologie op grotere schaal wordt gebruikt, zal de acceptatie van ZKP's om verificatie veilig af te handelen de sleutel zijn tot bezorgdheid over schaalbaarheid.
Laat een reactie achter