Newsticker

ERC20: Die Basis der meisten ICO

Themenschwerpunkt ICO

Plastik-Token. Bild von Mauquoy Token Company via flickr.com. Lizenz: Creative Commons

Die meisten ICOs benutzen den ERC20-Standard von Ethereum. Wir schauen uns den Contract an und erklären, was er anders macht als andere Blockchain-Token wie Colored Coins – und warum er den Blockchain-Token zum Durchbruch verholfen hat.

Auf Coinmarketcap.com findet man eine Liste der wertvollsten Blockchain-Token. Ein Blick auf die Top-20-Token zeigt, dass 16 davon auf Basis von Ethereum laufen. Wenn man in den Top-100 Token weiter nach unten scrollt, wird man dies bestätigen. Token, die nicht Ethereum benutzen, sind die absolute Ausnahme.

Aber warum? Warum hat sich Ethereum in rasend schnellem Tempo als Standard für Token durchgesetzt – während schon seit rund 2013 daran gearbeitet wird, Token auf Bitcoin aufzustülpen? Die Antwort dürfte im ERC20-Standard liegen.

Aber bevor wir uns diesem bemerkenswerten Standard widmen, schauen wir uns an, wie man vor ERC20 Token auf die Blockchain gebracht hat.

Omni, Counterparty, Colored Coins: Token auf Bitcoin-Basis

Eine ICO, Initial Coin Offering, meint, dass man virtuelle Coins nicht wie bei Bitcoin durch Miner entstehen lässt, sondern sie vorab verkauft. Um dies zu tun, ist es praktisch, ein Token auf eine Blockchain zu setzen, das sich wie eine native Blockchain-Währung – etwa Bitcoin oder Ether – verhält, aber eben nicht durch die Miner geschöpft wird, und zudem etwas anderes repräsentiert. Eine ICO ist nicht die einzige, aber bislang die bei weitem erfolgreichste Anwendung von Blockchain-Token.

Im Jahr 2013 bildeten sich zwei Konzepte, um Token auf die Bitcoin-Blockchain zu bringen: Mastercoin und Colored Coins. Mastercoin wurde heute zu Counterparty und Omni, während sich Colored Coins in mehrere Protokolle wie Open Assets und Subprojekte aufspaltete. Alle diese Konzepte haben gemein, dass sie die Token in Bitcoin-Transaktionen hineinschreiben. Dazu benutzen sie das OP_Return-Skript, mit dem es möglich ist, einige byte Daten an eine Transaktion anzuhängen.

Ein Beispiel für eine Omni-Transaktion ist hier, ein Beispiel für eine Colored-Coins-Transaktion dort. Um das Skript zu sehen, muss man “Skript und Coinbase anzeigen” anklicken.

Per OP_Return werden Meta-Informationen in eine Transaktion gepackt.

Mithilfe von OP_Return wurden bereits diverse Token in die Bitcoin-Blockchain einprogrammiert. Tether etwa nutzt Omni, um Euro, Dollar und Gold über die Bitcoin-Blockchain zu versenden. Praktisch gesehen wird einfach die Nachricht “Ich bin ein Dollar” auf eine Bitcoin-Münze geschrieben. Spezielle Wallets sind dann in der Lage, diese Botschaft zu lesen.

Solche Token auf Bitcoins funktionieren einigermaßen. Sie haben aber einige Nachteile. Am gravierendsten dürfte sein, dass die Token nicht originär auf der Blockchain gespeichert sind. Sie sind ja lediglich eine Nachricht, die einer Transaktion anhängt, und dies meist nur als Hash der Nachricht. Anders als die Signatur einer Transaktion oder der versendete Betrag Bitcoin sind diese Nachrichten keine natürlichen Informationen der Blockchain. Wie ein Screenshot eines Textes sind sie informationstechnisch ein Fremdkörper.

Dadurch fallen mehrere der Prüfungen weg, die das Bitcoin-Netzwerk den Bitcoin-Transaktionen unterzieht. So validieren die Bitcoin-Knoten und -Miner nicht, ob die Guthaben in Token gedeckt sind. Sie werden es gar nicht bemerken, wenn ein Token gefälscht oder doppelt ausgegeben wird. Ebenso kontrollieren die Bitcoin-Knoten nicht, ob Token rechtmäßig entstehen, also ob sie auf einen in welcher Weise auch immer validierten Herausgeber zurückgehen.

