Eine Einf√ľhrung in ERC-20-Token
Startseite
Artikel
Eine Einf√ľhrung in ERC-20-Token

Eine Einf√ľhrung in ERC-20-Token

Mittel
Veröffentlicht Jul 31, 2020Aktualisiert Dec 28, 2022
12m

Inhalt


Einf√ľhrung

Ethereum wurde 2014 von Vitalik Buterin gegr√ľndet und positionierte sich als Open-Source-Plattform f√ľr die Einf√ľhrung dezentralisierter Anwendungen (DApps). Viele von Buterins Beweggr√ľnden f√ľr die Schaffung einer neuen Blockchain sind auf die mangelnde Flexibilit√§t des Bitcoin-Protokolls zur√ľckzuf√ľhren.
Seit ihrer Einf√ľhrung hat die Ethereum-Blockchain Entwickler, Unternehmen und Entrepreneure angezogen und eine wachsende Industrie von Benutzern hervorgebracht, die Smart Contracts und verteilte Anwendungen ver√∂ffentlichen.
In diesem Artikel werden wir uns mit dem Standard ERC-20 befassen, einem wichtigen Rahmen f√ľr die Erstellung von Token. Dieser Rahmen ist zwar spezifisch f√ľr das Ethereum-Netzwerk, inspirierte aber auch andere Blockchain-Standards, wie den BEP-2 der Binance Chain.


Was ist der ERC-20-Standard?

In Ethereum ist ein ERC ein Ethereum Request for Comments. Dies sind technische Dokumente, die die Standards f√ľr die Programmierung in Ethereum umrei√üen. Sie sind nicht mit den Ethereum Improvement Proposals (EIPs) zu verwechseln, die, wie die BIPs von Bitcoin, Verbesserungen des Protokolls selbst vorschlagen. ERCs zielen stattdessen darauf ab, Konventionen aufzustellen, die es Anwendungen und Vertr√§gen erleichtern, miteinander zu interagieren.

Das von Vitalik Buterin und Fabian Vogelsteller im Jahr 2015 verfasste ERC-20 schl√§gt ein relativ einfaches Format f√ľr auf Ethereum basierende Token vor. Wenn die Entwickler der Vorlage folgen, m√ľssen sie 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 interoperabel, die den ERC-20-Standard unterst√ľtzen (Software-Wallets, Hardware-Wallets, Tauschb√∂rsen, usw.).

Es sei darauf hingewiesen, dass der ERC-20-Standard zu einem EIP (genauer gesagt, EIP-20) entwickelt wurde. Dies geschah aufgrund seiner weit verbreiteten Anwendung 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 (Ethereums native Krypto-W√§hrung) werden ERC-20-Token nicht auf Konten gehalten. Die Token existieren nur innerhalb eines Vertrages, der wie eine in sich geschlossene Datenbank ist. Sie legt die Regeln f√ľr die Token fest (d.h. Name, Symbol, Teilbarkeit) und f√ľhrt eine Liste, die die Salden der Benutzer ihren Ethereum-Adressen zuordnet.

Um Token zu verschieben, m√ľssen die Benutzer eine Transaktion an den Vertrag senden, um einen Teil des Guthabens anderweitig zu vergeben. Wenn Alice z.B. 5.000 BinanceAcademyToken an Bob senden m√∂chte, ruft sie eine Funktion innerhalb des BinanceAcademyToken Smart Contracts auf, um dies zu tun.



Ihr Aufruf dieser Funktion ist in einer anscheinend regul√§ren Ethereum-Transaktion enthalten, die dabei 0 ETH an den Token-Contract zahlt. Der Aufruf ist in einem zus√§tzlichen Feld in der Transaktion enthalten, das angibt, was Alice tun will ‚Äď in unserem Fall Token an Bob √ľberweisen.

Auch wenn sie keine Ether schickt, muss sie dennoch eine darin ausgewiesene Geb√ľhr bezahlen, damit ihre Transaktion in einem Block enthalten ist. Wenn sie keine ETH hat, muss sie sich vor dem Transfer der Token einen kleinen Betrag ETH besorgen.
Hier ist ein Beispiel aus der realen Welt des obigen Beispiels auf Etherscan: Jemand ruft den BUSD-Contract auf. Sie k√∂nnen sehen, dass Tokens √ľbertragen wurden und eine Geb√ľhr bezahlt wurde, obwohl das Value Feld anzeigt, dass 0 ETH gesendet wurde.

Nun, da wir auf dem Laufenden sind, wollen wir einen Blick unter die Haube werfen, um die Struktur eines typischen ERC-20-Vertrages besser zu verstehen.


