Ethereum staking (2)

Ethereum stelt Glamsterdam-test op Hoodi uit na contractzorgen

Ethereum Nieuws•
Ethereum trekt op het laatste moment de geplande Glamsterdam-upgrade op testnet Hoodi terug. De activatie van 26 oktober vervalt nadat vragen ontstonden over de manier waarop nieuwe gasregels bestaande smart contracts kunnen laten reageren.
Een nieuwe datum is er nog niet. Ontwikkelaars willen eerst verder onderzoeken hoe EIP-8037 uitpakt bij contracten die al op Ethereum bestaan.

Activatie van 26 oktober vervalt volledig

Glamsterdam stond op Hoodi gepland voor 26 oktober om 17.42 uur UTC, bij epoch 132.352.
Die configuratie wordt nu verwijderd.
Dat geldt voor Amsterdam op de execution layer en Gloas op de consensus layer. Ook de geplande verhoging van Hoodi's gaslimiet naar 200 miljoen gaat op dat moment niet door.
De wijziging draait alleen een toekomstige configuratie terug.
De bestaande geschiedenis van de blockchain wordt niet teruggedraaid.

EIP-8037 staat centraal in het onderzoek

De Foundation noemt specifiek de interactie tussen EIP-8037 en bestaande mainnetcontracten als reden om meer tijd te nemen.
EIP-8037 verandert hoe Ethereum kosten voor het creëren van nieuwe state berekent.
State is informatie die permanent door het netwerk moet worden bijgehouden, zoals waarden in contractopslag.
De upgrade introduceert daarvoor een afzonderlijke gasvoorraad naast de normale execution gas.
Op papier moet dat de prijs van langdurige opslag beter laten aansluiten op de belasting die zulke gegevens voor het netwerk veroorzaken.
Voor bestaande contractcode kan het echter ook aannames veranderen die jarenlang hetzelfde waren.

Een mislukte call kan anders eindigen dan voorheen

ChainSecurity beschreef op 13 oktober een van de lastigste voorbeelden.
Smart contracts kunnen een externe call uitvoeren en daarna controleren of die handeling is gelukt.
Wanneer zo'n call door een tekort aan gas mislukt, kan het bovenliggende contract proberen de fout af te handelen.
Onder de bestaande regels kan daarbij zo weinig gas overblijven dat ook die foutafhandeling faalt.
De volledige transactie wordt dan teruggedraaid.
Onder Glamsterdam kan een aparte voorraad voor state gas in sommige situaties beschikbaar blijven nadat de onderliggende call mislukt.
Daardoor kan de foutafhandeling ineens wél worden voltooid.

Dezelfde contractcode kan dus ander gedrag geven

Dat verschil lijkt technisch, maar kan praktisch zwaar wegen.
Stel dat een contract na een mislukte call permanent vastlegt dat een claim is afgehandeld of dat een nieuwe poging niet meer is toegestaan.
Onder de oude gasregels kon de foutafhandeling zelf tekortkomen en werd alles teruggedraaid.
Onder de nieuwe regels kan voldoende gas beschikbaar zijn om die statuswijziging wél vast te leggen.
De code is hetzelfde.
De uitkomst verandert doordat de gasregels veranderen.
ChainSecurity waarschuwt daarom dat ontwikkelaars niet alleen naar normale succesvolle uitvoering moeten kijken, maar juist naar failure paths.

Het omgekeerde probleem bestaat eveneens

Glamsterdam maakt niet simpelweg meer gas beschikbaar.
EIP-8037 kan bepaalde handelingen waarbij nieuwe state ontstaat juist veel duurder maken.
EIP-8038 verandert daarnaast de executionkosten voor toegang tot bestaande state.
Een contract met een hard gecodeerd gasbudget kan daardoor tegen de andere kant van hetzelfde probleem aanlopen.
Een hoeveelheid gas die vandaag voldoende is voor een bepaalde functie kan na de upgrade tekortschieten.
Ook dat kan gedrag veranderen zonder dat de contractcode zelf is aangepast.

Geen bewijs van een aanval op Ethereum

De beveiligingsanalyse beschrijft mogelijke compatibiliteitsproblemen.
Er is daarmee geen aanval op Ethereum-mainnet aangetoond.
EIP-8037 en EIP-8038 zijn daar nog niet geactiveerd.
De zorgen gaan juist over wat er zou kunnen gebeuren wanneer nieuwe regels worden ingevoerd terwijl bestaande smart contracts aannames bevatten die onder eerdere gasregels zijn ontstaan.
Hoodi is bedoeld om zulke problemen vóór een mainnetfork zichtbaar te maken.
Het uitstel is daarmee een extra onderzoeksstap, geen herstelactie na een mainnetincident.

Sepolia draait Glamsterdam al

