Konačnost transakcije u PoS mreži
Gostujuća pošta HodlX Pošaljite svoj post
Sigurnost transakcija u blockchainu je često međusobno povezane s problemom blok-konačnosti.
Primatelj transakcije mora biti siguran da transakcija neće biti stornirana, a pošiljatelj ne može izvršiti dvostruku potrošnju. U slučaju fiat valuta, konačnost je ograničena zakonom, čineći valutu zakonskim sredstvom plaćanja. U nacrtima temeljenim na PoW (dokaz o radu), blok nikad nije konačan.
Satoshi Nakamoto pokazao je da vjerojatnost spontanog kratkog rašlja dužine N>6 blokova je zanemarivo, tako da se može tvrditi da Bitcoin ima vjerojatnu konačnost. Međutim, istraživači imaju prikazan ta je blok-konačnost zapravo ekonomska: transakcija je konačna kad god je trošak potreban za njezinu reverziju veći od potencijalne dobiti od napada dvostrukog trošenja.
Ponekad stručnjaci za blockchain tvrde da neki blockchains temeljeni na PoS (dokaz o udjelu) nemaju problem konačnosti blokova, jer su blokovi u njima “trenutno konačni”. Ova je tvrdnja lažna. Forking je neizbježni problem bilo kojeg blockchaina, bez obzira na to koja su pravila konsenzusa izabrana.
Dobar primjer je nedavni priča s blokovskim lancem Steem. Mrežna zajednica podijeljena je u dva međusobno neprijateljska kampa. Unatoč konsenzusnim pravilima, blockchain je bio račvan. Svaka je skupina održavala svoju vilicu i blokirala ravnoteže u novčanicima svojih protivnika. Očigledno je da je vilica koja je slijedila pravila izvornog protokola izgubila dvoboj jer je njezina tržišna kapitalizacija postala manja od tržišne kapitalizacije vilice. Stoga možemo zaključiti da konačnost u PoS blockchainu ima ekonomsku podlogu, sličnu onoj PoW blockchaina. Programeri Ethereum 2.0 udio ista vizija.
Međutim, oni tvrde da mehanizam rezanja Casperovog protokola ne samo da sprječava napade koji nisu ugroženi, već skuplje napadaje dvostrukog trošenja. Ipak, složena logika protokola otvara vrata sofisticiranijim napadima dvostrukog trošenja.
Pojednostavljeni napad dvostrukog trošenja
Najjednostavniji oblik napada dvostrukog trošenja na PoS blockchain za zlonamjernog napadača je zaključavanje uloga dvostruko više sredstava nego što imaju pošteni sudionici. Ako zlonamjerni glumac B uspije to učiniti u mreži sličnoj Ethereumu 2.0, tada je vjerojatno da će unutar tog određenog odbora za krhotine dobiti dvostruko više uloga nego što imaju pošteni validatori. Dakle, zlonamjerni glumac kontrolira ⅔ glasova u odboru za krhotine. U Ethereumu 2.0 ovaj je broj glasova dovoljan da “finalizira” blok. Pretpostavimo da želi dvostruko potrošiti nešto kovanica u tu krhotinu. Najavljuje transakciju u kojoj B šalje kovanice korisniku A. Ova transakcija ulazi u blok koji su potpisali pošteni validatori. B dodaje dio svojih glasova kako bi blok bio izabran.
U konsenzusu koji se temelji na PoS-u, ⅔ glasova u odboru mora biti potvrdan kako bi se „finalizirao“ blok. Prema našoj pretpostavci, polovica glasova napadača čini ⅓ glasova u odboru. Zajedno s iskrenim validatorima dodaje na ⅔. To je prag potreban za “finaliziranje” bloka. Tako A saznaje da se transakcija “finalizira” i pušta robu u B. Zatim, B vraća transakciju stvaranjem vilice i potvrđivanjem koristeći sve svoje glasove u odboru. Prema Casperovom protokolu trebalo bi smanjiti polovicu B udjela u krhotini koja je korištena u obje rašlje. Dizajneri Casperovog protokola tvrde da je to trošak napada.
U ovom pojednostavljenom scenariju napadač gubi polovicu udjela u krhotini. Također, ovaj iznos jednak je udjelu poštenih validatora u ovoj krhotini. Pretpostavimo da u mreži ima N krhotina. Tada napadač gubi 1 / 2N svog ukupnog udjela ili 1 / N ukupnog uloga poštenih dionika. Dakle, što je više krhotina u mreži, napadač je jeftiniji napad dvostrukog trošenja. Ako se ova vrijednost smatra mjerom mrežne sigurnosti, tada sigurnost pada za faktor N. Primijetite da ovo nije svojstvo za koje se tvrdi da je moguće rješenje trileme skalabilnosti. Međutim, programeri Ethereuma 2.0 tvrde da je cijena ovog napada toliko velika da faktor 1 / N na njega ne utječe.
Sofisticirani napadi dvostrukog trošenja
Scenarij napada opisan u prethodnom odjeljku nije jedinstven. Zlonamjerni glumac mogao bi izvesti još sofisticiranije napade dvostrukog trošenja. Autori Casperovog protokola tvrde da se dio uloga napadača uvijek isječe. Je li to istina? Odgovor je “ne”. Sve što se događa u mreži bilježi se u blockchain. Ako blockchain ne sadrži zapise o zlonamjernim radnjama, kako onda nekoga možete optužiti za zlonamjerno ponašanje?
U sljedećoj verziji dvostrukog napada zlonamjerni glumac sprečava rezanje uloga. Da bi se smanjio ulog, pošteni čvorovi trebali bi sadržavati odgovarajući zapis o određenom lancu koji se koristi za koordinaciju dionika. Zove se Beacon lanac. Ako Beacon lanac slijedi PoS konsenzus bez dopuštenja, tada je potrebno ⅔ glasova validatora kako bi se zapis uključio u blockchain. Dakle, sve dok zlonamjerni glumac kontrolira ⅓ odbora Beacon lanca, on može izbjeći rezanje. Ako spriječi rezanje do trenutka dok se njegov ulog ne otključa, njegov je napad gotovo besplatan. Pitanje je: koliko dugo treba držati svoj ulog zaključanim?
U trenutnoj specifikaciji Ethereum 2.0 ulog je zaključan na pola godine. Međutim, napadač bi mogao započeti napad na samom kraju intervala zaključavanja uloga. Moguće rješenje je postavljanje vremenskog intervala prije puštanja, za to vrijeme ulog ne može biti izabran u odbor za krhotine, a zatim se koristiti u napadu dvostrukog trošenja. Međutim, ova protumjera smanjuje isplativost ulaganja. Tijekom tog vremenskog intervala, svi pogođeni dionici trebali bi dobiti naknadu za zaključana sredstva. Ipak, ta su sredstva “deaktivirana” i stoga ne sudjeluju u provjeri bloka. Štoviše, zlonamjerni glumac može koristiti ovaj popravak u svoju korist, jer može pažljivo odabrati vrijeme za svoj napad. Uloge može istovremeno zaključati, tako da se ulozi istovremeno „aktiviraju“ i „deaktiviraju“. Suprotno tome, iskrenim dionicima često se dio udjela deaktivira i zbog toga isključuje iz postupka provjere valjanosti. Tako dobivanje ⅔ glasova u odborima postaje još lakše.
Netko može tvrditi da u ovoj verziji napada pošteni čvorovi mogu primijetiti da se fulfill uloga u odboru lanca Beacon koristi za izvršenje napada. Mogli su poduzeti radnje koje nisu navedene u Casperovom protokolu kako bi kaznile napadača. Prva opcija bio bi pokušaj zaključavanja više sredstava u ulog. Druga je pokretanje nove rašlje. Prva opcija nije održiv slučaj, jer napadač može provesti “cenzuru”.
Može koristiti svoje glasove u odboru lanca Beacon kako bi spriječio dodjelu novih uloga. Dakle, on može držati ⅔ glasova u odborima za krhotine koliko god želi. Druga je mogućnost održiva, međutim to je zlouporaba mrežnog protokola koji su sudionici prihvatili na samom početku. Ako neovisni promatrač pokuša shvatiti što se događa u mreži, na temelju podataka zabilježenih u blockchainu, tada neće uspjeti razlikovati zlonamjerne aktere od poštenih validatora.
Prije nego što završimo ovu raspravu, razmotrimo modificiranu verziju posljednjeg napada. Nova verzija kombinacija je napada s velikog dometa i napada koji nije ni na što uložen. Još jednom, zlonamjerni glumac dijelom svog uloga račva lanac krhotina. Međutim, u ovom slučaju ne otkriva novi lanac poštenim čvorovima. Zatim čeka dok se njegov ugroženi ulog ne otključa. Sada prodaje svoj kompromitirani ulog nepromišljenim sudionicima, zaustavlja iskren lanac krhotina koristeći svoje glasove u odboru, a zatim otkriva viljušku ostalim sudionicima krhotina. Prema protokolu, lanac koji održavaju pošteni validatori treba napustiti. Tako je modificirana verzija napada uspješna. Primijetite da se ulog koji se koristi za račvanje lanca prodaje. Dakle, zlonamjerni glumac izbjegao je ponovno rezanje. Štoviše, u ovoj verziji napada njegov ulog u lancu Beacon nije ugrožen.
Može se predložiti popravak modificirane verzije napada na temelju korištenja kontrolnih točaka. Prema ovom popravku, lanac sadrži blokove kontrolnih točaka koji se “ne mogu vratiti”. Međutim, ovo je popravak kontroverzno, jer koncept “kontrolne točke” ne funkcionira u postavci blockchaina. Kao što znamo, blokovi u blockchainu nikada nisu u potpunosti finalizirani. Račvanje je prirodno svojstvo blockchaina, a svaka vilica imat će vlastite “potpuno finalizirane kontrolne točke”. Stoga je uporaba koncepta “kontrolne točke” često zbunjujuća i obmanjujuća. Ako se čvor mora oslanjati na kontrolnu točku, mora se oslanjati na “pružatelje kontrolnih točaka”. Zahtijeva uvođenje elementa povjerenja u navodno nepovjerljivu mrežu.
Naš je zaključak da napadač koji je dodijelio značajnu količinu snage u obliku uloga može pokretati razorne napade u mreži, istodobno izbjegavajući rezanje mehanike. Ovaj oblik napada vrlo je sličan napadu od 51% koji se može izvesti u blockchainu na temelju PoW-a.
Vinod Manoharan tehnološki je poduzetnik i osnivač i izvršni direktor tvrtke Jax Multiversal Holdings, holding tvrtka čiji portfelj uključuje tvrtke za internetske igre na sreću, platne prolaze i tehnološke tvrtke Blockchain. Manoharan je također osnivač JAX.Mreža, tehnološki startup u Ukrajini, fokusiran na Blockchain tehnologiju i preciznije, rješavajući zloglasnu trilemu skalabilnosti Blockchaina.
Napisano u suradnji s Iuriijem Shyshatskyijem, glavnim znanstvenim djelatnikom u JAX.Network.
Istaknuta slika: Shutterstock / Lopyryev Artem / Kuklos