Zum Inhalt springen

ERC-20

ERC-20 ist die Standardschnittstelle von Ethereum für fungible Token. Erfahren Sie, wie Guthaben, Übertragungen, Verfügungsrahmen und Genehmigungen funktionieren und was der Standard nicht garantiert.

Aktualisiert

Nur zu Bildungszwecken; keine Anlageberatung. Anlagen können zu Verlusten führen.

Direkte Antwort

ERC-20 ist eine Standardschnittstelle für Verträge fungibler Token auf Ethereum. Sie ermöglicht es Wallets, Börsen und dezentralen Anwendungen, mit denselben Aufrufen den Gesamtbestand oder ein Guthaben auszulesen, Token zu übertragen und einer anderen Adresse die Ausgabe eines begrenzten Betrags zu erlauben. Fungibel bedeutet, dass gleiche Einheiten desselben Tokens untereinander austauschbar sein sollen.

Die Kernschnittstelle umfasst:

  • totalSupply und balanceOf zum Auslesen des Gesamtbestands und der Kontoguthaben;
  • transfer zum Senden der Token des Aufrufers;
  • approve und allowance zum Festlegen und Auslesen des Verfügungsrahmens einer ausgabeberechtigten Adresse;
  • transferFrom zum Ausgeben aus dem Guthaben eines Eigentümers innerhalb dieses Rahmens; und
  • die Ereignisse Transfer und Approval zum Protokollieren von Übertragungen und Genehmigungen.

Der Standard definiert Interoperabilität, nicht die Qualität eines Vermögenswerts. ERC-20-Konformität garantiert weder einen festen Gesamtbestand noch einen fairen Marktwert, Einlösbarkeit, Liquidität, eine sichere Verwaltung oder auch nur identisches Verhalten verschiedener Implementierungen.

Funktionsweise

Ein ERC-20-Guthaben ist ein Eintrag im Zustand des Token-Vertrags, der einer Adresse zugeordnet ist. Eine Wallet zeigt diesen Zustand an; sie verwahrt keine separate Token-Datei. Wenn transfer(to, amount) erfolgreich ist, verringert der Vertrag das Guthaben des Aufrufers, erhöht das Guthaben des Empfängers und gibt ein Transfer-Ereignis aus. In der Regel zahlt der Nutzer das Netzwerk-Gas in ETH. Wird die Ausführung rückgängig gemacht, werden die Änderungen am Token-Zustand aufgehoben, das bereits verbrauchte Gas aber nicht vollständig erstattet.

Delegiertes Ausgeben verwendet einen Verfügungsrahmen. Der Aufruf von approve(spender, amount) legt fest, wie viel die ausgabeberechtigte Adresse vom Guthaben des Aufrufers verwenden darf. Diese Adresse kann anschließend transferFrom(owner, to, amount) aufrufen; allowance(owner, spender) gibt den verbleibenden Rahmen an. Eine Genehmigung gilt für genau ein Paar aus Eigentümer und ausgabeberechtigter Adresse in genau einem Token-Vertrag in genau einem Netzwerk; sie erteilt keine Erlaubnis für sämtliche Vermögenswerte in der Wallet.

Ein erneuter Aufruf von approve überschreibt den bisherigen Verfügungsrahmen. Die EIP-20-Spezifikation weist Benutzeroberflächen darauf hin, einen bestehenden Rahmen zunächst auf 0 zu setzen, bevor ein anderer Wert ungleich null festgelegt wird, weil die Reihenfolge der Transaktionen es der ausgabeberechtigten Adresse andernfalls ermöglichen kann, sowohl den alten als auch den neuen Rahmen zu nutzen. Das Setzen des Rahmens auf 0 kann künftige transferFrom-Aufrufe für diese Kombination aus Eigentümer, ausgabeberechtigter Adresse und Token verhindern, aber bereits übertragene Token nicht zurückholen.

name, symbol und decimals sind in EIP-20 optionale Metadatenmethoden. decimals beeinflusst die Anzeigeeinheiten, nicht die ganzzahlige Buchführung des Vertrags. Der Standard schreibt außerdem nicht vor, wie Token geprägt oder verbrannt werden, ob Übertragungen pausiert oder besteuert werden können, ob Adressen gesperrt werden können oder ob Proxy-Logik aktualisiert werden kann. Diese Verhaltensweisen müssen im bereitgestellten Code, in der aktuellen Implementierung und anhand der administrativen Berechtigungen geprüft werden.

