Der Binance-Hack von gestern hatte mit EIP-7702 zu tun, einem sehr gefährlichen Feature, das ich schon lange scheiße finde. Nutze die Gelegenheit, um euch zu warnen.

Normalerweise denken viele, solange man seinen Private Key geheim hält und er nicht nach außen dringt, ist alles bestens – besonders bei einer Hardware-Wallet, denn bei jeder Überweisung muss man das Gerät anschließen und physisch auf eine Bestätigungstaste drücken. Also denken sie, egal wie gut der Hacker ist, er kann nicht einfach für einen selbst auf den Knopf drücken.

Aber in Wirklichkeit bietet auch eine Hardware-Wallet mit diesem EIP-7702 keinen Schutz. Der Ablauf ist ungefähr so: Ihr geht auf eine DApp und es erscheint eine Aufforderung, etwas zu signieren, um die Wallet zu upgraden oder irgendein Feature zu aktivieren. Ihr schließt die Wallet an, auf dem Display erscheint oft nur ein Haufen unverständlicher Hex-Codes, und ihr drückt schnell auf Bestätigen. Diese Autorisierungssignatur kann dann dazu führen, dass eure Wallet-Adresse den Code eines Smart Contracts ausführt.

Wenn es sich um einen bösartigen Contract handelt, kann der Hacker eure Wallet nutzen, um Geld zu überweisen, ohne dass ihr noch eine einzige Transaktion signieren müsst.

Das heißt, ihr könnt eure Hardware-Wallet immer noch im Tresor aufbewahren und euren Seed so gut schützen, dass ihr ihn selbst nicht kennt – aber euer Geld macht sich trotzdem aus dem Staub. So, als würdet ihr die Tür mit 100 Schlössern sichern und dann jemand anderem per Vollmacht erlauben, euer Haus nach Belieben zu verkaufen.

Das Gefährliche daran ist, dass diese Berechtigung dauerhaft bestehen bleiben kann. Früher verlor man bei einer versehentlichen Signatur vielleicht einen Token; man rief eine Revoke-Seite auf, widerrief sie, und das war’s. Hier geht es aber um Berechtigungen auf Kontoebene: Alles, was in der Wallet ist, kann damit überwiesen werden, und die üblichen Revoke-Seiten können das nicht einmal beheben. Um die Berechtigung aufzuheben, muss man eine neue EIP-7702-Autorisierung signieren, die auf die Adresse 0 verweist, und sie dann auf die Blockchain stellen. Kurz gesagt: Die meisten von euch haben keine Ahnung, wie das geht.

Deshalb mag ich dieses Design nicht.
$NEAR $BTC $ETH