Natürlich lassen sich diese Probleme durch Protokolle lösen, die auf Bitcoin aufgesetzt werden. Man kann die Token mit Daten in einer Blockchain-externen Datenbank abgleichen, die Kette der Transaktionen von Token bis an ihren Ursprung nachverfolgen und das gesamte Guthaben aller Token in den Transaktionen abgleichen oder an die Anzahl versendeter Satoshi anpassen.

All das funktioniert und wird praktiziert. Allerdings sorgt es dafür, dass es keinen echten Token-Standard gibt, sondern mehrere Protokolle versuchen, diese Probleme auf ihre Weise zu lösen. Es sorgt auch dafür, dass es eine Art Hack ist, auf diese Weise Token auf die Blockchain aufzupfriemeln, und das schließlich dürfte auch der Grund sein, weshalb keines der populären Bitcoin-Wallets bisher Token-Protokolle implementiert hat, obwohl es diese seit mehr als 3 Jahren gibt. Es ist einfach eine schmutzige Methode.

Was ERC20 anders macht

Ende 2015 haben die Ethereum-Entwickler Fabian Vogelsteller und Vitalik Buterin den ERC20 Token Standard veröffentlicht. Dieser ist “ein Standard Interface für Token” auf der Ethereum Blockchain. Dieser enthält “die Basisfunktion, Token zu transferieren” und soll es jedem Token auf Ethereum erlauben, “von anderen Anwendungen, von Wallets zu dezentralen Börsen, benutzt zu werden.”

Der Erfolg der ERC20-Token ist nicht von der Hand zu weisen: Sie werden von fast allen Ethereum-Wallets, seien es Clients wie Parity oder Geth, seien es Hardware-Wallets wie Ledger oder Trezor, unterstützt; es gibt mittlerweile hunderte von ERC20-Token; und die meisten Altcoin-Börsen erlauben den Handel mit zahlreichen ERC20-Token. Das Standard-Format wurde ohne Zweifel zu der Erfolgsgeschichte, die die Token auf Bitcoin-Basis niemals werden konnten.

Aber warum?

Um diese Frage zu beantworten, muss man verstehen, das ERC20 Token so gut wie nichts mit Colored Coins oder Omni-Token gemeinsam haben. Ethereums Virtual Machine erlaubt es, komplexe Smart Contracts zu bilden und die Wallets mit diesen interagieren zu lassen. Während man sich die Token auf Bitcoin-Basis eher wie Geldscheine vorstellen kann, auf die etwas geschrieben wurde, kann man sich ERC20-Token wie einen Buchhalter auf der Blockchain vorstellen.

Ein ERC20 Smart Contract führt Buch über alle Besitzer der Token. Er definiert, wie viele Token es insgesamt gibt, und beinhaltet eine Liste, welchen Adressen wie viele Token zugewiesen wurden. Hier ist ein Beispiel, wie Etherscan.io das ICONOMI-Token darstellt:

Die Besitzer von ICONOMI-Token, wie sie der Contract auf der Ethereum-Blockchain angibt. Quelle: Etherscan.io

Wenn man nun ein ERC20-Token an eine andere Adresse überweist, macht man keine Transaktion an diese Adresse, sondern beauftragt den Token-Contract damit, sein Besitzer-Verhältnis zu ändern. Der Contract streicht die Token, die man überweist, von der eigenen Adresse weg, und schreibt sie dem Empfänger gut. Man interagiert also nicht direkt mit dem Empfänger, sondern lediglich mit dem Contract.

Der Unterschied ist ziemlich wichtig. Er macht die Token zum natürlichen Inhalt der Datenstruktur der Blockchain. Denn alle Knoten im Ethereum-Netzwerk prüfen, ob ein Miner einen Contract korrekt ausgeführt hat. Sie validieren damit, ob der Token-Contract das korrekte Guthaben hat und ob er Transaktionen richtig verarbeitet hat. Anders als bei den Token auf Bitcoin-Basis wird jede Aktivität der ERC20-Token vom Netzwerk natürlich und unvermeidbar geprüft und verarbeitet.