Beispiel

Angenommen, eine Wallet hält 1,000 Einheiten eines ERC-20-Tokens und ein Nutzer möchte über den Router einer dezentralen Börse 100 davon tauschen. Der Nutzer übermittelt zunächst approve(router, 100). Ist der Aufruf erfolgreich, darf der Router transferFrom(user, pool, 100) aufrufen; nach vollständiger Ausschöpfung beträgt der gewöhnliche verbleibende Verfügungsrahmen 0. Die Genehmigungs- und die Tauschtransaktion sind getrennte On-Chain-Aktionen. Daher kann für jede Gas anfallen und jede kann unabhängig fehlschlagen.

Die Genehmigung des höchstmöglichen Werts kann wiederholte Genehmigungen vermeiden, setzt aber über längere Zeit einen größeren Betrag einem Risiko aus, falls der Router, seine Upgrade-Berechtigung oder die zum Einholen der Genehmigung verwendete Oberfläche kompromittiert wird. Ein begrenzter Verfügungsrahmen reduziert dieses Risiko, beseitigt jedoch weder Smart-Contract-, Tokenpreis-, Liquiditäts- noch Transaktionsrisiken.

Risiken

  • Falscher Vertrag oder falsches Netzwerk: Namen, Symbole und Icons können kopiert werden; prüfen Sie die Vertragsadresse im vorgesehenen Netzwerk.
  • Übermäßiger Verfügungsrahmen: Eine böswillige oder kompromittierte ausgabeberechtigte Adresse kann einen ungenutzten Rahmen bis zum genehmigten Höchstbetrag ausschöpfen.
  • Nicht standardgemäßes Verhalten: Einige weitverbreitete Token geben Werte nicht exakt wie erwartet zurück, andere erheben Übertragungsgebühren, führen Rebasing durch, sperren Adressen oder pausieren Übertragungen.
  • Administrative Kontrolle: Prägung, Sperrung, Upgrades oder andere privilegierte Aktionen können das Risiko eines Tokens verändern, nachdem ein Nutzer ihn erworben hat.
  • Unwiderrufliche Übertragung: Werden Token an die falsche Adresse oder an einen Vertrag gesendet, der sie nicht verarbeiten kann, ist eine Wiederherstellung möglicherweise unmöglich.

Die ERC-20-Standardisierung verringert den Integrationsaufwand; sie beseitigt weder Vertrags-, Emittenten-, Verwahrungs-, Markt- noch Betriebsrisiken. Prüfen Sie vor dem Signieren das Netzwerk, den Token-Vertrag, die Adresse des Ausgabeberechtigten, den genehmigten Betrag und den Transaktionsaufruf.

Häufige Irrtümer

Mythos 1: Die Bezeichnung ERC-20 beweist, dass ein Token legitim ist

Jeder kann einen Vertrag mit einem bekannten Namen oder Symbol bereitstellen. Die Bezeichnung beschreibt lediglich den Anspruch, einer Schnittstelle zu entsprechen. Prüfen Sie die Vertragsadresse und beurteilen Sie anschließend Code, Berechtigungen, Emittenten, Liquidität und Markt getrennt voneinander.

Mythos 2: Eine Genehmigung überträgt die genehmigten Token sofort

approve ändert normalerweise einen Verfügungsrahmen; der Aufruf selbst überträgt keine Token an die ausgabeberechtigte Adresse. Erst der spätere Aufruf von transferFrom bewegt sie. Dennoch ist ein offener Verfügungsrahmen eine echte Berechtigung, die nutzbar bleiben kann, bis sie ausgeschöpft, ersetzt oder auf 0 gesetzt wird.

Mythos 3: Jeder ERC-20-Token verhält sich identisch

Der Standard legt eine gemeinsame Mindestschnittstelle fest. Er verlangt weder eine bestimmte Angebotspolitik noch verbietet er Gebühren, Pausen, Sperrlisten, Rebasing oder Aktualisierbarkeit. Integrationen müssen die tatsächliche Implementierung berücksichtigen, statt sich allein auf die Bezeichnung ERC-20 zu verlassen.

Verwandte Themen

Quellen

Navigation

Wiki durchsuchen...