Was sind ERC20-Token??

TLDR:

ERC-20-Token sind Token, die ausschließlich auf der Ethereum-Plattform entwickelt und verwendet werden.

Sie folgen einer Liste von Standards, damit sie gemeinsam genutzt, gegen andere Token ausgetauscht oder in eine Krypto-Brieftasche übertragen werden können.

Die Ethereum-Community hat diese Standards mit drei optionalen und sechs verbindlichen Regeln erstellt.

Es ist schwer in Worte zu fassen, welchen Einfluss ERC20-Token auf die Kryptowelt hatten. Sie sind im Alleingang für die Milliarden-Dollar-ICO-Industrie verantwortlich und haben eine große Rolle bei der Verbreitung von Kryptowährungen gespielt. Bevor wir uns damit befassen, was sie sind und wie sie sich ausgewirkt haben, ist eine kleine Geschichtsstunde angebracht.

Der Weg zu intelligenten Verträgen

Die Blockchain-Technologie und Kryptowährungen traten in den Vordergrund, als ein anonymer Entwickler, der sich Satoshi Nakamoto nannte, Bitcoin entwickelte. Bitcoin war aus mehreren Gründen revolutionär. Zum ersten Mal hatten wir ein Währungssystem, das den Menschen gehörte. Sie können ein Bitcoin an jeden mit einer Bitcoin-Brieftasche senden, ohne eine Bank durchlaufen zu müssen.

Um die Welt in die Blockchain-Technologie einzuführen, wird Bitcoin allgemein als “Blockchain der ersten Generation” bezeichnet. Es gibt jedoch eine enorme Einschränkung in der Art und Weise, wie Bitcoin seine Transaktionen durchführt.

Es stellt sich heraus, dass Transaktionen nicht immer so einfach sein müssen.

Wenn Sie Ihrem Freund in einer einfachen Eins-zu-Eins-Transaktion etwas Geld senden möchten, ist Bitcoin in diesem Szenario ideal. Was ist jedoch, wenn Sie Ihrem Freund nur dann etwas Geld senden möchten, wenn er eine bestimmte Anzahl von Aufgaben innerhalb einer bestimmten Frist erledigt hat? Wie können Sie den Transaktionscode manipulieren, um solche komplexen Transaktionen zu berücksichtigen??

Dies ist die Frage, die Vitalik Buterin durch die Schaffung von Ethereum gelöst hat.

Ethereum und intelligente Verträge

Vitalik Buterin erkannte, dass die Blockchain-Technologie weitaus nützlicher war als nur ein Zahlungssystem. Laut ihrer Website.

„Ethereum ist eine dezentrale Plattform, auf der intelligente Verträge ausgeführt werden: Anwendungen, die genau wie programmiert ausgeführt werden, ohne dass Ausfallzeiten, Zensur, Betrug oder Eingriffe Dritter möglich sind. Diese Apps laufen auf einer benutzerdefinierten Blockchain, einer enorm leistungsfähigen gemeinsamen globalen Infrastruktur, die Wert bewegen und das Eigentum an Eigentum darstellen kann. “

Einfacher ausgedrückt plant Ethereum, ein dezentraler Supercomputer zu werden, bei dem jeder überall Rechenleistung vermieten und dezentrale Anwendungen (Dapps) erstellen kann, die auf der Ethereum-Plattform ausgeführt werden können.

Also, wie macht man diese Dapps? Dafür müssen wir uns mit intelligenten Verträgen befassen

Intelligente Verträge sind automatisierte Verträge. Sie werden selbst ausgeführt, wobei bestimmte Anweisungen in den Code geschrieben werden, die ausgeführt werden, wenn bestimmte Bedingungen erfüllt sind.

ERC20-Token: Die Ursprungsgeschichte

Weitere Informationen zu intelligenten Verträgen finden Sie in unsere ausführliche Anleitung hier.

