Intas.Tech
Intas.Tech

Geringere Transaktionsgebühren und bessere UX auf Ethereum

Permit2 DE
Vor wenigen Wochen veröffentlichte Uniswap Labs eine Verbesserung für Tokengenehmigungen, die bisher mit dem ERC-20 Standard und Permit1 (EIP—2612) ungelöst blieben: Permit2.
 

Eine gute User Experience sowie Gaskostenoptimierung sind wichtige Bausteine bei der Umsetzung von Use Cases auf einer öffentlichen Blockchain. Die ursprüngliche Freigabemethode in Ethereum hatte Schwächen. Je nach Anwendung mussten Nutzer mehrere Genehmigungstransaktionen senden, was zu Verwirrung und höheren Kosten führen konnte. Aus Gründen der Bequemlichkeit forderten manche Anwendungen Nutzer sogar auf, ihr maximal verfügbares Token-Guthaben zu genehmigen, was den Anwendungen dann Zugriff auf das gesamte Token-Guthaben der Wallet für einen unbestimmten Zeitraum gab, wodurch bei einem potentiellen Hack alle Tokens der Nutzenden gefährdet waren. Später wurde das Genehmigungssystem in Ethereum verbessert, indem granulare Genehmigungen eingeführt wurden, die es ermöglichten, den Zugriff von Anwendungen auf das Token-Guthaben besser zu steuern. Allerdings unterstützen ältere Token diese Funktion nicht und nicht alle neueren Token haben sie übernommen.

 

Wie funktionieren ERC-20-Tokengenehmigungen standardgemäß?

Das Standardmodell von ERC-20 Tokens in Ethereum erfordert zwei Transaktionen, die jeweils Gasgebühren verursachen: Eine Freigabe und eine Interaktion (siehe Abbildung 1).

Abbildung 1: Genehmigungsablauf im Standardmodell von ERC-20

  1. Bob ruft die approve() Funktion auf einem ERC-20 Token auf, um eine Ausgabegenehmigung für einen Smart Contract zu erteilen.
  2. Bob ruft die interaction() Funktion auf, die wiederum transferFrom() auf dem ERC20-Token Smart Contract aufruft, um die Token zu transferieren.
 
Das Standardmodell hat zwei Nachteile:
  1. Schlechte Benutzerfreundlichkeit: Benutzer müssen jedes neue Protokoll für jeden Token, den sie verwenden möchten, mit einer separaten Transaktion genehmigen.
  2. Schlechte Sicherheit: Viele Anwendungen verlangen oft unbegrenzte Genehmigungen, um das UX-Problem aus Punkt 1 zu beheben. Folglich wären bei einem Hack des Protokolls alle Tokens eines Nutzers gefährdet, der eine unbefristete Genehmigung erteilt hatten.
 

Exkurs: Ethereum Request for Comment (ERC) ist das Protokoll zur Einführung neuer Verbesserungen im Netzwerk durch Entwickler. Neue ERCs werden erstellt, indem der Vorschlag über EIP (Ethereum Improvement Proposal) eingereicht wird. EIP ist ein Entwurfsdokument, das Informationen zu einer neuen Funktion oder einem neuen Verfahren enthält, um die Ethereum-Community zu informieren.

Permit (EIP-2612) Modell als erste Verbesserung

Zur Verbesserung des Standardmodells wurde „EIP-2612 Permit Extension for EIP-20 Signed Approvals“ eingeführt. EIP-2612 ist eine Erweiterung der ERC-20-Tokenstandards, wodurch die vorher genannten Probleme gelöst werden sollen (siehe Abbildung 2).

Abbildung 2: Genehmigungsablauf von EIP-2612

  1. Bob signiert eine Off-Chain-Genehmigungsnachricht, die einem Smart Contract die Erlaubnis erteilt, einen (EIP-2612)-Token auszugeben.
  2. Bob sendet die signierte Nachricht als Teil der Interaktion mit dem Smart Contract.
  3. Der Smart Contract ruft permit() für den Token auf, wodurch die Genehmigungsnachricht und die Signatur verbraucht wird und der Smart Contract eine Genehmigung erhält.
  4. Der Smart Contract verfügt nun über die Genehmigung, so dass er transferFrom() für den Token aufruft und die von Bob gehaltenen Tokens verwenden kann.

