Forstå nul viden blockchains | Multikæde

Forstå nul viden blockchains | Multikæde

Kildeknude: 3041987

Sådan viser du, at du ved noget uden at vise, hvad du ved

I fredags blev der lanceret Zcash, en ny offentlig blockchain og tilhørende kryptovaluta, der tiltrak meget opmærksomhed. Efterhånden er der hundredvis af kryptovalutaer, så enhver spirende ung deltager har brug for en seriøs differentiator for at hæve sig over kampen. I tilfælde af Zcash er dette nemt – Zcash-brugere kan sende penge til hinanden i absolut fortrolighed. For en kryptovaluta baseret på en blockchain er dette en bemærkelsesværdig teknisk præstation. (Selvom det skal bemærkes, at andre kæder som f.eks Monero , Dash sigte mod det samme mål ved hjælp af enklere, men mindre effektive midler.)

Som jeg har skrevet om før, i en generel forstand repræsenterer blockchains (uanset om de er offentlige eller private) en afvejning, hvor disintermediation opnås på bekostning af fortrolighed. Blockchains giver en smart ny måde for deltagere til sikkert at dele en database, selvom de ikke har tillid til hinanden, uden at kræve en central mellemmand. Men der er en pris at betale for denne peer-to-peer-decentralisering – "knudepunktet", der tilhører alle deltagere i kæden, skal selv verificere hver transaktion, og det betyder igen, at den ser, hvad alle andre gør.

To måder at kæde på

I tilfælde af offentlige blockchains og kryptovalutaer tjener den delte database primært som en registrering af, hvem der kontrollerer (og så effektivt ejer) hvor meget kryptovaluta, med et valgfrit drys af "metadata" (bitcoin) eller kontraktlig logik (Ethereum) oveni. I modsætning hertil har vi i private blockchains en tendens til at se to hovedklasser af brugssager: (a) ejerskab og overførsel af eksterne aktiver repræsenteret ved tokens på kæden, og (b) mere generelle applikationer relateret til datalagring og -hentning. For eksempel i vores eget produkt multikæde, implementeres disse to klasser af anvendelsestilfælde ved hjælp af henholdsvis indfødte aktiver og datastrømme.

Når det kommer til generel datalagring, leverer blockchain en række tjenester: beviser, hvor et stykke data kommer fra, tidsstempler det og notarer det uforanderligt for at forhindre modifikation af et mindretal af blockchain-deltagere. Men blockchain behøver ikke at have noget at sige om selve dataene - hver applikation kan bestemme, hvad et stykke data betyder, og om det er gyldigt. Dårlige data kan simpelthen ignoreres på applikationsniveau uden at forårsage skade på blockchains tilstand som helhed.

I modsætning hertil, hvis blockchains direkte overfører tokeniserede aktiver, skal de anvende interne regler vedrørende gyldigheden af ​​disse overførsler. For at sige det enkelt, vil en begivenhed som "Alice betaler Bob en Euro" kun blive godkendt af kæden, hvis Alice har mindst én Euro på sit navn. Mens forskellige typer blockchain udtrykker denne regel på forskellige måder (bitcoin-transaktionsbegrænsninger vs Ethereum smarte kontrakter), deler de alle den egenskab, at Alices økonomi skal kendes af hver knude i kæden. Dette giver dem mulighed for at vurdere, om hendes betaling er gyldig, vide, hvor meget Bob har som resultat, og vurdere eventuelle fremtidige betalinger fra Bob til Charlie og andre.

På dette tidspunkt vil læsere, der er bekendt med blockchains, påpege, at Alice og Bob ikke er direkte identificeret ved navn på en kæde. I stedet handler hver enkelt under en eller flere "adresser", som er lange alfanumeriske strenge af volapyk, der ikke har nogen relation til deres virkelige identitet. Selvom dette er sandt, hjælper det i virkeligheden ikke ret meget, fordi der er flere måder, hvorpå forbindelsen mellem brugere og deres adresser kan udledes.