Mit intelligenten Verträgen werden die Dinge im Ethereum-Ökosystem erledigt. Wenn jemand eine bestimmte Aufgabe in Ethereum erledigen möchte, initiiert er einen intelligenten Vertrag mit einer oder mehreren Personen.

Kehren wir zu unserem vorherigen Abschnitt zurück.

Mit Smart Contracts können Sie komplizierte Transaktionsdetails in einem vereinfachten Format codieren. Sie wurden von Nick Szabo konzipiert. Ihm zufolge ist das beste reale Arbeitsbeispiel für den intelligenten Vertrag ein Verkaufsautomat.

Wenn Sie etwas vom Automaten wollen, zahlen Sie einfach Ihr Geld in den Automaten ein, wählen dann aus, was Sie wollen, und der Automat gibt es Ihnen. Sie interagieren direkt mit der Maschine, ohne dass eine dritte Person daran beteiligt ist. Solange Sie dem folgenden Prozess folgen:

  • Einzahlung Ihres Geldes
  • Wählen Sie Ihr Produkt

Sie werden bekommen, wonach Sie fragen.

Angenommen, Sie und Ihre Freundin Alice möchten mithilfe eines intelligenten Vertrags miteinander interagieren.

Der Smart Contract funktioniert genauso. Sie sperren einen Teil Ihres Äthers (des Ethereum-Tokens) im Smart-Vertrag ein. Voraussetzung ist, dass der Vertrag das Geld freischaltet und an ihre Brieftasche sendet, sobald Alice einige Aufgaben erledigt hat.

Intelligente Verträge und ICOs

Intelligente Verträge eröffneten Entwicklern eine völlig neue Welt zum Erstellen und Innovieren. Diese Entwickler brauchten jedoch eine Möglichkeit, ihre Projekte zu finanzieren.

Die Lösung? ICOs.

ICOs oder Initial Coin Offerings sind die Kryptowährungsversion der Initial Public Offerings oder IPOs. Im Vergleich zu IPOs sind ICOs jedoch aus folgenden Gründen viel unternehmerfreundlicher als IPOs

  • Erstens ist es viel einfacher, Ihr Projekt in ICOs zu präsentieren. Sie müssen lediglich ein Whitepaper Ihres Projekts vorlegen.
  • Jeder kann in ein Projekt investieren, an dem er interessiert ist, indem er die Token dieses bestimmten DAPP kauft und selbst Teil des Projekts wird.

Es gibt noch eine Sache, die Sie wissen müssen, bevor wir uns mit der Funktionsweise eines ICO befassen. Die Entwickler müssen etwas für die Investitionen geben. Dieses „Etwas“ nennt man Token.

 Um Ihnen eine sehr breite, nicht verallgemeinerte Definition zu geben, ist ein Token eine Darstellung von etwas in seinem bestimmten Ökosystem. Es könnte Wert, Einsatz, Stimmrecht oder irgendetwas sein. Ein Token ist nicht auf eine bestimmte Rolle beschränkt. es kann viele Rollen in seinem natürlichen Ökosystem erfüllen.

Welche „Rollen“ können die Token übernehmen??

  • Maut: Ein Token kann als Gateway zum Dapp fungieren. Grundsätzlich müssen Sie die Token halten, um auf die Dapp zugreifen zu können.
  • Wahlrecht: Die Token können die Inhaber auch zu bestimmten Stimmrechten berechtigen. Denken Sie an EOS. Wenn Sie EOS-Token halten, können Sie für Blockproduzenten stimmen.
  • Werteaustausch: Dies ist eine der häufigsten Rollen von Token im Ökosystem. Token können dazu beitragen, ein internes Wirtschaftssystem innerhalb der Anwendung zu erstellen.
  • Verbesserung der Benutzererfahrung: Das Token kann es den Inhabern auch ermöglichen, die Benutzererfahrung innerhalb der Grenzen der jeweiligen Umgebung zu bereichern. Z.B. In Brave (einem Webbrowser) erhalten Inhaber von BAT (in Brave verwendete Token) das Recht, das Kundenerlebnis zu bereichern, indem sie mit ihren Token Werbung oder andere aufmerksamkeitsbasierte Dienste auf der Brave-Plattform hinzufügen.
  • Währung: Kann als Wertspeicher verwendet werden, mit dem Transaktionen sowohl innerhalb als auch außerhalb des jeweiligen Ökosystems durchgeführt werden können.

