Zero Knowledge Proofs & zkSNARKs: Beginnershandleiding

Zero-knowledge proofs zijn cryptografische alchemie waarvan de waarde ligt in hun schijnbaar paradoxale eigenschap om een ​​uitspraak te bewijzen zonder er iets over te onthullen. Bij wijze van spreken wordt verondersteld dat een verificateur die een nulkennisbewijs krijgt, door God wordt verteld dat dit zo is.

Gods functie in de context die voorhanden is, is echter een van de onderliggende protocollen, of instellingen, waarin het scenario plaatsvindt. En wat belangrijk is voor het doel van blockchain-agentschappen als institutionele organen, maakt het mogelijk om kwaadwillende deelnemers te dwingen tot een protocol waarbij ze uitvoeren in overeenstemming met vooraf bepaalde stappen om wereldwijde veiligheid te waarborgen binnen anders verhulde privacy..

Als ik maar de tijd had en jij maar de hersenen.

– Lewis Carroll, The Hunting of the Snark

De P en NP Complexity Zoo

Een paar fundamentele begrippen zijn belangrijk om te begrijpen bij het verwerven van een goede intuïtie over zero-knowledge proofs met betrekking tot blockchain-technologie. In de informatica verwijzen de problemen van de P-klasse naar problemen die kunnen worden opgelost door een redelijk snel programma op een soort computer (Turing-machine of ander model), of met andere woorden waarvoor er een implementeerbare oplossing is die kan worden verfijnd in wat wordt genoemd polynomiale tijd (in feite synoniem met snelle tijd).

Het belangrijkste is dat veeltermuitdrukkingen (van het Grieks, “vele namen”) geen exponentiële functies zijn (dwz tot de macht van), maar verwijzen naar rekenkundige circuitproblemen van lineaire, kwadratische, kubieke en vergelijkbare typen, waarbij het aantal vereiste stappen acceptabel in vergelijking met de omvang van het probleem. Dat wil zeggen, problemen met zaken als doolhoven, vermenigvuldiging, enz. Of die kunnen worden teruggebracht tot dergelijke problemen.

Polygraafmachine

De polygraaf, een machine met dubbele invoer

In de structuur van blockchain, waar het uitvoeren van transacties massaal wordt gerepliceerd in het enkelvoudige grootboek onder vele gedistribueerde knooppunten die dezelfde uitvoer reproduceren (vergelijkbaar met polygraaf leugendetectoren, in basisprincipe), is het belangrijk dat het aantal rekenstappen in een set van instructies worden tot een minimum beperkt.

Dit is de reden waarom nulkennisbewijzen in een dergelijke omgeving ‘beknopt’ moeten zijn en de uitvoering niet moeten worden gereproduceerd om de geldigheid van die uitvoering aan te tonen.

De NP (voor niet-deterministische polynomiale tijd) complexiteitsklasse beschrijft daarentegen problemen waarbij de deugdelijkheid van hun oplossingen bewijzen hebben die efficiënt kunnen worden geverifieerd door deterministische berekeningen in genoemde polynoom, of laten we zeggen lineair-sequentiële blockchain-tijd..

Dat wil zeggen, het mentale werk dat nodig is om een ​​bepaald probleem op te lossen, kan worden verminderd of omgezet in een eenvoudiger probleem dat in staat is het denkproces te mechaniseren dat een bepaalde binaire beslissingsboom ontvouwt..

En aangezien blockchains als zodanig strikt determinisme vereisen om de integriteit van de globale consensus te behouden (dezelfde input moet altijd dezelfde output produceren met weinig tot geen afwijking), schalen ze veel beter als ze alleen worden gebruikt om te verifiëren / lezen in plaats van uit te voeren / schrijven..

zk-SNARKs optimaliseren in dit scenario een manier om de blockchain te gebruiken als een verificateur van algemene computationele integriteit buiten de keten, met verificatietijden in de keten die sneller zijn dan uitvoeringstijden, in de logaritme (dat wil zeggen, het omgekeerde van machtsverheffen) van de betrokken stappen of cycli (gemeten in gasuitgaven op de Ethereum-blockchain).

Dit heeft veel potentiële toepassingen, van het gebruik van het blockchain-bureau als bemiddelaar van institutionele transacties tot het verhullen van grote bedragen en transacties weg van de aandacht van kwaadwillig nieuwsgierige blikken, het voorkomen van bandwagon- en bot-geactiveerde ‘walvissen’-effecten tot complementaire schaaloplossingen en mogelijk boeiende de blockchain als een soort malwaredetector.

En mogelijk nog breder naar hoe de meest waardevolle maatschappelijke bron van vertrouwen als zodanig opnieuw wordt uitgedrukt en gedragsmatig wordt vertaald naar het vergemakkelijken van menselijke samenwerking in speltheoretische scenario’s die voorheen niet in evenwicht waren..