For det første og mest enkelt, for at kunne handle med nogen på en blockchain, skal jeg kende mindst en af ​​deres adresser. Så hvis jeg sender dem nogle penge, kan jeg se, hvor de penge går hen, og hvis de betaler mig, kan jeg se, hvor de kom fra. For det andet, hvis jeg tilfældigvis ved noget om en deltager fra den virkelige verden (f.eks. hvilke typer aktiver de handler på hvilket tidspunkt på dagen), kan jeg søge i kædens aktivitet for tilsvarende mønstre og derefter udlede deres adresse med et højt niveau af tillid. Endelig, når jeg kender én adresse på en deltager, kan jeg ofte finde ud af, hvilke andre adresser de ejer og bruger, ved at overvåge den fulde strøm af midler i kæden. Selvom dette ikke er trivielt at opnå, er det bestemt muligt med tilstrækkelig motivation, som bevist af virksomheder som f.eks Chainalysis , Skry der lever af at levere denne type "netværksanalyse" til bitcoin.

Gemt ved kryptering?

Kontrasten mellem aktiver og data berører direkte spørgsmålet om kryptering. I tilfælde af generel datalagring på en blockchain kan vi kryptere de lagrede oplysninger, mens vi stadig får fordelene ved dataoprindelse, tidsstempling og uforanderlighed. Ingen af ​​disse funktioner behøver indsigt i selve dataene. Derfor er det helt gyldigt for to deltagere at bruge en blockchain til at gemme information, som kun de kan læse, mens de stadig får fordelen af, at andre deltagere forpligter sig til oprindelsen af ​​disse data og deres eksistens på et bestemt tidspunkt.

Derimod kan kryptering af denne art ikke bruges af transaktioner, der repræsenterer overførsler af tokeniserede aktiver. Hvis Alice og Bob skulle kryptere deres transaktion, så kunne de pågældende aktiver ikke bruges sikkert af nogen anden deltager i kæden, fordi ingen andre ville vide, hvor aktiverne faktisk er. Aktiverne ville ophøre med at have nogen kollektiv betydning på kæden, hvilket ødelægger hele pointen.

I finanssektoren er denne konflikt mellem privatlivets fred og likviditet kernevanskeligheden ved at bruge blockchains til at overføre aktiver, hvilket ødelægger håbet hos mange nystartede virksomheder i rummet. Mens teknisk gennemførligheden af ​​at flytte aktiver over en blockchain er blevet bevist af utallige pilotprojekter, i praksis forårsager dette for meget aktivitet til at blive afsløret mellem peers. Informationslækage er en ulempe i de bedste tider, men det er en komplet showstopper, når en kædes deltagere er i hård konkurrence, eller hvor lovgivningen forbyder det.

Som et resultat har mange fremtrædende "distributed ledger"-startups bevæget sig væk fra ideen om on-chain-afvikling og vendt tilbage til mere traditionelle bilaterale transaktioner, som er krypteret og notariseret på en blockchain under paradigmet "generel datalagring". Dette kan forhindre tvister og dobbeltudgifter, men selve afviklingen forbliver uden for kæden. Selvom blockchain stadig giver en vis værdi, er den mindre transformativ end oprindeligt håbet. Der har uden tvivl været mere end et par røde ansigter mellem startups og deres investorer.

Og alligevel, efter al skuffelsen, kan frelsen endelig være nær. Indtast nul viden blockchain.

Introduktion af nul viden

Før vi diskuterer denne nye type blockchain, er det nyttigt at forstå princippet om nul viden i sig selv. I en generel forstand er et nul-vidensbevis et bevis, der demonstrerer sandheden af ​​et bestemt udsagn, uden at afsløre yderligere information ud over det, det forsøger at bevise.

