Ethereum blockchain pretrpio je dvije kratke epizode prošlog tjedna u kojima se blokovi nisu finalizirali – neželjeni napad nestabilnosti koji predstavlja rizik za sigurnost blockchaina, ali se ne smatra strašnim.
Bilo je dosta zabune u pogledu toga što odgoda u “konačnosti” znači za funkcionalnost blockchaina, što je potaknulo rasprave o sigurnosnim problemima. Dakle, isplati se malo raspakirati.
Ti čitaš Protokolnaš tjedni bilten koji istražuje tehnologiju iza kripto, blok po blok. Prijavite se ovdje da ga dobijete u inbox svake srijede.
Uzrok privremenog gubitka konačnosti bloka ostaje pod istragom, iako je Prysm, dobavljač klijentskog softvera koji se koristi za pokretanje čvora na blockchainu, upravo objavio novu verziju, opisujući je kao “prvo potpuno izdanje nakon nedavnih problema s glavnom mrežom, ” s “kritičnim popravcima.”
Kada se podatkovni blokovi ne finaliziraju, ne bi trebalo biti zastoja ili razlike u iskustvu krajnjeg korisnika. Ipak, gubitak konačnosti može dovesti do nekih sigurnosnih problema poput reorgova.
Reorgovi se javljaju kada blockchain proizvodi više od jednog bloka u isto vrijeme, obično zbog greške ili napada. To znači da čvor validatora privremeno stvara novu verziju lanca blokova, što otežava pravilnu provjeru je li transakcija bila uspješna, dok stara verzija lanca blokova nastavlja postojati.
Međutim, učinci grudve snijega iz ovog incidenta doveli su do potresa krajnjih korisnika. DYdX, vodeća platforma za kripto razmjenu, morala je privremeno pauzirati depozite zbog jednog od prošlotjednih incidenata, a Polygonov zkEVM također je doživio određena kašnjenja s depozitima.
U proof-of-stake blockchainu kao što je Ethereum, validatori prvo moraju predložiti blok koji sadrži transakcije. Nakon što su predloženi, drugi validatori moraju se prijaviti na blok kako bi ga trajno dodali u blockchain, što traje oko 15 minuta. Nakon što ga dvije trećine validatora odobre ili “potvrde”, blok na kraju postaje finaliziran.
Dakle, konačnost je točka u kojoj se transakcije na blockchainu smatraju nepromjenjivima. Konačnost bi trebala jamčiti da se transakcije unutar bloka ne mogu mijenjati.
Ako se konačnost ne može zajamčiti, blockchain ulazi u hitno stanje koje se naziva “curenje neaktivnosti”, gdje validatori dobivaju kazne za nepostizanje finalizacije. Kada se stanje pokrene, ono djeluje kao način da se blockchain potakne da se ponovno počne finalizirati. Incident prošlog tjedna izazvao je prvo curenje neaktivnosti Ethereuma.
Zajednica Ethereuma priznala je da je trenutni vremenski okvir za finalizaciju blokova predug.
“Kašnjenje između prijedloga bloka i finalizacije također stvara priliku za kratke reorgove koje bi napadač mogao koristiti za cenzuriranje određenih blokova ili izdvajanje MEV-a,” podijelila je web stranica Ethereuma na blogu.
Kada se prvi gubitak konačnosti dogodio 11. svibnja, programeri su to odmah podijelili preko Twittera, rekavši da će angažirati dodatnu pomoć kako bi shvatili što se događa. Nakon 25 minuta činilo se da je problem riješen i lanac se nastavio finalizirati.
U prošlosti je finalizacija privremeno zaustavljena zbog grešaka u klijentskom softveru koji se koristi za pokretanje blockchaina. Ethereum ima više klijenata u slučaju da postoji greška ili greška u softveru, tako da postoje druge opcije, a aktivnost na blockchainu može nastaviti raditi.
Tim Beiko, voditelj podrške protokolu u Zakladi Ethereum, rekao je za CoinDesk da je incident “definitivno značajan, ali nije nešto u čemu je sigurnost ili ispravnost Ethereuma ugrožena ili ugrožena.”
“U roku od nekoliko minuta, stvari su ispravljene i u roku od dan ili dva klijenti su dobili softverske zakrpe kako bi bili sigurni da se ovaj specifični slučaj više ne pojavljuje”, rekao je.
Razvojni programeri još uvijek žele razumjeti što je uzrokovalo prestanak finalizacije blockchaina i očekuje se da će raspravljati o post mortem izvješću u svom nadolazećem pozivu za Consensus Layer.
Beiko je za CoinDesk rekao da incident nije došao do točke “u kojoj smo počeli testirati vrlo ekstremne zamjene u protokolu za rješavanje ovih stvari.”
Incidenti su utjecali na nekoliko aplikacija koje rade na vrhu Ethereum blockchaina.
Jordi Baylina, tehnički voditelj u Polygonu, rekao je da zaustavljanje konačnosti znači da su depoziti na lanac Polygon zkEVM odgođeni, a budući da se lanac oslanja na Infuru, pružatelja infrastrukture koji je također imao privremeni prekid kao rezultat gubitka konačnosti, problemi za pojedince koji koriste zkEVM složeni.
“Morate pričekati da konačni depozit u sloju 1 bude dostupan u sloju 2″, rekao je Balyina. “Dakle, dok nemate konačnost, ne možete koristiti [the chain] ili imate rizik dvostruke potrošnje u sloju 2.”
DYdX je danas privremeno pauzirao svoje depozite zbog nedostatka konačnosti Ethereuma i rekao da “nastavlja pratiti i istraživati ovaj problem”.
Unatoč tome, programeri Ethereuma naglašavaju da mreža nije pala.
“Današnji incident bio je sjajna vatrogasna vježba. Čini se da su se spojila dva ili tri problema (što je često slučaj). Lanac se elegantno oporavio i otkrili smo nekoliko drugih problema koji bi se mogli poboljšati kako bi Ethereum bio otporniji,” Twittao Marius van der Wijden, programer u Ethereum Foundation.