Zero Knowledge Proofs

Zero-knowledge proofs zijn in wezen cryptografische constructies die onderzoeken in hoeverre formele logica kan worden doorgevoerd bij het oplossen van lastige problemen. In een ZKP een prover, Peggy en een verificateur Victor (in plaats van de spreekwoordelijke Alice en Bob) werken in een reeks stappen op zo’n manier samen dat Peggy in staat is om Victor de geldigheid van een uitspraak te bewijzen zonder iets over die uitspraak te onthullen , aangezien beide de beperkingen van hetzelfde protocol volgen.

Het basisidee wordt geïllustreerd in de gewone cryptografische folklore met het bekende voorbeeld van de grot van Ali Baba. Stel je een ringvormige grot voor met een ingang en een magische deur aan de andere kant die de zijkanten blokkeert.

Peggy wil Victor bewijzen dat ze de geheime zin kent die de deur opent zonder die zin te onthullen. Victor wacht dus even buiten, gaat dan naar binnen en roept van welke kant hij wil dat Peggy komt opdagen. Dit wordt herhaald totdat de kans dat Peggy gewoon geluk heeft gehad nul nadert.

Zero Knowledge Proofs Voorbeeld

Ali Baba’s grot. Met dank aan Scott Twombly

Het concept van interactieve nulkennisbestendige systemen werd voor het eerst geïntroduceerd door Shafi Goldwasser en Silvio Micali eind jaren tachtig, en de algemene aanname dat het bewijs van een bepaalde bewering als zodanig meer kennis bevat dan de enige ware / valse geldigheid van die bewering (gebruikmakend van hulpinputs, ‘luiken’, enz. .) ondersteunt veel van de moderne cryptografie sindsdien.

Een nulkennisbewijs moet per definitie voldoen aan de volgende drie eigenschappen:

  • Volledigheid: Als een bewering waar is en beide partijen hetzelfde protocol correct volgen, dan raakt de verificateur natuurlijk overtuigd.
  • Degelijkheid: Als de bewering onwaar is, zal de verificateur vrijwel zeker niet overtuigd zijn (constructies met probabilistisch controleerbaar bewijs vertrouwen op herhaling totdat de waarschijnlijkheid van onwaarheid of gewoon muntgeld nul nadert).
  • Geen kennis: De verificateur leert geen verdere informatie.

Toen ze dat aanvaarden, volgden Micali en Manuel Blum al snel verder onderzoeken de mogelijkheden om kostbare middelen te besparen door de communicatierondes van interactie te elimineren (die meestal de meest computationeel duur zijn) en in plaats daarvan te vertrouwen op een gemeenschappelijke referentiestring die is afgeleid van een gedeeld of openbaar willekeurig baken (bijvoorbeeld dezelfde geigerteller).

In de afgelopen 20 jaar is het onderzoek naar zero-knowledge proof-systemen geleidelijk verbeterd met de nadruk op het optimaliseren van hun efficiëntie voor specifieke toepassingen en verbeteringen in verschillende parameterscenario’s, wat een dramatische reductie heeft opgeleverd in zowel de lengte van de gemeenschappelijke referentiestring als de grootte van de bewijs.

zk-SNARKS: Zero-Knowledge beknopt niet-interactief ARgument of Knowledge

Een zk-SNARK-constructie omvat drie onderling spelende algoritmen:

  • Een belangrijke generator: Instellen van de parameters voor het genereren van een sleutelpaar. Een vertrouwde groep mensen genereert bijvoorbeeld een privé / openbaar sleutelpaar, vernietigt het privégedeelte en vervolgens wordt vanuit het openbare deel een ander sleutelpaar gegenereerd, dat een bewijs- en verificatiesleutel produceert voor een bepaald programma.
  • Een gezegde: De bewijzer neemt de verstrekte bewijssleutel, een bepaalde openbare input en een privégetuige zodat deze voldoet aan de beoogde context van het programma en genereert een bewijs.
  • Een verificateur: Verificatie wordt berekend op basis van de verificatiesleutel, de publieke input en het geleverde bewijs en evalueert naar waar of onwaar, afhankelijk van of het bewijs juist is of niet (in de context van wat wordt geverifieerd om aan wat te voldoen).

Om dit levendiger weer te geven, worden twee polynoomstrings geproduceerd waarvan wordt verwacht dat ze niet veel afwijken van de meeste van de tijd gegeven legitimiteit, en vervolgens wordt een aantal snelle willekeurige controles uitgevoerd op willekeurige plaatsen om ervoor te zorgen dat ze het wel eens zijn.

ZCash-implementatie

Zcash-munt

Afbeelding via Fotolia

Aangezien bitcoin-transacties kunnen worden geanonimiseerd door te volgen en te analyseren cashflowpatronen (zelfs ongeacht wasserijmixers), ZCash bouwt een gedecentraliseerd anoniem betalingsschema bovenop de Bitcoin-codebasis door de bovenstaande algemene mechanismen te implementeren (in specifieke implementaties, zoals de Pinokkio-protocol, oorspronkelijk ontwikkeld als een praktische methode voor het verifiëren van uitbestede berekeningen).

Het biedt twee regimes van door blockchain uitgezonden transacties: transparant en afgeschermd. De eerste zijn vergelijkbaar met reguliere bitcoin-transacties, maar gebruikers krijgen de optionele privacyfunctie om afzender, ontvanger en verwerkte bedragen te verbergen en zo hun transacties in de laatste, afgeschermde pool te laten gaan. Discretionele “selectieve openbaarmaking” maakt het mogelijk om legitimiteit aan auditors te bewijzen, terwijl wordt vermeden wat andere radars kunnen veroorzaken.

De vertrouwde installatiefase in ZCash omvat een ingewikkelde ceremonie na een Berekeningsprotocol voor meerdere partijen waarin een aantal deelnemers verspreid over verschillende geolocaties samen de openbare sleutel verzamelen en hun bijbehorende privéscherven vernietigen. In het gegeven protocol is het voldoende dat slechts één deelnemer met succes zijn privésleutel wist om het onmogelijk te maken om de hele privésleutel te reconstrueren waaruit de openbare sleutel vervolgens wordt afgeleid.

Een kwantumbestendig alternatief voor het omzeilen van dit soort vertrouwde instellingen wordt geleverd met het actieve onderzoek naar zk-STARK-constructies (Scalable Transparent Argument for Knowledge) door Prof. Eli Ben Sasson en anderen in Technion, het Israëlische Instituut voor Technologie.

ZoKrates: Proof-of-Concept Toolbox-implementatie op Ethereum

ZoKrates is een prototyping-toolbox (tot nu toe nog niet al te krachtig) voor het maken en verifiëren van zero-knowledge proofs in Solidity Ethereum Smart Contracts. Het biedt een taal op hoog niveau (hoewel nog in de vroege experimentele fase) voor het schrijven van programma’s en het verifiëren van hun uitvoering in de keten met ondersteuning voor een installatiefase, het berekenen van getuigen en het genereren van bewijzen.

De python-achtige syntaxis is samengesteld uit primitieve uint-typen (positieve getallen), imperatieve algebraïsche instructies, for-loops, voorwaardelijke if-instructies en functiedefinities. De compiler transformeert de voorwaarden naar een restrictiesysteem van een rekenkundig circuit (denk aan sudoku) waaruit een zk-SNARK wordt gegenereerd. De verificatiesleutel kan vervolgens worden geëxporteerd naar een smart contract waardoor verificatie van bewijzen op de blockchain mogelijk is.

De bouwstenen voor het on-chain verificatie-algoritme bevinden zich op de blockchain als vooraf nagekomen contracten en de uitkomst van het verificatie-algoritme op een geleverd bewijs kan worden gebruikt om andere on-chain-activiteit verder te activeren (d.w.z., indien waar dan).

Dit maakt het bijvoorbeeld mogelijk om een ​​tokencontract met vertrouwelijke saldi aan te maken, terwijl het daarnaast (via de ERC-621-extensie) het mogelijk maakt om het aanbod van de meta-valuta of token te vergroten en te verkleinen.

Gebruikers moeten echter hun saldo aan de clientzijde bijhouden (aangezien ze niet op Etherscan worden weergegeven) en bovenal moet er altijd aan worden herinnerd dat het Ethereum-platform de ultieme testspeeltuin biedt voor economische theorieën en ideeën binnen de beperkte middelen van realiteit die gasuitgaven koppelt, waarvan de component de neiging is om het economische denken over problemen te dwingen.

Integratie op Quorum Blockchain

Op 22 mei 2017 kondigde ZCash Proof-of-Concept aan van hun privacylaagtechnologie op het Ethereum-gebaseerde bedrijf van JP Morgan. Quorum blockchain, die werd gevolgd door een prijsstijging in ZCash (aangezien ze ook kort daarna lid werden van de Ethereum Enterprise Alliance).

Quorum is een minimale Ethereum-vork met zijn eigen slimme contracttaal (Constellation) die speciaal is ontworpen voor de institutionele financiële markten, en aangezien zero-knowledge proofs de dunne lijn bewandelen tussen persoonlijke privacy en institutionele integriteit, zijn ze ideaal voor het verzekeren van privé-afwikkeling van digitale activa op het Quorum-grootboek.

Opmerkelijk is dat JP Morgan in het verleden bij de ontwikkeling van hun eigen blockchain-framework voor ondernemingen aanzienlijk heeft bijgedragen aan de ontwikkeling en verharding van de openbare keten in het proces.

Uitgelichte afbeelding via Fotolia

Mike Owergreen Administrator
Sorry! The Author has not filled his profile.
follow me