Glamsterdam werd op 6 oktober al op Sepolia geactiveerd.
Hoodi moest de volgende grote testfase worden.
De upgrade bevat veel meer dan alleen de twee omstreden gasvoorstellen.
Zo staan onder meer enshrined proposer-builder separation, block-level access lists en wijzigingen aan de manier waarop Ethereum gas en blockruimte berekent op de planning.
Dat Glamsterdam op Sepolia draait, betekent niet dat alle effecten op bestaande mainnetcontracten daarmee voldoende zijn getest.
Het mainnet bevat immers een veel grotere verzameling historische contractcode en toepassingen.

De verhoging naar 200 miljoen gas wacht eveneens

De oude Hoodi-planning koppelde de fork aan een forse verhoging van de block gas limit.
Die zou naar 200 miljoen gaan.
Ook dat plan voor 26 oktober is verwijderd.
Een hogere gaslimiet geeft per blok ruimte voor meer uitvoering, maar stelt tegelijk hogere eisen aan nodes die het blok binnen de beschikbare tijd moeten verwerken.
De nieuwe gasregels van Glamsterdam zijn mede bedoeld om zulke grotere blokken beheersbaar te houden.
Nu de fork wordt uitgesteld, gaat ook deze verhoging niet afzonderlijk door.

Oude clientconfiguratie kan juist problemen veroorzaken

Het annuleren van een hard fork vereist meer dan alleen een nieuwe kalenderdatum.
Software waarin de oude activatie nog staat geprogrammeerd, kan op 26 oktober alsnog proberen over te schakelen naar de Glamsterdam-regels.
Een Hoodi-node met zo'n configuratie kan dan van het netwerk afwijken.
Daarom vraagt de Ethereum Foundation operators expliciet om zowel hun executionclient als consensusclient te controleren.
De eerdere versietabellen uit de oorspronkelijke aankondiging mogen niet meer worden gebruikt als bewijs dat software geschikt is voor de nieuwe situatie.

Lighthouse brengt v8.3.2 uit

Voor Lighthouse is die correctie inmiddels beschikbaar.
De release van Lighthouse v8.3.2 schakelt de geplande Gloas-fork op Hoodi uit.
Alle Hoodi-gebruikers van Lighthouse moeten volgens de ontwikkelaars vóór het oorspronkelijke activatiemoment op 26 oktober overstappen.
Stakingoperators moeten daarbij hun beacon node en validatorclient bijwerken en ook controleren of hun executionclient de aangepaste Hoodi-configuratie gebruikt.
Voor Ethereum-mainnetgebruikers is v8.3.2 vanwege dit uitstel niet vereist.

Andere clients volgen hun eigen releases

Lighthouse is slechts één Ethereum-client.
De Foundation houdt voor Hoodi afzonderlijke versies bij van onder meer Lodestar, Besu, Nethermind en Ethrex die de uitgestelde activatie verwerken.
Voor andere clients moeten operators de eigen release-instructies volgen.
Dat is belangrijk omdat Ethereum meerdere onafhankelijke clientimplementaties gebruikt.
Een versie die Glamsterdam correct kon activeren volgens de oude planning is niet automatisch geschikt om diezelfde geplande fork nu juist níét uit te voeren.

ETH-houders hoeven niets te doen

Voor gewone ETH-bezitters verandert er nu niets.
Het uitstel betreft alleen Hoodi.
Er is bovendien nog geen definitieve datum vastgesteld waarop Glamsterdam naar Ethereum-mainnet gaat.
De Foundation zegt expliciet dat mainnetgebruikers en ETH-houders vanwege dit besluit geen actie hoeven te ondernemen.
Ook applicatieontwikkelaars moeten hun Hoodi-tests niet langer rond 26 oktober plannen.

Uitstel laat precies zien waarvoor een testnet dient

Glamsterdam moet Ethereum uiteindelijk meer verwerkingsruimte geven en verschillende onderdelen van de protocolwerking veranderen.
Maar grotere capaciteit is weinig waard wanneer bestaande contracten daardoor onverwacht ander gedrag vertonen.
Dat maakt EIP-8037 nu de rem op de planning.
De volgende stap is niet een haastig gekozen nieuwe forkdatum, maar bepalen welke bestaande contractpatronen gevoelig zijn voor de veranderde gasregels en hoe groot dat probleem werkelijk is.
Pas daarna kan Hoodi opnieuw als generale repetitie dienen.

Stop met te veel betalen voor je crypto. Bij de Amsterdamse exchange Finst handel je tegen de laagste tarieven van Nederland, zonder verborgen kosten.

👀 Bekijk Finst nu ›

Let op: Beleggen in crypto brengt risico’s met zich mee. Handel alleen met geld dat u kunt missen.

Ga verder met lezen
loading
Dit vind je misschien ook leuk
Laat mensen jouw mening weten

Loading