Ok, bis jetzt haben wir Ihnen gesagt, wie intelligente Verträge, ICOs und Token funktionieren. Hier haben wir jedoch das erste Hindernis überwunden. Nehmen wir ein Beispiel für eine Spielhalle.

Die Videospiel-Spielhalle

ERC20-Token: Die Ursprungsgeschichte

Denken Sie an eine Videospielhalle der alten Schule. Was sind alle Schritte, die Sie unternehmen müssen, bevor Sie Ihr Spiel spielen können:

  1. Sie nehmen Ihr Fiat-Geld und wandeln es in Arcade-Münzen um.
  2. Sie verwenden die Arcade-Münzen, um Spiele in den Automaten zu spielen, indem Sie sie in den Schlitz einlegen. Die Schlitze sind für kreisförmige Münzen ausgelegt.
  3. Nachdem Sie fertig sind, nehmen Sie die übrig gebliebenen Münzen, falls vorhanden, und wandeln sie in Fiat-Geld um.

Können Sie also die Parallelen zwischen der Arcade- und der Smart Contract-Plattform herstellen??

Die Videospiel-Arcade-Automaten sind die Dapp, während die ausgegebenen Arcade-Münzen Ihre einheimischen Token sind. Sie müssen im Besitz dieser Münzen sein, um auf die Dienste Ihres Dapp zugreifen zu können.

Es gibt jedoch einen Problembereich dieses Systems.

Damit sie in den Schlitz des Automaten passen, müssen die Münzen eine bestimmte Abmessung haben. Was wäre, wenn bestimmte Maschinen zustande kämen, die die kreisförmigen Münzdesigns nicht akzeptierten und stattdessen eine quadratische Münzform bevorzugten??

Um das Geschäft reibungslos zu führen, muss der Arcade-Besitzer eine Grundregel festlegen. Alle Maschinen müssen so gebaut sein, dass sie kreisförmige Arcade-Münzen aufnehmen können. Es darf keine andere Form akzeptiert werden.

Dies ist im Wesentlichen die ERC20-Richtlinie.

Das Problem mit unterschiedlichem Token-Design

In den frühen Tagen schien es, dass jeder einzelne ICO-Token versuchte, das Rad in Bezug auf die Ausführung „neu zu erfinden“. Jeder dieser Token hatte seine eigene Liste von Funktionen. Dies führte nun zu einer ganzen Reihe neuer Probleme.

Um ein gesundes Ökosystem auf Ethereum zu schaffen, ist es unbedingt erforderlich, dass die darauf aufgebauten Dapps nahtlos miteinander interagieren können. Was passiert jedoch, wenn wir zwei Token haben, z. B. Token Alpha und Token Beta, und beide unterschiedliche intelligente Vertragsstrukturen haben??

Dazu müssen die Entwickler beide Verträge sorgfältig studieren und genau herausfinden, wie diese Token miteinander interagieren werden.

Dies ist kein gutes Zeichen für die Skalierbarkeit?

Wenn es 100 verschiedene Token mit 100 verschiedenen Verträgen gibt, erfordert die Eingrenzung aller Qualifikationen und Bedingungen, die erforderlich sind, um sicherzustellen, dass Transfers zwischen all diesen Token durchgeführt werden können, eine enorme Menge komplexer Berechnungen. Welches ist überhaupt kein ideales Szenario.

