Razumevanje blokovnih verig brez znanja | MultiChain

Razumevanje blokovnih verig brez znanja | MultiChain

Izvorno vozlišče: 3041987

Kako pokazati, da nekaj veš, ne da bi pokazal, kaj znaš

Minuli petek smo začeli s predstavitvijo Zcash, nova javna veriga blokov in z njimi povezana kripto valuta, ki je pritegnila veliko pozornosti. Do zdaj jih že obstajajo na stotine kripto valut, zato vsak nadobudni mladi udeleženec potrebuje resen razlikovalnik, da se dvigne nad prepir. V primeru Zcash-a je to enostavno - uporabniki Zcash-a lahko drug drugemu pošiljajo denar v popolni zasebnosti. Za kriptovaluto, ki temelji na verigi blokov, je to izjemen tehnični dosežek. (Čeprav je treba opozoriti, da druge verige, kot so Monero in Dash ciljte na isti cilj s preprostejšimi, a manj učinkovitimi sredstvi.)

Kot sem že o čemer smo že pisali, v splošnem smislu verige blokov (ne glede na to, ali so javne ali zasebne) predstavljajo kompromis, pri katerem se disintermediacija pridobi za ceno zaupnosti. Blockchains ponujajo nov pameten način za udeležence, da varno delijo bazo podatkov, tudi če si ne zaupajo, ne da bi morali imeti osrednjega posrednika. Toda za to enakovredno decentralizacijo je treba plačati ceno - "vozlišče", ki pripada vsakemu udeležencu v verigi, mora vsako transakcijo preveriti zase, to pa pomeni, da vidi, kaj počnejo vsi ostali.

Dva načina veriženja

V primeru javnih verig blokov in kriptovalut skupna baza podatkov služi predvsem kot zapis, kdo nadzoruje (in tako učinkovito poseduje) koliko kriptovalut, z neobveznim posipanjem »metapodatkov« (bitcoin) ali pogodbene logike (Ethereum) na vrhu. Nasprotno pa v zasebnih verigah blokov pogosto vidimo dva glavna razreda uporabe: (a) lastništvo in prenos zunanjih sredstev, ki jih predstavljajo žetoni v verigi, in (b) bolj splošne aplikacije v zvezi s shranjevanjem in pridobivanjem podatkov. Na primer v lastnem izdelku MultiChain, ta dva razreda primerov uporabe se izvajata z uporabo izvornih sredstev oziroma tokov podatkov.

Ko gre za splošno shranjevanje podatkov, blockchain ponuja številne storitve: dokazovanje, od kod izvira del podatkov, časovni žig in nepreklicno overitev, da prepreči spreminjanje s strani manjšine udeležencev v blockchainu. Toda veriga blokov ne sme ničesar povedati o samih podatkih - vsaka aplikacija se lahko odloči, kaj del podatkov pomeni in ali je veljaven. Slabe podatke lahko preprosto prezrete na ravni aplikacije, ne da bi pri tem škodili stanju celotne verige blokov.

Nasprotno pa, če verige blokov neposredno prenašajo tokenizirana sredstva, morajo uporabljati notranja pravila glede veljavnosti teh prenosov. Če poenostavimo, bo veriga odobrila dogodek, kot je »Alice plača Bobu en evro«, le če ima Alice vsaj en evro na svoje ime. Medtem ko različne vrste verig blokov to pravilo izražajo na različne načine (omejitve transakcij z bitcoini v primerjavi s pametnimi pogodbami Ethereum), si vsi delijo lastnino, ki jo mora Aliceino finančno znanje poznati vsako vozlišče v verigi. To jim omogoča, da ocenijo, ali je njeno plačilo veljavno, vedo, koliko ima Bob kot rezultat, in ocenijo morebitna prihodnja plačila od Boba Charlieju in drugim.

Na tej točki bodo bralci, ki poznajo verige blokov, opozorili, da Alice in Boba na verigi nista neposredno identificirana z imenom. Namesto tega vsak posluje pod enim ali več »naslovi«, ki so dolge alfanumerične strune nerazumljivosti, ki nimajo nobene zveze s svojimi identitetami v resničnem svetu. Čeprav je to res, v resnici ne pomaga veliko, saj lahko na več načinov sklepamo na povezavo med uporabniki in njihovimi naslovi.