Der Client muss keine externen Datenbanken konsultieren, keine Werte abgleichen, keine Transaktionen rückgängig verfolgen. Er muss lediglich ein Guthaben abfragen, das öffentlich in einem Smart Contract verzeichnet ist. Daher ist die Integration von ERC20-Token in Wallets so einfach möglich.

Wie benutzt man ERC20-Token?

Es ist an sich recht einfach, ERC20-Token aktiv und passiv zu verwenden. Clients wie Geth oder Parity haben vorformulierte ERC20-Verträge, und grundsätzlich ist es genauso einfach, ein Token zu bilden, wie mit WordPress eine Webseite zu bauen.

Dennoch sollte man sich mit der Materie und der Programmierung mit Solidity etwas auskennen, um ernsthaft ein solches Token herauszugeben. Es ist kein Hexenwerk, sollte aber doch nicht ohne Profi getan werden. Vor allem dann, wenn Geld im Spiel ist.

Für User ist es sehr einfach, ein solches Token zu benutzen. Viele Wallets, etwa Ledger und Trezor, aber auch Jaxx und Exodus, unterstützen bereits einige ausgewählte Token. Man kann sie dann wie normale Kryptowährungen verwenden. Der Ethereum-Client Parity greift auf ein dezentrales Register zu, in welchem einige Token registriert sind. Er erkennt dann in der Wallet, wenn auf einer Adresse, die der User besitzt, ein Token liegt, und zeigt dieses als Symbol in der Wallet an.

Aber selbst wenn das Token nicht registriert ist, lässt es sich mit Parity oder Geth sehr leicht benutzen. Denn jeder ERC20-Contract hört auf dieselbe ABI. Eine ABI (Application Binary Interface) ist bei Ethereum eine Art Schnittstelle zwischen Wallet und Smart  Contract. Sie beschreibt in einer für die Wallet lesbaren Form die Befehle, auf die der Contract hört. Der Standardisierung sei Dank können Parity und Geth einfach jede beliebige Adresse anfunken und testen, ob die ERC20-ABI eine Antwort bekommt. Wenn ja, kann die Wallet das Token benutzen.

Es ist also unschlagbar einfach, mit dem ERC20-Standard Token auf die Blockchain zu bringen. Die letzten zwei Jahre haben eindrücklich demonstriert, welchen Einfluss dies haben kann: Während Blockchain-Token vor ERC20 so gut wie keine Bedeutung hatten, ist ihre Rolle im Krypto-Ökosystem seit dem Ethereum-Standard geradezu explodiert. Die zwei Milliarden Dollar, die die ICOs bis heute in die Kassen von Startups gespült haben, sind vor allem ein Resultat davon, dass ERC20 die Blockchain-Token vereinfach und standardisiert hat.

 

Über Christoph Bergmann (2638 Artikel)
Das Bitcoinblog wird von Bitcoin.de gesponsort, ist inhaltlich aber unabhängig und gibt die Meinung des Redakteurs Christoph Bergmann wieder ---