For at tage et eksempel, lad os sige, at jeg har en farveblind ven, som ejer to kuglepenne, som er identiske bortset fra, at den ene er grøn og den anden er blå. Min ven kan ikke skelne mellem dem, og jeg vil gerne overbevise hende om, at de virkelig er forskellige. Det kan jeg selvfølgelig ikke gøre ved blot at fortælle hende farverne, for hun kan ikke vurdere om jeg lyver eller ej.

Så hvad kan jeg gøre? (Hvorfor ikke tage et minut og prøve at finde ud af svaret selv...) Nå, jeg kan bede hende om at tage et stykke papir og tegne to streger på det i et andet rum. Når hun gør dette, kan hun frit bestemme, om hun vil bruge den samme pen til begge linjer, eller en pen til hver. Fra hendes perspektiv ser resultatet det samme ud på begge måder. Så kommer hun tilbage med papiret, og jeg fortæller hende, om hun har brugt en kuglepen eller to. Selvfølgelig, hvis pennene havde samme farve, ville jeg ikke have nogen mulighed for at vide det. Så det faktum, at jeg får det rigtigt, beviser, at de er forskellige.

Nå, ikke helt. Der er et problem med denne logik. Selvom pennene var identiske, ville jeg stadig have 50% chance for at give det rigtige svar, fordi der kun er to muligheder (hun brugte en eller to kuglepenne). Så et heldigt gæt beviser slet ikke noget. For at styrke min sag skal spillet spilles over flere runder. Efter hver runde falder min chance for at have konsekvent ret til det halve. Så med 5 runder har jeg en chance på 1 ud af 32 for succesfuldt at forfalske. Med 10 runder er det 1 i 1024, og med 20 runder 1 i 1048576 – med andre ord en ud af en million. Afhængig af min vens relative niveau af kedsomhed og mistænksomhed kan hun nå et hvilket som helst sandsynligt niveau af bevis, som hun ønsker, dog aldrig absolut sikkerhed.

Kom med snærerne

Nul viden beviser i blockchains anvender et lignende princip, selvom de selvfølgelig ikke handler om farven på penne. De har snarere til formål at bevise udsagnet "denne overførsel af aktiver er gyldig", uden at afsløre noget vigtigt om selve overførslen. Zcash bruger en relativt ny teknik til nul viden beviser kaldet zk-SNARKs, de fuldstændig forklaring på hvilke er (mildt sagt) uden for dette stykkes rammer. Men den grundlæggende idé er denne: enhver beregningstilstand kan repræsenteres af et aritmetisk kredsløb, som tager nogle data som input og giver svaret "sandt" eller "falsk" som svar. En zk-SNARK bruger en model af dette kredsløb til at lade mig bevise, til enhver ønsket grad af sikkerhed, at jeg besidder et input, som giver et sandt svar, uden at afsløre selve inputtet. I det mindste filosofisk er dette som at bevise, at to kuglepenne har forskellige farver, uden at afsløre, hvad disse farver er.

En zk-SNARK bruger et fint lille trick til at undgå den interaktivitet, der er typisk for nul vidensbeviser, hvor en skeptisk part gentagne gange præsenterer en udfordring for den, der fremsætter en påstand. I tilfældet med vores kuglepenne er denne udfordring min vens valg mellem at bruge en eller to kuglepenne i hver runde. Denne type interaktivitet er ikke mulig på en blockchain, fordi der ikke er nogen betroet central part til at stille udfordringerne. I stedet bruger en zk-SNARK en tilnærmelse af et "tilfældigt orakel", hvor udfordringerne er skabt deterministisk af en eller anden kode, men opfører sig for alle hensigter, som om de var tilfældige. Ikke tilfældigt bruger denne kombination af determinisme og uforudsigelighed den samme slags hash-funktion, der sikrer en blockchain i sig selv.