Najprej in najpreprosteje, da moram poslovati z nekom v verigi blokov, moram poznati vsaj enega od njihovih naslovov. Torej, če jim pošljem nekaj denarja, lahko vidim, kam gre ta denar naprej, in če mi plačujejo, vidim, od kod je prišel. Drugič, če slučajno vem kaj o udeležencu iz resničnega sveta (npr. S kakšnimi vrstami premoženja trgujejo v katerem dnevu), lahko po dejavnosti verige poiščem ustrezne vzorce in nato ugotovim njihov naslov z visoko stopnjo samozavest. Končno, ko poznam en naslov udeleženca, lahko pogosto ugotovim, katere druge naslove imajo in uporabljajo, tako da spremljam celoten pretok sredstev v verigi. Čeprav tega ni trivialno doseči, je vsekakor mogoče z zadostno motivacijo, kar dokazujejo podjetja, kot npr Haainaliza in Skry ki se preživljajo z zagotavljanjem tovrstne "mrežne analize" za bitcoin.

Shranjeno s šifriranjem?

Kontrast med sredstvi in ​​podatki se neposredno dotika vprašanja šifriranja. V primeru splošnega shranjevanja podatkov v verigi blokov lahko shranjene informacije šifriramo, hkrati pa še vedno uživamo prednosti izvornosti podatkov, časovnega žigosanja in nespremenljivosti. Nobena od teh funkcij ne potrebuje vpogleda v same podatke. Zato je popolnoma veljavno, da dva udeleženca uporabljata verigo blokov za shranjevanje informacij, ki jih lahko prebereta samo ona, obenem pa še vedno uživata koristi drugih udeležencev, ki se v določenem trenutku zavežejo izvoru teh podatkov in njihovemu obstoju.

Nasprotno pa takšnega šifriranja ne morejo uporabljati transakcije, ki predstavljajo prenose tokeniziranih sredstev. Če bi Alice in Bob šifrirala svojo transakcijo, potem noben drug udeleženec v verigi ne bi mogel varno uporabljati zadevnih sredstev, ker nihče drug ne bi vedel, kje so dejansko sredstva. Premoženje ne bi več imelo nobenega skupnega pomena na verigi, kar uniči celotno poanto.

V finančnem sektorju je ta konflikt med zasebnostjo in likvidnostjo glavna težava uporabe verig blokov za prenos sredstev, kar razblini upanje številnih zagonskih podjetij v vesolju. Medtem ko tehnična izvedljivost premikanja sredstev prek verige blokov je bila dokazana s številnimi pilotnimi projekti, kar v praksi povzroča preveč dejavnosti med vrstniki. Uhajanje informacij je v najboljših časih pomanjkljivost, vendar je popoln showstopper, kadar so udeleženci verige v močni konkurenci ali kadar to prepoveduje uredba.

Kot rezultat tega so se številna ugledna zagonska podjetja z "razdeljeno knjigo" oddaljila od ideje o poravnavi v verigi in se vrnila k bolj tradicionalnim dvostranskim transakcijam, ki so šifrirane in overjene na verigi blokov v okviru paradigme "splošno shranjevanje podatkov". To lahko prepreči spore in dvojno porabo, vendar sama poravnava ostaja zunaj verige. Medtem ko blockchain še vedno zagotavlja določeno vrednost, je manj transformativen, kot smo sprva pričakovali. Brez dvoma je bilo med start-upi in njihovimi vlagatelji več kot nekaj rdečih obrazov.

In vendar je po vsem razočaranju končno lahko prišlo do odrešenja. Vnesite ničelno verigo znanja.

Predstavljamo nič znanja

Pred razpravo o tej novi vrsti verige blokov je koristno razumeti načelo ničelnega znanja samega. V splošnem smislu je dokaz o ničelnem znanju tisti, ki dokazuje resničnost določene izjave, ne da bi razkril kakršne koli dodatne informacije poleg tistega, kar poskuša dokazati.

