Einführung
Ethereum wurde 2014 von Vitalik Buterin gegründet und positioniert sich als Open-Source-Plattform für die Einführung dezentraler Anwendungen (DApps). Viele von Buterins Beweggründen für die Schaffung einer neuen Blockchain waren auf die mangelnde Flexibilität des Bitcoin-Protokolls zurückzuführen.
Seit ihrer Einführung hat die Ethereum-Blockchain Entwickler, Unternehmen und Unternehmer angezogen und eine wachsende Branche von Benutzern hervorgebracht, die intelligente Verträge und verteilte Anwendungen starten.
In diesem Artikel werden wir uns den ERC-20-Standard ansehen, ein wichtiges Framework zum Erstellen von Token. Obwohl es spezifisch für das Ethereum-Netzwerk ist, hat das Framework auch andere Blockchain-Standards inspiriert, wie beispielsweise BEP-2 von Binance Chain.
Was ist der ERC-20-Standard?
Bei Ethereum ist ein ERC ein Ethereum Request for Comments. Dabei handelt es sich um technische Dokumente, die Standards für die Programmierung auf Ethereum festlegen. Sie sind nicht zu verwechseln mit Ethereum Improvement Proposals (EIPs), die wie die BIPs von Bitcoin Verbesserungen des Protokolls selbst vorschlagen. ERCs zielen stattdessen darauf ab, Konventionen festzulegen, die die Interaktion zwischen Anwendungen und Verträgen erleichtern.
ERC-20 wurde 2015 von Vitalik Buterin und Fabian Vogelsteller entwickelt und schlägt ein relativ einfaches Format für Ethereum-basierte Token vor. Indem sie sich an den Entwurf halten, müssen Entwickler das Rad nicht neu erfinden. Stattdessen können sie auf einer Grundlage aufbauen, die in der gesamten Branche bereits verwendet wird.
Sobald neue ERC-20-Token erstellt wurden, sind sie automatisch mit Diensten und Software kompatibel, die den ERC-20-Standard unterstützen (Software-Wallets, Hardware-Wallets, Börsen usw.).
Es ist zu beachten, dass der ERC-20-Standard zu einem EIP (genauer gesagt EIP-20) weiterentwickelt wurde. Dies geschah aufgrund seiner weiten Verbreitung einige Jahre nach dem ursprünglichen Vorschlag. Doch auch Jahre später ist der Name „ERC-20“ geblieben.
Eine kurze Zusammenfassung zu Ethereum-Token
Im Gegensatz zu ETH (der nativen Kryptowährung von Ethereum) werden ERC-20-Token nicht von Konten gehalten. Die Token existieren nur innerhalb eines Vertrags, der wie eine in sich geschlossene Datenbank ist. Er legt die Regeln für die Token fest (d. h. Name, Symbol, Teilbarkeit) und führt eine Liste, die die Guthaben der Benutzer ihren Ethereum-Adressen zuordnet.
Um Token zu verschieben, müssen Benutzer eine Transaktion an den Vertrag senden und ihn auffordern, einen Teil ihres Guthabens anderweitig zuzuweisen. Wenn Alice beispielsweise 5.000 BinanceAcademyTokens an Bob senden möchte, ruft sie eine Funktion im BinanceAcademyToken-Smart-Vertrag auf und fordert ihn dazu auf.
Ihr Aufruf ist in einer scheinbar regulären Ethereum-Transaktion enthalten, die 0 ETH an den Token-Vertrag zahlt. Der Aufruf ist in einem zusätzlichen Feld in der Transaktion enthalten, das angibt, was Alice tun möchte – in unserem Fall Token an Bob übertragen.
Auch wenn sie keinen Ether sendet, muss sie dennoch eine Gebühr in Ether zahlen, damit ihre Transaktion in einen Block aufgenommen wird. Wenn sie kein ETH hat, muss sie sich welches besorgen, bevor sie die Token überträgt.
Hier ist ein reales Beispiel für das oben genannte auf Etherscan: Jemand ruft den BUSD-Vertrag auf. Sie können sehen, dass Token übertragen wurden und eine Gebühr bezahlt wurde, obwohl das Feld „Wert“ anzeigt, dass 0 ETH gesendet wurden.
Nachdem wir nun auf dem Laufenden sind, werfen wir einen Blick hinter die Kulissen, um die Struktur eines typischen ERC-20-Vertrags besser zu verstehen.
Wie werden ERC-20-Token erstellt?
Um ERC-20-konform zu sein, muss Ihr Vertrag sechs obligatorische Funktionen enthalten: totalSupply, balanceOf, transfer, transferFrom, approve und allowance. Darüber hinaus können Sie optionale Funktionen angeben, wie Name, Symbol und Dezimalzahl. Anhand der Namen ist Ihnen vielleicht klar, was diese Funktionen tun. Wenn nicht, machen Sie sich keine Sorgen – wir werden sie aufschlüsseln.
Nachfolgend sind die Funktionen aufgeführt, wie sie in der speziell entwickelten Solidity-Sprache von Ethereum vorkommen.
Gesamtversorgung
Funktion totalSupply() öffentliche Ansicht gibt zurück (uint256)
Wenn die obige Funktion von einem Benutzer aufgerufen wird, gibt sie den gesamten Tokenvorrat zurück, den der Vertrag enthält.
Gleichgewicht von
Funktion balanceOf(Adresse _owner) öffentliche Ansicht gibt zurück (uint256 Balance)
Im Gegensatz zu totalSupply nimmt balanceOf einen Parameter (eine Adresse) an. Wenn es aufgerufen wird, gibt es den Kontostand der Token-Bestände dieser Adresse zurück. Denken Sie daran, dass Konten im Ethereum-Netzwerk öffentlich sind, sodass Sie den Kontostand jedes Benutzers abfragen können, sofern Sie die Adresse kennen.
überweisen
Funktion transfer(Adresse _an, uint256 _Wert) public gibt zurück (bool Erfolg)
Mit transfer aptly können Token von einem Benutzer zum anderen übertragen werden. Hier geben Sie die Adresse an, an die Sie senden möchten, und den zu überweisenden Betrag.
Wenn die Übertragung aufgerufen wird, wird ein sogenanntes Ereignis (in diesem Fall eine Ereignisübertragung) ausgelöst, das der Blockchain grundsätzlich mitteilt, dass eine Referenz darauf eingefügt werden soll.
Übertragen von
Funktion transferFrom(Adresse _von, Adresse _an, uint256 _Wert) public gibt zurück (bool Erfolg)
Die Funktion „transferFrom“ ist eine praktische Alternative zu „transfer“, die etwas mehr Programmierbarkeit in dezentralen Anwendungen ermöglicht. Wie „transfer“ wird sie zum Verschieben von Token verwendet, aber diese Token müssen nicht unbedingt der Person gehören, die den Vertrag aufruft.
Mit anderen Worten: Sie können jemanden – oder einen anderen Vertrag – dazu ermächtigen, in Ihrem Namen Geld zu überweisen. Ein möglicher Anwendungsfall betrifft die Zahlung für abonnementbasierte Dienste, bei denen Sie nicht jeden Tag/jede Woche/jeden Monat manuell eine Zahlung senden möchten. Stattdessen lassen Sie das einfach ein Programm für Sie erledigen.
Diese Funktion löst das gleiche Ereignis aus wie die Übertragung.
genehmigen
Funktion genehmigen (Adresse _spender, uint256 _value) öffentlich gibt zurück (bool Erfolg)
„approve“ ist eine weitere nützliche Funktion aus Sicht der Programmierbarkeit. Mit dieser Funktion können Sie die Anzahl der Token begrenzen, die ein Smart Contract von Ihrem Guthaben abheben kann. Ohne diese Funktion besteht das Risiko, dass der Vertrag nicht richtig funktioniert (oder ausgenutzt wird) und Ihr gesamtes Guthaben gestohlen wird.
Nehmen wir noch einmal unser Beispiel eines Abonnementmodells. Angenommen, Sie haben eine große Menge an BinanceAcademyTokens und möchten wöchentlich wiederkehrende Zahlungen an eine Streaming-DApp einrichten. Sie sind Tag und Nacht damit beschäftigt, Inhalte der Binance Academy zu lesen, sodass Sie sich nicht jede Woche die Zeit nehmen möchten, eine Transaktion manuell zu erstellen.
Sie verfügen über ein riesiges Guthaben an BinanceAcademyTokens, das weit über das hinausgeht, was zur Bezahlung des Abonnements erforderlich ist. Um zu verhindern, dass die DApp alle Tokens aufbraucht, können Sie mit „approve“ ein Limit festlegen. Angenommen, Ihr Abonnement kostet einen BinanceAcademyToken pro Woche. Wenn Sie den genehmigten Wert auf zwanzig Tokens begrenzen, könnte Ihr Abonnement fünf Monate lang automatisch bezahlt werden.
Im schlimmsten Fall, wenn die DApp versucht, Ihr gesamtes Guthaben abzuheben, oder wenn ein Fehler gefunden wird, können Sie nur zwanzig Token verlieren. Das ist vielleicht nicht ideal, aber es ist sicherlich verlockender, als alle Ihre Bestände zu verlieren.
Wenn es aufgerufen wird, löst „apply“ das Genehmigungsereignis aus. Wie das Übertragungsereignis schreibt es Daten in die Blockchain.
Zuschuss
Funktion Allowance(Adresse _Eigentümer, Adresse _Spender) öffentliche Ansicht gibt zurück (uint256 verbleibend)
Allowance kann in Verbindung mit Approval verwendet werden. Wenn Sie einem Vertrag die Berechtigung erteilt haben, Ihre Token zu verwalten, können Sie dies verwenden, um zu prüfen, wie viele er noch abrufen kann. Wenn Ihr Abonnement beispielsweise zwölf Ihrer zwanzig genehmigten Token aufgebraucht hat, sollte der Aufruf der Allowance-Funktion insgesamt acht zurückgeben.
Die optionalen Funktionen
Die zuvor besprochenen Funktionen sind obligatorisch. Name, Symbol und Dezimalstellen müssen hingegen nicht enthalten sein, können Ihren ERC-20-Vertrag jedoch etwas schöner machen. Sie ermöglichen Ihnen, einen für Menschen lesbaren Namen hinzuzufügen, ein Symbol festzulegen (z. B. ETH, BTC, BNB) und anzugeben, in wie viele Dezimalstellen Token teilbar sind. Beispielsweise können Token, die als Währungen verwendet werden, mehr davon profitieren, teilbarer zu sein, als Token, die das Eigentum an einer Immobilie darstellen.
Sehen Sie sich dieses Beispiel auf GitHub an, um diese Elemente in einem echten Vertrag zu sehen.
Was können ERC-20-Token?
Durch die Kombination aller oben genannten Funktionen erhalten wir einen ERC-20-Vertrag. Wir können das Gesamtangebot abfragen, Guthaben prüfen, Geld überweisen und anderen DApps die Berechtigung erteilen, Token für uns zu verwalten.
Ein großer Teil der Attraktivität von ERC-20-Tokens liegt in ihrer Flexibilität. Die festgelegten Konventionen schränken die Entwicklung nicht ein, sodass die Parteien zusätzliche Funktionen implementieren und spezifische Parameter festlegen können, die ihren Anforderungen entsprechen.
Stablecoins
Stablecoins (an Fiat-Währungen gekoppelte Token) verwenden häufig den ERC-20-Token-Standard. Die Transaktion zum BUSD-Vertrag, auf die wir zuvor verwiesen haben, ist ein Beispiel, und die meisten großen Stablecoins sind auch in diesem Format verfügbar.
Bei einer typischen, durch Fiatgeld gedeckten Stablecoin hält ein Emittent Reserven in Euro, Dollar usw. Dann gibt er für jede Einheit in seiner Reserve einen Token aus. Das bedeutet, wenn 10.000 Dollar in einem Tresor eingeschlossen wären, könnte der Emittent 10.000 Token erstellen, von denen jeder für 1 Dollar einlösbar wäre.
Technisch gesehen ist dies in Ethereum recht einfach umzusetzen. Ein Emittent startet einfach einen Vertrag mit 10.000 Token. Dann verteilt er sie an Benutzer mit dem Versprechen, dass sie die Token später gegen einen entsprechenden Betrag in Fiat-Währung eintauschen können.
Benutzer können mit ihren Token eine Reihe von Dingen tun – sie können Waren und Dienstleistungen kaufen oder sie in DApps verwenden. Alternativ könnten sie den Herausgeber auffordern, sie sofort umzutauschen. In diesem Fall verbrennt der Herausgeber die zurückgegebenen Token (macht sie unbrauchbar) und zieht den richtigen Betrag an Fiat aus seinen Reserven ab.
Der Vertrag, der dieses System regelt, ist, wie bereits erwähnt, relativ simpel. Die Einführung einer Stablecoin erfordert jedoch viel Arbeit in Bezug auf externe Faktoren wie Logistik, Einhaltung gesetzlicher Vorschriften usw.
Sicherheitstoken
Security-Token sind Stablecoins ähnlich. Auf Vertragsebene könnten beide sogar identisch sein, da sie auf die gleiche Weise funktionieren. Die Unterscheidung erfolgt auf der Ebene des Emittenten. Security-Token repräsentieren Wertpapiere wie Aktien, Anleihen oder physische Vermögenswerte. Oft (obwohl dies nicht immer der Fall ist) gewähren sie dem Inhaber eine Art Anteil an einem Unternehmen oder einer Ware.
Utility-Token
Utility-Token sind heute wohl die am weitesten verbreiteten Token-Typen. Im Gegensatz zu den beiden vorherigen Angeboten sind sie durch nichts gedeckt. Wenn asset-backed Token wie Aktien einer Fluggesellschaft sind, dann sind Utility-Token wie Vielfliegerprogramme: Sie erfüllen eine Funktion, haben aber keinen externen Wert. Utility-Token können für eine Vielzahl von Anwendungsfällen eingesetzt werden und dienen als Spielwährung, Treibstoff für dezentrale Anwendungen, Treuepunkte und vieles mehr.
➠ Möchten Sie mit Kryptowährungen anfangen? Kaufen Sie Ether auf Binance!
Können Sie ERC-20-Token schürfen?
Sie können Ether (ETH) schürfen, aber Token sind nicht schürfbar – wir sagen, sie werden geprägt, wenn neue erstellt werden. Wenn ein Vertrag gestartet wird, verteilen die Entwickler das Angebot entsprechend ihren Plänen und ihrer Roadmap.
Normalerweise geschieht dies über ein Initial Coin Offering (ICO), Initial Exchange Offering (IEO) oder Security Token Offering (STO). Sie werden vielleicht auf Variationen dieser Akronyme stoßen, aber diese Konzepte sind ziemlich ähnlich. Investoren senden Ether an die Vertragsadresse und erhalten im Gegenzug neue Token. Das gesammelte Geld wird zur Finanzierung der weiteren Entwicklung des Projekts verwendet. Benutzer erwarten, dass sie ihre Token verwenden (entweder sofort oder zu einem späteren Zeitpunkt) oder sie im Laufe der Projektentwicklung mit Gewinn weiterverkaufen können.
Die Token-Verteilung muss nicht automatisiert erfolgen. Bei vielen Crowdfunding-Events können Nutzer mit einer Reihe verschiedener digitaler Währungen (wie BNB, BTC, ETH und USDT) bezahlen. Die jeweiligen Guthaben werden dann den von den Nutzern angegebenen Adressen zugewiesen.
Vor- und Nachteile von ERC-20-Token
Vorteile von ERC-20-Token
Austauschbar
ERC-20-Token sind fungibel – jede Einheit ist gegen eine andere austauschbar. Wenn Sie einen BinanceAcademyToken besitzen, spielt es keine Rolle, welchen spezifischen Token Sie haben. Sie können ihn gegen den eines anderen tauschen und sie wären immer noch funktional identisch, genau wie Bargeld oder Gold.
Dies ist ideal, wenn Ihr Token eine Art Währung sein soll. Sie möchten keine einzelnen Einheiten mit unterscheidbaren Merkmalen, da diese sonst nicht fungibel wären. Dies könnte dazu führen, dass einige Token wertvoller – oder weniger wertvoll – werden als andere, was ihren Zweck untergräbt.
Flexibel
Wie wir im vorherigen Abschnitt erläutert haben, sind ERC-20-Token hochgradig anpassbar und können für viele verschiedene Anwendungen maßgeschneidert werden. Sie können beispielsweise als Spielwährung, in Treueprogrammen, als digitale Sammlerstücke oder sogar zur Darstellung von Kunstwerken und Eigentumsrechten verwendet werden.
Beliebt
Die Popularität von ERC-20 in der Kryptowährungsbranche ist ein äußerst überzeugender Grund, es als Blaupause zu verwenden. Es gibt eine Vielzahl von Börsen, Wallets und Smart Contracts, die bereits mit neu eingeführten Token kompatibel sind. Darüber hinaus gibt es reichlich Entwicklersupport und Dokumentation.
Nachteile von ERC-20-Token
Skalierbarkeit
Wie viele andere Kryptowährungsnetzwerke ist auch Ethereum nicht immun gegen Wachstumsschwierigkeiten. In seiner aktuellen Form ist es nicht gut skalierbar – der Versuch, eine Transaktion zu Spitzenzeiten zu senden, führt zu hohen Gebühren und Verzögerungen. Wenn Sie ein ERC-20-Token starten und das Netzwerk überlastet ist, könnte seine Nutzbarkeit beeinträchtigt werden.
Dies ist kein Problem, das nur Ethereum betrifft. Vielmehr handelt es sich um einen notwendigen Kompromiss bei sicheren, verteilten Systemen. Die Community plant, diese Probleme bei der Migration auf Ethereum 2.0 anzugehen, bei der Upgrades wie Ethereum Plasma und Ethereum Casper implementiert werden.
Erfahren Sie mehr über Skalierbarkeitsprobleme in der Blockchain-Skalierbarkeit: Sidechains und Zahlungskanäle.
Betrügereien
Obwohl dies kein Problem der Technologie selbst ist, könnte die Leichtigkeit, mit der ein Token eingeführt werden kann, in mancher Hinsicht als Nachteil angesehen werden. Es erfordert nur minimalen Aufwand, einen einfachen ERC-20-Token zu erstellen, was bedeutet, dass jeder dies tun kann – im Guten wie im Schlechten.
Sie sollten daher vorsichtig sein, worin Sie investieren. Es gibt zahlreiche Pyramiden- und Ponzi-Systeme, die als Blockchain-Projekte getarnt sind. Recherchieren Sie vor einer Investition selbst, um zu entscheiden, ob eine Gelegenheit seriös ist.
ERC-20, ERC-1155, ERC-223, ERC-721 – was ist der Unterschied?
ERC-20 war der erste (und bis heute beliebteste) Ethereum-Token-Standard, aber er ist bei weitem nicht der einzige. Im Laufe der Jahre sind viele andere aufgetaucht, die entweder Verbesserungen für ERC-20 vorschlagen oder ganz andere Ziele verfolgen.
Einige der weniger gebräuchlichen Standards sind diejenigen, die in nicht fungiblen Token (NFTs) verwendet werden. Manchmal profitiert Ihr Anwendungsfall tatsächlich davon, einzigartige Token mit unterschiedlichen Attributen zu haben. Wenn Sie ein einzigartiges Kunstwerk, ein In-Game-Asset usw. tokenisieren möchten, ist einer dieser Vertragstypen möglicherweise attraktiver.
Der ERC-721-Standard wurde beispielsweise für die äußerst beliebte CryptoKitties DApp verwendet. Ein solcher Vertrag bietet eine API, mit der Benutzer ihre eigenen nicht fungiblen Token prägen und Metadaten (Bilder, Beschreibungen usw.) kodieren können.
Der ERC-1155-Standard kann als Verbesserung von ERC-721 und ERC-20 angesehen werden. Er skizziert einen Standard, der sowohl fungible als auch nicht fungible Token im selben Vertrag unterstützt.
Andere Optionen wie ERC-223 oder ERC-621 zielen darauf ab, die Benutzerfreundlichkeit zu verbessern. Erstere implementiert Sicherheitsvorkehrungen, um versehentliche Token-Übertragungen zu verhindern. Letztere fügt zusätzliche Funktionen zum Erhöhen und Verringern des Token-Angebots hinzu.
Weitere Informationen zum Thema NFTs finden Sie in unserem Leitfaden zu Krypto-Sammelobjekten und nicht fungiblen Token (NFTs).
Abschließende Gedanken
Der ERC-20-Standard dominiert seit Jahren den Krypto-Asset-Bereich, und es ist nicht schwer zu erkennen, warum. Jeder kann relativ einfach einen einfachen Vertrag für eine Vielzahl von Anwendungsfällen (Utility-Token, Stablecoins usw.) bereitstellen. Allerdings fehlen ERC-20 einige der Funktionen, die andere Standards bieten. Es bleibt abzuwarten, ob nachfolgende Vertragstypen seinen Platz einnehmen werden.