Zero Knowledge Proofs & zkSNARKs: Beginners Guide

Nullkunnskapssikkerhet er kryptografisk alkymi hvis verdi ligger i deres tilsynelatende paradoksale egenskap å bevise en uttalelse uten å avsløre noe om det. På en måte å si, skal en verifikator som er gitt et bevis på null kunnskap, bli fortalt av Gud at dette er slik.

Guds funksjon i den aktuelle sammenhengen er imidlertid en av den underliggende protokollen, eller innstillingen, der scenariet finner sted. Og viktigere for blokkeringsbyråer som institusjonelle organer, gjør det mulig å tvinge ondsinnede deltakere i en protokoll der de utfører i samsvar med forhåndsbestemte trinn for å sikre global sikkerhet innen ellers skjult privatliv..

Hvis jeg bare hadde tid og du hadde bare hjernen.

– Lewis Carroll, Jakten på snarken

P og NP Complexity Zoo

Noen få grunnleggende forestillinger er viktige å forstå når du skaffer deg en god intuisjon om bevissthet om null kunnskap når det gjelder blockchain-teknologi. I informatikk refererer P-klasseproblemene til problemer som kan løses med et rimelig raskt program på en datamaskin av noe slag (Turing-maskin eller annen modell), eller med andre ord det finnes en implementerbar løsning som kan finpusses på det som kalles polynomisk tid (faktisk synonymt med rask tid).

Viktigst er at polynomiske uttrykk (fra gresk, “mange navn”) ikke er eksponentielle funksjoner (dvs. til kraften til), men kartlegger aritmetiske kretsproblemer av lineære, kvadratiske, kubiske og lignende typer, hvor antall nødvendige trinn er akseptabelt i forhold til størrelsen på problemet. Det vil si problemer som involverer ting som labyrinter, multiplikasjon osv. Eller som kan reduseres til slike problemer.

Polygrafmaskin

Polygrafen, en maskin med dobbelt oppføring

I blockchain-strukturen, der vedtakelse av transaksjoner blir replikert massivt i entallboksen blant mange distribuerte noder som gjengir de samme utgangene (i likhet med polygraf-løgndetektorer, i prinsippet), er det viktig at antall beregningstrinn i et sett med instruksjonene holdes på et minimum.

Dette er grunnen til at bevissthet om null kunnskap i slike omgivelser må være “kortfattet” og ikke kreve reproduksjon av utførelsen for å demonstrere gyldigheten av den utførelsen.

NP (for ikke-deterministisk polynomial tid) kompleksitetsklasse derimot beskriver problemer der soliditeten til løsningene deres har bevis som effektivt kan verifiseres ved deterministiske beregninger i nevnte polynom, eller la oss si lineær-sekvensiell blockchain-tid.

Det vil si at det mentale arbeidet som er nødvendig for å løse et bestemt problem kan reduseres eller konverteres til et enklere problem som er i stand til å mekanisere tankeprosessen som utspiller seg et bestemt binært beslutningstreet.

Og siden blokkjeder som sådan krever streng determinisme for å opprettholde integriteten til global konsensus (den samme inngangen må alltid produsere den samme produksjonen med lite eller ingen avvik), skalerer de seg mye bedre hvis de er engasjert for å bare verifisere / lese i stedet for å utføre / skrive.

zk-SNARKs i dette scenariet optimaliserer en måte å bruke blockchain på som verifikator for generell beregningsintegritet utenfor kjeden, med verifiseringstider på kjedestørrelser raskere enn utførelsestider, i logaritmen (det vil si den omvendte eksponentiering) av trinn eller sykluser involvert (målt i gassutgifter på Ethereum blockchain).

Dette har mange potensielle applikasjoner, fra å bruke blockchain-byrået som megler for institusjonelle transaksjoner til å skjule store sumsaldoer og transaksjoner borte fra oppmerksomhet fra ondsinnet nysgjerrige øyne, og forhindre bandwagon og bot-aktiverte “hval” -effekter til komplementære skaleringsløsninger og muligens engasjerende blockchain som en slags detektor for skadelig programvare.

Og muligens enda bredere hvordan den mest verdifulle samfunnsressursen som sådan omformuleres og blir atferdsmessig oversatt tilbake for å legge til rette for menneskelig samarbeid i spillteoretiske scenarier som tidligere ikke var i likevekt.

Null kunnskapsbevis

