Feil i Håndteringen av Innskudd i Ethereum
Ethereum-utviklere har implementert en løsning for en feil i håndteringen av innskudd i den kommende Glamsterdam-oppgraderingen. Denne feilen kunne ha tillatt en blokkbygger å motta ETH ment for en ny validator, etter en innledende beslutning om å avvise den foreslåtte endringen.
Korrigering av Feilen
Ifølge Ethereums konsensusspecifikasjoner, slo vedlikeholder Justin Traglia sammen korrigeringen den 26. oktober, etter at utvikleren avsetsin identifiserte et problem med hvordan ventende innskudd ville bli behandlet under Gloas-forken. Endringen skiller mellom byggerinnskudd og validatorinnskudd basert på deres uttakslegitimasjon, og forhindrer at midler går inn på feil konto når begge bruker den samme offentlige nøkkelen.
Bakgrunn for Problemet
Sårbarheten angikk regler under utvikling, ikke et bekreftet tyveri fra Ethereums hovednett. Utviklerne har inkorporert korrigeringen i spesifikasjonene, selv om individuelle konsensusklienter fortsatt må implementere og teste den reviderte oppførselen. Problemet oppsto fra endringer planlagt under Glamstadams fastsatte separasjon av foreslåer og bygger, som tildeler blokkonstruksjon og blokkforslag til forskjellige roller.
Beskrivelse av Feilen
Forskeren avsetsin beskrev feilen den 12. oktober og identifiserte et problem i reglene som ble brukt til å behandle innskudd som ventet når nettverket oppgraderes. Hvis en bygger registrerte seg ved hjelp av en offentlig nøkkel før et validatorinnskudd ankom under den samme nøkkelen, kunne den foreslåtte logikken kreditere begge innskuddene til byggeren.
Risikoen for Staking-operatører
Forskeren skisserte et scenario der en staking-operatør mottar midler fra en likvid staking-protokoll for å etablere en ny validator. Ved å registrere seg som bygger først, kunne operatøren forårsake at protokollens validatorinnskudd gikk inn i byggerens saldo, der uttaksadressen kunne være under operatørens kontroll. «Operatøren kan ta ut protokollens midler,» advarte avsetsin i GitHub-rapporten.
Utviklernes Respons
Den foreslåtte korrigeringen møtte opprinnelig motstand fra Ethereum-klientutviklere, til tross for forskerens beskrivelse av innskuddsruteringsrisikoen. Den 19. oktober stengte Traglia pull-forespørselen etter diskusjoner blant kjerneutviklerne. «Det var ikke nok støtte fra klientene til å gjøre denne endringen på dette tidspunktet,» skrev Traglia.
Videre Utvikling
Beslutningen ble ikke stående, og utviklerne gjenåpnet forslaget den 23. oktober etter ytterligere undersøkelse. Den endelige endringen ble slått sammen i Ethereums konsensusspecifikasjoner den 26. oktober etter ytterligere klientgjennomgang. Den dirigerer gyldige validatorinnskudd inn i validator-køen, samtidig som den tillater legitime byggerinnskudd å registrere eller legge til midler til en eksisterende bygger.
Oppdateringer og Utsettelser
Ethereum Foundation utsatte oppgraderingen den 26. oktober etter at forskere identifiserte kompatibilitetsrisikoer knyttet til EIP-8037. Den foreslåtte økningen til en gassgrense på 200 millioner ble utsatt sammen med dem. Ethereum-forsker Toni Wahrstätter forklarte at EIP-8037 kunne forstyrre smarte kontrakter som er avhengige av antakelser om at gass forblir under utførelsen.
Fremtidige Testing og Implementering
Den sammenslåtte innskuddsrettelsen inneholder regresjonstester som dekker hvordan innskudd klassifiseres under Gloas-overgangen. Klientteam må inkorporere spesifikasjonsendringen i programvaren sin og fullføre ytterligere testing før de oppdaterte reglene kan operere under en fremtidig nettverksoppgradering.