löst der erc77 den erc20 ab

Der ERC20 Token-Standard ist wohl der gängigste und bekannteste Ethereum Technik-Standard. Doch jetzt bekommt der ERC20-Standard Konkurrenz. Der neue ERC777 soll die größten Probleme des ERC20 lösen. Was steckt dahinter?

Entstehung des ERC20-Standard

Das Akronym ERC steht für Ethereum Aufforderung für Kommentare (engl.: Ethereum Request for Comments). Es handelt sich dabei um einen Themenbereich innerhalb des „Ethereum Improvement Proposals“ (kurz: EIP) Repositoriums – einer Sammelstelle für Verbesserungsvorschläge.
Diese Sammelstelle befindet sich auf dem Github-Account der Ethereum Foundation.
Github ist ein webbasierter Onlinedienst, welcher es Entwicklern aus aller Welt ermöglicht gemeinsam an Software-Projekten zu arbeiten.

ERC20 hat sich aus dem zwanzigsten Verbesserungsvorschlag  im „EIP“-Repositorium ergeben. Dieser wurde am 19. November 2015 von Fabian Vogelsteller und Vitalik Buterin vorgeschlagen.
In einem Interviews mit Base58 erzählt Fabian Vogelsteller unter anderem von der Erschaffung des ERC20-Standards.

Durch die Eigenschaft des ERC20, eigene Token auf Basis der Ethereum-Blockchain schnell und unkompliziert zu erstellen, etablierte sich der ERC20 in den darauffolgenden Jahren zum populärsten und gängigsten Token-Standard. Er trug dadurch wesentlich zum Ethereum- und ICO-Boom bei.
Mit mehr als 500 unterschiedlichen Ethereum-Token, welche diesen Standard nutzen, liegt der kumulierte Marktwert bei rund 25 Milliarden US-Dollar (Stand 2018).

Wie funktioniert der ERC20-Token?

Grundsätzlich handelt es sich bei ERC20 um eine Vorlage bzw. einen Standard für einen Smart Contract  auf der Ethereum Blockchain, welcher Adressen und die dazugehörigen Kontostände aufbewahrt.
Anders ausgedrückt: Der ERC20 Token-Standard definiert eine Liste an Basisfunktionen und Ereignissen, die ein auf diesem Standard programmierter Token implementieren muss.
Die Entwickler des Token können die standardisierte Programmfunktionen nutzen und ihre Token transferierbar und nutzbar machen.
Der Smart Contract dieses Token-Standards definiert meistens folgende Details, welche die Nutzer über den Token informieren sollen:

  1. Der Token-Name, unter welchem der Token-Vertrag gespeichert wird.
  2. Das Token-Kürzel, welches meisten aus 3-4 Buchstaben besteht.
  3. Die Anzahl an Dezimalstellen, in denen der Token geführt wird.
  4. Eine Liste der Token-Halter und ihren Token-Bilanzen

Dieser Standard legt fest, dass der Vertragsersteller eigene standardisierte Token herausgeben kann.

Die Gesamtmenge der verfügbaren Token erschließt sich aus der Summe der Kontostände.
Die Möglichkeit diese Menge zu erhöhen oder zu verringern wird durch den Token-Standard gegeben:
Entweder indem der Smart Contract neue Token ausschüttet (engl.: mint) oder indem der Smart Contract die Token von den Bilanzen entnimmt und vernichtet (engl.: burn). Dies ist jedoch abhängig von dem Code und den Regeln welche im Smart Contract definiert werden.

Der Nachteil des ERC20-Standards