Es musste etwas getan werden und am 19. November 2015 fand Fabian Vogelsteller eine geniale Lösung.

Geben Sie ERC20-Token ein

ERC20-Token: Die Ursprungsgeschichte

Gemäß Wikipedia, ERC20 ist ein

Liste der Regeln, die ein Ethereum-Token implementieren muss, damit Entwickler programmieren können, wie neue Token im Ethereum-Ökosystem funktionieren. Der ERC-20-Token-Standard wurde bei Crowdfunding-Unternehmen beliebt, die an ICO-Fällen (Initial Coin Offering) arbeiten. Dies liegt an der einfachen Bereitstellung und dem Potenzial für die Interoperabilität mit anderen Ethereum-Token-Standards. “

Um es einfach zu halten, ist ERC20 ein Leitfaden für Regeln und Vorschriften, mit dessen Hilfe ein Entwurf für auf Ethereum basierende intelligente Verträge zur Erstellung ihrer Token erstellt werden kann. Der “ERC” steht für Ethereum Request for Comment, während die Nummer “20” die dieser Anfrage zugewiesene Nummer ist.

Nun, da Sie wissen, was ERC20 ist, lassen Sie uns sezieren Sie es noch weiter und sehen, was sich hinter den Kulissen abspielt.

Anatomie der ERC20-Token

Sie folgen einer Liste von Regeln, damit sie geteilt, gegen andere Token ausgetauscht oder in eine Krypto-Brieftasche übertragen werden können. Der ERC20-Standard besteht aus 3 optionalen Regeln und 6 verbindlichen Regeln.

Die verbindlichen Regeln lauten wie folgt:

  • totalSupply
  • Gleichgewicht von
  • Transfer
  • Übertragen von
  • genehmigen
  • Beihilfe

Andererseits sind die optionalen Regeln:

  • Token Name
  • Symbol
  • Dezimal (bis zu 18)

Erweitern wir zunächst die optionalen Regeln, bevor wir uns die 6 obligatorischen Regeln ansehen.

Die 3 optionalen Regeln

Auch wenn es nicht erforderlich ist, Ihre Token zu benennen, ist es dennoch wichtig, ihr eine Identität zu geben. Der Name wird wie folgt deklariert:

Zeichenfolge öffentliche Konstante name = “Token Name”;

Als nächstes haben wir Symbole. Wir können ihre Bedeutung einfach nicht unterschätzen. Das perfekte Beispiel dafür ist OmiseGO. Die Leute kennen OMG viel besser als OmiseGO. Ein eingängiges Symbol hilft beim besseren Branding. Die Art und Weise, wie sie deklariert werden, ist:

Zeichenfolge öffentliche Konstante symbol = “SYM”;

Schließlich haben wir die Teilbarkeit, die uns hilft, den niedrigstmöglichen Wert des Tokens zu bestimmen. Eine Teilbarkeit von 0 bedeutet, dass der niedrigste Wert des Tokens 1 ist. Eine Teilbarkeit von 2 bedeutet andererseits, dass sein niedrigster Wert 0,01 ist. Die maximal zulässige Anzahl von Dezimalstellen beträgt 18. Es wird wie folgt deklariert:

uint8 öffentliche konstante Dezimalstellen = 18;

Okay, jetzt gehen wir zu den 6 Regeln.

Die 6 verbindlichen Regeln

# 1 totalSupply

[totalSupply] gibt die Gesamtzahl der erstellten ERC-20-Token an. Der Zweck dieser Methode besteht darin, die Gesamtzahl der im Ökosystem schwebenden Token zu bestimmen.

Der Code sieht folgendermaßen aus:

Vertrag MyERCToken {

uint256 _totalSupply = 1000000;

Funktion totalSupply () Konstante gibt zurück (uint256 theTotalSupply) {

theTotalSupply = _totalSupply;

return theTotalSupply;

}}

}}

# 2 balanceOf