Nul vidensbeviser har eksisteret i et stykke tid, men zk-SNARKs introducerer en række innovationer, der gør dem anvendelige i blockchains. Det vigtigste er, at zk-SNARK'er reducerer størrelsen af ​​beviserne og den beregningsmæssige indsats, der kræves for at verificere dem. Zerocoin, et tidligere forsøg på at bruge nul viden beviser i blockchains, kræver 45 kb transaktioner, som hver især tager et halvt sekund at kontrollere (tal taget fra hvidt papir som Zcash er baseret på). Dette er drastisk værre end bitcoin, hvis transaktioner typisk er 0.3 kb store og kan verificeres på under et millisekund. Derimod vejer Zcash-transaktioner 1 kb og kan tjekkes ind under 6 millisekunder. Dette placerer Zcash i samme skalerbarhedsliga som bitcoin – en bemærkelsesværdig præstation. Hvis vi tog hatten af ​​for skaberen/skaberne af bitcoin, burde vi tage vores sokker og sko af for dette.

Advarsel anbefales

Før du konverterer alle dine bitcoin til Zcash, er der nogle forbehold, du skal huske på. For det første er Zcashs kryptografi afhængig af en pålidelig opsætningsproces, hvor to lange offentlige nøgler er afledt fra en enkelt tilfældigt genereret privat. Det er helt afgørende, at denne private nøgle bliver ødelagt, da enhver, der besidder den, kan forfalske de beviser, som systemet er afhængig af. I tilfælde af Zcash blev den private nøgle oprettet i en omfattende ceremoni, beskrevet i detaljer link.. Ceremonien involverede flere velkendte karakterer fra kryptovaluta-verdenen, som hver (vi bliver fortalt) kun havde et delvist overblik over den private nøgle. Til gengæld betyder det, at Zcash kun kan kompromitteres, hvis alle ceremoniens deltagere indgik et ondsindet samarbejde. Det er op til læseren at beslutte, hvor sikker de føler sig omkring det.

For det andet, selvom det er relativt hurtigt at verificere en anonym Zcash transaktion, skabe hver af disse transaktioner medfører en alvorlig beregningsmæssig byrde. Ifølge Zcash Speed ​​Center, det tager i øjeblikket 48 sekunder på en avanceret server og over 3 GB hukommelse. Dette gør det upraktisk at handle anonymt fra mobile enheder og ældre stationære og bærbare computere. Zcash løser delvist denne begrænsning ved at understøtte både almindelige synlige kryptomønter (med hurtige transaktioner) og anonyme "sedler" (med langsomme), med en indbygget metode til konvertering mellem de to.

For det tredje, selvom vi antager, at den underliggende kryptografi er sund, kan der være fejl, der lurer i Zcash-koden, som gør det muligt at fremtrylle anonyme noter ud af den blå luft. Dette ville gøre det muligt for Zcashs monetære base at blive ubegrænset oppustet, hvilket i sidste ende gør kryptovalutaen værdiløs. I modsætning til gennemsigtige kryptovalutaer som bitcoin, kan denne katastrofale begivenhed ikke opdages, fordi hele formålet med Zcash er at holde transaktioner skjult. Ikke desto mindre, ifølge Zooko Wilcox, Zcash CEO, arbejdes der allerede på at finde en løsning, så vi kan se frem til at se den.

Endelig, som med enhver cryptocurrency baseret på proof-of-work, forbliver potentialet for 51% angreb. Det betyder, at en gruppe af "minearbejdere" med over halvdelen af ​​netværkets beregningskraft kan indgå aftaler om at vende transaktioner, som alle andre troede var gennemførte (dårlige minearbejdere kan stadig ikke forfalske transaktioner, som stjæler andres penge). Zcash stoler smart på Equihash, en anden hashing-algoritme fra bitcoins SHA-256, hvilket betyder, at den enorme masse af eksisterende bitcoin-minekraft ikke kan vendes mod Zcash. Equihash er også designet til at være mere modstandsdygtig over for "ASIC'erne" (special purpose microprocessors), der har forvandlet bitcoin-minedrift til et oligopol, men kun tiden vil vise, om hardwareingeniører kan finde en løsning, og til hvilken pris.