Die ERC20-Token lassen sich zwischen den unterschiedlichen Ethereum-Adressen bewegen. Dabei gibt es aber einen grundlegenden Unterschied zu regulären Ether-Transaktionen auf der Ethereum-Blockchain, denn:
Eine Ether-Überweisung, besteht aus einem Transaktionsfeld für den Transaktionsbetrag und einem Feld für zusätzliche Daten, dem Informationsfeld.
In der Token-Transaktion steht die Information über die Anzahl der zu versendenden Token jedoch im zweiten Feld. Aus diesem Grund sind Überweisungen zwischen den Adressen zweier Parteien zwar möglich, doch den Token als Auslöser für eine Funktion eines anderen Smart Contracts zu nutzen funktioniert nicht.

Sendet ein Nutzer eine Transaktion an einen Smart Contract und wird diese nicht von dem Smart Contract erkannt, gehen auf diesem Weg die Ether aus der Transaktion unwiderruflich verloren.

Lösungsvorschlag durch ERC20

Das Problem zusätzlich zum Token-Transfer Informationen zu versenden, versucht der ERC20 zu umgehen, indem es den Prozess in zwei Schritte aufteilt.

Der erste Schritt ist die approval ( ) Funktion. Mit dieser erteilt der Nutzer dem ERC20-Vertrag die Erlaubnis, dass eine bestimmte Anzahl an Token von seiner Adresse abgebucht werden darf.
Nachdem der Nutzer diese Erlaubnis erteilt hat, kann er einen anderen Vertrag dazu auffordern, die gewünschte Funktion auszuführen. Als Gegenleistung bittet der Smart Contract mit der transferFrom ( ) Funktion den ERC20-Token-Vertrag eine vorgegebene Zahlung von der Adresse des Nutzers auf die eigene Adresse zu transferieren.

Ablauf des ERC20 Lösungsvorschlag durch die approve( ) & transferFrom( ) Funktionen. [Quelle: Alexander Culum]
Es ist also zu erkennen, dass zwei Transaktionen des Nutzers benötigt werden. Eine klare Ineffizienz des ERC20-Token-Standards.

ERC777: Ein fortschrittlicher Token-Standard

Zwar gibt es mit dem ERC223 und dem ERC677 bereits Versuche diese Ineffizienz zu lösen, jedoch ist keiner der Vorschläge besonders erfolgreich.

Der von Jordi Baylina, Jacques Dafflon und Thomas Shababi gemachte ERC777-Vorschlag A New Advanced Token Standard #777, soll nun eine neue Möglichkeit bieten mit einem Token-Vertrag zu interagieren. Zeitgleich soll die Rückwärtskompatibilität mit einem ERC20 Smart Contract bewahrt werden.

Token wie Ether Transferieren

Die erste wichtige Neuerung ist, die Definition einer send ()-Funktion. Die Token-Transaktion besteht nun aus einem Betragsfeld und einem data Bit-Feld und ein ähnliches operatorData-Feld. So lassen sich die Parameter wieder frei durch den Token-Nutzer und den Token-Betreiber wählen, um so Daten an den Empfänger weiterzuleiten.

Der Token lässt sich dadurch wie ursprüngliche Ether nutzen.

Die Token send()-Funktion des ERC777. [Quelle: Jordi Baylina, DappCon2018]

ERC777 führt Smart Contract Operators EIn

Des Weiteren führt der ERC777 an Stelle der allowance Mechanismen “Operators ” ein.
“Operators” sind vertrauenswürdige Smart Contracts, welche Beträge im Namen des Nutzers bewegen können. Sie lassen sich durch die Nutzer des ERC777 autorisieren oder annullieren. Somit können die Token-Verträge nachträglich verbessert werden. Dies ermöglicht, dem Token-System zu einem späteren Zeitpunkt weitere Zusatzeigenschaften zu geben. Diese können z.B Scheck-Verarbeiter, Wiederherstellung Services oder aber auch Mitgliedschaft Zahlungsmanager sein.

hook verhindert lock-up

