Ethereum Glamsterdam nadogradnja mogla bi da poremeti postojeće smart contracte

Ethereum developeri razmatraju dva nova predloga kojima pokušavaju da spreče da predstojeća Glamsterdam nadogradnja poremeti postojeće smart contracte.
Problem je nastao zbog planiranih promena načina obračuna gas troškova na Ethereum mreži. Deo postojećih aplikacija napravljen je uz pretpostavku da određene operacije imaju unapred poznatu cenu gasa.
Ako se te cene značajno promene, pojedini ugovori mogli bi da se ponašaju drugačije nego što su njihovi programeri očekivali.
Zbog toga je prethodno planirana aktivacija Glamsterdama na Hoodi testnetu već odložena, dok developeri i bezbednosni istraživači pokušavaju da utvrde koliko je problem ozbiljan i kako ga rešiti bez ugrožavanja postojećih aplikacija.
Glamsterdam menja način obračuna gas troškova
Glamsterdam predstavlja jednu od narednih velikih Ethereum nadogradnji.
Jedan od njenih ciljeva jeste da Ethereum bolje odražava stvarne resurse koje različite blockchain operacije troše.
U okviru toga planirane su promene gas cena za kreiranje i pristup blockchain stanju.
Najviše pažnje trenutno privlače EIP-8037 i EIP-8038.
Ovi predlozi menjaju koliko određene operacije koštaju u gasu.
Ideja je da trošak koji korisnik plaća bolje odgovara stvarnom opterećenju koje operacija stvara mreži.
Problem je što Ethereum postoji godinama i veliki broj smart contracta već je napravljen prema postojećim pravilima.
Kreiranje smart contracta moglo bi postati mnogo skuplje
Jedna od najvećih promena dolazi kroz EIP-8037.
Prema trenutnom predlogu, osnovni gas trošak za kreiranje smart contracta povećao bi se sa približno 32.000 na 183.600 gas jedinica.
U ovu brojku nisu uključeni dodatni troškovi izvršavanja koda i čuvanja samog contracta.
To predstavlja veoma veliko povećanje osnovnog troška.
Za nove aplikacije ovo uglavnom znači da developeri moraju da prilagode način na koji računaju troškove.
Kod postojećih aplikacija situacija može biti komplikovanija.
Zašto postojeći smart contracti mogu imati problem?
Smart contract nakon postavljanja na Ethereum često više nije moguće jednostavno promeniti.
Posebno je problematično ako contract unutar svog koda pretpostavlja da određena operacija neće potrošiti više od određene količine gasa.
Neki contracti, na primer, prilikom pozivanja drugog contracta unapred rezervišu određenu količinu gasa.
Ako operacija nakon Glamsterdama postane skuplja, taj gas možda više neće biti dovoljan.
Rezultat može biti neuspešna transakcija.
U nekim složenijim aplikacijama problem može imati i ozbiljnije posledice, jer različiti delovi protokola zavise jedan od drugog.
ChainSecurity pronašao osam problematičnih pretpostavki
Bezbednosna kompanija ChainSecurity analizirala je postojeće Ethereum aplikacije i identifikovala osam vrsta pretpostavki koje bi mogle postati nevažeće nakon promene gas pravila.
Neki smart contracti oslanjaju se na fiksne gas limite.
Drugi zavise od specifičnog ponašanja kada određeni poziv ne uspe.
Postoje i contracti koji na osnovu dostupnog gasa donose odluke o tome kako će nastaviti izvršavanje.
Ako se trošak pojedinih Ethereum operacija promeni, ponašanje ovih contracta može se promeniti iako njihov kod ostaje potpuno isti.
Procene govore o oko 200.000 potencijalno pogođenih contracta
Pseudonimni Ethereum developer banteg naveo je da su postojeće analize pronašle približno 200.000 smart contracta koji bi potencijalno mogli biti pogođeni.
Međutim, ovu brojku treba posmatrati pažljivo.
To ne znači da će 200.000 aplikacija sigurno prestati da radi.
Radi se o contractima koji mogu koristiti određene obrasce ili pretpostavke koje zahtevaju dodatnu proveru.
Postoji i mogućnost da metodologija analize ne obuhvata sve problematične contracte.
Zbog toga stvarni broj može biti i manji i veći.
Problem nije ograničen samo na male projekte
Posebno zabrinjava činjenica da potencijalni problemi nisu pronađeni samo kod eksperimentalnih ili napuštenih contracta.
Istraživači upozoravaju da određeni obrasci postoje i kod poznatijih protokola.
To je posebno važno za DeFi aplikacije koje upravljaju velikim količinama korisničkih sredstava.
U takvim sistemima čak i relativno mali problem sa izvršavanjem contracta može dovesti do privremenog blokiranja neke funkcije, neuspešnih transakcija ili drugih neočekivanih posledica.
EIP-8488 pokušava da zaštiti stare contracte
Ethereum developer Leo Glisic predložio je EIP-8488 kao jedno moguće rešenje.
Ideja je relativno jednostavna.
Postojeći smart contracti nastavili bi da koriste stari sistem gas cena.
Novi contracti koristili bi nove verzije Ethereum instrukcija, odnosno takozvane V2 opcodes.
Na njih bi se primenjivale nove gas cene iz EIP-8037 i EIP-8038.
Na taj način Ethereum bi mogao da uvede novi sistem bez promene ponašanja contracta koji su već godinama na mreži.
Stari contracti bi zadržali postojeća pravila
Najveća prednost ovog pristupa je kompatibilnost.
Ako je neki contract napravljen 2022. ili 2024. godine uz određene gas pretpostavke, mogao bi da nastavi da funkcioniše prema tim pravilima.
Developeri novih aplikacija bi, s druge strane, morali da koriste novi sistem.
Ethereum bi tako praktično podržavao dve generacije instrukcija.
To povećava kompleksnost protokola, ali bi moglo značajno da smanji rizik od lomljenja postojećih aplikacija.
Drugi predlog koristi dva obračuna gasa
Developer Giulio Rebuffo predložio je drugačije rešenje.
Njegov koncept podrazumeva da Ethereum tokom jedne transakcije vodi dva različita obračuna gasa.
Prvi obračun koristio bi stara pravila.
On bi služio za određivanje kako se smart contract ponaša tokom izvršavanja.
Drugi obračun koristio bi nova pravila i određivao koliko korisnik stvarno treba da plati za transakciju.
Drugim rečima, smart contract bi mogao da „misli“ da radi prema starom sistemu, dok bi stvarni račun korisnika bio izračunat prema novim cenama.
Rebuffov predlog je još veoma rano u razvoju
Ovaj pristup mogao bi da sačuva kompatibilnost bez uvođenja novih verzija svih Ethereum instrukcija.
Međutim, predlog je još u ranoj fazi.
Za sada nema gotovu implementaciju u Ethereum execution clientima.
Nisu završeni ni potrebni consensus testovi.
Zbog toga nije poznato koliko bi ovakav sistem bio složen za implementaciju i da li bi mogao da uvede neke nove probleme.
Nijedan predlog još nije prihvaćen
Važno je naglasiti da ni EIP-8488 ni Rebuffov predlog trenutno nisu potvrđeni kao deo Glamsterdam nadogradnje.
Ethereum developeri ih tek razmatraju.
Pre donošenja konačne odluke biće potrebno sprovesti dodatna testiranja i proveriti njihove posledice po execution klijente, consensus sistem i postojeće aplikacije.
Zbog toga se specifikacija Glamsterdama još može promeniti.
Curve osnivač upozorio na mogućnost ozbiljnih problema
Rasprava je privukla pažnju i poznatih ljudi iz Ethereum DeFi ekosistema.
Osnivač Curve Financea Michael Egorov upozorio je da bi aktiviranje Glamsterdama bez rešavanja problema moglo da izazove ozbiljne komplikacije.
On je čak pomenuo mogućnost da bi Ethereum u ekstremnom slučaju morao da radi novi hitni hard fork kako bi poništio problematične promene.
To je veoma ozbiljan scenario i trenutno nije nešto što se očekuje da će se desiti.
Njegova izjava pre svega pokazuje koliko deo DeFi zajednice ozbiljno shvata pitanje kompatibilnosti.
Ryan Berckmans promenio stav
Ethereum investitor i član zajednice Ryan Berckmans prvobitno je podržavao brzo aktiviranje Glamsterdama.
Njegov argument bio je da Ethereum ne može zauvek garantovati da će cene svih operacija ostati iste samo zato što se određeni postojeći contracti oslanjaju na njih.
Međutim, nakon detaljnijeg razmatranja problema promenio je stav.
Sada smatra da Ethereum ne bi trebalo da žuri sa aktivacijom dok se pitanje kompatibilnosti ne reši.
Bezbednosni istraživači traže dodatni oprez
Security researcher poznat kao pcaversaccio zauzeo je još stroži stav.
Prema njegovom mišljenju, Glamsterdam u trenutnom obliku ne bi trebalo aktivirati.
Jedan od razloga je tvrdnja da su problemi sa gas repricingom bili poznati Ethereum core developerima nedeljama pre nego što je pitanje privuklo širu pažnju zajednice.
To je dodatno pojačalo raspravu o tome koliko testiranja treba sprovesti pre aktiviranja velikih protokolskih promena.
Hoodi aktivacija već je odložena
Ethereum developeri su već reagovali na upozorenja.
Glamsterdam je trebalo da bude aktiviran na Hoodi testnetu 26. oktobra.
Ta aktivacija je odložena.
Trenutno nije određen novi datum.
Odlaganje uključuje Amsterdam promene na execution layeru, Gloas promene na consensus layeru i planirano povećanje Hoodi gas limita na 200 miliona.
Ethereum Foundation radi sa bezbednosnim kompanijama
Ethereum Foundation trenutno sarađuje sa kompanijama ChainSecurity i Dedaub kako bi detaljnije analizirala potencijalno pogođene aplikacije.
Cilj je da se utvrdi koje aplikacije zaista mogu imati problem, koliko je ozbiljan i da li je moguće unapred izvršiti potrebna prilagođavanja.
Developeri takođe prikupljaju povratne informacije od autora popularnih Ethereum aplikacija.
Takva analiza trebalo bi da pomogne core developerima da odluče da li treba promeniti trenutnu Glamsterdam specifikaciju.
Novi privatni test mogao bi uslediti sredinom novembra
Na developerskom sastanku krajem oktobra razmatrana je mogućnost novog privatnog Glamsterdam testa između 16. i 20. novembra.
Međutim, taj okvir je napravljen pre nego što su predstavljena dva nova predloga za rešavanje gas kompatibilnosti.
Zbog toga još nije sigurno da će testiranje zaista biti održano u tom periodu.
Raspored će zavisiti od rezultata trenutnih analiza i odluke Ethereum core developera.
Da li su korisnička sredstva trenutno ugrožena?
Za prosečnog Ethereum korisnika važno je razumeti da Glamsterdam još nije aktiviran na Ethereum mainnetu.
Zbog toga trenutni problem sa gas repricingom sam po sebi trenutno ne menja ponašanje postojećih mainnet smart contracta.
Nema potrebe da korisnici samo zbog ove vesti povlače sredstva iz DeFi protokola.
Rasprava se upravo vodi pre aktivacije kako bi potencijalni problemi bili pronađeni i rešeni pre nego što nova pravila stignu na glavnu mrežu.
Zašto je odlaganje zapravo pozitivan signal?
Iako vest da nadogradnja može „pokvariti smart contracte“ zvuči negativno, činjenica da je problem otkriven tokom testiranja pokazuje svrhu testnet procesa.
Velike Ethereum nadogradnje prolaze kroz više faza pre mainnet aktivacije.
Ako se potencijalna nekompatibilnost pronađe u ovoj fazi, developeri mogu promeniti specifikaciju bez posledica po glavnu mrežu.
Mnogo ozbiljniji problem bio bi da se isti problem otkrije tek nakon aktivacije na mainnetu.
Glamsterdam ostaje važan korak za Ethereum
Problemi sa kompatibilnošću ne znače da je cela Glamsterdam nadogradnja odbačena.
Glamsterdam ima šire ciljeve vezane za skaliranje Ethereum Layer 1 mreže, efikasniju obradu transakcija i način upravljanja blockchain stanjem.
Gas repricing je samo jedan deo mnogo većeg paketa promena.
Developeri sada pokušavaju da pronađu način da uvedu potrebne optimizacije bez narušavanja jedne od najvažnijih karakteristika Ethereuma — kompatibilnosti sa ogromnim brojem već postojećih aplikacija.
Problem pokazuje cenu dugoročne kompatibilnosti
Ethereum danas ima milione deployed smart contracta.
Neki od njih postoje godinama i upravljaju veoma velikim količinama kapitala.
To znači da čak i naizgled jednostavna promena, poput promene gas cene jedne instrukcije, može imati veoma široke posledice.
Protokol zato mora da balansira između unapređenja mreže i očuvanja ponašanja aplikacija koje su napravljene prema starim pravilima.
Glamsterdam rasprava predstavlja dobar primer koliko je taj balans komplikovan.
Zaključak
Ethereumova predstojeća Glamsterdam nadogradnja suočava se sa važnim problemom kompatibilnosti nakon što su bezbednosne analize pokazale da promene gas cena mogu uticati na postojeće smart contracte.
Posebnu pažnju privlače EIP-8037 i EIP-8038, koji menjaju troškove kreiranja i pristupa blockchain stanju.
Prema trenutnom EIP-8037 predlogu, osnovni trošak kreiranja smart contracta mogao bi da poraste sa 32.000 na 183.600 gas jedinica.
Bezbednosni istraživači identifikovali su osam vrsta pretpostavki postojećih contracta koje bi mogle postati problematične, dok jedna analiza ukazuje na približno 200.000 potencijalno pogođenih smart contracta.
Ethereum developeri sada razmatraju najmanje dva pristupa.
EIP-8488 bi omogućio postojećim contractima da nastave da koriste stare gas cene, dok bi novi contracti koristili nove V2 instrukcije.
Drugi predlog uvodi dva paralelna obračuna gasa — jedan za izvršavanje smart contracta prema starim pravilima i drugi za stvarnu cenu transakcije prema novim pravilima.
Nijedno rešenje još nije usvojeno.
Zbog problema je već odložena Glamsterdam aktivacija na Hoodi testnetu, a Ethereum Foundation zajedno sa ChainSecurityjem i Dedaubom nastavlja da analizira postojeće aplikacije.
Najvažnije za korisnike jeste da Glamsterdam još nije aktivan na Ethereum mainnetu.
Trenutna rasprava zato ne znači da je 200.000 contracta već pokvareno ili da su korisnička sredstva automatski ugrožena.
Naprotiv, cilj trenutnog testiranja je upravo da Ethereum pronađe problem i reši ga pre nego što promene stignu na glavnu mrežu.