Nullkunnskapssikkerhet er i hovedsak kryptografiske konstruksjoner som undersøker hvor langt formell logikk kan tas for å løse vanskelige problemer. I en ZKP samhandler en prover, Peggy og en verifier Victor (i stedet for den ordspråklige Alice og Bob) i en rekke trinn på en slik måte at Peggy er i stand til å bevise for Victor gyldigheten av noen uttalelser uten å avsløre noe om denne uttalelsen , gitt at begge følger begrensningene for den samme protokollen.

Grunnideen er illustrert i vanlig kryptografi-folklore med det velkjente eksemplet på Ali Babas hule. Tenk deg en ringformet hule med inngang og en magisk dør i den andre enden som blokkerer sidene.

Peggy vil bevise overfor Victor sin kunnskap om den hemmelige setningen som åpner døren uten å avsløre den setningen. Så, Victor venter litt utenfor, går så inn og roper hvilken side han vil at Peggy skal dukke opp fra. Dette gjentas til sannsynligheten for at Peggy bare har vist seg heldig nærmer seg null.

Null kunnskapsbeviseksempel

Ali Baba’s Cave. Hilsen av Scott Twombly

Konseptet med interaktive nullkunnskapssikre systemer ble først introdusert av Shafi Goldwasser og Silvio Micali på slutten av 1980-tallet, og den generelle antagelsen om hvordan beviset på en gitt uttalelse som sådan inneholder mer kunnskap enn den eneste sanne / falske gyldigheten av denne uttalelsen (ved hjelp av tilleggsinnganger, “feller” osv. .) understøtter mye av moderne kryptografi siden.

Et bevis på null kunnskap må per definisjon tilfredsstille følgende tre egenskaper:

  • Fullstendighet: Hvis en uttalelse stemmer, og begge parter følger den samme protokollen riktig, blir verifisereren naturlig overbevist.
  • Sunnhet: Hvis uttalelsen er falsk, vil verifisereren nesten helt sikkert ikke bli overbevist (Probabilistically Checkable Proof-konstruksjoner er avhengige av gjentakelse til sannsynligheten for falskhet eller vanlig myntflipp nærmer seg null).
  • Nullkunnskap: Bekrefteren får ikke vite mer.

Ved å ta fatt på det fulgte Micali og Manuel Blum snart videre etterforskning mulighetene for å spare på dyrebar ressurs ved å eliminere kommunikasjonsrundene for interaksjon (som pleier å være den mest beregningsdyktige) og i stedet stole på en felles referansestreng avledet fra et delt eller offentlig tilfeldig fyrtårn (for eksempel den samme Geiger-telleren).

I løpet av de siste 20 årene har forskning på null-kunnskapssikre systemer gradvis blitt forbedret med fokus på å optimalisere effektiviteten for spesifikke applikasjoner og forbedringer i forskjellige parameterscenarier, noe som gir dramatiske reduksjoner i både lengden på den felles referansestrengen og størrelsen på bevis.

zk-SNARKS: Zero-Knowledge Succinct Non-Interactive ARgument of Knowledge

En zk-SNARK konstruksjon involverer tre samspill algoritmer:

  • En nøkkelgenerator: Sette opp parametrene for å generere et nøkkelpar. For eksempel genererer et pålitelig sett med mennesker et privat / offentlig nøkkelpar, ødelegger den private delen, og deretter genereres et annet nøkkelpar fra den offentlige delen, og produserer en beviser og en bekreftelsesnøkkel for et gitt program.
  • En beviser: Beviser tar den medfølgende bevisnøkkelen, et gitt offentlig innspill og et privat vitne slik at det tilfredsstiller den tiltenkte konteksten av programmet, og genererer et bevis.
  • En verifier: Verifisering beregnes fra bekreftelsesnøkkelen, den offentlige innspill og det medfølgende beviset og evalueres til enten sant eller usant, avhengig av om beviset er riktig eller ikke (i sammenheng med det som verifiseres for å tilfredsstille hva).

For å skildre dette mer levende produseres to polynomstrenger som forventes å ikke avvike mye fra å være enige om det meste av tiden gitt legitimitet, og deretter utføres det en rekke raske tilfeldige kontroller på vilkårlige steder for å sikre at de er enige.

ZCash-implementering

Zcash Coin

Bilde via Fotolia

