Zk-SNARK - KamilTaylan.blog
25 juni 2021 5:53

Zk-SNARK

Wat is zk-SNARK?

Zk-SNARK is een acroniem dat staat voor “Zero-Knowledge Succinct Non-Interactive Argument of Knowledge.” Een zk-SNARK is een cryptografisch bewijs waarmee een partij kan bewijzen dat ze over bepaalde informatie beschikt zonder die informatie prijs te geven. Dit bewijs wordt mogelijk gemaakt met behulp van een geheime sleutel die is aangemaakt voordat de transactie plaatsvindt. Het wordt gebruikt als onderdeel van het protocol voor de cryptocurrency, Zcash.

Belangrijkste leerpunten

  • Zk-SNARK is een zero-knowledge proof protocol dat wordt gebruikt bij encryptie, en is een acroniem dat staat voor “Zero-Knowledge Succinct Non-Interactive Argument of Knowledge.”
  • Dit bewijs werd voor het eerst ontwikkeld en geïntroduceerd aan het einde van de jaren tachtig en wordt nu gebruikt door de cryptocurrency Zcash om een ​​waargenomen anonimiteitsprobleem met blockchains van het type Bitcoin op te lossen.
  • Zk-SNARK-bewijzen zijn gebaseerd op een initiële “vertrouwenssysteem” -configuratie die is bekritiseerd als een inherente beveiligingsfout.

Inzicht in zk-SNARK

Voor veel oorspronkelijke leden van de cryptocurrency-gemeenschap – voornamelijk de Bitcoin-gemeenschap – was privacy een verondersteld doel en kenmerk van cryptocurrencies. Privacy was echter altijd een tweede orde zorg, gezien de behoefte van cryptocurrency om een ​​”betrouwbaar” systeem te creëren om de integriteit van elektronische valuta en digitale transacties te garanderen.

Begin jaren 2010 gingen relatief eenvoudig is om mensen die pseudonieme gegevens aan meerdere bronnen hadden verstrekt, opnieuw te identificeren.

Vanwege het vermeende gebrek aan privacy van sommige van de originele cryptocurrencies zoals Bitcoin, begonnen ontwikkelaars te werken aan op privacy gerichte munten. De meest prominente hiervan was Zcash, ondersteund door een technologie die bekend staat als zk-SNARKs.

Zero-Knowledge Proof

Een zk-SNARK (“nul-kennis beknopt niet-interactief argument van kennis”) gebruikt een concept dat bekend staat als een “nul-kennisbewijs”. Het idee achter deze bewijzen werd voor het eerst ontwikkeld in de jaren tachtig. Simpel gezegd, een nulkennisbewijs is een situatie waarin elk van de twee partijen bij een transactie in staat is om aan elkaar te verifiëren dat ze een bepaalde set informatie hebben, terwijl ze tegelijkertijd niet onthullen wat die informatie is.

Voor de meeste andere soorten bewijs moet ten minste één van de twee partijen toegang hebben tot alle informatie. Een traditioneel bewijs kan worden vergeleken met een wachtwoord dat wordt gebruikt om toegang te krijgen tot een online netwerk. De gebruiker dient het wachtwoord in en het netwerk controleert zelf de inhoud van het wachtwoord om te controleren of het correct is. Om dit te kunnen doen, moet het netwerk ook toegang hebben tot de inhoud van het wachtwoord.

Een zero-knowledge proof-versie van deze situatie houdt in dat de gebruiker aan het netwerk demonstreert (via wiskundig bewijs) dat hij het juiste wachtwoord heeft zonder het wachtwoord zelf te onthullen. De privacy- en beveiligingsvoordelen in deze situatie zijn duidelijk: als het netwerk het wachtwoord niet ergens heeft opgeslagen voor verificatiedoeleinden, kan het wachtwoord niet worden gestolen.

De wiskundige basis van zk-SNARKS is complex. Desalniettemin stellen dergelijke bewijzen het een partij in staat niet alleen aan te tonen dat er een bepaald stukje informatie bestaat, maar ook dat de betrokken partij op de hoogte is van die informatie. In het geval van Zcash kunnen zk-SNARKs vrijwel onmiddellijk worden geverifieerd en het protocol vereist geen interactie tussen de bewaker en de verificateur.

Kritiek op zk-SNARKs

Er zijn natuurlijk zorgen met betrekking tot zk-SNARKs. Als iemand bijvoorbeeld in staat was om toegang te krijgen tot de privésleutel die werd gebruikt om de parameters van het bewijsprotocol te maken, konden ze valse bewijzen maken die desalniettemin geldig leken voor verificateurs. Dit zou die persoon in staat stellen om nieuwe tokens van Zcash te maken door middel van een vervalsingsproces. Om dit te voorkomen, is Zcash zo ontworpen dat de testprotocollen uitgewerkt en verspreid zijn over meerdere partijen.

Hoewel de constructie van het Zcash-bewijsproces zo is voltooid dat de mogelijkheid van het vervalsen van tokens via valse bewijzen is geminimaliseerd, is er ten minste één ander probleem met betrekking tot de cryptocurrency. Zcash is gemaakt met een “belasting” van 20% geheven op alle blokken die gedurende de eerste jaren van het token zijn gemaakt. Deze belasting staat bekend als de “oprichtersbelasting” en wordt gebruikt om de ontwikkelaars van de cryptocurrency te compenseren.

Critici hebben gesuggereerd dat de oprichters dit facet van het systeem mogelijk zouden kunnen gebruiken om een ​​oneindig aantal Zcash-tokens te maken zonder dat iemand anders op de hoogte is van het bestaan ​​van die tokens. Om die reden is het op dit moment niet helemaal mogelijk om het exacte aantal bestaande Zcash-tokens te weten.

Sinds 2019 werken sommige ontwikkelaars aan het verbeteren van zk-SNARKs door de vertrouwde set-up te verwijderen. Een team genaamd Suterusu heeft een systeem ontwikkeld met de naam zK-ConSNARK dat beweert te werken zonder een vertrouwde set-up, privacybescherming kan bieden voor reguliere blockchains zoals Bitcoin, en de laagste inflatie heeft voor alle bestaande cryptocurrency.