Za primer recimo, da imam barvno slepega prijatelja, ki ima v lasti dve pisali, ki sta enaki, le da je ena zelena in druga modra. Moja prijateljica ne more razlikovati med njimi in jo želim prepričati, da sta si res različna. Tega seveda ne morem storiti tako, da ji preprosto povem barve, ker ne zna oceniti, ali lažem ali ne.

Kaj lahko torej storim? (Zakaj si ne bi vzeli minuto in poskusili sami ugotoviti odgovor.) No, lahko jo prosim, naj vzame kos papirja in nariše dve črti v drugi sobi. Pri tem se lahko svobodno odloči, ali bo uporabila isto pisalo za obe vrstici ali eno pisalo za vsako. Iz njene perspektive je rezultat videti tako ali drugače. Nato se vrne s papirjem in povem ji, ali je uporabila eno pisalo ali dve. Seveda, če bi bila pisala iste barve, ne bi vedela. Dejstvo, da prav razumem, dokazuje, da so različni.

No, ne čisto. Težava je s to logiko. Tudi če bi bili pisali enaki, bi še vedno imel 50% možnosti, da dam pravi odgovor, saj obstajata le dve možnosti (uporabila je eno pisalo ali dve). Torej eno srečno ugibanje sploh ne dokazuje ničesar. Da bi okrepili svoj primer, moramo igro igrati v več krogih. Po vsakem krogu se moja možnost, da bom vedno v redu, zmanjša za polovico. Tako imam pri 5 krogih možnost 1 od 32 možnosti za uspešno ponarejanje. Z 10 krogi je to 1 na 1024, z 20 krogi pa 1 na 1048576 - z drugimi besedami, en milijon. Odvisno od relativne stopnje dolgočasnosti in sumničavosti moje prijateljice lahko doseže katero koli verjetnostno stopnjo dokazovanja, ki si jo želi, čeprav nikoli absolutne gotovosti.

Prinesi na snarke

Nič dokazov o znanju v verigah blokov uporabljajo podobno načelo, čeprav seveda ne gre za barvo pisala. Namesto tega želijo dokazati izjavo, da je ta prenos sredstev veljaven, ne da bi razkrili kaj pomembnega glede samega prenosa. Zcash uporablja relativno novo tehniko za nič dokazov o znanju, imenovano zk-SNARKs, celovita razlaga tega (milo rečeno) presega obseg tega dela. Toda osnovna ideja je naslednja: vsak računski pogoj je lahko predstavljen z aritmetičnim vezjem, ki za vhod vzame nekatere podatke in v odgovor da odgovor "res" ali "napačno". Zk-SNARK uporablja model tega vezja, da mi dokaže, da do kakršne koli želene stopnje gotovosti imam vhod, ki daje resničen odziv, ne da bi razkril vhod sam. Vsaj filozofsko je to kot dokazati, da sta dve pisali različni barvi, ne da bi razkrili, kakšne barve so.

Zk-SNARK uporablja majhen trik, da se izogne ​​interaktivnosti, ki je značilna za nič dokazov o znanju, v kateri skeptična stranka večkrat predstavlja izziv za tistega, ki vloži zahtevek. Pri naših pisalih je ta izziv izbira mojega prijatelja med uporabo enega ali dveh pisalov v vsakem krogu. Ta vrsta interaktivnosti v verigi blokov ni izvedljiva, ker osrednja stranka, ki bi ji zaupala, ne bi postavljala izzivov. Namesto tega zk-SNARK uporablja približek "naključnega preročišča", v katerem izzive determinirano ustvari neka koda, vendar se vede za vse namene in namene, kot da bi bili naključni. Ni naključje, da ta kombinacija determinizma in nepredvidljivosti uporablja isto vrsto zgoščevalne funkcije, ki zaščiti sam blockchain.