Wie werden ERC-20-Token erstellt?



Um ERC-20-konform zu sein, muss Ihr Vertrag sechs Pflichtfunktionen enthalten: totalSupply, balanceOf, transfer, transferFrom, approve und allowance. Zus√§tzlich k√∂nnen Sie optionale Funktionen angeben, wie z.B. name, symbol und decimal. Was diese Funktionen bewirken, wird Ihnen vielleicht aus ihren Namen ersichtlich. Wenn nicht, kein Problem ‚Äď wir werden sie gleich erkl√§ren.¬†

Nachfolgend sind die Funktionen so dargestellt, wie sie in der von Ethereum speziell entwickelten Sprache Solidity erscheinen.


totalSupply

function totalSupply() public view returns (uint256)
Wenn sie von einem Benutzer aufgerufen wird, zeigt die obige Funktion den Gesamtvorrat (total supply) an Tokens an, die der Vertrag enthält.


balanceOf 

function balanceOf(address _owner) public view returns (uint256 balance)
Im Gegensatz zu 0>totalSupply, nimmt balanceOf einen Parameter (eine Adresse). Wenn es aufgerufen wird, zeigt es den Saldo der Token-Bestände dieser Adresse an. Denken Sie daran, dass die Konten im Ethereum-Netzwerk öffentlich sind, so dass Sie den Saldo jedes Benutzers abfragen können, sofern Sie die Adresse kennen.


transfer

function transfer(address _to, uint256 _value) public returns (bool success)
transfer √ľbertr√§gt Token von einem Benutzer zu einem anderen. Hier geben Sie die Adresse, an die Sie senden m√∂chten, und den zu √ľberweisenden Betrag an.
Wenn es aufgerufen wird, löst transfer etwas aus, das als event (in diesem Fall event transfer) bezeichnet wird, was der Blockchain im Grunde genommen sagt, einen Verweis darauf aufzunehmen.


transferFrom

function transferFrom(address _from, address _to, uint256 _value) public returns (bool success)
Die Funktion transferFrom ist eine praktische Alternative zu transfer, die in dezentralisierten Anwendungen etwas mehr Programmierbarkeit erm√∂glicht. Wie transfer wird sie zum Transferieren 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 ‚Äď erm√§chtigen, in Ihrem Namen Gelder zu √ľberweisen. Ein m√∂glicher Anwendungsfall ist die Bezahlung von Dienstleistungen auf Abonnementbasis, bei denen Sie nicht jeden Tag/Woche/Monat manuell eine Zahlung senden m√∂chten. Stattdessen lassen Sie dies einfach von einem Programm f√ľr Sie erledigen.

Diese Funktion löst dasselbe Event aus wie transfer.


approve

function approve(address _spender, uint256 _value) public returns (bool success)
approve ist eine weitere n√ľtzliche Funktion unter dem Gesichtspunkt der Programmierbarkeit. Mit dieser Funktion k√∂nnen Sie die Anzahl der Token begrenzen, die ein Smart Contract von Ihrem Guthaben abziehen kann. Ohne diese Funktion laufen Sie Gefahr, dass der Vertrag nicht richtig funktioniert (oder ausgenutzt wird) und Ihnen Ihr gesamtes Guthaben gestohlen wird.¬†
Nehmen Sie noch einmal unser Beispiel f√ľr ein Abonnementmodell. Angenommen, Sie haben eine riesige Menge an BinanceAcademyToken und m√∂chten w√∂chentlich wiederkehrende Zahlungen an ein Streaming DApp einrichten. Sie sind Tag und Nacht mit der Lekt√ľre der Artikel auf Binance Academy besch√§ftigt, so dass Sie sich nicht jede Woche die Zeit nehmen wollen, eine Transaktion manuell zu erstellen.
Sie verf√ľgen √ľber einen massiven Bestand an BinanceAcademyToken, der weit √ľber das hinausgeht, was zur Bezahlung des Abonnements ben√∂tigt wird. Um zu verhindern, dass die DApp sie alle abzieht, k√∂nnen Sie mit approve ein Limit setzen. Angenommen, Ihr Abonnement kostet ein BinanceAcademyToken pro Woche. Wenn Sie den genehmigten Wert auf zwanzig Token begrenzen, dann k√∂nnten Sie Ihr Abonnement f√ľnf Monate lang automatisch bezahlen lassen.

Im schlimmsten Fall, wenn das DApp versucht, alle Ihre Gelder abzuheben oder wenn ein Bug gefunden wird, w√ľrden Sie nur zwanzig Token verlieren. Das mag zwar nicht ideal sein, aber es ist sicherlich attraktiver, als Ihr gesamtes Guthaben zu verlieren.

