ERC-20 (Ethereum) Börsenlexikon Vorheriger Begriff: ERC-1155 (Ethereum) Nächster Begriff: ERC-721 (Ethereum)
Ein Standard für Smart Contracts auf der Ethereum-Blockchain, der die Erstellung und Verwaltung fungibler Token ermöglicht, die für Zahlungen, Investitionen oder andere Anwendungen genutzt werden können
Der ERC-20-Standard ist eine der am weitesten verbreiteten und grundlegenden Spezifikationen für die Erstellung und Verwaltung von fungiblen Token auf der Ethereum-Blockchain. Er wurde im Jahr 2015 von Fabian Vogelsteller und Vitalik Buterin vorgeschlagen und hat sich seitdem als technischer De-facto-Standard für eine Vielzahl von Anwendungen etabliert – insbesondere für Initial Coin Offerings (ICOs), Stablecoins und DeFi-Protokolle. Die Abkürzung „ERC“ steht für Ethereum Request for Comments, wobei die Zahl 20 die Vorschlagsnummer in der Ethereum-Community bezeichnet.
Grundkonzept und Charakteristika
Ein ERC-20-Token ist ein fungibler digitaler Vermögenswert, was bedeutet, dass jede Einheit identisch und untereinander austauschbar ist. Ein Beispiel für Fungibilität wäre eine Währungseinheit: Ein Token mit dem Wert 1 ist stets gleichwertig zu einem anderen Token desselben Typs mit dem gleichen Wert.
Alle ERC-20-Token basieren auf einem gemeinsamen Satz definierter Funktionen und Ereignisse, die die Interaktion mit Smart Contracts standardisieren. Diese Vereinheitlichung ermöglicht eine einfache Integration in Wallets, Börsen, DeFi-Anwendungen und andere Ethereum-kompatible Dienste.
Standardisierte Funktionen
Ein vollständiger ERC-20-Token-Vertrag implementiert die folgenden zentralen Funktionen:
-
totalSupply(): Gibt die Gesamtmenge der im Umlauf befindlichen Token zurück.
-
balanceOf(address account): Gibt das Token-Guthaben einer bestimmten Adresse zurück.
-
transfer(address recipient, uint256 amount): Überträgt eine bestimmte Anzahl von Token vom Absender an einen Empfänger.
-
approve(address spender, uint256 amount): Autorisiert eine Adresse (z. B. einen Smart Contract), eine bestimmte Anzahl von Token im Namen des Tokenhalters auszugeben.
-
transferFrom(address sender, address recipient, uint256 amount): Ermöglicht den Transfer von Token durch eine Dritte Partei, sofern vorher autorisiert.
-
allowance(address owner, address spender): Gibt an, wie viele Token ein bestimmter Dritter (Spender) noch im Namen des Besitzers ausgeben darf.
Zusätzlich definiert der Standard zwei zentrale Ereignisse (Events), die von externen Anwendungen wie Wallets oder Blockchain-Explorern beobachtet werden können:
-
Transfer: Wird ausgelöst, wenn Token übertragen werden.
-
Approval: Wird ausgelöst, wenn ein Tokenhalter einem Dritten eine Ausgabeerlaubnis erteilt.
Technische Merkmale und Implementierungsdetails
ERC-20-Tokens basieren auf der Ethereum Virtual Machine (EVM) und sind vollständig in Solidity geschrieben, der dominierenden Programmiersprache für Ethereum-Smart Contracts. Die Verträge folgen einer standardisierten ABI (Application Binary Interface), was Interoperabilität mit bestehenden Tools gewährleistet.
Die Token besitzen in der Regel zusätzlich optionale Metadaten-Funktionen, etwa:
-
name(): Gibt den Namen des Tokens zurück.
-
symbol(): Gibt das Kürzel des Tokens zurück, z. B. „USDC“.
-
decimals(): Gibt an, wie viele Dezimalstellen ein Token aufweist (typisch: 18).
Die Anzahl der Dezimalstellen ist insbesondere bei finanziellen Anwendungen relevant, da viele Tokens eine feinere Unterteilung benötigen als Ganzzahlen.
Vorteile von ERC-20
Der ERC-20-Standard bietet eine Reihe klarer Vorteile:
-
Standardisierung: Alle ERC-20-Tokens folgen einem einheitlichen Interface, was ihre Integration in bestehende Infrastruktur (Wallets, Börsen, DeFi) vereinfacht.
-
Kompatibilität: Nahtlose Verbindung mit anderen Smart Contracts und Anwendungen im Ethereum-Ökosystem.
-
Sicherheit: Durch breite Nutzung und langjährige Erprobung gelten ERC-20-Implementierungen als stabil und vertrauenswürdig, vorausgesetzt sie sind korrekt programmiert.
-
Ökonomische Effizienz: Fungible Token benötigen weniger Speicher- und Rechenressourcen als nicht-fungible Token, was sich positiv auf Gas-Kosten auswirkt.
Herausforderungen und Schwächen
Trotz seiner weiten Verbreitung weist ERC-20 auch einige technische Einschränkungen auf:
-
Race Conditions: Die Kombination von approve() und transferFrom() kann unter bestimmten Bedingungen zu unerwarteten Ergebnissen führen. Wenn ein Benutzer eine bestehende Genehmigung ändert, könnte ein Angreifer in einem ungünstigen Zeitfenster beide Beträge transferieren. Dieses Problem wurde durch alternative Methoden wie increaseAllowance() und decreaseAllowance() teilweise entschärft.
-
Fehlende Rückmeldung bei Transfers: Die transfer()-Funktion überträgt Token an eine Adresse, ohne zu prüfen, ob diese Adresse in der Lage ist, Tokens zu empfangen. Werden Tokens versehentlich an einen nicht kompatiblen Smart Contract gesendet, gehen sie häufig dauerhaft verloren. Dies wurde später im ERC-223-Standard thematisiert, jedoch nicht in ERC-20 selbst gelöst.
-
Keine Ereignisse für transferFrom() ohne vorherige approve()-Aktion: Dies kann zu Unsicherheiten bei der Analyse von Token-Flows führen, insbesondere im Rahmen von Audits.
-
Gas-Kosten: Obwohl relativ effizient, kann der Betrieb großer Mengen an ERC-20-Transaktionen im Vergleich zu modernen Standards wie ERC-1155 oder Layer-2-Lösungen kostspielig sein.
Reale Anwendungen
ERC-20 wird heute in zahlreichen Sektoren eingesetzt:
-
Stablecoins: Bekannte Beispiele wie USDC, USDT oder DAI basieren auf dem ERC-20-Standard.
-
Initial Coin Offerings (ICOs): In der Hochphase der ICOs (2017–2018) wurden fast alle Token über ERC-20 erstellt.
-
Dezentrale Finanzsysteme (DeFi): Liquidity Pools, Lending-Protokolle und Staking-Systeme verwenden ERC-20-Tokens zur Repräsentation von Anteilen und Schuldtiteln.
-
Governance-Token: Projekte wie Uniswap (UNI) oder Aave (AAVE) nutzen ERC-20-Tokens zur Verteilung von Stimmrechten in dezentralen Organisationen (DAOs).
Vergleich zu anderen Token-Standards
Zur besseren Einordnung kann der folgende Vergleich hilfreich sein:
| Merkmal | ERC-20 | ERC-721 | ERC-1155 |
|---|---|---|---|
| Token-Typ | Fungibel | Nicht-fungibel | Beide |
| Mehrere Token im gleichen Contract | Nein | Nein | Ja |
| Batch-Transfer möglich | Nein | Nein | Ja |
| Gas-Effizienz | Mittel | Niedrig | Hoch |
| Kompatibilität mit DeFi | Hoch | Gering | Mittel |
Fazit
ERC-20 hat sich als grundlegender Standard für fungible Token auf der Ethereum-Blockchain etabliert und bildet die technologische Basis für eine Vielzahl wirtschaftlicher Anwendungen. Seine Stärke liegt in der hohen Standardisierung, Interoperabilität und breiten Akzeptanz im Ökosystem. Trotz bekannter Schwächen wie potenziellen Sicherheitsrisiken bei Genehmigungen und möglichen Token-Verlusten durch Fehlübertragungen bleibt ERC-20 aufgrund seiner Einfachheit und Verlässlichkeit ein zentraler Baustein in der Tokenökonomie. Mit dem Aufkommen neuer Standards wie ERC-1155 oder ERC-777 entwickelt sich die Tokenlandschaft jedoch weiter, sodass künftige Systeme auf den Erfahrungen und Grenzen von ERC-20 aufbauen werden.