Nul viden private blockchains

Indtil videre har vi fokuseret vores diskussion på den offentlige Zcash blockchain og cryptocurrency. Men hvad med eksterne aktiver, der flytter over private eller tilladte blockchains og delte hovedbøger? Kan de samme nulviden-teknikker bruges?

På det tekniske plan er svaret utvivlsomt ja. Sammenlignet med den teoretiske og teknologiske tour de force, der ligger til grund for Zcash, er det trivielt at udvide protokollen til at understøtte aktiver udstedt på en kæde. Det eneste, der kræves, er at udvide de betingelser, der er bevist af en zk-SNARK, for at håndhæve bevarelsen af ​​flere aktiver i stedet for en enkelt kryptovaluta. Eller endnu mere enkelt, opret flere adskilte anonyme undersystemer på en enkelt blockchain, der hver repræsenterer en anden type aktiv, og foretag transaktioner inden for hvert undersystem præcis som Zcash gør i dag. Denne anden metode ville ikke kræve nogen forståelse af zk-SNARK'er overhovedet.

Hvordan ville et aktivs livscyklus se ud i denne model? For det første udsteder en betroet enhed tokens, der repræsenterer aktivet, ved at sende en synlig blockchain-transaktion, der bekræfter disse tokens værdi. Den samme enhed ville derefter udføre en anden transaktion, som konverterer de synlige tokens til anonymiserede Zcash-stil "noter", hvilket effektivt flytter aktivet under jorden. Disse sedler kan så hemmeligt overføres fra udstederen til andre og videre blandt kædens deltagere. Som med Zcash kan overførselstransaktionerne verificeres som gyldige af alle blockchain-deltagere uden at afsløre deres indhold. Til sidst, når en indehaver ønsker at indløse en seddel, konverterer de den tilbage til synlige tokens ved hjælp af en anden Zcash-lignende transaktion, sender disse tokens til den oprindelige udsteder og modtager det tilsvarende virkelige aktiv til gengæld. Vi kan også tillade, at sedler indløses direkte anonymt, i hvilket tilfælde blockchain-deltagere ikke ville vide, hvor meget af aktivet der forbliver i omløb.

Så nul videntransaktioner lover at løse den gordiske knude, som har forhindret blockchains i at blive brugt til afvikling i finanssektoren. For at opsummere, i en almindelig blockchain-transaktion, når et aktiv sendes fra en bank til en anden, er detaljerne om denne transaktion synlige for alle andre banker i kæden. I modsætning hertil ved de andre i en nulvidentransaktion kun, at en gyldig transaktion har fundet sted, men intet om afsender, modtager, aktivklasse (hvis vi er kloge) og mængde. Selv mængden af ​​transaktioner kan tilsløres af deltagere, der regelmæssigt skaber falske transaktioner, hvor de sender aktiver til sig selv.

Med hensyn til privatlivets fred er dette lige så godt som en guldbarre, der rejser i en dokumentmappe fra en bank til en anden, men uden omkostninger og tid til fysisk at flytte guldet. Og det er bedre end at bruge en betroet mellemmand som f.eks. en depotbank, for der er ikke engang den eneste part, der ser alt foregår. For første gang tillader nulviden-blockchains aktivoverførsler at udføres digitalt på peer-to-peer-basis i fuldkommen hemmeligholdelse.

Smid ikke den database ud (endnu)

Hvis vi antager, at Zcashs tekniske fundamentals er sunde, forventer jeg fuldt ud, at det når topniveauet af kryptovalutaer med hensyn til udviklerinteresser og markedsværdi. Men er der en tilsvarende lys fremtid for nul videntransaktioner i private blockchains? Vil de gøre overgangen fra laboratoriet til produktionskvalitetssystemer og flytte rigtige penge rundt i verden?