Wenn approve aufgerufen wird, löst dies das approval event aus. Wie das transfer event schreibt es Daten in die Blockchain.


allowance 

function allowance(address _owner, address _spender) public view returns (uint256 remaining)
allowance kann in Verbindung mit approve verwendet werden. Wenn Sie einem Vertrag die Erlaubnis erteilt haben, Ihre Token zu verwalten, k√∂nnen Sie damit pr√ľfen, wie viele er noch einziehen kann. Wenn Ihr Abonnement zum Beispiel zw√∂lf Ihrer zwanzig genehmigten Token aufgebraucht hat, sollten Sie mit der Funktion allowance insgesamt acht angezeigt bekommen.


Die optionalen Funktionen

Die zuvor besprochenen Funktionen sind obligatorisch. Auf der anderen Seite m√ľssen name, symbol und decimal nicht aufgenommen werden, aber sie k√∂nnen Ihren ERC-20-Vertrag etwas versch√∂nern. Entsprechend erlauben sie Ihnen, einen menschenlesbaren Namen hinzuzuf√ľgen, ein Symbol zu setzen (wie z.B. ETH, BTC, BNB) und festzulegen, auf wie viele Dezimalstellen Tokens teilbar sind. Beispielsweise k√∂nnen Token, die als W√§hrungen verwendet werden, mehr davon profitieren, dass sie besser teilbar sind als ein Token, das das Eigentum an einer Immobilie repr√§sentiert.


Sehen Sie sich dieses Beispiel auf GitHub an, um diese Elemente in einem echten Vertrag zu sehen.


Was können ERC-20-Token tun?



Indem wir alle oben genannten Funktionen zusammenfassen, haben wir einen ERC-20-Vertrag. Wir k√∂nnen die Gesamtversorgung abfragen, Salden √ľberpr√ľfen, Gelder √ľberweisen und anderen DApps die Erlaubnis erteilen, Tokens f√ľr uns zu verwalten.

Ein gro√üer Teil der Attraktivit√§t der ERC-20-Token liegt in ihrer Flexibilit√§t. Die dargelegten Konventionen schr√§nken die Entwicklung nicht ein, so dass die Parteien zus√§tzliche Funktionen implementieren und spezifische Parameter festlegen k√∂nnen, die ihren Bed√ľrfnissen entsprechen.


Stablecoins

Stable Coins (an Fiatw√§hrungen gekoppelte Token) verwenden oft den ERC-20-Token-Standard. Die bereits erw√§hnte Transaktion zum BUSD-Vertrag ist ein Beispiel daf√ľr, und die meisten wichtigen Stablecoins sind ebenfalls in diesem Format erh√§ltlich.

Bei einer typischen fiat-gest√ľtzten Stablecoin h√§lt ein Emittent Reserven in Euro, Dollar usw. Dann gibt er f√ľr jede Einheit in seiner Reserve ein Token aus. Das bedeutet, dass der Emittent, wenn 10.000 $ in einem Tresor eingeschlossen w√§ren, 10.000 Token erstellen k√∂nnte, die jeweils f√ľr 1 $ eingel√∂st werden k√∂nnten.

Dies ist in Ethereum technisch gesehen recht einfach umzusetzen. Ein Emittent beginnt einfach einen Vertrag mit 10.000 Token. Dann verteilt er sie an die Benutzer mit dem Versprechen, dass sie die Token später gegen einen entsprechenden Betrag in Fiat-Währung einlösen können.

Die Benutzer k√∂nnen mit ihren Token verschiedene Dinge tun ‚Äď sie k√∂nnen Waren und Dienstleistungen kaufen oder sie in DApps verwenden. Alternativ k√∂nnten sie beim Herausgeber den sofortigen Umtausch anfordern. In diesem Fall wird der Herausgeber die zur√ľckgegebenen Token verbrennen (wodurch sie unbrauchbar werden) und den korrekten Betrag in Fiat aus seinen Reserven abheben.

Der Vertrag, der dieses System regelt, ist, wie bereits erw√§hnt, relativ simpel. Die Einf√ľhrung einer Stablecoin erfordert jedoch eine Menge Arbeit an externen Faktoren wie Logistik, Einhaltung von Vorschriften usw.


Security-Token