Die Funktion balanceOf gibt die Anzahl der Token zurück, die eine bestimmte Adresse, in diesem Fall der Vertragseigentümer, auf ihrem Konto hat.

Code sieht so aus:

Vertrag MyERCToken {

// Erstelle eine Tabelle, damit wir Adressen zuordnen können

// zu den damit verbundenen Salden

Zuordnung (Adresse => uint256) Salden;

// Inhaber dieses Vertrages

Adresse öffentlicher Eigentümer;

Funktion balanceOf (Adresse _Besitzer) Konstante gibt zurück (uint256 balance) {

// Den Restbetrag für die spezifische Adresse zurückgeben

Rückgabeguthaben [_owner];

}}

}}

# 3 genehmigen ()

Sobald der Kontostand überprüft wurde, kann der Vertragseigentümer dem Benutzer seine Zustimmung erteilen, die erforderliche Anzahl von Token von der Vertragsadresse abzuholen. Die Genehmigungsfunktion vergleicht die Transaktion auch mit dem Gesamtvorrat an Token, um sicherzustellen, dass keine oder zusätzliche Token fehlen. Mit anderen Worten, es stellt sicher, dass Fälschungen unmöglich sind.

Hinweis: “Msg.sender” ist die Adresse des Vertragsinhabers.

Vertrag MyERCToken {

// Erstelle eine Tabelle, damit wir sie zuordnen können

// die Adressen der Vertragsinhaber an

// diejenigen, die den Vertrag des Eigentümers nutzen dürfen

Zuordnung (Adresse => Zuordnung (Adresse => uint256)) erlaubt;

Funktion genehmigen (Adresse _spender, uint256 _amount) gibt zurück (bool Erfolg) {

erlaubt [msg.sender] [_ spender] = _amount;

// Das Ereignis auslösen "Die Genehmigung" eine Logik ausführen

// das hat es gehört

Genehmigung (msg.sender, _spender, _amount);

return true;

}}

}}

# 4 transfer ()

Nachdem alle Überprüfungen durchgeführt wurden und der Vertrag weiß, dass der Benutzer über die erforderliche Anzahl von Token verfügt, um die Transaktion auszuführen, kann der Vertragseigentümer diese Token mithilfe der Funktion transfer () senden.

Mit dieser Funktion kann der Vertragseigentümer einen bestimmten Betrag des Tokens wie bei einer herkömmlichen Kryptowährungstransaktion an eine andere Adresse senden und eine bestimmte Anzahl von Token von der Gesamtversorgung auf ein Benutzerkonto übertragen. Bevor das Spiel beginnen kann, müssen die Spieler ihre BLU vom Dealer erhalten.

Vertrag MyERCToken {

Zuordnung (Adresse => uint256) Salden;

// Hinweis: Diese Funktion gibt einen booleschen Wert zurück

// zeigt an, ob die Übertragung erfolgreich war

Funktionsübertragung (Adresse _to, uint256 _amount) gibt zurück (bool success) {

// Wenn der Absender über genügend Geld zum Senden verfügt

// und der Betrag ist nicht Null, dann senden an

// die angegebene Adresse

if (balanciert [msg.sender] >= _Betrag

&& _Menge > 0

&& Guthaben [_to] + _amount > Guthaben [_to]) {

Salden [msg.sender] – = _amount;

Guthaben [_to] + = _amount;

// Ein Übertragungsereignis für ein beliebiges Ereignis auslösen

// Logik, die zuhört

Transfer (msg.sender, _to, _amount);

return true;

} else {

falsch zurückgeben;

}}

}}

}}

# 5 transferFrom ()

Hmmm … warte, warte.

Wir haben die Übertragungsfunktion bereits behandelt. Warum haben wir eine andere??

Nehmen wir ein Beispiel, um zu sehen, warum transferFrom eine so hervorragende Ergänzung zum ERC20-Vertrag ist.