Nič dokazov o znanju obstaja že nekaj časa, vendar zk-SNARKs uvajajo številne novosti, zaradi katerih so uporabni v verigah blokov. Najpomembneje je, da zk-SNARKs zmanjšajo velikost dokazov in računski napor, potreben za njihovo preverjanje. Zerocoin, prejšnji poskus uporabe nič dokazov o znanju v verigah verig, zahteva 45 kb transakcij, za preverjanje katerih traja pol sekunde (številke, vzete iz Bela knjiga na katerem temelji Zcash). To je drastično slabše kot bitcoin, katerega transakcije so običajno velike 0.3 kb in jih je mogoče preveriti v manj kot milisekundi. Nasprotno pa transakcije Zcash tehtajo 1 kb in jih je mogoče preveriti v manj kot 6 milisekundah. To postavlja Zcash v isto ligo za razširljivost kot bitcoin - izjemen dosežek. Če smo ustvarjalcem (bitcoinom) slekli kapo, bi morali za to sleči nogavice in čevlje.

Previdno

Preden pretvorite vse svoje bitcoine v Zcash, morate upoštevati nekaj opozoril. Najprej se Zcashova kriptografija opira na zaupanja vreden postopek nastavitve, pri katerem dva dolga javna ključa izhajata iz enega naključno ustvarjenega zasebnega. Nujno je, da se ta zasebni ključ uniči, saj lahko vsak, ki ga ima, ponaredi dokaze, na katere se opira sistem. V primeru Zcash-a je bil zasebni ključ ustvarjen s podrobno opisano slovesnostjo tukaj. V slovesnosti je sodelovalo več dobro znanih likov iz sveta kriptovalut, od katerih je imel vsak (le-to) le delni pogled na zasebni ključ. To pa pomeni, da je Zcash lahko ogrožen le, če so se vsi udeleženci slovesnosti zlonamerno dogovorili. Bralec se mora odločiti, kako samozavestno se ob tem počuti.

Drugič, čeprav je razmeroma hitro preverjanje anonimna transakcija Zcash, ustvarjanje vsaka od teh transakcij nosi resno računsko breme. Glede na Zcash Speed ​​Center, trenutno traja 48 sekund na vrhunskem strežniku in več kot 3 GB pomnilnika. Zaradi tega je nemogoče opravljati anonimne transakcije z mobilnih naprav ter starejših namiznih in prenosnih računalnikov. Zcash delno obide to omejitev tako, da podpira tako običajne vidne kriptokoje (s hitrimi transakcijami) kot anonimne "zapiske" (s počasnimi) z vgrajeno metodo za pretvorbo med njima.

Tretjič, tudi če predpostavimo, da je osnovna kriptografija zdrava, se lahko v kodi Zcash skrivajo napake, ki omogočajo priklic anonimnih zapiskov iz nič. To bi omogočilo neomejeno napihovanje denarne osnove Zcash, s čimer bi kriptovaluta postala brez vrednosti. V nasprotju s prozornimi kriptovalutami, kot je bitcoin, tega katastrofalnega dogodka ni mogoče zaznati, ker celotna točka Zcash-a skriva transakcije. Kljub temu pa po besedah ​​Zooka Wilcoxa, izvršnega direktorja podjetja Zcash, že potekajo prizadevanja za iskanje rešitve, zato jo bomo lahko pričakovali.

Končno, tako kot pri kateri koli kriptovaluti, ki temelji na dokazilih o delu, ostaja možnost 51% napadov. To pomeni, da lahko skupina "rudarjev" z več kot polovico računske moči omrežja sodeluje pri preusmeritvi transakcij, za katere so vsi ostali menili, da so popolne (slabi rudarji še vedno ne morejo ponarejati transakcij, ki ukradejo sredstva drugih). Zcash se pametno zanaša Equihash, drugačen algoritem hashinga kot bitcoin-ov SHA-256, kar pomeni, da ogromne mase obstoječe rudarske moči bitcoina ni mogoče obrniti proti Zcashu. Equihash je zasnovan tudi tako, da je bolj odporen proti "ASIC-om" (mikroprocesorjem za posebne namene), ki so rudarjenje bitcoinov spremenili v oligopol, vendar bo le čas pokazal, ali strojni inženirji lahko najdejo rešitev in za kakšno ceno.