Security-Token sind ähnlich wie Stablecoins. Auf der Vertragsebene könnten beide sogar identisch sein, da sie auf die gleiche Weise funktionieren. Die Unterscheidung erfolgt auf der Ebene des Herausgebers. Security-Tokens repräsentieren Wertpapiere wie Aktien, Anleihen oder physische Vermögenswerte. Häufig (obwohl dies nicht immer der Fall ist) gewähren sie dem Inhaber eine Art Beteiligung an einem Unternehmen oder einer Ware.


Utility-Token

Utility-Token sind m√∂glicherweise die heute am h√§ufigsten vorkommenden Arten von Token. Im Gegensatz zu den beiden vorhergehenden Angeboten sind sie durch nichts abgesichert. Wenn durch Verm√∂genswerte abgesicherte Token so etwas √§hnliches wie Aktien einer Fluggesellschaft sind, dann sind Utility-Token etwas wie Vielfliegerprogramme: Sie erf√ľllen eine Funktion, haben aber keinen externen Wert. Utility-Token k√∂nnen eine Vielzahl von Anwendungsf√§llen abdecken: Sie dienen als W√§hrung im Spiel, als Treibstoff f√ľr dezentrale Anwendungen, als Treuepunkte und vieles mehr.



Kann man ERC-20-Token minen?

Man kann ether (ETH) durch Mining erhalten, aber Token sind nicht 'mineable' ‚Äď wir nennen es minted, wenn neue erzeugt werden. Wenn ein Vertrag auf den Weg erstellt wird, verteilen die Entwickler das Angebot entsprechend ihren Pl√§nen und ihrer Roadmap.
Typischerweise erfolgt dies √ľber ein Initial Coin Offering (ICO), Initial Exchange Offering (IEO) oder ein Security Token Offering (STO). M√∂glicherweise sto√üen Sie auf Variationen dieser Akronyme, aber diese Konzepte sind recht √§hnlich. Investoren senden ETH an die Vertragsadresse und erhalten im Gegenzug neue Token. Das gesammelte Geld wird zur Finanzierung der weiteren Entwicklung des Projekts verwendet. Die Nutzer erwarten, dass sie ihre Token (entweder sofort oder zu einem sp√§teren Zeitpunkt) verwenden oder sie im Laufe der Entwicklung des Projekts gewinnbringend weiterverkaufen k√∂nnen.

Die Verteilung der Token muss nicht automatisiert werden. Bei vielen Crowdfunding-Veranstaltungen können Benutzer mit einer Reihe verschiedener digitaler Währungen (wie BNB, BTC, ETH und USDT) bezahlen. Die jeweiligen Salden werden dann den von den Benutzern angegebenen Adressen zugeordnet.


Vor- und Nachteile von ERC-20-Token

Vorteile von ERC-20-Token

Fungibel

ERC-20-Token sind fungibel ‚Äď jede Einheit ist mit einer anderen austauschbar. Wenn Sie im Besitz eines BinanceAcademyToken w√§ren, w√ľrde es keine Rolle spielen, welches spezifische Token Sie besitzen. Sie k√∂nnten es gegen ein anderes eintauschen, und beide w√§ren immer noch funktionell identisch, genau wie Bargeld oder Gold.

Dies ist ideal, wenn Ihr Token eine Art W√§hrung sein soll. Sie w√ľrden keine einzelnen Einheiten mit unterscheidbaren Merkmalen wollen, weil diese dann nicht fungibel w√§ren. Dies k√∂nnte dazu f√ľhren, dass einige Tokens mehr ‚Äď oder weniger ‚Äď wertvoll als andere werden und so ihren eigentlichen Zweck untergraben w√ľrden.


Flexibel

Wie wir im vorigen Abschnitt untersucht haben, sind die ERC-20-Token in hohem Ma√üe anpassbar und k√∂nnen auf viele verschiedene Anwendungen zugeschnitten werden. Sie k√∂nnen z.B. als W√§hrung in einem Spiel, in Treuepunkteprogrammen, als digitale Sammlerst√ľcke oder sogar zur Repr√§sentation von Kunstwerken und Eigentumsrechten verwendet werden.


Populär

Die Popularit√§t von ERC-20 in dem Bereich Krypto-W√§hrungen ist ein h√∂chst √ľberzeugender Grund, es als Vorlage zu verwenden. Es gibt eine Menge von Tauschb√∂rsen, Wallets und Smart Contracts, die bereits mit neu eingef√ľhrten Tokens kompatibel sind. Dar√ľber hinaus gibt es reichlich Entwicklerunterst√ľtzung und Dokumentation.


Nachteile von ERC-20-Token

Skalierbarkeit