Wir alle müssen jeden Monat etwas Geld wie am Schnürchen bezahlen. Dies kann Ihre Miete, die Rechnungen usw. sein. Sie müssen nicht alle diese Beträge selbst bezahlen. Sie können jederzeit ein automatisches Zahlungssystem bei Ihren Banken einrichten, um diese Zahlungen zu erledigen.

Mit transferFrom () können Sie dies tun. Es hilft Ihnen, Zahlungsüberweisungen auf ein bestimmtes Konto zu automatisieren.

Code:

Vertrag MyERCToken {

Zuordnung (Adresse => uint256) Salden;

Die Funktion transferFrom (Adresse _from, Adresse _to, uint256 _amount) gibt zurück (bool success) {

if (balanciert [_from] >= _Betrag

&& erlaubt [_from] [msg.sender] >= _Betrag

&& _Menge > 0

&& Guthaben [_to] + _amount > Guthaben [_to]) {

Salden [_von] – = _Betrag;

Guthaben [_to] + = _amount;

Übertragung (_von, _zu, _Betrag);

return true;

} else {

falsch zurückgeben;

}}

}}

}}

Hinweis: Obwohl es eines der beliebtesten Token auf dem Markt ist, wird das Golem-GNT-Token nicht als ERC20 betrachtet, da es nicht die Funktionen genehmigen () und transferFrom () in seinem Vertrag enthält.

Zulage Nr. 6 ()

Um eine Transaktion durchzuführen, ist das Gleichgewicht des Benutzers eine der wichtigsten Daten, die der Vertrag kennen sollte. Schließlich sollte der Benutzer über die Mindestanzahl an Token verfügen, die für die Ausführung der Transaktion erforderlich sind.

Aus diesem Grund enthält der ERC20-Vertrag auch die Funktion allowance (). Wenn der Benutzer nicht über die erforderliche Mindestanzahl von Token verfügt, bricht die Funktion die Transaktion ab.

Code:

Funktionszugabe (Adresse _Besitzer, Adresse _Spender) Konstante gibt zurück (uint256 verbleibend) {

Rückgabe erlaubt [_owner] [_ spender];

}}

Den Code zusammenbringen

Nachdem wir nun gesehen haben, wie die einzelnen Funktionen funktionieren, werfen wir einen Blick auf den ERC20-Token-Vertrag.

Der Code wurde übernommen GitHub.

Pragma-Solidität ^ 0,4,15;

Vertrag MyERCToken

{

// Erstelle eine Tabelle, damit wir Adressen zuordnen können

// zu den damit verbundenen Salden

Zuordnung (Adresse => uint256) Salden;

// Erstelle eine Tabelle, damit wir sie zuordnen können

// die Adressen der Vertragsinhaber an

// diejenigen, die den Vertrag des Eigentümers nutzen dürfen

Zuordnung (Adresse => Zuordnung (Adresse => uint256)) erlaubt;

// In diesem Fall das Gesamtangebot

// von MyERCToken ist behoben, aber

// es kann sehr viel geändert werden

uint256 _totalSupply = 1000000;

// Inhaber dieses Vertrages

Adresse öffentlicher Eigentümer;

Funktion totalSupply () Konstante gibt zurück (uint256 theTotalSupply) {

// Weil unsere Funktionssignatur

// gibt an, dass die zurückgebende Variable

// ist "theTotalSupply", Wir werden nur diese Variable setzen

// auf den Wert der Instanzvariablen "_totalSupply"

// und gib es zurück

theTotalSupply = _totalSupply;

return theTotalSupply;

}}

Funktion balanceOf (Adresse _Besitzer) Konstante gibt zurück (uint256 balance) {

Rückgabeguthaben [_owner];

}}

Funktion genehmigen (Adresse _spender, uint256 _amount) gibt zurück (bool Erfolg) {

erlaubt [msg.sender] [_ spender] = _amount;

// Das Ereignis auslösen "Die Genehmigung" eine Logik ausführen

// das hat es gehört

Genehmigung (msg.sender, _spender, _amount);

return true;

}}

// Hinweis: Diese Funktion gibt einen booleschen Wert zurück

// zeigt an, ob die Übertragung erfolgreich war

Funktionsübertragung (Adresse _to, uint256 _amount) gibt zurück (bool success) {

// Wenn der Absender über genügend Geld zum Senden verfügt

// und der Betrag ist nicht Null, dann senden an

// die angegebene Adresse

if (balanciert [msg.sender] >= _Betrag

&& _Menge > 0

&& Guthaben [_to] + _amount > Guthaben [_to]) {

Salden [msg.sender] – = _amount;

Guthaben [_to] + = _amount;

// Ein Übertragungsereignis für ein beliebiges Ereignis auslösen

// Logik, die zuhört

Transfer (msg.sender, _to, _amount);

return true;

} else {

falsch zurückgeben;

}}

}}

Die Funktion transferFrom (Adresse _from, Adresse _to, uint256 _amount) gibt zurück (bool success) {

if (balanciert [_from] >= _Betrag

&& erlaubt [_from] [msg.sender] >= _Betrag

&& _Menge > 0

&& Guthaben [_to] + _amount > Guthaben [_to]) {

Salden [_von] – = _Betrag;

Guthaben [_to] + = _amount;

Übertragung (_von, _zu, _Betrag);

return true;

} else {

falsch zurückgeben;

}}

}}

Funktionszugabe (Adresse _Besitzer, Adresse _Spender) Konstante gibt zurück (uint256 verbleibend) {

Rückgabe erlaubt [_owner] [_ spender];

}}

// Wird ausgelöst, wenn eine Genehmigung (Adresse _spender, uint256 _value) aufgerufen wird.

Ereignisgenehmigung (Adresse indiziert _ Eigentümer, Adresse indiziert _ Spender, uint256 _Wert);

// Wird ausgelöst, wenn Token übertragen werden.

Ereignisübertragung (Adresse indiziert _von, Adresse indiziert _zu, uint256 _Wert);

}}

Vorteile von ERC20-Token

Nachdem wir nun wissen, was ERC20 ist, was sind die Hauptvorteile seiner Verwendung?

  • Erstens die Bequemlichkeit. Wie bereits erwähnt, wäre es ein Albtraum für die Interoperabilität gewesen, wenn jeder seine eigenen Token mit eigenen Funktionen erstellt hätte. Außerdem wäre es schmerzhaft gewesen, diese Token in Brieftaschen aufzubewahren und an Börsen aufzulisten. Die Übertragung von Token könnte Verträge gebrochen und sie für Hacker anfällig gemacht haben.
  • Da die ERC20-Bestimmungen einen geeigneten Entwurf für Entwickler darstellen, den sie befolgen müssen. Es ist für sie einfach, Token zu entwickeln, anstatt von Grund auf neu zu arbeiten.
  • Ein wichtiger Faktor, der für die Gesamtbewertung des Ethereum-Netzwerks entscheidend ist, ist die Liquidität dieser ERC20-Token. Wenn die Projekte über Ethereum aktiv sind und miteinander interagieren, bringt dies immer mehr Projekte und mehr Benutzer in das Ethereum-Netzwerk.

Mängel von ERC20

Fehler Nr. 1: Der Transfer () – Fehler

Obwohl ERC20-Token viele gute Eigenschaften haben, haben sie auch viele Kritikpunkte erhalten. In Ethereum gibt es zwei Arten von Konten: externe Konten (EOA), die von privaten Schlüsseln gesteuert werden, und Vertragskonten, die von ihrem Vertragscode gesteuert werden.

