Der Unterschied ist für Hot Wallets von Börsen und Treasury-Bestände relevant, deren Kontrollen davon ausgehen, dass sie nur gewöhnliche Transaktionen signieren. Wie The Defiant zuvor berichtete, sagte Binance-Co-CEO Richard Teng, der Angreifer habe bei dem Sicherheitsvorfall EIP-7702 verwendet, um die Ausführungsfreigabe für eine Hot Wallet zu erhalten. „Diese Delegation durchlief nicht unsere üblichen Freigabekontrollen“, sagte er.

Eine auf der Blockchain erfasste Transaktion, die Etherscan zeigt, weist einen einzelnen Aufruf an Binance 14 aus, bei dem ungefähr 167464 ETH und 1,615 Milliarden USDT sowie weitere Token an den Angreifer übertragen wurden.

Ein Einwegschalter

Der Spezifikationsentwurf würde eine derzeit ungültige Form von EIP-7702-Transaktionen des Typs 4 für einen neuen Zweck verwenden: eine an die eigene Adresse gerichtete Transaktion mit einem Wert von null, keinen Daten und leeren Zugriffs- und Autorisierungslisten. Sie würde eine nicht ausführbare Markierung mit drei Bytes installieren, vorläufig `0xef0200`, ohne vorhandenen delegierten Code auszuführen.

Nach der Installation würde die Markierung dazu führen, dass künftige Delegationsautorisierungen, einschließlich Versuchen, sie zu entfernen, übersprungen werden. Das Konto würde seine Adresse, gewöhnliche Überweisungen und Vertragsaufrufe behalten, während bei eingehenden Aufrufen kein Code ausgeführt würde. Die vorgeschlagene feste Gebühr beträgt 33500 Gas. Laut dem Autor wurde sie nicht getestet.

Der Schutz beschränkt sich auf Delegation. Mit einem kompromittierten privaten Schlüssel könnten weiterhin Gelder übertragen, Token-Freigaben erteilt oder Vertragsautorisierungen signiert werden. Bestehende Freigaben würden nicht widerrufen. Der Entwurf warnt außerdem, dass ein Opt-out die delegationsabhängige Wiederherstellung deaktivieren oder den Zugriff auf Vermögenswerte unmöglich machen könnte, wenn diese den Code des bisherigen Delegierten benötigen.

Ablaufregelung betrifft ein anderes Risiko

Ein separater Entwurf von Joseph Delong in PR #12601 würde verlangen, dass jede Autorisierung einen Blockverweis signiert, der zu den 256 vorhergehenden Vorfahren des Einbindungsblocks gehört. Dadurch würde der Zeitraum begrenzt, in dem ungenutzte Autorisierungen angewendet werden können, ohne dass eine bereits installierte Delegation abläuft.

Delegation entfernen, blockieren oder Signaturen beschränken

Ein weiterer Entwurf, EIP-7851, verfolgt einen anderen Ansatz: Er würde die Autorität des ursprünglichen Signaturschlüssels auf Protokollebene dauerhaft deaktivieren, während der Wallet-Code die Delegation weiterhin aktualisieren könnte. Das neue Opt-out behält stattdessen die gewöhnlichen Transaktionsbefugnisse des Schlüssels bei und entfernt die Delegationsfähigkeit.

Das Design des Opt-outs erfordert noch Kompatibilitätsarbeiten. Die Kodierung der Markierung ist vorläufig, und Verträge oder Wallets, die gewöhnliche Konten daran erkennen, dass sie keinen Code haben, könnten markierte Konten ablehnen. Wallets und Hardware-Signer müssten außerdem die neue Transaktionsform erkennen und sie als unwiderruflich darstellen.