Revoke.Delegate: Automatisierung von Token-Genehmigungswiderrufen mit MetaMasks Delegation Toolkit

Erfahre, wie Revoke.delegate Token-Genehmigungen automatisch widerruft, um Nutzer bei Exploits zu schützen.

3 Min. Lesezeit
Revoke.Delegate: Automatisierung von Token-Genehmigungswiderrufen mit MetaMasks Delegation Toolkit

Token Smart Contracts enthalten eine approve()-Funktion, die einer anderen Adresse erlaubt, Token im Namen des Token-Inhabers auszugeben. Dies ist heute ein zentraler Bestandteil des Smart-Contract-Ökosystems; ohne sie wären viele DeFi-Anwendungen nicht möglich. Beispielsweise erfordert der Handel mit Token auf einer dezentralen Börse wie Uniswap eine Token-Genehmigung, bevor ein Swap stattfinden kann.

Token-Genehmigungen sind jedoch mit erheblichen Risiken verbunden. Einem Smart Contract die Berechtigung zu erteilen, Token auszugeben, bedeutet, dass er dies jederzeit tun kann. Wird ein Contract gehackt oder enthält bösartigen Code, können Angreifer diese Genehmigungen ausnutzen, um Token zu stehlen.

Bestehende Lösungen wie Revoke.cash verfolgen Wallet-Genehmigungen und ermöglichen deren bedarfsgerechten Widerruf. Sie basieren jedoch auf einem manuellen Prozess, der vor oder während eines Exploits durchgeführt werden muss, was nicht immer praktikabel ist. Revoke.delegate – ein Hackathon-Projekt, das bei EthGlobal '24 entwickelt wurde – bietet eine effizientere Lösung, indem es Genehmigungen während eines Exploits automatisch widerruft und so die Notwendigkeit einer ständigen Überwachung oder manueller Eingriffe entfällt. So hat das Team dies umgesetzt.

Herausforderung: Wallet-Berechtigungen delegieren und dabei Datenschutz und Eigenverantwortung wahren

Nutzer müssen Revoke.delegate spezifische Wallet-Berechtigungen übertragen, um den automatischen Widerruf von Token-Genehmigungen bei einem Exploit zu ermöglichen. In diesem Kontext bedeutet Delegation, dass ein Smart-Contract-Konto (der Delegator) einem anderen Smart Contract oder einem extern verwalteten Konto (dem Delegierten) bestimmte Berechtigungen erteilt, um definierte Aktionen unter klar festgelegten Regeln und Bedingungen auszuführen.

Dieser Prozess ermöglicht es Revoke.delegate, betroffene Token-Adressen sicher zu identifizieren, vordefinierte Bedingungen zu überprüfen und Genehmigungen zu widerrufen, indem die Funktionen approve() oder setApprovalForAll() aufgerufen werden, um Allowances auf null zu setzen.

Die größte Herausforderung besteht darin, Datenschutz- und Selbstverwaltungsprinzipien aufrechtzuerhalten und sicherzustellen, dass Nutzer keine privaten Schlüssel teilen oder die Kontrolle über ihre Wallets durch die Erteilung unklarer Berechtigungen abgeben. Das Team legte außerdem großen Wert auf die Kompatibilität mit dem bestehenden Wallet-Ökosystem, um eine reibungslose Einführung zu ermöglichen.

Lösung: Wallet-Berechtigungen sicher delegieren und verwalten mit dem Delegation Toolkit (DTK)

Durch die Integration des Delegation Toolkit (DTK) ermöglicht Revoke.delegate Nutzern, Wallet-Berechtigungen zu delegieren und dabei die vollständige Eigenverantwortung zu behalten. Sobald ein Exploit gemeldet wird, ruft Revoke.delegate die Nutzerdelegationen sicher aus dem vom DTK verwalteten Delegation Storage ab und nutzt sie, um Token-Genehmigungen für betroffene Wallets zu widerrufen. Hier ist ein Überblick über den Prozess:

  1. Ein Nutzer verbindet seine Wallet, um alle bestehenden Token-Genehmigungen einzusehen.

  2. Er entscheidet sich, Wallet-Berechtigungen zu delegieren. Im Hintergrund wird die Funktion createRootDelegation() aufgerufen, die den Revoke.delegate Smart Contract als Delegierten festlegt.

  3. Die erforderlichen Berechtigungen werden mithilfe der Funktion addCaveats() definiert, wobei die Methode approve() angegeben wird, z. B. .addCaveat("allowedMethods", ["approve(address,uint256)"]).build().

  4. Der Nutzer unterzeichnet die neue Delegation, die anschließend sicher im vom DKT verwalteten Delegation Storage gespeichert wird.

  5. Im Falle eines Exploits ruft Revoke.delegate alle gespeicherten Delegationen ab, überprüft die Bedingungen und widerruft Token-Genehmigungen für betroffene Wallets, indem die Funktionen approve() oder setApprovalForAll() aufgerufen werden, um Allowances auf null zu setzen – ganz ohne Nutzereingriff.

Erfahren Sie in der Dokumentation mehr darüber, wie das Delegation Toolkit diese Prozesse vereinfacht.

„Das Delegation Toolkit hat uns dabei geholfen, sicherzustellen, dass Nutzer ihre Wallet-Berechtigungen delegieren können, ohne die Eigenverantwortung aufzugeben." – Ayush & Aashish, Entwickler von Revoke.delegate und Gewinner des EthGlobal '24 Hackathons

Durch den Einsatz von DTK hat das Revoke.delegate-Team den automatischen Widerruf von Token-Genehmigungen erfolgreich umgesetzt – selbst in Fällen, in denen Nutzer offline oder sich eines laufenden Exploits nicht bewusst waren. Da das Toolkit zudem nativ ERC-7579 unterstützt, entwickelte das Team eine Lösung, die mit führenden Wallets im Ökosystem kompatibel ist, darunter Safe, Kernel und Biconomy Nexus.

KI-übersetzt. Kann Fehler enthalten. Bitte überprüfen Sie die Informationen stets.

Bewerten Sie die Übersetzung
  • Kingsley Okonkwo
    Kingsley Okonkwo

    Kingsley, zertifizierter Ethereum-Blockchain-Entwickler, ist als technischer Redakteur bei Consensys tätig und hat sich auf Entwickler-Tools spezialisiert. Vor seinem Einstieg bei Consensys arbeitete Kingsley als freiberuflicher Backend-Entwickler auf verschiedenen Plattformen, darunter Gigster und Braintrust. Mit 5 Jahren Erfahrung in der Softwareentwicklung beherrscht er Tools wie JavaScript (Node.js & React), GoLang, SQL und Docker. Kingsley zeichnet sich durch die Erstellung von Schritt-für-Schritt-Tutorials und Anleitungen aus und nutzt dabei die neuesten Web3-Technologien, um anderen Entwicklern beim Aufbau besserer Dapps zu helfen. Derzeit lebt Kingsley in Dubai und verbringt seine Freizeit gerne mit Basketball und Fußball.

    Alle Artikel lesen