Dokončnost transakcije v omrežju PoS

Gostujoča objava HodlX Pošljite svojo objavo
Varnost transakcij v verigi blokov je pogosto medsebojno povezani s problemom dokončnosti bloka.
Prejemnik transakcije mora biti prepričan, da transakcija ne bo razveljavljena, in pošiljatelj ne more izvesti dvojne porabe. Pri fiat valutah je dokončnost omejena z zakonom, tako da je valuta zakonito plačilno sredstvo. Pri modelih, ki temeljijo na PoW (dokaz o delu), blok ni nikoli dokončen.
Satoshi Nakamoto je pokazal, da je verjetnost spontanega kratkega razcepa dolžine N>6 blokov je zanemarljivo, tako da lahko trdimo, da ima Bitcoin verjetnostno dokončnost. Vendar pa raziskovalci so prikazano da je dokončnost bloka dejansko ekonomska: transakcija je dokončna, kadar so stroški, potrebni za njeno razveljavitev, večji od potencialnega dobička iz napada dvojne porabe.
Strokovnjaki za blockchain včasih trdijo, da nekateri blockchains, ki temeljijo na PoS (dokazilo o vložku), nimajo težave z dokončnostjo blokov, saj so bloki v njih “takoj dokončni”. Ta trditev je napačna. Forking je neizogibna težava katerega koli blockchaina, ne glede na to, katera pravila soglasja so izbrana.
Dober primer je nedavno zgodba z blokovsko verigo Steem. Omrežna skupnost se je razdelila na dva medsebojno sovražna tabora. Kljub pravilom soglasja je bil blockchain razcepljen. Vsaka skupina je vzdrževala svoj vilic in blokirala ravnotežja v denarnicah svojih nasprotnikov. Očitno je fork, ki je sledil pravilom prvotnega protokola, izgubil dvoboj, saj je njegova tržna kapitalizacija postala manjša od tržne kapitalizacije vilic. Tako lahko sklepamo, da ima dokončnost v verigi PoS gospodarsko podlago, podobno kot pri verigi PoW. Razvijalci Ethereum 2.0 deliti ista vizija.
Trdijo pa, da mehanizem za rezanje Casperjevega protokola ne samo, da ne preprečuje ničesar, kar je v nevarnosti, ampak podraži napade z dvojno porabo. Kljub temu zapletena logika protokola odpira vrata do bolj dovršenih napadov z dvojno porabo.
Poenostavljeni napad z dvojno porabo
Najenostavnejša oblika napada z dvojno porabo na verigo blokov PoS za zlonamernega napadalca je, da se v vložke vloži dvakrat toliko sredstev, kot jih imajo pošteni udeleženci. Če zlonamernemu igralcu B to uspe v omrežju, podobnem Ethereumu 2.0, je verjetno, da bo znotraj tega posebnega odbora za drobljenje dobil dvakrat več vložkov kot pošteni potrjevalci. Zlonamerni igralec torej nadzoruje ⅔ glasov v odboru drobcev. V Ethereumu 2.0 ta količina glasov zadostuje za “dokončanje” bloka. Predpostavimo, da želi v tem drobcu dvakrat zapraviti nekaj kovancev. Napove transakcijo, v kateri B pošlje kovance uporabniku A. Ta transakcija pride v blok, ki ga podpišejo pošteni potrjevalci. B doda del svojih glasov, tako da je blok izvoljen.
V soglasju, ki temelji na PoS, mora biti ⅔ glasov v odboru pritrdilni, da se blok “dokončno dokonča”. Po naši predpostavki je polovica glasov napadalcev ⅓ glasov v odboru. Skupaj s poštenimi potrjevalci sešteva do ⅔. To je prag, ki je potreben za “dokončanje” bloka. Torej A izve, da se transakcija “dokonča” in blago sprosti v B. Nato B transakcijo vrne tako, da ustvari vilico in jo potrdi z vsemi svojimi glasovi v odboru. V skladu s Casperjevim protokolom je treba zmanjšati polovico deleža B v drobcu, ki je bil uporabljen v obeh vilicah. Oblikovalci Casperjevega protokola trdijo, da so to stroški napada.
V tem poenostavljenem scenariju napadalec izgubi polovico svojega deleža v drobcu. Tudi ta znesek je enak deležu poštenih preizkuševalcev v tem drobcu. Predpostavimo, da je v omrežju N drobcev. Nato napadalec izgubi 1/2 N svojega skupnega deleža ali 1/ N celotnega deleža poštenih deležnikov. Torej, več kot je drobcev v omrežju, cenejši napad dvojnega trošenja za napadalca. Če obravnavamo to vrednost kot merilo omrežne varnosti, potem varnost pade za faktor N. Upoštevajte, da to ni lastnost, za katero se trdi, da je možna rešitev trileme o razširljivosti. Vendar pa razvijalci Ethereum 2.0 trdijo, da so stroški tega napada tako veliki, da faktor 1 / N na to ne vpliva.
Prefinjeni napadi z dvojno porabo
Scenarij napada, opisan v prejšnjem poglavju, ni edinstven. Zlonamerni igralec bi lahko izvedel še bolj izpopolnjene napade z dvojno porabo. Avtorji Casperjevega protokola trdijo, da se del napadalcev vedno zruši. Je to res? Odgovor je “ne”. Vse, kar se zgodi v omrežju, se zabeleži v verigo blokov. Če veriga blokov ne vsebuje nobenega zapisa zlonamernih dejanj, kako lahko nekoga obtožite, da se je vmešal?
V naslednji različici dvojnega napada zlonamerni igralec prepreči zmanjšanje svojega vložka. Da bi zmanjšali delež, morajo poštena vozlišča vključiti ustrezen zapis o določeni verigi, ki se uporablja za usklajevanje deležnikov. Imenuje se Beacon veriga. Če veriga Beacon sledi soglasju PoS brez dovoljenja, je za vključitev zapisa v verigo blokov potrebno ⅔ glasov potrjevalca. Dokler zlonamerni igralec nadzoruje ⅓ odbor Beacon verige, se lahko izogne rezanju. Če prepreči rezanje, dokler se njegov vložek ne odklene, je njegov napad skoraj brezplačen. Vprašanje je: kako dolgo naj drži svoj vložek zaklenjen?
V trenutni specifikaciji Ethereum 2.0 je vložek zaklenjen za pol leta. Vendar pa lahko napadalec začne napad na samem koncu intervala zaklepanja vložkov. Možna rešitev je določitev časovnega intervala pred izpustom, v tem času pa vložka ni mogoče izbrati v odbor za drobce in ga nato uporabiti v napadu z dvojno porabo. Vendar ta protiukrep zmanjšuje stroškovno učinkovitost stave. V tem časovnem intervalu bi morale vse prizadete zainteresirane strani dobiti nadomestilo za zaklenjena sredstva. Vendar so ta sredstva “deaktivirana” in zato ne sodelujejo pri preverjanju blokov. Poleg tega lahko zlonamerni igralec to rešitev uporabi v svojo korist, saj lahko skrbno izbere čas za svoj napad. Vložke lahko istočasno zaklene, tako da se njegovi vložki istočasno “aktivirajo” in “deaktivirajo”. V nasprotju s tem imajo pošteni deležniki del svojega deleža pogosto deaktiviran in zato izključen iz postopka potrjevanja. Tako je pridobivanje ⅔ glasov v odborih še lažje.
Lahko bi trdili, da lahko v tej različici napada poštena vozlišča opazijo, da se fulfill vložka v odboru verige Beacon uporablja za izvedbo napada. Za kaznovanje napadalca so lahko izvajali ukrepe, ki niso navedeni v Casperjevem protokolu. Prva možnost bi bila poskušanje zaklepanja več sredstev v vložek. Drugi je zagon nove vilice. Prva možnost ni izvedljiva, saj lahko napadalec izvaja “cenzuro”.
S svojimi glasovi v odboru verige Beacon lahko prepreči dodelitev novih deležev. Tako lahko ima ⅔ glasov v odboru za drobce, kolikor hoče. Druga možnost je izvedljiva, vendar gre za zlorabo omrežnega protokola, ki so ga udeleženci sprejeli na samem začetku. Če neodvisni opazovalec poskuša ugotoviti, kaj se dogaja v omrežju, na podlagi podatkov, zabeleženih v verigi blokov, potem ne bo mogel ločiti zlonamernih akterjev od poštenih preveriteljev.
Preden zaključimo to razpravo, razmislimo o spremenjeni različici zadnjega napada. Nova različica je kombinacija napada na dolge razdalje in napada, ki ni nič ogrožen. Zlonamerni igralec znova uporabi del svojega vložka, da razkrije verigo drobcev. Vendar v tem primeru ne razkrije nove verige poštenim vozliščem. Nato počaka, dokler se njegov ogroženi vložek ne odklene. Zdaj proda svoj ogroženi vložek nepremišljenim udeležencem, ustavi pošteno verigo drobcev s svojimi glasovi v odboru in nato razkrije vilice drugim udeležencem. V skladu s protokolom je treba opustiti verigo, ki jo vzdržujejo pošteni potrjevalci. Torej je spremenjena različica napada uspešna. Upoštevajte, da se vložek, ki se uporablja za vilice verige, proda. Tako se je zlonamerni igralec znova izognil rezanju. Poleg tega v tej različici napada njegov delež v verigi Beacon ni bil ogrožen.
Na podlagi uporabe kontrolnih točk lahko predlagate popravek spremenjene različice napada. V skladu s tem popravkom veriga vsebuje bloke kontrolnih točk, ki jih ni mogoče razveljaviti. Vendar je ta popravek sporen, saj koncept “kontrolne točke” pri nastavitvi verige blokov ne deluje. Kot vemo, bloki v verigi blokov nikoli niso popolnoma dokončani. Razdeljevanje je naravna lastnost verige blokov in vsak vilic bo imel svoje “popolnoma dokončane kontrolne točke”. Zato je uporaba pojma “kontrolna točka” pogosto zmedena in zavajajoča. Če se mora vozlišče zanašati na kontrolno točko, se mora zanašati na “ponudnike kontrolnih točk”. Zahteva vnos elementa zaupanja v domnevno nezaupljivo omrežje.
Naš zaključek je, da lahko napadalec, ki je dodelil veliko količino moči v obliki vložkov, sproži uničujoče napade v omrežju, hkrati pa se izogne krčenju mehanike. Ta oblika napada je zelo podobna 51-odstotnemu napadu, ki se lahko izvede v verigi blokov na osnovi PoW.
Vinod Manoharan je tehnološki podjetnik ter ustanovitelj in izvršni direktor podjetja Jax Multiversal Holdings, holding družba, katere portfelj vključuje spletna igralniška podjetja, plačilne prehode in tehnološka podjetja Blockchain. Manoharan je tudi ustanovitelj podjetja JAX.Mreža, tehnološki zagon v Ukrajini, osredotočen na tehnologijo Blockchain in natančneje na reševanje zloglasne trileme o razširljivosti Blockchain.
Napisano v sodelovanju z Iuriijem Shyshatskyijem, glavnim znanstvenim direktorjem pri JAX.Network.
Predstavljena slika: Shutterstock / Lopyryev Artem / Kuklos