6 Kommentare zu ERC20: Die Basis der meisten ICO

  1. Ein wieder sehr gelungener Artikel. Danke dafür.
    Ein Verbesserungsvorschlag hätte ich doch, die beigefügten Bilder lassen sich nur schwer lesen, die Konkurrenz hat es gelöst, indem man ein Bild anklickt vergrößert es sich auf das Orginal.

  2. “Wenn man nun ein ERC20-Token an eine andere Adresse überweist, macht man keine Transaktion an diese Adresse, sondern beauftragt den Token-Contract damit, sein Besitzer-Verhältnis zu ändern. Der Contract streicht die Token, die man überweist, von der eigenen Adresse weg, und schreibt sie dem Empfänger gut. Man interagiert also nicht direkt mit dem Empfänger, sondern lediglich mit dem Contract.”

    Und ich fragte mich jedesmal wie soviele token auf der Ethereum Blockchain transferiert werden können, ohne das es zu Verzögerungen kommen kann. 😀

  3. „Dadurch fallen mehrere der Prüfungen weg, die das Bitcoin-Netzwerk den Bitcoin-Transaktionen unterzieht. So validieren die Bitcoin-Knoten und -Miner nicht, ob die Guthaben in Token gedeckt sind. Sie werden es gar nicht bemerken, wenn ein Token gefälscht oder doppelt ausgegeben wird. Ebenso kontrollieren die Bitcoin-Knoten nicht, ob Token rechtmäßig entstehen, also ob sie auf einen in welcher Weise auch immer validierten Herausgeber zurückgehen.

    Natürlich lassen sich diese Probleme durch Protokolle lösen, die auf Bitcoin aufgesetzt werden. Man kann die Token mit Daten in einer Blockchain-externen Datenbank abgleichen, die Kette der Transaktionen von Token bis an ihren Ursprung nachverfolgen und das gesamte Guthaben aller Token in den Transaktionen abgleichen oder an die Anzahl versendeter Satoshi anpassen.

    All das funktioniert und wird praktiziert. Allerdings sorgt es dafür, dass es keinen echten Token-Standard gibt, sondern mehrere Protokolle versuchen, diese Probleme auf ihre Weise zu lösen.“

    Das wird also trotz der Probleme damit alles gemacht. Das führt mich zu meiner Frage: Wieso???

    Wieso macht man das alles, wenn es mit ERC20 doch viel einfacher, sicherer und generell besser geht? Ist man damit vielleicht mit größerer Wahrscheinlichkeit erfolgreich, weil es auf der Bitcoin-Blockchain viel weniger konkurrierende Token gibt? Viel Geld per ICO einzusammeln, das ist mit den ERC20-Token eine große Ausnahme, denn wie schon die lange Liste mit den vielen Token zeigt, kann das nicht der Normalfall sein. Gibt es auch Nicht-ERC20-Token auf der Ethereum-Blockchain?
    らんま

  4. >Wieso macht man das alles,[..]
    Weil es geht, weil man ETH nicht mag whatever…abgesehen davon sind die meistens BTC-Token nur Proof of Concept bzw. stammen aus Zeiten als Ethereum noch nicht online war.
    Ich kenne keine BTC-Token, die im letzten Jahr published wurden. Aber da lasse ichmich gerne aufklären

    > Viel Geld per ICO einzusammeln, das ist mit den ERC20-Token eine große Ausnahme, denn wie schon die lange Liste mit den vielen Token zeigt[..]
    Umgekehrt wird ein Schuh draus. Die frühen ETH-/ERC20 Token haben durchaus sehr viel Geld eingesammelt (siehe DAO mit 160Mio in 4 Wochen). Nur weil es jetzt so einfach wurde, wollen halt viele einen Teil vom Kuchen abhaben. Viel davon ist aber auch Scam.
    Ich glaube nicht, dass man mit einem Token auf BTC mehr Geld einsammelt als auf ETH. Dem Investor ist die grundlegende Technologie doch egal.

    >Gibt es auch Nicht-ERC20-Token auf der Ethereum-Blockchain?
    Sicherlich, nur warum sollte man die nutzen? Bei ERC-20 haben viele schlaue Leute den Code analysiert. Daher ist dieser recht vertrauenswürdig, jedenfallls mehr als eine selbstgestrickte Lösung. Das ist wie bei Security-Sachen im Allgemeinen. Man sollte niemals versuchen z.B. Verschlüsselungs-Algos selbst zu basteln, sondern immer auf die bestehenden Standards zurück greifen.

    • „Sicherlich, nur warum sollte man die nutzen? Bei ERC-20 haben viele schlaue Leute den Code analysiert. Daher ist dieser recht vertrauenswürdig, jedenfallls mehr als eine selbstgestrickte Lösung.“

      Genau deshalb. Die Vertrauenswürdigkeit dürfte jeden Scam erschweren. Nachdem Scams gleichermaßen gekauft werden wie andere Token, hätte ein weniger vertrauenswürdiger Token vielleicht Vorteile für manche Herausgeber. Andererseits ist das mit mehr Arbeit verbunden, während die meisten Scams mit ERC20 funktionieren. Also war das wohl zu kompliziert gedacht.
      らんま

  5. super Artikel!

Schreibe eine Antwort zu oldmanAntwort abbrechen

%d Bloggern gefällt das: