Fejlrettelse i Ethereum’s Glamsterdam-opgradering
Ethereum-udviklere har implementeret en løsning på en fejl i håndteringen af indskud i den kommende Glamsterdam-opgradering. Denne fejl kunne have tilladt en blokbygger at modtage ETH, der var beregnet til en ny validator, efter en indledende beslutning om at afvise den foreslåede ændring. Ifølge Ethereums konsensus-specifikationer blev rettelsen sammenflettet af vedligeholder Justin Traglia den 26. oktober, efter at udvikleren avsetsin havde identificeret et problem med, hvordan ventende indskud ville blive behandlet under Glamsterdam-forken.
Ændringer i indskudshåndtering
Ændringen adskiller byggerindskud fra validatorindskud baseret på deres tilbagetrækningsoplysninger, hvilket forhindrer midler i at blive sendt til den forkerte konto, når begge bruger den samme offentlige nøgle. Sårbarheden vedrørte regler under udvikling og ikke et bekræftet tyveri fra Ethereums mainnet. Udviklerne har indarbejdet rettelsen i specifikationerne, selvom individuelle konsensusklienter stadig skal implementere og teste den reviderede adfærd.
Problemets oprindelse
Problemet opstod fra ændringer planlagt under Glamstadams indskrevne adskillelse af forslag og bygning, som tildeler blokkonstruktion og blokforslag til forskellige roller. Bygherrer samler transaktionspayloads, mens validatorer deltager i at foreslå og bekræfte blokke gennem Ethereums proof-of-stake-system. Forskeren avsetsin beskrev fejlen den 12. oktober og identificerede et problem i de regler, der blev brugt til at behandle ventende indskud, når netværket opgraderes.
“Operatøren kan trække protokolens midler tilbage,” advarede avsetsin i GitHub-rapporten.
Forskeren skitserede et scenarie, hvor en staking-operator modtager midler fra en likvid staking-protokol for at etablere en ny validator. Ved først at registrere sig som bygherre kunne operatøren få protokolens validatorindskud til at komme ind på bygherresaldoen, hvor tilbagetrækningsadressen kunne være under operatørens kontrol.
Udviklingsprocessen
Forskeren undersøgte potentiel eksponering vedrørende Lido, Origin og Rocket Pool gennem indledende kodeforskning. Disse fund var betinget af, hvordan individuelle protokoller håndterede indskud, og rapporten fastslog ikke, at projekterne havde lidt et udnyttelse. Den foreslåede rettelse mødte oprindeligt modstand fra Ethereum-klientudviklere, på trods af forskerens beskrivelse af risikoen ved indskudsrouting.
Den 19. oktober lukkede Traglia pull-anmodningen efter diskussioner blandt kerneudviklerne. “Der var ikke nok støtte fra klienter til at foretage denne ændring på nuværende tidspunkt,” skrev Traglia. Beslutningen blev dog ikke opretholdt, da udviklerne genåbnede forslaget den 23. oktober efter yderligere undersøgelse.
Implementering af rettelsen
Den endelige ændring blev sammenflettet i Ethereums konsensus-specifikationer den 26. oktober efter yderligere klientgennemgang. Den dirigerer gyldige validatorindskud ind i validator-køen, mens den tillader legitime bygherreindskud at registrere eller tilføje midler til en eksisterende bygherre. De nye regler adskiller indskud gennem tilbagetrækningsoplysninger, som bestemmer de tilladte tilbagetrækningsordninger.
Udsættelse af Glamsterdam-opgraderingen
Opdateringen af specifikationen kom, mens Ethereum-udviklere gennemgik et separat problem, der påvirker Glamstadams planlagte aktivering på Hoodi-testnet. Ethereum Foundation udsatte opgraderingen den 26. oktober, efter at forskere havde identificeret kompatibilitetsrisici vedrørende EIP-8037. Som crypto.news tidligere rapporterede om udsættelsen, fjernede beslutningen både Amsterdam-udførelsesændringerne og Glamstadams konsensusændringer fra Hoodis planlagte aktivering.
Ethereum-forsker Toni Wahrstätter forklarede, at EIP-8037 kunne forstyrre smarte kontrakter, der er afhængige af antagelser om gas, der forbliver under udførelsen. Problemet med kontraktkompatibilitet er adskilt fra bygherreindskudfejlen, der blev behandlet i GitHub-rettelsen. Begge vedrører Glamsterdam, men Fondens udsættelse nævnte specifikt yderligere undersøgelse af EIP-8037’s interaktion med eksisterende kontrakter.
Glamsterdam blev allerede aktiveret på Sepolia-testnet den 6. oktober, hvor udviklerne undersøgte ændringer i blokkonstruktion og højere transaktionsbehandlingskapacitet. Den efterfølgende Hoodi-øvelse er stadig ikke planlagt, uden nogen bekræftet dato for aktivering på Ethereum mainnet. Den sammenflettede indskudskorrektur indeholder regressionstests, der dækker, hvordan indskud klassificeres under Glamstadams overgang.
Klientteams skal indarbejde specifikationsændringen i deres software og gennemføre yderligere test, før de opdaterede regler kan fungere under en fremtidig netværksopgradering.