Wenn Sie mit einem anderen EOA-Konto interagieren möchten, können Sie die Funktion transfer () verwenden, um die erforderlichen Token zu senden. Wenn Sie die Token jedoch mit der Funktion transfer () an ein Vertragskonto senden möchten, tritt ein Fehler auf, der zum Verlust von fast Millionen Dollar geführt hat.

Das große Problem bei der Funktion transfer () besteht darin, dass der Empfänger nach der Ausführung nicht über die Übertragung benachrichtigt wird, selbst wenn die Transaktion erfolgreich durchgeführt wurde

Ein Entwickler mit dem Namen “Dexaran” war derjenige, der alle darauf aufmerksam machte.

Gemäß ihm::

“Die Transaktion eines Tokens ist eine Änderung der internen Variablen des Vertrags (das” Guthaben “des Absenders wird verringert und das” Guthaben “des Empfängers erhöht)..

Wenn der Empfänger ein Vertrag ist, müssen Benutzer ihre Token mithilfe des Mechanismus “Genehmigen” + “TransferFrom” übertragen. Wenn der Empfänger eine externe Kontoadresse ist, müssen Benutzer ihre Token über die Funktion “Übertragen” übertragen. Wenn ein Benutzer einen Fehler macht und eine falsche Funktion wählt, bleibt das Token im Vertrag stecken (der Vertrag erkennt eine Transaktion nicht). Es gibt keine Möglichkeit, feststeckende Token zu extrahieren.

Glaubt jemand von ERC20-Token-Entwicklern, dass Benutzer bei der Entwicklung ihrer Token niemals solche Fehler machen werden? “

Das ist also ein ziemlich gutes Argument für die Kombination aus Approval () und transferFrom (), oder? Es gibt jedoch auch ein Problem.

Es ist eine unsichere Operation und führt daher zu der Möglichkeit eines doppelt verbrauchten Angriffs.

Fehler Nr. 2: Der Einstiegspunkt ist zu niedrig

Ein weiterer großer Kritikpunkt ist, dass ERC20 es den Menschen zu einfach gemacht hat, ihre eigenen Token zu erstellen. Infolgedessen ist der Markt mit unnötigen und, noch schlimmer, betrügerischen ICOs und Token überflutet.

Zukunft der ERC20-Token

Zwar waren ERC20-Token für das Wachstum des Krypto-Ökosystems wichtig, doch bleibt die Tatsache bestehen, dass sie ihre Begrüßung möglicherweise überschritten haben. Die Leute experimentieren bereits mit neueren Standards wie ERC223, ERC 777 usw., aber ab sofort geht ERC20 nirgendwo hin.

Dexaran weist auf die folgenden Gründe hin, warum ERC20 immer noch der bevorzugte Standard der Wahl ist:

  • Wegen der kriminellen Verantwortungslosigkeit von Token-Entwicklern für ihre Taten.
  • Weil die Ethereum Foundation den ERC20-Token-Standard immer noch fördert, auch wenn bekannt ist, dass er Fehler enthält. Die gleiche Situation wie zuvor bei TheDAO. Sie müssen sagen “Hör jetzt auf”, aber sie werden es nicht tun.
  • Denn der Hauptgrund für die Token-Entwicklung liegt eher in der Mittelbeschaffung als in der Produktentwicklung.
  • Weil die Verwendung eines anderen Standards zu höheren Netzwerkeffekten führt. Dies ist nicht das, was wir wirklich brauchen, da das Ethereum-Netzwerk bereits Skalierbarkeitsprobleme aufweist.

Der Wandel ist immer langsam und es sieht so aus, als müssten wir definitiv etwas länger warten, bevor wir zu anderen Standards übergehen können. Machen wir jedoch nicht den Fehler, den ERC20-Standard zu „kriminalisieren“. Es verdient sicherlich den ganzen Respekt für die tiefgreifenden Auswirkungen, die es auf den Kryptoraum hatte.

Mike Owergreen Administrator
Sorry! The Author has not filled his profile.
follow me