AktualnościKryptoEthereum opóźnia aktywację Glamsterdam na testnecie Hoodi po tym, jak badacze bezpieczeństwa wskazali ryzyko dla istniejących kontraktów

Ethereum opóźnia aktywację Glamsterdam na testnecie Hoodi po tym, jak badacze bezpieczeństwa wskazali ryzyko dla istniejących kontraktów

Autor: Coindesk·

Najważniejsze informacje

  • •Deweloperzy Ethereum odwołali aktywację Glamsterdam na testnecie Hoodi zaplanowaną na 26 października po tym, jak analiza ChainSecurity wzbudziła obawy dotyczące proponowanych zasad gazu.
  • •Zgodnie z EIP-8037 i EIP-8038 zwroty gazu za cofnięte zmiany stanu mogłyby pozostawić kontraktom wystarczająco dużo gazu, aby dokończyć procedury obsługi błędów, zamieniając błędy mające być tymczasowe w trwałe rekordy w łańcuchu.
  • •ChainSecurity oszacowała, że utworzenie nowego slotu pamięci mogłoby kosztować 110 020 gazu zgodnie z propozycjami, w porównaniu z obecnymi 22 100, co potencjalnie mogłoby spowodować przekroczenie istniejących budżetów gazu przez inaczej poprawne operacje.
  • •Nie ustalono nowej daty dla testu na Hoodi, planowanego zwiększenia limitu gazu do 200 milionów ani aktywacji w sieci głównej, w oczekiwaniu na badania, które mają zostać omówione na przyszłych spotkaniach All Core Devs.
  • •Glamsterdam zakończył już aktywację na testnecie Sepolia 6 października i obejmuje nowy system wyboru twórców bloków oraz zmiany mające wspierać większe bloki.
Ethereum opóźnia aktywację Glamsterdam na testnecie Hoodi po tym, jak badacze bezpieczeństwa wskazali ryzyko dla istniejących kontraktów

Ethereum opóźnia aktywację Glamsterdam na testnecie Hoodi po tym, jak badacze bezpieczeństwa wskazali ryzyko dla istniejących kontraktów

Deweloperzy odwołali poniedziałkową aktywację po tym, jak ChainSecurity wykazała, że proponowane zasady gazu mogłyby pozwolić smart kontraktom na trwałe zapisywanie nieudanych operacji.

Deweloperzy Ethereum przesunęli aktualizację Glamsterdam na testnecie Hoodi po tym, jak badacze bezpieczeństwa odkryli, że proponowane zmiany w rozliczaniu gazu mogłyby zmienić sposób, w jaki istniejące smart kontrakty obsługują nieudane transakcje — w niektórych przypadkach pozwalając, aby błędy zostały trwale zapisane w łańcuchu.

Aktualizacja miała zostać aktywowana w poniedziałek, 26 października, o 17:42:48 UTC. Opóźnienie zdecydowano podczas czwartkowego spotkania All Core Devs Execution, na którym deweloperzy uzgodnili, że najpierw zbadają, jak proponowane zmiany współdziałają z kontraktami już działającymi w sieci głównej Ethereum. Nie ogłoszono nowej daty testu na Hoodi ani planowanego zwiększenia limitu gazu do 200 milionów, a termin aktualizacji w sieci głównej pozostaje niepotwierdzony.

Hoodi to jedna z publicznych sieci testowych Ethereum — środowisk, w których nadchodzące aktualizacje działają na tym samym oprogramowaniu klienta co sieć główna, zanim zagrożone będą prawdziwe środki. Wykrywanie niezamierzonych interakcji, takich jak ta, to właśnie rodzaj problemów, które etap generalnej próby ma wyłapać, zanim zmiana trafi do sieci głównej.

Co odkryli badacze

Obawy koncentrują się wokół EIP-8037, który zmienia sposób, w jaki Ethereum nalicza opłaty za tworzenie nowych rekordów w bazie stanu. Propozycja ma na celu ograniczenie wzrostu tej bazy danych w miarę zwiększania przez sieć liczby przetwarzanych transakcji.

Firma bezpieczeństwa ChainSecurity opublikowała 13 października analizę propozycji, pokazując, że ta zmiana, w połączeniu z EIP-8038, mogłaby zmienić sposób, w jaki kontrakty reagują, gdy inny kontrakt, który wywołują, wyczerpie gaz — zasób służący do opłacania operatorów sieci za obliczenia.

Niektóre smart kontrakty są zaprojektowane tak, aby wychwytywać nieudane operacje i kontynuować przetwarzanie. Mogą odnotować, że próba się nie powiodła, wyłączyć kolejne próby lub przejść do innego kroku. Deweloperzy czasami polegają na tym, że pozostały gaz jest zbyt niski, aby te akcje zostały zakończone co powoduje cofnięcie całej transakcji.

Glamsterdam zmienia te obliczenia. Zgodnie z proponowanymi zasadami gaz użyty do utworzenia określonych rekordów może zostać zwrócony, gdy te zmiany zostaną cofnięte. To może pozostawić kontraktowi wystarczająco dużo gazu, aby dokończyć procedurę obsługi błędu, która wcześniej wyczerpałaby gaz i została cofnięta — co oznacza, że błąd, który deweloper zamierzał jako tymczasowy, mógłby stać się trwały. Ponieważ wdrożonych kontraktów generalnie nie można już przepisać, takie zmiany zachowania muszą zostać rozwiązane w samym protokole, a nie w kodzie aplikacji.

ChainSecurity zidentyfikowała również ryzyko w przeciwnym kierunku. Firma obliczyła, że utworzenie nowego slotu pamięci — podstawowej jednostki danych kontraktu w łańcuchu — mogłoby wymagać 110 020 gazu po wyczerpaniu osobnego limitu, w porównaniu z 22 100 zgodnie z obecnymi zasadami. Kontrakt działający w ramach istniejącego budżetu gazu mógłby zatem nie powieść się podczas wykonywania inaczej poprawnej operacji.

Odkrycia dotyczą zachowania istniejącego oprogramowania zgodnie z proponowanymi zasadami. ChainSecurity zademonstrowała mechanizmy, ale nie ustaliła publicznie, że którykolwiek z głównych protokołów produkcyjnych jest podatny na atak. Sieć główna Ethereum nie ma potwierdzonej daty aktywacji Glamsterdam, a odkrycia nie wskazują, że istniejące kontrakty są obecnie wykorzystywane za pomocą proponowanych zmian.

Gdzie znajduje się Glamsterdam

Glamsterdam wprowadza szereg zmian w Ethereum, w tym nowy system wyboru twórców bloków oraz ulepszenia mające pozwolić sieci na obsługę większych bloków. Aktualizacja zakończyła aktywację na testnecie Sepolia 6 października. Hoodi miała być kolejną publiczną próbą, wraz z planowanym zwiększeniem limitu gazu testnetu do 200 milionów — krok ten również został teraz odłożony.

Przy braku nowej daty harmonogram zależy teraz od uzgodnionych badań nad tym, jak propozycje współdziałają z wdrożonymi kontraktami. Ewentualny zrewidowany termin aktywacji Hoodi lub sieci głównej zostałby ustalony na przyszłych spotkaniach All Core Devs — na tym samym forum, na którym zdecydowano o tym tygodniowym opóźnieniu.

Ten artykuł opiera się na doniesieniach po raz pierwszy opublikowanych przez CoinDesk: Ethereum delays Glamsterdam test after security devs flag risk to existing contracts. Pełna analiza ChainSecurity jest dostępna tutaj.