Dadurch werden die ursprünglichen Probleme des ERC-20-Ansatzes gelöst:

  1. Der Nutzer muss nie eine separate approve()-Transaktion einreichen.
  2. Permit Signaturen werden erteilt und sofort konsumiert.
  3. Es können Betragsgrenzen und Verfallszeiten gesetzt werden.

Leider kommt EIP-2612 in den meisten Fällen nicht in Frage, da es sich um eine Erweiterung des ERC20-Standards handelt und diese Funktion nur bei neuen Tokens möglich ist. Es gibt also nur sehr wenige größere Token, die hiervon profitieren können.

Die Lösung heißt Permit2

Auf der Suche nach Produktverbesserungen hat das Team von Uniswap Labs einen neuen Marktstandard identifiziert, um sowohl die Probleme aus dem Standardmodell als auch von EIP-2612 zu lösen: Permit2 (siehe Abbildung 3).

 

Abbildung 3: Genehmigungsablauf von Permit2

  1. Bob ruft approve() auf einem ERC-20 Token auf, um den Permit2-Smart-Contract eine unbegrenzte Genehmigung zu erteilen.
  2. Bob signiert eine Off-Chain-Permit2-Nachricht, die signalisiert, dass der Protokoll-Smart-Contract Token übertragen darf.
  3. Bob ruft eine Interaktionsfunktion des Protokoll-Smart-Contracts auf und übergibt die signierte Permit2-Nachricht als Parameter.
  4. Der Protokoll Smart Contract ruft permitTransferFrom() auf den Permit2-Smart-Contract auf, der wiederum aus Punkt 1 erteilte Erlaubnis verwendet, um transferFrom() auf dem ERC-20-Smart-Contract aufzurufen und die von Bob gehaltenen Tokens zu übertragen.
 
Die Genehmigung wird nicht dem Protokoll gewährt, sondern einem Permit2-Smart-Contract. Das bedeutet, dass wenn der Benutzer die Genehmigung einmal erteilt hat, dieser Schritt für alle weiteren Anwendungen übersprungen werden kann, sofern die Anwendungen ebenfalls Permit2 verwenden. Statt direkt transferFrom() auf dem ERC-20-Token aufzurufen, um eine Übertragung durchzuführen, wird ein Protokoll permitTransferFrom() auf dem Permit2-Smart-Contract aufgerufen. Permit2 sitzt zwischen dem Protokoll und dem ERC-20-Token, verfolgt und validiert Permit2-Nachrichten und nutzt letztendlich die Genehmigung, um den transferFrom() direkt auf dem ERC-20 durchzuführen. Durch die Umleitung kann Permit2 die EIP-2612-Vorteile für alle älteren bestehenden ERC-20-Token ausweiten. Wie bei EIP-2612 laufen auch bei Permit2-Nachrichten ab, um die Angriffsfläche bei möglichen Hacks zu begrenzen.
 
Fazit
Permit2 trägt dazu bei, die Nutzererfahrung bei der Interaktion mit Anwendungen zu verbessern und reduziert signifikant Gasgebühren. Permit2 ist ein nicht aktualisierbarer, herstellerunabhängiger und quelloffener Smart Contract, der in Ethereum, Optimism, Arbitrum, Polygon und Celo eingesetzt werden kann. 
Haben Gasgebühren Sie bisher daran gehindert Use Cases umzusetzen? Dann sprechen Sie uns gerne an. Wir identifizieren gerne mit Ihnen gemeinsam umsetzbare Use Cases und beraten Sie bei der optimalen Nutzung von Technologien von Layer2-Solutions bis hin zu zur Gaskostenoptimierung.
 

Download our Bitcoin Carbon
Emissions Study

In collaboration with the Frankfurt School Blockchain Center we applied the Bitcoin Climate Neutrality Investment Standard (BCNIS) to assess the proportional carbon footprint for Iconic Funds Physical Bitcoin ETP (ISIN: DE000A3GK2N1).

Enter your email to download the Study

Download Our Studies

The Carbon Emissions of Bitcoin From an Investor Perspective

Bitcoin Carbon Footprint Analysis - Iconic