EIP-8037 legt Ethereum-dApps nieuwe state-gasregels op
De ontwikkelaars van Ethereum vragen applicatieteams om hun contracten en off-chain diensten te testen op nieuwe state-gasregels in de geplande Glamsterdam-upgrade. Ze willen ook herstelopties en rapporten om de specificatie eventueel aan te passen.
Wat er gebeurde
Op 6 november plaatste Marius van der Wijden op het Ethereum Foundation-blog een oproep aan ontwikkelaars en auditors. Ze moeten acht gasaannames controleren die door de voorgestelde Glamsterdam-regels worden geraakt.
Beveiligingsauditors ChainSecurity en Dedaub doen onderzoek naast interne audits. De core developers zeggen echter dat zij niet elk project's contracten en off-chain systemen zelf kunnen controleren. Daarom vragen ze projecten concreet te melden wat er breekt en hoe dat te repareren is.
De geplande activering van de Hoodi testnet op 26 oktober en de bijbehorende verhoging van de gaslimiet werden op 22 oktober uitgesteld. In de oproep van 6 november staat dat die vertraging aanhoudt en dat er nog geen datum voor mainnet-activatie is.
De voorgestelde EIP-8037 verhoogt de kosten voor het aanmaken van blijvende blockchaindata en gaat state growth apart meten van uitvoering. EIP-8038 herprijs de toegang en schrijfbewerkingen naar bestaande state. Het doel is hogere throughput met controle op hoeveel data nodes moeten bewaren.
De review gebruikt een raamwerk met acht invarianten. Drie gaan over prijsassumpties en vaste budgetten. Vijf gaan over boekhoudregels zoals gasretours, foutafhandeling, billing en delegatie. Een belangrijk technisch probleem is dat gasleft() onder de voorstellen de state-gas reservoir niet meerekent. Daardoor kan een relayer bij het meten van verbruik te weinig of juist te veel terugvorderen. Afhankelijk van gecontroleerde of ongecontroleerde aftrekking kan een operatie mislukken of kan een betaling te groot worden.
De billing guidance stelt voor om een door de gebruiker ondertekende fee te gebruiken gebaseerd op een schatting volgens de nieuwe regels. Waar meterende meting nodig blijft kan men de aftrekking limiteren en betaling cappen op een ondertekend maximum. Een open specificatievoorstel, PR #12581, zou voorkomen dat gasreadings stijgen, maar laat het factureringsgat rond de reservoir uit de meting bestaan.
Praktische voorbeelden in de oproep noemen een drempel bij een transactie gaslimiet boven 16.777.216 voor het initialiseren van een reservoir. Voor een cold zero-to-nonzero storage write wordt een totaal van 110.020 gas voorgesteld tegenover 22.100 onder Osaka. Van dat totaal is 12.100 execution gas en 97.920 state gas. Afhangend van de reservoirbalans betaalt óf de reservoir óf de execution balance de state-component.
INV-8 behandelt delegatie volgens EIP-7702. Bij onvoldoende gas tijdens pre-executie kan een transactie in een blok terechtkomen terwijl updates aan delegatie en nonce ongedaan rollen. Dat kan leiden tot een blootgestelde autorisatie die opnieuw kan worden gebruikt. Als een gedelegeerd contract een initializer heeft die de eerste beller eigenaar maakt, kan een aanvaller zowel de autorisatie gebruiken als eigendom initialiseren in één transactie.
Voorstellen voor wallet safeguards zijn onder meer het binden van initialisatie aan de accounthandtekening of self-calls en het ongeldig maken van blootgestelde autorisaties. Ook is voorgesteld om het worst-case autorisatiebedrag vooraf te laten betalen, maar die protocolwijziging is nog niet aangenomen.
ChainSecurity toonde op 13 oktober dat veranderde kosten en geretourneerd gas ertoe kunnen leiden dat een contract een onderbedeelde operatie als permanent mislukt registreert. Dat kan een retry onmogelijk maken. Maatregelen als gerevalideerde budgetten, het doorgeven van failures en het behouden van retry-paden worden genoemd als oplossingen.
De repository vraagt projecten of een instelling, upgrade of migratie hun probleem kan oplossen en wanneer dat mogelijk is. Concrete rapporten over wat breekt en hoe te repareren zullen de volgende specificatiebesprekingen beïnvloeden.
Waarom dit telt
Voor beleggers in ETH en voor teams die op Ethereum bouwen betekent dit dat veel dApps mogelijk aanpassingen moeten doorvoeren. De uitkomst van de tests en reparatierapporten kan bepalen hoe en wanneer de upgrade verandert en hoeveel werk projecten moeten doen.
Waar je op kunt letten
- Reacties en reparatierapporten van grote dApp-projecten en wallets
- Eventuele specificatiewijzigingen of PR-acceptatie in de Glamsterdam-discussies
- Audit- en mitigatieadviezen van ChainSecurity, Dedaub en interne teams