Durch einen tokenReceived Hook, ist es nun sowohl Verträgen als auch Adressen möglich den Eingang von Token zu kontrollieren und ggf. abzulehnen. Er ermöglicht es dem Token-Empfänger, gleich beim Eingang eines Token automatisch einen Code auszuführen. Wenn man zum Beispiel versehentlich Token an eine Smart Contract Adresse versendet, gehen diese nicht verloren, sondern können automatisch von dem Smart Contract zurückgesendet werden. Dies verhindert die zuvor beschriebene Ineffizienz des ERC20, bei der zwei Transaktionen (approve / transferFrom) benötigt werden um Token an einen Vertrag zu senden.

rückwärtskompatibilität

Zwar ersetzt der ERC777 die Funktionen transfer ( ) und transferFrom ( ) mit den Funktionen send und operatorSend, aber alle ERC20-Funktionen (transfer, transferFrom, approve und allowance) können weiterhin genutzt werden.

Zudem lassen sich Dezimalstellen implementieren. Auch wenn dies im ERC777 nicht mehr zwingend notwendig ist – auf diese Art und Weise kann ein Token-Vertrag sowohl ERC20 als auch ERC777 parallel implementieren. Die read-only-Funktionen beider Token-Standards überlappen sich ebenfalls problemlos.

ERC777 Nachteil: Steigende Transaktionskosten

Ein kleines Manko sind jedoch die Gas-Kosten. Jordi Baylina sagte auf der DAppCon 2018, dass diese voraussichtlich ein wenig höher sein werden als beim ERC20. Für ihn ist dieser Aufpreis allerdings marginal, wenn man all die zusätzlichen Funktionen und Möglichkeiten betrachtet.

Diese Aussage ist mit Skepsis zu betrachten. Denn eine Erhöhung der Gas-Kosten führt schließlich auch zum Anstieg der Transaktionskosten einfacher Token-Transfers. Diese machen derzeit den größten Teil aller Smart Contract-Operationen aus.

Derzeit befindet sich der ERC777 im Last Call und soll im August 2018 finalisiert werden. Nach der Finalisierung kann mit der Erschaffung von neuen Token Smart Contracts gemäß dem ERC777 Token-Standard begonnen werden. Es bleibt also mit Spannung abzuwarten, ob der ERC777 es schaffen wird, den veralteten ERC20 als meist genutzten Token-Standard abzulösen, um so eine neue Ära im Ethereum Universum einzuläuten.

Bild: [A. Trapeznikova/Shutterstock]

1 KOMMENTAR

  1. Danke für diesen interessanten Artikel. ERC777 ist erstaunlich und ist der zukünftige Ethereum-Standard, wegen der Mächtigkeit, Sicherheit und Skalierbarkeit. ERC777 bringt viele großartige Funktionen für die Zukunft und ein hohes Sicherheitsniveau. Der erste ERC777-Token ist bereits veröffentlicht und sieht fantastisch aus: CALL (von GlobalCryptoAlliance GCA). Alles ist eine zukünftige Währung und bereit für die Massenannahme mit hoher Skalierbarkeit. ERC777 sollte eine nächste Revolution sein!
    Betrachtet man den CALL-Token von GCA (erstes ERC777-Token, https://bitcointalk.org/index.php?topic=4869498.0), hier sind einige neue Funktionen, die von ERC777 unterstützt werden:
    – Operatoren, die wie intelligente Bots arbeiten, die Token-Inhabern helfen
    – Kompatibilität mit jedem ERC20 Wallet
    – Aktualisierbare Token-Funktionen, die eine Verbesserung ermöglichen
    – Erhöhte Sicherheit
    – Neueste fortschrittliche Dapp-freundliche Funktionen
    – Neueste Philosophie der echten vollständigen Kontrolle der Konten für die Inhaber
    – Kapazität zum Ausführen von 255 Zahlungen in einer Transaktion
    Etc … etc … mehr Details auf ihrer Website (gcalliance.io).
    ERC777 ist eine gute Nachricht für Blockchain und Ethereum!

HINTERLASSEN SIE EINE ANTWORT

Please enter your comment!
Please enter your name here