Je li višeslojni sustav konsenzusa sposoban pružiti mrežnu otpornost na napade od 51 posto do 90 posto?
Gostujuća pošta HodlX Pošaljite svoj post
U posljednje vrijeme vidimo kako sve više i više blockchain mreža postaje žrtvom 51 posto napad. Ovaj je napad moguć jer pragovi mogu biti prilično niski i iznositi nešto više od 50 posto hashratea. Kad napadač preuzme mrežu, postoji mnogo načina na koji se može zloupotrijebiti. Na primjer, napadač može izvršiti dvostruko trošenje. Međutim, važnije je da se mrežom ne mogu smatrati normalnim iako zlonamjerni korisnici upravljaju. U osnovi, takvi napadi čine blockchain neaktivnim.
To objašnjava zašto je stvaranje novog konsenzusa s velikom otpornošću na 51 posto napada vrlo pravodoban zadatak. U svom nedavnom članku, Vodič za 99% konsenzus tolerancije na greške, Vitalik Buterin predlaže način da se prag napada od 51 posto poveća s 51 posto udjela ili hashratea na 99 posto. Ključno je uvođenje dodatnih validatora, nazvanih promatrači, koji ne sudjeluju u generiranju blokova. Promatrači izvršavaju post-provjeru blockchaina i mogu upozoriti mrežu ako se pronađu ugroženi blokovi. Za post-validaciju, Vitalik sugerira da se algoritam ovisan o latenciji nasumce bira 512 čvorova svakih 4.096 sekundi.
Iako ovaj pristup definitivno poboljšava mrežnu zaštitu, ima značajnih grešaka. Najkritičnije slabosti su ovisnost o vremenu potrebnom za konsenzus, ovisnost o propusnosti mreže i vremenskoj sinkronizaciji između promatrača.
Ovdje je minimalni vremenski interval D empirijska vrijednost kroz koju promatrači mogu ispravno razmjenjivati podatke. Izračun D uzima u obzir lošu internetsku vezu i procesorsku snagu promatrača. Blokovi se smatraju valjanima samo ako vremenski interval potvrde podijeljen s D nije manji od broja promatrača koji su potpisali ovaj blok.
Kako je D vrijednost najmanja od svih mogućih, postoji potencijalna situacija kada tijekom D intervala blok potvrdi samo jedan promatrač. Dakle, vrijeme potrebno za konsenzus linearno ovisi o broju promatrača. To postavlja značajna ograničenja na skalabilnost i decentralizaciju mreže.
U slučaju ograničenog broja promatrača (Buterin predlaže korištenje samo 512 promatrača), provjera valjanosti samo je pseudo-decentralizirana. Značajno ili neograničeno povećanje broja promatrača može dovesti do znatno većeg potrebnog vremena D. U tom bi slučaju validacija trajala puno duže ili bi čak postala besmislena.
Moderna propusnost komunikacijskog kanala i dalje je ograničena, što ometa naknadno provjeravanje velikih blokova. Pod pretpostavkom da je veličina transakcije 200 bajtova, što je zapravo prilično malo i moguće samo u financijskim transakcijama bez pametnih ugovora, te da se u bloku nalazi 50.000 transakcija (moderni blockchains aktivno pokušava doseći tu razinu), veličina bloka je 10Mb. Za prijenos ove količine podataka u roku od jedne sekunde potreban je kanal od 100 Mb / s. Glavni kanali definitivno mogu jamčiti ovu razinu protoka, ali regionalne veze bile bi puno sporije. To bi onemogućilo provjeru valjanosti zbog zahtjeva za dobivanjem potpisa u određenom vremenskom roku ili pseudo-decentralizirano gdje su odabrani samo promatrači s najboljim glavnim kanalima.
Druga slabost je obavezna sinkronizacija vremena između promatrača koja povećava ranjivost mreže na potencijalne napade, jer niti jedna blockchain mreža ne koristi sigurne protokole vremenske sinkronizacije (kao što je SNTP). Rad s nezaštićenim NTP-om stvara više mogućnosti za nesinkronizaciju bazena promatrača, što kasnije može u potpunosti sabotirati provjeru valjanosti.
U pokušaju uklanjanja gore opisanih problema i povećanja mrežne otpornosti od 51 posto napada do 90 posto, pristup koji koristi dodatne uloge mogao bi pružiti rješenje za mrežni konsenzus. Alternativno rješenju koje je opisao Vitalik Buterin, u ovom bi slučaju mreža zahtijevala pet uloga koje su dinamički dodijeljene čvorovima.
Zbog ove postavke, rješavanje problema Bizantske tolerancije na greške (BFT) s istodobnim dobivanjem 67 posto udjela na nekoliko slojeva zahtijeva kontrolu nad preko 90 posto udjela. Štoviše, otpornost je toliko visoka da je potrebno više od 53 posto udjela da bi se zlonamjerne transakcije uopće pojavile.
Čak i s malo vjerojatnom pojavom mreže s 90 posto udjela u jednom vlasništvu, klijenti će početi retroaktivno odbijati blokove i prestati vjerovati ugroženoj mreži, efektivno razdvajajući mrežu odvojeno. Budući da su klijenti koji koriste mrežu njezin najcjenjeniji dio, posjedovanje 90 posto nadzora nad udjelom daje samo kontrolu nad mrtvom mrežom bez klijenata, dok će preostalih 10 posto postati 100 posto vlasnika kovanica u novoj mreži.
Mreža koristi asinkronu provjeru bloka kako bi eliminirala ovisnost vremena konsenzusa o broju validatora. Sljedeći blok počinje generirati čim se generira trenutni i dovršio je osnovnu naknadnu provjeru. Potpuna provjera valjanosti odvija se na različitim slojevima u tandemu (ulogama verifikatora, bujice, vršnjaka i klijenta). Kad god se identificira zlonamjerni blok, blockchain se vraća u zadnje potvrđeno stanje i obnavlja se iz neobrađenih transakcija.
Pitanje potencijalno loših internetskih veza ublažava se upotrebom tehnologije slične BitTorrentu. Podaci se fragmentarno prenose mrežom, osiguravajući brži tečaj u regijama s malom propusnošću. To omogućuje dostavu podataka čak i do umjetno izoliranih regija.
Rješenje za izazov sinkronizacije vremena dvojako je: gdje god je to moguće koristi se interno vrijeme procesa (u tikovima), a sinkronizacija vremena vrši se putem zaštićenog vlasničkog SNTP protokola.
Zaključno, predstavljanje različitih uloga u konsenzusu, kao što je gore opisano, vjerojatno je najperspektivniji pristup danas i nadamo se da može značajno poboljšati sigurnost u blockchainu.
Gleb Nikitin
Gleb Nikitin, tehnološki vođa i suosnivač tvrtke #MetaHash