Siden bitcoin-transaksjoner kan de-anonymiseres ved å spore og analysere kontantstrømningsmønstre (selv uavhengig av vaskeblandere), konstruerer ZCash en desentralisert anonym betalingsordning på toppen av Bitcoin-kodebasen ved å implementere ovennevnte generelle mekanismer (i spesifikke implementeringer, for eksempel Pinocchio-protokoll, opprinnelig utviklet som en praktisk metode for verifisering av outsourcede beregninger).

Det gir to regimer med blockchain-kringkastede transaksjoner: gjennomsiktig og skjermet. Den første ligner på vanlige bitcoin-transaksjoner, men brukerne får den valgfrie personvernfunksjonen til å skjule avsender, mottaker og beløp som er inngått, og dermed få transaksjonene sine til å gå i det sistnevnte, skjermede bassenget. Diskresjonell “selektiv avsløring” gjør det mulig å bevise legitimitet for revisorer, samtidig som man unngår hva andre radarer kan utløse.

Den klarerte oppsettfasen i ZCash innebærer en komplisert seremoni etter en Multi-Party beregningsprotokoll der et sett med deltakere spredt seg i forskjellige geolokaliseringer samler den offentlige nøkkelen og ødelegger deres tilhørende private skjær. I den gitte protokollen er det tilstrekkelig at bare en deltaker vellykket sletter sin private nøkkel for å gjøre det umulig å rekonstruere hele den private nøkkelen som den offentlige en senere er avledet fra..

Et kvantebestandig alternativ til å omgå denne typen pålitelige oppsett kommer med den aktive forskningen i zk-STARK-konstruksjoner (Scalable Transparent Argument for Knowledge) av Prof. Eli Ben Sasson og andre i Technion, Israels teknologiske institutt.

ZoKrates: Proof-of-Concept Toolbox Implementation on Ethereum

ZoKrates er en prototyping verktøykasse (foreløpig ikke for kraftig) for å lage og verifisere bevissthet om null kunnskap i Solidity Ethereum Smart Contracts. Det gir et høyt nivå språk (selv om det fremdeles er i et tidlig eksperimentelt stadium) for å skrive programmer og verifisere utførelsen i kjeden med støtte for en installasjonsfase, vitnemål og generering av bevis.

Den pytonlignende syntaksen er sammensatt av primitive uint-typer (positive tall), tvingende algebraiske utsagn, for sløyfer, betinget hvis utsagn og funksjonsdefinisjoner. Kompilatoren forvandler forholdene til et begrensningssystem i en aritmetisk krets (tenk sudoku) som en zk-SNARK genereres fra. Bekreftelsesnøkkelen kan deretter eksporteres til en smart kontrakt som tillater verifisering av bevis på blockchain.

Byggesteinene for verifiseringsalgoritmen på kjeden ligger i blokkjeden som forhåndsoppfylte kontrakter, og resultatet av verifiseringsalgoritmen på et gitt bevis kan brukes til å utløse ytterligere annen aktivitet på kjeden (dvs. hvis det er sant da).

Dette tillater for eksempel å lage en token-kontrakt med konfidensielle saldoer, mens du i tillegg tillater (via ERC-621-utvidelsen) for å øke og redusere tilbudet av meta-valuta eller token.

Brukere må imidlertid holde oversikt over saldoen på klientsiden (siden de ikke vises på Etherscan), og fremfor alt må det alltid huskes at Ethereum-plattformen gir den ultimate testplassen for økonomiske teorier og ideer innenfor ressursbegrensningene til virkelighetsforbindelse av gassutgifter, hvor komponenten er det som har en tendens til å tvinge økonomisk tenking om problemer.

Integrasjon på Quorum Blockchain

22. mai 2017 kunngjorde ZCash Proof-of-Concept av deres personvernlagsteknologi på JP Morgan’s enterprise Ethereum-baserte Quorum blockchain, som ble fulgt av et prishopp i ZCash (som de også kort tid etter ble med i Ethereum Enterprise Alliance).

Quorum er en minimal Ethereum-gaffel med sitt eget smarte kontraktsspråk (Constellation) designet spesielt for de institusjonelle finansmarkedene, og siden bevissthet om null kunnskap går den tynne linjen mellom personvern og institusjonell integritet, gjør det dem ideelle for å sikre private oppgjør av digitale eiendeler på Quorum-hovedboken.

Bemerkelsesverdig har JP Morgan tidligere utviklet sitt eget blockchain-rammeverk for virksomheter vesentlig bidratt til utvikling og herding av den offentlige kjeden i prosessen.

Utvalgt bilde via Fotolia

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