Det er selvfølgelig alt for tidligt at sige. Men der er en række spørgsmål, der skal besvares, før godkendte blockchain-fortalere kan pege på nul videntransaktioner og triumferende erklære sejr.

For det første, og vigtigst af alt, er dette sikkert? Kan vi virkelig være sikre på, at både den underliggende kryptografi og dens kodede implementeringer er stærke nok til at forhindre en ondsindet part i at generere aktiver ud af den blå luft? Som nævnt tidligere, i modsætning til gennemsigtige blockchains, er det endnu ikke muligt at opdage, om den monetære base af en nulviden-blockchain er blevet kompromitteret. Alligevel er der ingen sikrere test af denne teknologi end at frigive den som en åben offentlig blockchain, der er tilgængelig for alle at se og angribe, og det er præcis, hvad Zcash gør. Efter flere år med at se Zcash køre problemfrit, kan institutioner blive overbevist om, at nul viden blockchains virkelig kan beskytte deres aktiver. Som med alt andet blockchain, er tålmodighed påkrævet.

Et relateret problem er selve nyheden ved nul videnskryptografi. Det er rigtigt, at almindelige blockchains er afhængige af avanceret kryptografi – nemlig asymmetrisk kryptering (offentlige/private nøgler) og kryptografiske hash-funktioner (digitale fingeraftryk). Og det er også rigtigt, at det store flertal af blockchain-programmører og applikationsudviklere ikke forstår de matematiske principper, der ligger til grund for disse teknikker. Men det bredere punkt er dette: hvis de behandles som sorte bokse, er disse metoder blevet brugt bredt i årtier af et stort antal udviklere og brugere (hørt om https?), og alle tror, ​​at de virker. Derimod var nul vidensbeviser indtil for nylig kun kendt af et lille samfund af akademikere og havde ikke brede anvendelser på internettet eller andre steder. Vi kan forvente, at denne uklarhed reducerer viljen hos en banks CIO eller risikoansvarlige til at flytte deres kerneprocesser til nul videns blockchains, i det mindste i de næste fem år. Og lad os ikke engang begynde at forestille os, hvor lang tid det vil tage regulatorer at blive fortrolige med aktiver, der flytter rundt på denne måde.

At tale om regulering bringer et andet praktisk problem op med blockchains uden viden. Anonyme transaktioner i en blockchain indeholder erklæringer vedrørende aktivoverførsler og ejerskab, men disse erklæringer er kun synlige for udvalgte parter (nemlig de direkte involverede). Selvom vi giver en regulator fuld indsigt i en vidensløs blockchain og dens deltageres identiteter, har den ingen mulighed for at vide, hvad der virkelig sker indeni. Naturligvis kunne regulatoren bede alle deltagerne om at identificere og afsløre deres transaktioner, og de kan gøre dette effektivt ved at bruge Zcash-stil "visningsnøgler". Ikke desto mindre, hvis parterne i en bestemt transaktion ønsker at holde det hemmeligt, sidder regulatoren fast og ved ikke, hvem der skal bøde. Der er ingen depotbank, som den kan få det fulde billede af, og den eneste mulighed for håndhævelse er at lukke hele kæden.

Så hvad er bundlinjen? For nu i det mindste foreslår jeg blot at følge udviklingen af ​​den offentlige Zcash blockchain for at se, hvordan den udvikler sig og vokser. Hvis Ethereums historie gentages, vil der være overraskelser og sårbarheder, der lurer under overfladen og venter på at blive udnyttet af grådige opportunister. Ikke desto mindre, på længere sigt, tag ikke fejl: Nul videnstransaktioner er et spilskiftende gennembrud for blockchains. Hvis de underliggende kryptografiske principper viser sig at være sunde, skal du forvente, at de vil udvide rækken af ​​brugssager, som blockchains kan anvendes til, markant.

Skriv eventuelle kommentarer på LinkedIn.

Tidsstempel:

Mere fra multikæde