Ethereum verkent native assertions tegen blind signing
Ethereum verkent EIP-7906, een voorstel voor native transactie-assertions waarmee transacties kunnen terugdraaien als regels voor het ondertekende resultaat niet kloppen, als middel tegen blind signing.
Het “Trillion Dollar Security”-initiatief van de Ethereum Foundation verkent native transactie-assertions als mechanisme om blind signing en onzekerheid over transacties tegen te gaan. In de blogpost van 5 oktober wordt een mechanisme uiteengezet waarbij on-chain code de volledige set netto statusveranderingen controleert nadat de acties van een transactie al zijn uitgevoerd — niet ervoor, niet tijdens.
De regel zit in de transactie zelf. Een gebruiker ondertekent deze samen met de acties; read-only-logica vergelijkt vervolgens de begin- en eindwaarden met die regel, en draait alles terug als de regel niet klopt. Dat geeft gebruikers een controle op transactieniveau van wat er daadwerkelijk is gebeurd, wat de Foundation presenteert als oplossing voor twee verschillende faalmodi: mismatch in intentie en mismatch in resultaat.
Bij beide zijn echte incidenten te noemen. Bybit en BadgerDAO draaiden allebei om gebruikers die rechten verleenden die ze nooit hadden willen geven, nadat frontends waren gecompromitteerd. Bij een onderpandswap via Aave en CoW ondertekende een gebruiker een wissel van $50,4 miljoen aan aEthUSDT$0,9992▲0,01% voor aEthAAVE en ontving tokens ter waarde van ongeveer $36.000, door dunne liquiditeit en afwijzingen vanwege het gas-plafond. Dat is een verlies van ongeveer 99,93%: ($50,4 miljoen – $36.000) / $50,4 miljoen × 100. Radiant Capital is het derde geval: malware verving de payload op het moment van ondertekenen door een kwaadaardige versie, terwijl zowel de walletinterface als de simulatie de bedoelde transactie lieten zien.
EIP-7906 — “Transaction Assertions via State Diff Opcode” — is de kandidaat-implementatie. Het bouwt voort op frame-transacties zoals gedefinieerd in EIP-8141, dat al is ingepland voor de Hegotá-upgrade. EIP-7906 zelf heeft de status “Considered for Inclusion” bereikt, al is de Ethereum Foundation duidelijk dat bevestiging voor Hegotá nog niet heeft plaatsgevonden. De timing van opname blijft een open vraag.
Drie nieuwe opcodes: TXTRACE, TXDIFF en EVENTDATACOPY. Alle drie kunnen alleen draaien binnen een POST_TX-frame — een statische call die helemaal aan het einde van de transactie wordt uitgevoerd. Statusveranderingen komen binnen als netto verschillen in native ETH$2.398,96▼2,00%-saldi en storage, plus nieuw gedeployde contracten en hun codehashes.
Volgens de redactie is juist die plaatsing wat het model samenhangend maakt. De assertion ziet de uitvoering nadat de acties zijn gedraaid, controleert de resulterende status tegen de ondertekende regel, en als de regel wordt geschonden, draait het hele uitvoeringsblok terug. De transactie blijft in het blok staan met een mislukte status, en degene die het gas betaalt, wordt belast voor wat er is verbruikt.
Een gerelateerde wijziging, EIP-8148, richt zich op wachtrijcontrole op het niveau van system calls. De EIPs-commit van 4 oktober legt uit dat een system call met niet-lege calldata EXCESS_INHIBITOR opslaat in de excess-slot en de wachtrij uitschakelt; volgens de bijgewerkte tekst gebruikt elke system call lege calldata, waardoor het herstelpad onbereikbaar wordt. De details verschillen van EIP-7906, maar beide voorstellen delen dezelfde bezorgdheid over welke controlepaden daadwerkelijk bereikbaar zijn gegeven de omstandigheden op het moment van uitvoering.
De EIPs-commit van 5 oktober voegt een strengere voorwaarde toe: assertion-invoer moet door de transactie worden bepaald. Referentiewaarden moeten afkomstig zijn uit gegevens die bij ondertekening vastliggen of uit “voor”-waarden. Elke assertion waarvan het vergelijkingsdoel tijdens de uitvoering zou kunnen verschuiven, kan de taak waarvoor hij is ontworpen dus niet uitvoeren.
Volgens de analyse van de redactie krijgen wallets hier het mooiste verhaal — een ondertekende voorwaarde die netto saldi, storage, deployments en events na uitvoering kan controleren. Protocollen staan, volgens de redactie, voor een lastigere vraag: hoe neemt elke frame-transactie de vereiste assertion op wanneer al gedeployde, onveranderlijke contracten zich in het pad bevinden?
Of dit uiteindelijk in Hegotá terechtkomt, staat nog open. De kosten voor gebruikers wanneer assertions resultaten afwijzen — mislukte transacties, verbrand gas — vormen de echte test voor hoe breed wallets en protocollen het daadwerkelijk zullen toepassen, als opname überhaupt doorgaat.