Zasebne blokade nič znanja

Doslej smo svojo razpravo osredotočili na javni blok verige in kripto valute Zcash. Kaj pa zunanja sredstva, ki se premikajo po zasebnih ali pooblaščenih blockchains in deljenih knjigah? Ali je mogoče uporabiti enake ničelne tehnike znanja?

Na tehnični ravni je odgovor nedvomno pritrdilen. V primerjavi s teoretičnimi in tehnološkimi predstavniki Zcash je trivialno razširiti protokol tako, da podpira sredstva, izdana v verigi. Vse, kar je potrebno, je razširiti pogoje, ki jih dokazuje zk-SNARK, da bi zagotovili ohranitev več sredstev, namesto ene kriptovalute. Ali še bolj preprosto: ustvarite več različnih anonimnih podsistemov na enem bloku, ki predstavljajo različno vrsto sredstva, in znotraj vsakega podsistema poslujte točno tako, kot to počne danes Zcash. Ta druga metoda ne bi zahtevala nobenega razumevanja zk-SNARK.

Kako bi v tem modelu izgledal življenjski cikel sredstva? Najprej zaupanja vreden subjekt izda žetone, ki predstavljajo sredstvo, s pošiljanjem vidne transakcije verige blokov, ki potrjuje vrednost teh žetonov. Nato bi ista entiteta izvedla drugo transakcijo, ki pretvori vidne žetone v anonimizirane "zapiske" v slogu Zcash, s čimer se sredstvo dejansko premakne pod zemljo. Te opombe je nato mogoče tajno prenesti od izdajatelja k drugim in naprej med udeležence verige. Tako kot pri Zcashu lahko transakcije prenosa vsi udeleženci verige blokov preverijo kot veljavne, ne da bi razkrili njihovo vsebino. Ko imetnik želi unovčiti bankovec, ga z drugo transakcijo v slogu Zcash pretvori nazaj v vidne žetone, te žetone pošlje prvotnemu izdajatelju in v zameno prejme enakovredno resnično sredstvo. Lahko tudi dovolimo, da se opombe neposredno unovčijo anonimno, v tem primeru udeleženci blockchaina ne bi vedeli, koliko sredstev ostane v obtoku.

Torej nič transakcij znanja obljublja, da bodo odvezale gordijski vozel, ki je preprečil, da bi se verige blokov uporabljale za poravnavo v finančnem sektorju. Če povzamemo, pri običajni transakciji z verigami blokov, ko se sredstvo pošlje iz ene banke v drugo, so podrobnosti te transakcije vidne vsaki drugi banki v verigi. Nasprotno pa pri transakciji ničelnega znanja drugi vedo le, da je bila veljavna transakcija izvedena, nič pa o pošiljatelju, prejemniku, razredu sredstev (če smo pametni) in količini. Celo obseg transakcij lahko udeleženci redko ustvarjajo lažne transakcije, v katerih si sredstva pošljejo sami.

Kar zadeva zasebnost, je to tako dobro kot zlata palica, ki v aktovki potuje z ene banke na drugo, vendar brez stroškov in časa fizičnega premikanja zlata. In to je bolje kot uporabiti zaupanja vrednega posrednika, kot je skrbniška banka, saj niti ene same stranke ni, ki bi videla, kako se vse dogaja. Prvič, verige ničelnih blokov znanja omogočajo digitalno izvajanje prenosa sredstev na ravni peer-to-peer v popolni tajnosti.

Ne vrzite te baze podatkov (še)

Ob predpostavki, da so tehnične osnove Zcash-a trdne, v celoti pričakujem, da bo dosegel najvišjo stopnjo kriptovalut glede zanimanja razvijalcev in tržne kapitalizacije. Toda ali obstaja podobno svetla prihodnost za nič transakcij znanja v zasebna blockchains? Ali bodo naredili prehod iz laboratorija v sisteme kakovostne proizvodnje, ki bodo resnični denar prenašali po vsem svetu?

Seveda je še prezgodaj za to. Obstaja pa veliko vprašanj, na katera je treba odgovoriti, preden lahko pooblaščeni zagovorniki blockchaina opozorijo na nič transakcij znanja in zmagoslavno razglasijo zmago.

Najprej in kar je najpomembneje, je to varno? Ali smo resnično prepričani, da sta osnovna kriptografija in njene kodirane izvedbe dovolj močne, da zlonamerni stranki preprečujejo, da bi ustvarila sredstva iz nič? Kot smo že omenili, za razliko od transparentnih verig blokov še ni mogoče zaznati, ali je bila ogrožena denarna osnova verige ničelnega znanja. Kljub temu ni zanesljivejšega preizkusa te tehnologije, kot da jo objavimo kot odprto javno verigo blokov, ki je na voljo vsem, da jo vidijo in napadajo, in prav to počne Zcash. Po nekaj letih, ko Zcash deluje nemoteno, se lahko institucije prepričajo, da lahko verige ničelnih znanj resnično zaščitijo njihovo premoženje. Kot pri vseh zadevah v zvezi z blockchainom je tudi tukaj treba potrpljenje.

S tem povezano vprašanje je novost same kriptografije ničelnega znanja. Res je, da se običajne verige blokov zanašajo na napredno kriptografijo - in sicer na asimetrično šifriranje (javni / zasebni ključi) in kriptografske hash funkcije (digitalni prstni odtisi). Res pa je tudi, da velika večina programerjev in razvijalcev programov ne razume matematičnih načel, na katerih temeljijo te tehnike. Toda širša točka je naslednja: če se te metode obravnavajo kot črne škatle, jih že desetletja široko uporablja veliko število razvijalcev in uporabnikov (že slišali za https?) In vsi verjamejo, da delujejo. Nasprotno pa so bili do nedavnega nič dokazov o znanju znani le majhni skupnosti akademikov in niso imeli širokih aplikacij na internetu ali drugje. Pričakujemo lahko, da bo ta nejasnost zmanjšala pripravljenost direktorja informacijske tehnologije ali direktorja za tveganja, da vsaj v naslednjih petih letih premakne svoje temeljne procese na ničelne verige znanja. In niti ne pomislimo, kako dolgo bo trajalo, da se regulatorji prilagodijo premoženju, ki se premika na ta način.

Govor o regulaciji odpira še eno praktično vprašanje z ničelnimi verigami znanja. Anonimne transakcije v verigi blokov vsebujejo izjave o prenosih sredstev in lastništvu, vendar so te izjave vidne samo izbranim stranem (in sicer tistim, ki so neposredno vpletene). Tudi če regulatorju omogočimo popolno prepoznavnost verige ničelnega znanja in identitet udeležencev, nikakor ne more vedeti, kaj se v resnici dogaja znotraj. Seveda lahko regulator zahteva od vseh udeležencev, da identificirajo in razkrijejo svoje transakcije, in to lahko učinkovito storijo z uporabo "tipk za ogled" v slogu Zcash. Če pa jo stranke v kateri koli transakciji želijo obdržati v tajnosti, je regulator obtičal in ne ve, koga naj kaznuje. Ni skrbniške banke, od katere bi lahko dobil popolno sliko, in edina možnost izvršbe je ukinitev celotne verige.

Torej, kaj je bistvo? Zaenkrat vsaj predlagam, da preprosto spremljate napredek javne verige blokov Zcash, da vidite, kako se razvija in raste. Če je zgodovina Ethereuma Če se ponovi, se bodo pod površjem skrivala presenečenja in ranljivosti, ki bodo čakale, da jih bodo požrešni oportunisti izkoristili. Kljub temu na dolgi rok ne bo pomote: nič transakcij znanja je preboj igre za verige blokov. Če se osnovna kriptografska načela izkažejo za dobra, pričakujte, da bodo znatno razširila obseg primerov uporabe, za katere je mogoče uporabiti verige blokov.

Prosimo, pošljite kakršne koli pripombe na LinkedIn.

Časovni žig:

Več od Večnamenska veriga