Wie viele Netzwerke f√ľr Krypto-W√§hrungen ist auch Ethereum nicht immun gegen 'Wachstumsschmerzen'. In seiner gegenw√§rtigen Form skaliert es nicht gut ‚Äď der Versuch, eine Transaktion zu Spitzenzeiten zu senden, f√ľhrt zu hohen Geb√ľhren und Verz√∂gerungen. Wenn Sie ein ERC-20-Token einf√ľhren und das Netzwerk √ľberlastet wird, k√∂nnte seine Nutzbarkeit beeintr√§chtigt werden.

Dies ist kein Problem, das ausschließlich Ethereum betrifft. Vielmehr ist es ein notwendiger Kompromiss in sicheren, verteilten Systemen. Die Community plant, diese Probleme bei der Migration zu Ethereum 2.0 anzugehen, wobei Upgrades wie Ethereum Plasma und Ethereum Casper implementiert werden sollen.
Erfahren Sie mehr √ľber Probleme bei der Skalierbarkeit in dem Artikel Blockchain-Skalierbarkeit - Sidechains und Zahlungskan√§le.


Scams

Obwohl die Technologie an sich kein Problem darstellt, k√∂nnte die Leichtigkeit, mit der ein Token eingef√ľhrt werden kann, in mancher Hinsicht als Nachteil betrachtet werden. Es ist nur ein minimaler Aufwand erforderlich, um ein einfaches ERC-20-Token zu erstellen, was bedeutet, dass es jeder tun k√∂nnte ‚Äď im Guten wie im Schlechten.

Daher sollten Sie mit dem, in was Sie investieren, vorsichtig sein. Es gibt eine Reihe von Pyramiden- und Ponzi-Systemen, die als Blockchain-Projekte getarnt sind. Machen Sie Ihre eigenen Nachforschungen (DYOR) bevor Sie investieren, um Ihre eigenen Schlussfolgerungen dar√ľber zu ziehen, ob eine Investitionsgelegenheit legitim ist.

 

ERC-20, ERC-1155, ERC-223, ERC-721 ‚Äď was ist der Unterschied?

ERC-20 war der erste (und bis heute populärste) Ethereum-Token-Standard, aber er ist bei weitem nicht der einzige. Im Laufe der Jahre sind viele andere entstanden, die entweder Verbesserungen zu ERC-20 vorschlugen oder versuchten, ganz andere Ziele zu erreichen.

Einige der weniger verbreiteten Standards sind diejenigen, die bei nicht fungiblen Tokens (NFTs) verwendet werden. Manchmal profitiert Ihr Anwendungsfall tatsächlich davon, dass Sie einzigartige Token mit unterschiedlichen Attributen haben. Wenn Sie ein einzigartiges Kunstwerk, einen Gegenstand in einem Computerspiel usw. tokenisieren möchten, könnte einer dieser Vertragstypen attraktiver sein.
Der Standard ERC-721 wurde zum Beispiel f√ľr die √§u√üerst beliebte CryptoKitties DApp verwendet. Ein solcher Vertrag sieht ein API f√ľr Benutzer vor, um ihre eigenen nicht fungiblen Token zu minten und Metadaten (Bilder, Beschreibungen usw.) zu kodieren.¬†

Der Standard ERC-1155 k√∂nnte als eine Verbesserung sowohl gegen√ľber ERC-721 als auch gegen√ľber ERC-20 angesehen werden. Er umrei√üt einen Standard, der sowohl fungible als auch nicht fungible Tokens im selben Vertrag unterst√ľtzt.

Andere Optionen wie ERC-223 oder ERC-621 zielen darauf ab, die Benutzerfreundlichkeit zu verbessern. Ersteres sieht Sicherheitsvorkehrungen vor, um versehentliche Token-Transfers zu verhindern. Die zweite Option bietet zusätzliche Funktionen zur Erhöhung und Verringerung des Token-Angebots.

Weitere Informationen zum Thema NFTs finden Sie unter Ein Leitfaden f√ľr Krypto-Sammelobjekte und Nicht-Fungible Token (NFTs).


Fazit

Der ERC-20-Standard dominiert seit Jahren den Krypto-Asset-Bereich, und es ist nicht schwer zu erkennen, warum. Mit relativer Leichtigkeit kann jeder einen einfachen Vertrag f√ľr ein breites Spektrum von Anwendungsf√§llen (Utility-Token, Stablecoins usw.) einsetzen. Allerdings fehlen dem ERC-20 einige der Funktionen, die durch andere Standards m√∂glich gemacht wurden. Es bleibt abzuwarten, ob nachfolgende Vertragstypen an seine Stelle treten werden.