Kapitel 4. Die Entwicklung zu Ethereum

Diese Arbeit wurde mithilfe von KI übersetzt. Wir freuen uns über dein Feedback und deine Kommentare: translation-feedback@oreilly.com

In seinen Anfängen galt Bitcoin als ein allumfassendes technologisches Wunderwerk. Mit der Zeit erkannten die Entwickler/innen jedoch, dass die Blockchain-Technologie zusätzliche Funktionen unterstützen kann. Dies führte zur Einführung neuer Konzepte, die auf Bitcoin aufbauten, und schließlich zu einer völlig neuen Blockchain, die als Ethereum bekannt wurde.

Verbesserung der begrenzten Funktionalität von Bitcoin

Bitcoin war das erste dezentrale Konsensprotokoll ( ), das das Konzept des "scripted money"anwandte , d.h .die Idee, dass Kryptowährungstransaktionen Gelder in Abhängigkeit vom Wahr/Falsch-Status der Ausführung eines begrenzten Programms übertragen können. Anfangs sahen viele Bitcoin als "programmierbares Geld", aber "scripted money" ist aufgrund der begrenzten Funktionalität eine bessere Analogie. In den ersten Tagen wurde der Bitcoin auch als Währung angesehen, aber im Laufe der Zeit wurde er eher als Wertaufbewahrungsmittel betrachtet und löste viele Debatten über den Unterschied zwischen den beiden aus.

Die Entwicklung von Bitcoin führte dazu, dass eine einflussreiche und begeisterte Gruppe von Anhängern in der Entwicklergemeinschaft aus Sicherheitsgründen für einen vorsichtigen und begrenzten Ansatz bei Protokolländerungen plädierte. Protokolländerungen wie die Erhöhung der Blockgröße wurden mit Skepsis betrachtet. Diese Befürworter wollten die Kernziele beibehalten, nämlich dezentralisiert und inklusiv zu sein, so dass jeder einen vollständigen Knotenpunkt auf billiger Hardware mit einer Internetverbindung mit geringem Durchsatz betreiben kann.

Wie wir bereits im vorherigen Kapitel erwähnt haben, haben einige Bitcoin-Entwickler eine Bewegung in Richtung skalierbarer Lösungen ausgelöst. Bitcoin wurde zur Grundlage für das spätere programmierbare Geld, als Entwickler/innen begannen, Wege zu finden, um darauf aufzubauen und später ganz neue Blockchains zu entwickeln.

Farbige Münzen und Wertmarken

Mitfarbigen Münzen können reale Vermögenswerte wie Aktien oder Rohstoffe auf der Bitcoin-Blockchain dargestellt und verwaltet werden. Die Skriptsprache von Bitcoin ist absichtlich als Turing unvollständig konzipiert, d.h. die verfügbaren eingebauten Befehle sind begrenzt, um die Komplexität im Netzwerk zu reduzieren. Aus diesem Grund werden farbige Münzen auf der Bitcoin-Blockchain aufgebaut und nicht direkt auf ihr.

Bitcoin ist in seinem Anwendungsbereich begrenzt. Die Blockchain ermöglicht jedoch die Speicherung von kleinen Datenmengen oder Metadaten. Die Darstellung eines anderen Vermögenswerts kann über eine Adresse dem Wert eines bestimmten Bitcoin-Betrags zugeordnet werden (z. B. 17VZNX1SN5NtKa8UQFxwQbFeFc3iqRYhem). Mit dem Konzept der farbigen Münzen wurde die Idee der Token eingeführt, die durch die Programmierung eines einzigartigen Ledgers auf einer bestehenden Blockchain zu Werteinheiten werden. Token sehen oft aus wie andere Kryptowährungen und verhalten sich auch so, mit dem Unterschied, dass sie von einem anderen Blockchain-Netzwerk betrieben werden. Token waren der Grundstein für die Entwicklung des Ethereum-Ökosystems und das Aufkommen von farbigen Münzen auf Bitcoin führte zu Token auf anderen Blockchains.

Mastercoin und Smart Contracts

Die Entwicklung der Skalierungslösungen von Bitcoin wurde 2013 mit der Entwicklung von Mastercoin vorangetrieben. Mastercoin wurde auf Bitcoin aufgesetzt, um Funktionen hinzuzufügen, die ursprünglich nicht im Kernprotokoll von Bitcoin enthalten waren. Dies ermöglichte anspruchsvollere programmierbare Geldkonzepte, die über die einfachen Funktionen von Bitcoin hinausgingen. Eines davon war das Konzept der Smart Contracts, also komplexer Programme, die auf Blockchains laufen.

Mit Mastercoin wurde das Konzept zusätzlicher Kryptowährungen oder Token eingeführt. Vor Mastercoin war es nicht einfach, neue Kryptowährungen außerhalb von Software-Forks zu schaffen. Die Möglichkeit, Geld, das an eine Wallet geschickt wurde, über Smart Contracts auf eine andere Wallet umzuleiten, gab es bei Bitcoin nicht. Obwohl Mastercoin heute als primitiv gilt, wurde er zu einer Studie über die Fähigkeiten von Bitcoin und zur Erforschung neuer Funktionen.

Mastercoin (und seinem Erfinder J.R. Willett) wird auch das erste Initial Coin Offering (ICO ) zugeschrieben, ein Blockchain-basiertes Fundraising-Verfahren zur Finanzierung der ersten Protokollentwicklung.

Verstehen von Omni Layer

Omni Layer ist eine quelloffene, dezentrale Vermögensinfrastruktur, die auf Bitcoin aufbaut. Sie ist der Nachfolger der Arbeit, die von der Mastercoin Foundation mit den Mitteln aus ihrem ICO im Jahr 2013 geleistet wurde. Omni Layer ist ein laufendes Projekt, dessen Referenzimplementierung als Omni Core bekannt ist.

Omni Core erweitert im Wesentlichen die Elemente von Bitcoin um zusätzliche Funktionen. Es bietet auch Smart-Contract-Fähigkeiten, die es Entwicklern ermöglichen, Währungsfunktionen auf dezentrale und transparente Weise zu automatisieren. Mit Smart Contracts können Transaktionen und Vereinbarungen auf der Blockchain ausgeführt werden, die über Währungsfunktionen hinausgehen. Zu diesen Funktionen gehört die Möglichkeit, Token zu verwenden, um neue Kryptowährungen zu schaffen, die auf anderen Blockchain-Protokollen aufbauen (neben anderen Eigenschaften, die in Kapitel 5 erläutert werden). Abbildung 4-1 veranschaulicht die grundlegende Struktur der Funktionsweise von Omni.

Abbildung 4-1. Überblick über den technischen Stack von Omni Layer

Zu den auf Omni erstellten Token gehört MaidSafe, ein dezentrales, autonomes Datennetzwerk, das 2006 von dem Ingenieur David Irvine vorgeschlagen wurde. MaidSafe implementierte später Omni Layer, indem es die Smart-Contract-Technologie nutzte, um einen ICO zu ermöglichen und den MAID-Token zu schaffen, der innerhalb des Netzwerks verwendet wird.

Tether

Das bekannteste Projekt, das auf Omni basiert, ist Tether. Es umfasst einen Anwendungsfall, der in der Welt der Kryptowährungen unglaublich wichtig ist: Wie kann man eine stabile Anlageklasse in einem Ökosystem volatiler Token darstellen? Tether ist eine digitale Blockchain-Kryptowährung, deren Ziel es ist, eine stabile, an den US-Dollar gekoppelte Reservewährung zu schaffen. Laut dem Tether-Whitepaper ist ein Tether-Token an einen US-Dollar gekoppelt.

Reale Vermögenswerte stellen ein Problem dar, wenn sie auf einer Blockchain dargestellt werden. Wie kann man den Wert dieses Vermögenswerts in Tokenform tatsächlich festmachen? Tether behauptet, durch den US-Dollar gedeckt zu sein, aber leider gibt es außer der Auflistung der Guthaben auf der Website kaum Beweise dafür, dass für jeden Tether, der im Umlauf ist, auch wirklich ein US-Dollar auf einem Bankkonto liegt. Das Unternehmen, das hinter Tether steht, hat versprochen, seine Eins-zu-Eins-Bindung an den US-Dollar einer vollständigen Prüfung zu unterziehen, aber 2018 hat es die Beziehung zu seiner Wirtschaftsprüfungsgesellschaft ohne Erklärung aufgelöst. Die Gesamtzahl der ausstehenden Tether auf dem Markt schwankt willkürlich, und Tether hat sogar seine Eins-zu-eins-Anbindung an den US-Dollar verloren, um sich dann ohne große Erklärung wieder zu erholen.

Tether ist zwar ein interessanter früher Anwendungsfall für die Tokenisierung und die Implementierung des Mastercoin-Nachfolgers Omni Layer, aber er ist noch sehr experimentell. Es zeigt, dass die Unterlegung einer digitalen Blockchain-Kryptowährung wie Tether mit realen Vermögenswerten wie dem US-Dollar noch sehr spekulativ ist und sich noch in der Entwicklung befindet.

Wie Omni Layer funktioniert

Das Omni-Layer-Team machte sich daran, alle Funktionen zu entwickeln, die J.R. Willett in seinem "Second Bitcoin Whitepaper" versprochen hatte . Zu diesen Funktionen gehörten die folgenden:

Benutzerdefinierte Währungen
Jeder kann Währungen schaffen, bei denen das Hauptbuch vom Omni-Layer-Netzwerk verwaltet wird.
Dezentraler Austausch
Anstatt eine zentrale Börse zu nutzen, um den Austausch von zwei Währungen zwischen den Parteien zu erleichtern, führt der Omni Layer Code diesen Handel aus.

Beim Start einer Proof-of-Work-basierten Blockchain ist es wichtig, ein starkes Netzwerk von Minern aufzubauen, die Hash-Power (Computerinfrastruktur) für die Verarbeitung von Transaktionen bereitstellen. Je größer das Netzwerk ist, desto dezentraler, vertrauenswürdiger und sicherer wird es.

Omni wollte sich darauf konzentrieren, die Tokenisierung und andere Smart-Contract-Funktionen auf einer dezentralen Blockchain zu ermöglichen, ohne den Netzwerkeffekt aufbauen zu müssen. Indem Omni ein Second-Layer-Protokoll auf Bitcoin aufbaute, profitierte es von dem großen Netzwerkeffekt, den Bitcoin bereits hatte.

Hinzufügen benutzerdefinierter Logik

Bitcoin führt logische Operationendurch - Regeln, die die Blockchain aufrechterhalten und beweisen, dass das grundlegende Konzept der Konsensfindung funktioniert. Omni fügt der Bitcoin-Blockchain eigene logische Operationen hinzu.

Ab März 2014 fügte Bitcoin das Feld OP_RETURN hinzu, das das Anhängen von zusätzlichen Daten an eine Bitcoin-Transaktion ermöglicht. Sobald das Feld OP_RETURN zu Bitcoin hinzugefügt wurde, begann jede Omni-Transaktion einen Datensatz im Feld OP_RETURN einer Bitcoin-Transaktion zu speichern.

Abbildung 4-2 zeigt eine beispielhafte Tether-Transaktion, die in der Bitcoin-Blockchain aufgezeichnet wurde. Es handelt sich um eine kleine Transaktion von fünf Tether, auch bekannt als USDT. Die Transaktions-ID auf der Bitcoin-Blockchain lautet:

c082fad4ee07a86c3ff9f31fb840d878c66082ad76ca81f0cafc866dee8aa9fc
Abbildung 4-2. Beispiel für eine Omni-Transaktion auf der Bitcoin-Blockchain

Dies ist eine Bitcoin-Transaktion, die Omni-Layer-Metadaten enthält. Der einzige Unterschied bei einer Omni-Transaktion ist das Feld OP_RETURN. Omni verwendet OP_RETURN, weil es genügend Platz bietet und einfach zu verwenden ist. Die Metadaten im Feld OP_RETURN bedeuten, dass fünf USDT gesendet werden. Abbildung 4-3 zeigt die gleiche Transaktion im Omniexplorer. Beachte, dass die Transaktions-ID dieselbe ist.

Abbildung 4-3. So sieht die Tether-Transaktion in Abbildung 4-2 im Omniexplorer aus

Der Wert des Feldes OP_RETURN, 6f6d6e69000000000000001f000000001dcd6500, ist die Omni Layer-Metadaten, die die UDST-Transaktion aufzeichnen. Die Metadaten sind im Hex-Format kodiert und werden in Tabelle 4-1 in das ASCII- oder Dezimalformat umgewandelt.

Tabelle 4-1. Übersetzen von OP_RETURN
In OP_RETURN gespeicherter Wert (hex) Als ASCII oder dezimal Beschreibung
6f6d6e69 omni Omni-Flagge, um anzuzeigen, dass es sich um eine Omni-Transaktion handelt.
00000000 Einfach senden Transaktionsart.
0000001f 31 Die Eigenschaftsart ist 31, das ist USDT. Du kannst alle Omni Layer-Eigenschaften auf der Omniexplorer-Seite einsehen.
000000001dcd6500 5.00000000 Der zu sendende Betrag ist 5.00000000.
Omni Layer-Transaktionen enthalten alle acht Dezimalstellen.

Ethereum: Mastercoin auf die nächste Stufe bringen

Ethereum stellt eine Weiterentwicklung des Designs und Denkens über Kryptowährungsnetzwerke dar. Es ist ein funktionaleres und allgemeineres Berechnungsprotokoll, das sich unter anderem auf Konzepte von Bitcoin und Mastercoin stützt.

Das Ethereum-Konzept wurde erstmals von Vitalik Buterin im Jahr 2013 vorgeschlagen. Nachdem er die Mastercoin Foundation aufgefordert hatte, Änderungen an ihrem Protokoll vorzunehmen und mehr Funktionen hinzuzufügen, und diese sich dagegen sträubte, begann Buterin zusammen mit Gavin Wood und anderen Gründern, das Ethereum-Protokoll zu entwickeln.

Das Ziel von Ethereum war es, Mastercoin auf die nächste Stufe zu heben, d.h. ein dezentrales, offenes Computersystem zu schaffen, das durch Konsens gesichert ist. Obwohl Buterin eine Alternative zu Bitcoins Proof-of-Work-Mechanismus anstrebte, den er für verschwenderisch hielt, verwendet Ethereum derzeit einen ähnlichen Proof-of-Work-Algorithmus wie Bitcoin namens Ethash. Es wird erwartet, dass Ethereum in Zukunft zu einem Proof-of-Stake-Sicherheitsmodell übergehen wird - ein ehrgeiziges Projekt, das das Mining-Paradigma innerhalb des Protokolls verändert, worauf in Kapitel 10 näher eingegangen wird.

Äther und Gas

Die Rechnungseinheit von Ethereum ist Ether. Diese Kryptowährung verhält sich ähnlich wie Bitcoin, mit einer ähnlichen Nomenklatur der Transaktionsadressen. Ethereum-Adressen beginnen mit der Zeichenfolge 0x. Die Blockchain hat viel schnellere Bestätigungszeiten, abgesehen von periodischen Netzwerküberlastungen, und Ethereum ist dafür bekannt, dass es viel schnellere Überweisungen als Bitcoin ermöglicht.

Wie in Kapitel 2 beschrieben, verwendet Bitcoin eine UTXO-Struktur (UTXO = unspent transaction output), um die Kontostände zu verfolgen. Ethereum verfolgt die Guthaben im Kontostand. UTXO ist so, als hätte man physisches Bargeld - Rechnungen und Münzen. Der Ansatz von Ethereum ist so, als hätte man sein gesamtes Geld auf einem Bankkonto. Bei UTXO ist es viel komplexer, Zahlungen zu tätigen und den Kontostand zu berechnen.

Nehmen wir zum Beispiel an, du bist in einem Coffee Shop. Du hast drei 1-Dollar-Scheine in deiner Tasche und möchtest einen Kaffee für 1,50 Dollar kaufen. Du kannst dem Kassierer nicht 1,50 $ geben, sondern musst ihm zwei der 1 $-Scheine geben und erhältst 0,50 $ als Wechselgeld zurück. Wenn du danach wissen willst, wie viel Geld du ausgeben musst, musst du den Wert aller Scheine und Münzen in deiner Tasche berechnen.

Mit Bitcoin verhält es sich genauso. Angenommen, deine Bitcoin-Adresse hat drei separate 1 BTC-Transaktionen erhalten und du möchtest einem Freund 1,5 BTC schicken. Wie bei physischem Bargeld kannst du nicht 1,5 BTC schicken, sondern musst 2 BTC schicken. Das liegt daran, dass jede der 1 BTC-Transaktionen, die du in der Vergangenheit erhalten hast, als ganzer Betrag ausgegeben werden muss. Du schickst also zwei der vorherigen 1 BTC-Transaktionen und bekommst dafür 0,5 BTC zurück. Dieser Vorgang findet in einer einzigen Bitcoin-Transaktion statt.

Ethereum-Transaktionen sind viel einfacher, ähnlich wie das Senden und Empfangen von Geld auf einem Bankkonto. Wenn deine Ethereum-Adresse drei separate 1 ETH-Transaktionen erhält, wird dein Kontostand im Netzwerk mit 3 ETH angezeigt. Du musst deinen Kontostand nicht selbst berechnen, indem du die verschiedenen Transaktionen zusammenzählst. Und wenn du 1,5 ETH senden willst, kannst du einfach 1,5 ETH senden; es ist nicht nötig, mehr zu senden und Wechselgeld zu erhalten.

Ethereum bietet auch zusätzliche Funktionen. Es übernimmt Elemente von Bitcoin und Mastercoin, um anwendungsbasierte Blockchain Transaktionen zu schaffen, d.h. es bietet mehr Funktionen als nur kontobasiertes Senden und Empfangen. Ethereum hat eine weitere Recheneinheit namens Gas. Gas ermöglicht es Entwicklern, Anwendungen auf der Ethereum-Plattform auszuführen - diese Anwendungen sind als dezentrale Anwendungen oder Dapps bekannt (auf die wir später in diesem Kapitel näher eingehen).

Gas löst auch eine der Gefahren, die mit dem Betrieb einer Programmiersprache in einer Blockchain verbunden sind. Entwickler/innen können Dapps auf Ethereum ausführen, ohne dass auf das sogenannte Halting-Problem stößt, d.h. die Unfähigkeit, Code zu verhindern, der unendlich lange oder in Endlosschleifen läuft. Ethereum verlangt, dass Gas für die Berechnungen des ausgeführten Codes innerhalb eines Smart Contracts verwendet wird, damit eine Dapp so effizient wie möglich ist. Bei jeder Ethereum-Transaktion legen die Entwickler ein Gaslimit fest, damit bei einer Endlosschleife die Transaktion irgendwann kein Gas mehr hat und der Miner trotzdem die Gebühren für die Ausführung der Transaktion erhält.

Anwendungsfälle: ICOs

Es gibt eine Reihe von Anwendungen für ein computergestütztes Transaktionsprotokoll mit intelligenten Verträgen. Das Konzept der Ricardianischen Verträge, das Ian Grigg 1996 vorschlug, gibt einen Einblick in die Anwendungsmöglichkeiten dieser Technologie. Zu den Innovationen gehören die Verwendung einer kryptografischen Hash-Funktion zur Identifizierung und die Definition von Rechtselementen, die von einem Computer maschinenlesbar sind. Durch die Möglichkeit, eine Reihe von Anweisungen (über einen Smart Contract) auszuführen und sie mit einem Buchhaltungssystem (über eine Blockchain) zu verknüpfen, kann die Ethereum-Plattform für die Ausführung einer Reihe verschiedener Dapps genutzt werden.

In den ersten Jahren nach der Veröffentlichung von Ethereum dauerte es eine Weile, bis sich ein Ökosystem von Entwicklern entwickelte. Aber die Entwickler erkannten, dass eine der mächtigsten Fähigkeiten die Möglichkeit war, mit Hilfe von Smart Contracts - dem bereits erwähnten ICO - automatisiert und sicher Geld für Kryptowährungen zu sammeln. Ein Projekt, das Geld für den Start eines Konzepts benötigt, könnte zum Beispiel einen Smart Contract einrichten, der Ether einnimmt. Im Gegenzug könnte es den Spendern eine einlösbare Kryptowährung geben, die auf Ethereum basiert.

Hinweis

Die Rechtmäßigkeit von ICOs ist fragwürdig, und viele Projekte wurden aufgrund von rechtlichen Problemen, die sie verursacht haben, vorzeitig beendet. Dieses Thema wird in Kapitel 9 ausführlicher behandelt.

Die Idee, Geld mit Kryptowährungen zu beschaffen, um ein Projekt zu starten, entstand nicht erst mit Ethereum. Der Unternehmer Erik Voorhees sammelte 2012 Geld mit dem rudimentären Mechanismus, Bitcoin im Gegenzug für digitale "Anteile" zu akzeptieren, um die Blockchain-basierte Glücksspielseite Satoshi Dice zu finanzieren. Auch Mastercoin nutzte dieses Konzept, wenn auch auf eine viel besser organisierte Weise.

Der ICO für MaidSafe war so überverkauft, dass die Spenderinnen und Spender die eingehenden Bitcoins schließlich mit Mastercoin statt Safecoin einlösen mussten. Technische Pannen wie diese machten deutlich, dass eine zuverlässigere Plattform für Krypto-Fundraising benötigt wird. Im Laufe der Zeit wurde Ethereum mit seiner Smart-Contract-Plattform und der Möglichkeit, Token auf der Ethereum-Blockchain zu erstellen, zu einer idealen automatisierten Fundraising-Plattform, um verschiedene Kryptowährungsprojekte in Gang zu bringen.

Dezentrale autonome Organisationen

In dem Bestreben, das Ethos der Dezentralisierung im Ethereum-Ökosystem zu fördern, wurde das Konzept einer dezentralen autonomen Organisation (DAO) vorgeschlagen, um mit Hilfe von Smart Contracts die Steuerung durch zentrale Behörden zu ersetzen. Ähnlich wie das ICO-Konzept die zentralisierten Funktionen eines Börsengangs (IPO) ersetzt, nutzen DAOs Kryptowährungs-Fundraising-Projekte, um ein dezentrales Governance-System zu schaffen, bei dem ICO-Investoren ein Stimmrecht haben, das dem Besitz der bei einem ICO erworbenen Token entspricht.

Dieses Konzept wurde in einem Projekt namens The DAO auf die Probe gestellt. Das im April 2016 gestartete Projekt The DAO war ein auf Ethereum basierendes ICO-Projekt mit intelligenten Verträgen, das eigenständig laufen sollte. Die Entscheidungen über die Investition der eingeworbenen Mittel in Technologieprojekte sollten auf der Grundlage der Stimmrechte der Token-Inhaber/innen getroffen werden. Die DAO konnte über 154 Millionen US-Dollar über Ethereum-basierte Token von elftausend Investoren einwerben.

Das Forking von Ethereum und die Schaffung von Ethereum Classic

Nach dem Start wurden mehrere Schwachstellen im Code des DAO-Smart Contracts entdeckt. Eines dieser Probleme war eine Schwachstelle in Form eines rekursiven Aufrufs. Die Programmierer hatten eine Schwachstelle im Code entdeckt: Wenn Geld aus einer Wallet abgehoben wurde, wurde der Kontostand erst am Ende des Funktionsaufrufs aktualisiert. Wenn dieselbe Funktion erneut aufgerufen werden könnte, bevor der erste Aufruf abgeschlossen ist, wäre es möglich, immer wieder dasselbe Geld abzuheben - ein Problem, das als unendliche Rekursion bekannt ist.

Sie kündigten sofort an, dass der Fehler gefunden wurde und behoben werden würde, aber bevor sie ihr Update einspielen konnten, wurde diese Schwachstelle am 17. Juni 2016 von einem Angreifer ausgenutzt, der über 50 Millionen Dollar in Ether von The DAO stehlen konnte. Die Entwickler von The DAO hatten keine Möglichkeit, den eingesetzten Vertragscode selbst zu aktualisieren, da er unveränderlich auf der Blockchain gespeichert war. Die einzige Möglichkeit, die Situation zu bereinigen, bestand darin, einen neuen Vertrag zu erstellen und die restlichen Gelder zu übertragen - ein mühsamer und schmerzhafter Prozess.

Dieses Ereignis führte dazu, dass die Ethereum Foundation die Ethereum-Blockchain forkte, um den Schaden rückgängig zu machen. Es wurden zwei verschiedene Versionen von Ethereum erstellt: die ursprüngliche Blockchain, in der die gestohlenen Gelder noch immer dem Angreifer gutgeschrieben wurden, bekannt als Ethereum Classic, und eine geforkte Version, die die Gelder zurückzog und weiterhin als Ethereum bekannt war. Bei dieser harten Abspaltung wurden die gestohlenen Gelder an eine Wiederherstellungsadresse verschoben, damit ihre rechtmäßigen Besitzer sie zurückfordern konnten.

Die Abspaltung bedeutete, dass die Ethereum-Blockchain so verändert wurde, dass der DAO-Hack praktisch nie stattgefunden hatte, was gegen das Prinzip der Unveränderlichkeit verstieß. Diese Entscheidung war umstritten und wurde von einigen Mitgliedern der Community abgelehnt, die sich dafür entschieden, die unveränderte Version der Blockchain beizubehalten. Ethereum Classic ist eine Smart-Contract-Blockchain, die auch heute noch existiert, aber ihre Entwicklergemeinschaft ist klein und nicht so stark wie die von Ethereum.

Andere Ethereum-Gabelungen

Der DAO-Hack hat die Kryptowährungsgemeinschaft für die Idee von Forks erwärmt. Neben der Schaffung von Ethereum Classic wurde die Ethereum-Blockchain bereits mehrfach geforkt, um Schwachstellen und andere Änderungen im Code zu beheben. Das Ethereum-Projekt ist sich der Notwendigkeit bewusst, zu experimentieren, und wenn Upgrades, die für die gesamte Gemeinschaft wichtig sind, offensichtlich werden, wird ein Forking als bessere Alternative angesehen, als das Konzept der Unveränderlichkeit beizubehalten. Das Ethereum-Ökosystem hat keine Skrupel, seine Blockchain zu forken und genug Schwung zu sammeln, damit solche Änderungen erfolgreich sein können. Diese Haltung steht in krassem Gegensatz zu anderen Ketten wie Bitcoin, wo die Unveränderlichkeit unantastbar ist.

Wichtige Organisationen im Ethereum-Ökosystem

Im Ethereum-Ökosystem unterstützen mehrere Interessengruppen und Organisationen die Vision, die Ethereum aufbaut, und jede Organisation unterstützt sie aus ihrem eigenen Blickwinkel.

Die Ethereum Stiftung

Als federführend bei der Entwicklung der Roadmap und der Umsetzung weiterer Änderungen an der Ethereum-Plattform hat die Ethereum Foundation großen Einfluss in der Community. Sie finanziert auch Projekte zur Skalierbarkeit der Plattform, darunter Plasma, eine Lösung, die die Anzahl der Transaktionen auf der Plattform erhöhen soll, ohne die Sicherheit des Netzwerks zu beeinträchtigen.

Die Vorgängerin der Ethereum Foundation wurde in der Schweiz als gemeinnützige Organisation gegründet und initiierte den ICO von Ethereum. Nachdem sie mehr als 18 Millionen Dollar in Bitcoin von der Community gesammelt hatte, übertrug die Schweizer Organisation diese Gelder an die Ethereum Foundation, die die wichtigsten Finanzmittel für die oben erwähnten Entwicklungsbemühungen bereitstellte.

Die Enterprise Ethereum Alliance

Die Anfang 2017 angekündigte Enterprise Ethereum Alliance (EEA) hat das Ziel, Unternehmen zusammenzubringen, die an der Einführung von Ethereum-Blockchain-Lösungen interessiert sind. Zu den Mitgliedern der EEA gehören IBM und Microsoft, das den Betrieb von Ethereum-Blockchain-Diensten auf Azure unterstützt.

Eines der Hauptziele der EUA ist es, Blockchain-spezifische Anwendungsfälle im Unternehmensumfeld zu finden. Viele große Organisationen sind wegen der Einhaltung von Vorschriften und anderen regulatorischen Bedenken vorsichtig mit dem Kryptowährungsaspekt von Blockchains. Ein großer Teil der Ethereum-bezogenen Arbeit, die auf Unternehmensseite geleistet wird, besteht darin, eine private Blockchain zu erstellen, die den Token von den öffentlichen Kryptowährungsmärkten trennt. In Kapitel 9 wird näher auf private und genehmigte Blockchains eingegangen.

Parität

Parity, ein in London ansässiges Unternehmen für Softwarelösungen, wurde von Gavin Wood gegründet, einem der ursprünglichen Gründer von Ethereum, der schon sehr früh an der Entwicklung der Protokollkonzepte von Ethereum mitgewirkt hat. Parity hat mehrere Entwickler-Tools entwickelt, die den Einsatz von Ethereum erleichtern, darunter auch Referenz-Frameworks.

Das Unternehmen ist dafür bekannt, dass es 2017 Opfer des "Parity-Hacks" wurde, bei dem ein unbekannter Angreifer Ether im Wert von 30 Millionen Dollar gestohlen hat. Dies war der zweitgrößte Ethereum-Hack (nach The DAO); er nutzte eine Schwachstelle in den Multi-Signatur-Wallets von Parity aus, die es dem Angreifer ermöglichte, zwei Transaktionen zu senden, von denen eine eine Abstraktionslogik enthielt , um eine Wallet-Adresse im Code zu ändern.

ConsenSys

Gegründet von Ethereum-Mitbegründer Joseph Lubin, ist ConsenSys eine Organisation, die Unternehmensanwendungen entwickelt, in Startups investiert, Entwickler-Tools erstellt und Blockchain-Schulungen für das Ethereum-Netzwerk anbietet. Der Schwerpunkt der Organisation liegt auf der Entwicklung von Dapps. Zu ihren Angeboten gehören die Truffle Suite, ein Framework, das die Ethereum-Entwicklung erleichtert, und Gitcoin, ein von GitHub inspiriertes Bug Bounty-Tool für die Ethereum-Blockchain.

ConsenSys hat es sich außerdem zur Aufgabe gemacht, verbraucherfreundliche Tools für das Ethereum-Ökosystem zu entwickeln. Eines der bekanntesten davon ist MetaMask, eine browserbasierte Ethereum-Wallet, die die Nutzung dezentraler Anwendungen erleichtert. ConsenSys finanziert auch Projekte, die Dapps und andere nützliche Anwendungen entwickeln.

Dezentrale Anwendungen (Dapps)

Wir haben bereits erwähnt, dass Anwendungen, die über einen Smart Contract auf einer Blockchain laufen, als dezentrale Apps oder Dapps bezeichnet werden. Dapps bestehen in der Regel aus einem Backend mit einem Smart Contract, der auf einer Blockchain läuft, und einer schlanken Benutzeroberfläche, die mit diesem interagiert. Das ist ähnlich wie eine Client/Server-Architektur, bei der der Server der Smart Contract ist. Diese Art von Anwendungen macht die Blockchain programmierbarer und funktionaler.

Eine Dapp ist im Grunde jedes Computerprogramm, das auf einer Smart-Contract-Plattform läuft, und die größte Plattform dafür ist heute Ethereum. Wie wir in Kapitel 1 besprochen haben, ist ein verteiltes System in der Informatik ein System, bei dem sich die Komponenten auf verschiedenen Rechenressourcen befinden und ein System für die Kommunikation zwischen diesen Ressourcen vorhanden ist. Beispiele für verteilte Systeme sind viele Telekommunikationsnetze und das Internet.

Es gibt auch andere Plattformen, die die Möglichkeit für Dapps bieten, aber Ethereum ist bei weitem die größte Plattform für Entwickler, um verteilten Code auszuführen.

Anwendungsfälle

Ein wichtiges Merkmal einer Dapp ist die Unveränderbarkeit, d.h. keine zentrale Behörde kann den Code ändern, nachdem er auf der Blockchain veröffentlicht wurde. Aus diesem Grund werden Dapps in der Regel dort eingesetzt, wo es einen Engpass in zentralisierten Systemen gibt. Viele zentralisierte Anwendungen sind z. B. nicht zensurresistent. Bei vielen zentralisierten Anwendungen entscheidet eine dritte Partei, was die Nutzer/innen sehen können und was nicht. Oft sind diese Entscheidungen subjektiv, scheinbar willkürlich und werden ohne den Input der Nutzer/innen getroffen. Mit einer Backend-Plattform wie Ethereum und dem Web können Entwickler/innen Anwendungen entwickeln, die sich von ihren zentralisierten Pendants stark unterscheiden.

Ein weiteres Merkmal von Apps ist, dass sie durch den Einsatz von Blockchains eine effiziente und sichere Übertragung digitaler Werte ermöglichen. Heutzutage bieten viele Anwendungen zum Beispiel Schutz vor Zensur (z. B. BitTorrent) und Privatsphäre (durch Verschlüsselung). Was Dapps jedoch über diese beiden Eigenschaften hinaus ermöglichen, ist, dass die Übertragung von Werten schnell und programmgesteuert durchgeführt werden kann.

Hinweis

Dapp-Plattformen sind relativ neu. Es gibt noch viel darüber zu lernen, wie man sie am besten erstellt, und die Infrastruktur dafür befindet sich noch in der Wachstumsphase. Dapps sind noch nicht weit verbreitet. Es gibt sogar einige Zweifel an ihrer Zugkraft und ihrem Durchhaltevermögen, und der Zweck einiger Dapps scheint heute ruchlos zu sein. Viele von ihnen wurden entwickelt, um einer behördlichen Kontrolle zu entgehen, und es gibt zahlreiche Dapps für Glücksspiele und dezentrale Börsen.

Herausforderungen bei der Entwicklung von Dapps

Die Entwicklung von Dapps birgt einige Herausforderungen, wie z.B. die Bereitstellung, Benutzerfreundlichkeit, Geschwindigkeit und Skalierbarkeit. Diese Probleme gibt es derzeit bei allen Dapp-Plattformen, auch bei Ethereum.

Wenn ein Entwickler einen Smart Contract für eine Dapp einsetzt, muss er sicher sein, dass der Code keine kritischen Fehler enthält. Es ist nicht einfach, Verträge zu aktualisieren. Die meisten Smart-Contract-Plattformen, einschließlich Ethereum, erlauben keine erneute Bereitstellung an dieselbe Adresse. Außerdem ist eine Aktualisierung in der Regel mit einer schwierigen Datenmigration des Zustands verbunden, den der Smart Contract verwaltet.

Entwickler können ihre Dapps in einem der vier Ethereum-Testnets testen. Verantwortungsbewusste Dapp-Entwickler/innen werden ihre Verträge monatelang von professionellen Sicherheitsprüfern (Quantstamp, OpenZeppelin) prüfen lassen, die ihre Berichte dann öffentlich veröffentlichen. Während dieser Zeit laden sie auch die Community ein, ihre Smart Contracts über GitHub zu prüfen.

Anders als bei zentralisierten Apps, bei denen das Nutzererlebnis ununterbrochen ist, könnte die Implementierung eines neuen Smart Contract Codes zu einer Unterbrechung des Nutzererlebnisses führen. Außerdem hängt die Geschwindigkeit von Dapps von der Geschwindigkeit der Blockchain und ihrer Bestätigungszeiten ab. Dieses Problem wurde auf Ethereum Ende 2017 mit der Dapp CryptoKitties deutlich, deren Popularität zu einer enormen Anzahl von Transaktionen führte , die das Ethereum-Netzwerk verstopften. Dadurch wurde der Dapp praktisch unbrauchbar, bis die Begeisterung abflaute.

Jetzt, wo du etwas Hintergrundwissen hast, wollen wir etwas tiefer in die Erstellung, den Einsatz und die Arbeit mit Ethereum Smart Contracts eintauchen.

Einsatz und Ausführung von Smart Contracts in Ethereum

Smart Contracts haben einen langen Weg zurückgelegt, seit das Konzept in den 1990er Jahren erstmals vorgestellt wurde. Omni Layer hat bewiesen, dass es möglich ist, eine Dapp auf einer Blockchain laufen zu lassen, aber sie hatte viele Einschränkungen, von denen die größte darin bestand, wer die Erlaubnis erhielt, die Dapp zu erstellen und einzusetzen. Wenn jemand eine Dapp bereitstellen wollte, musste er die Entwickler der Plattform davon überzeugen, sie in den Omni Core-Code aufzunehmen. Omni Core war also die Dapp, in der der gesamte Code bereitgestellt wurde. Die Entwicklung des Codes wurde zentralisiert, und nur Omni Core-Entwickler konnten ihn aktualisieren. Entwickler/innen, die eigene Dapps entwickeln wollten, mussten andere Möglichkeiten erkunden, wie z. B. Omni Core zu forken und einen eigenen Client zu entwickeln, der auf Bitcoin läuft - kein leichtes Unterfangen.

Zu den weiteren Einschränkungen von Omni Core gehören die folgenden:

Skalierung und Geschwindigkeit der Blockchain hängen von Bitcoin und seinen Kernentwicklern ab
Omni Core hat immer noch einen begrenzten Einfluss auf die Zukunft der Blockchain, auf der es läuft.
Die Bitcoin-Blockchain ist nicht für die Ausführung von Programmen konzipiert
Sie ist für die Wertaufbewahrung optimiert und ihre begrenzte Skriptsprache bedeutet, dass sie niemals für anspruchsvolle Smart Contracts geeignet sein wird, die direkt auf der Blockchain aufgebaut sind. Das Feld OP_RETURN hat zum Beispiel eine Speichergrenze von 80 Byte, was die Arten von Programmen, die du in Omni Layer ausführen kannst, einschränkt.

Die virtuelle Maschine von Ethereum

Die Ethereum Virtual Machine (EVM) macht es Entwicklern leicht, Dapps zu erstellen und dem Netzwerk, sie auszuführen. Die EVM verfolgt zwei Ziele:

  1. Erlaubt es Entwicklern, Smart Contracts auf der Blockchain einzusetzen

  2. Miner anleiten, wie sie den in die Software eingebetteten EVM-Smart-Contract-Code ausführen können

Einen intelligenten Vertrag verfassen

Entwickler können einige verschiedene Sprachen verwenden, um einen Smart Contract zu erstellen. Die am weitesten verbreitete Sprache ist Solidity.

Tipp

ConsenSys hat unter eine Reihe von Tools veröffentlicht, die es Entwicklern leicht machen, Smart Contracts mit Solidity zu erstellen, zu debuggen und einzusetzen.

Um mit einem Smart Contract zu interagieren, brauchst du eine Ethereum-Wallet. Die beliebteste Wallet ist MetaMask, eine Browser-Erweiterung. Diese Wallet speichert eine Kopie deines Seed und deiner privaten Schlüssel lokal auf deinem Rechner.

Hinweis

Der Seed und der private Schlüssel werden nicht zentral gespeichert. Es ist wichtig, eine physische Kopie des mnemonischen Seeds zu erstellen (z. B. auf Papier) und sie an einem sicheren Ort aufzubewahren, um Redundanz zu gewährleisten. Außerdem kann die Verwendung einer Hardware-Wallet die Sicherheit erhöhen, anstatt sich darauf zu verlassen, dass die privaten Schlüssel lokal in der Wallet-Software gespeichert sind. Mehr über die Wahl der Brieftasche erfährst du in Kapitel 2.

Bevor du deinen Smart Contract im Ethereum-Hauptnetzwerk einsetzt, ist es ratsam, ihn in einem der gängigsten Testnetze zu testen:

Entwickler von Smart Contracts müssen Ether in Form von Gas ausgeben, um einen Vertrag einzusetzen und seinen Zustand zu ändern. Alle Ethereum-Testnets haben Hähne, an denen du kostenlos Testnet ETH (tETH) erhalten kannst. Diese Testnets sind eine ideale Umgebung für die Entwicklung von Smart Contracts.

Einsetzen eines Smart Contracts

Nachdem ein Entwickler einen Smart Contract geschrieben hat, kann er ihn im Mainnet, in der Produktionsumgebung oder in einem der Testnets veröffentlichen. Die Veröffentlichung erfolgt durch das Senden einer Smart-Contract-Transaktion an das Ethereum-Netzwerk. Der einfachste Weg, diese Transaktion zu erzeugen, ist das Ethereum Remix Tool.

Remix ist eine cloudbasierte integrierte Entwicklungsumgebung (IDE) für die Entwicklung von Smart Contracts. Sie unterstützt die Sprachen Solidity und Vyper, und da es sich um eine Website handelt, muss keine Software installiert werden. Mit Remix können Entwicklerinnen und Entwickler Smart-Contract-Code schreiben, debuggen, kompilieren und an das Ethereum-Netzwerk weitergeben, einschließlich der Mainnet- und Testnet-Umgebungen.

Abbildung 4-4 zeigt, wie die Bereitstellung des Smart Contracts Mastering_Blockchain_Guestbook.sol auf Remix aussieht. In diesem Fall wird er für das Ropsten-Netzwerk bereitgestellt.

Abbildung 4-4. Bereitstellen des Smart Contracts Mastering_Blockchain_Guestbook.sol im Ethereum-Netzwerk über Remix

Um den Smart Contract einzusetzen, musst du auf die Schaltfläche Einsetzen klicken. Remix sendet dann die Transaktionsdaten an MetaMask, das dich um deine Zustimmung zum Abschluss der Transaktion bittet.

Nachdem die Transaktion genehmigt wurde, sendet MetaMask eine Transaktion zur Erstellung eines Smart Contracts an das Netzwerk. Abbildung 4-5 zeigt, wie das aussieht.

Abbildung 4-5. Details der Transaktion, mit der der Smart Contract erstellt wurde

Beachte bei dieser Transaktion Folgendes:

  • Der Wert der Transaktion ist 0 Äther, was bedeutet, dass keine Äther übertragen wurden.

  • Die Transaktion wird im Block #5357662 erfasst.

  • Der Miner, der diesen Block entdeckt hat, erhält eine Transaktionsgebühr von 0,00137715 Testnet ETH (tETH).

Nachdem das Ethereum-Netzwerk eine Transaktion verarbeitet hat, speichert es den Smart Contract im Ethereum-Netzwerk im Bytecode-Format, das weniger Platz benötigt, wie in Abbildung 4-6 dargestellt.

Abbildung 4-6. Verschiedene Ebenen, die der Code eines Smart Contracts beim Übergang von der Entwicklung zur Produktion durchläuft

Da sich der Code des Smart Contracts im Ethereum Testnet befindet, ist er für die Öffentlichkeit einsehbar (siehe Abbildung 4-7).

Abbildung 4-7. Anzeige des Smart-Contract-Codes nach der Bereitstellung auf etherscan.io

Wenn ein Smart Contract erstellt wird, erhält er eine Ethereum-Adresse. Diese Ethereum-Adresse kann ein ETH-Guthaben halten und ETH senden/empfangen, wie eine normale Ethereum-Adresse auch.

Mit einem Smart Contract interagieren

Nachdem der Guestbook-Smart-Contract auf im Ethereum-Testnetz bereitgestellt wurde, kannst du nun Daten aus ihm auslesen und in ihn schreiben. Um Daten aus dem Vertrag zu lesen, musst du das Netzwerk direkt anpingen, wie bei einem Aufruf einer öffentlichen API. Um jedoch Daten in den Kontrakt zu schreiben, musst du eine Transaktion an die Adresse des Kontrakts senden.

Alle Lese- und Schreibinteraktionen mit einem Smart Contract erfordern einen Verweis auf das Application Binary Interface (ABI) des Contracts. Die ABI ist so etwas wie eine API für einen Smart Contract. ABIs sind maschinenlesbar, d.h. sie können von Client-Software leicht analysiert werden, um zu verstehen, wie sie mit dem Vertragscode interagieren können. Eine ABI dokumentiert alle Funktionen und ihre Attribute.

Hier ist die ABI für den Guestbook Smart Contract:

[{"constant":true,"inputs":[{"name":"_bookentrynumber","type":"uint256"}],
"name":"getmessagefromreader","outputs":[{"name":"_messagefromreader",
"type":"string"}],"payable":false,"stateMutability":"view","type":"function"},
{"constant":true,"inputs":[],"name":"getnumberofmessagesfromreaders",
"outputs":[{"name":"_numberofmessages","type":"uint256"}],"payable":false,
"stateMutability":"view","type":"function"},
{"constant":true,"inputs":[],"name":"getmessagefromauthors",
"outputs":[{"name":"_name","type":"string"}],"payable":false,
"stateMutability":"view","type":"function"},
{"constant":false,"inputs":[{"name":"_messagefromreader","type":"string"}],
"name":"setmessagefromreader","outputs":[],"payable":false,
"stateMutability":"nonpayable","type":"function"},
{"constant":false,"inputs":[{"name":"_messagefromauthors","type":"string"}],
"name":"setmessagefromauthors","outputs":[],"payable":false,
"stateMutability":"nonpayable","type":"function"},
{"inputs":[],"payable":false,"stateMutability":"nonpayable","type":"constructor"}]

Einen Smart Contract lesen

Lass uns die Daten im Smart Contract Guestbook lesen. Du solltest auf etwas sehen wie in Abbildung 4-8.

Abbildung 4-8. Anzeige der schreibgeschützten Funktionen eines eingesetzten Smart Contracts

Diese Abbildung zeigt die drei Lesefunktionen, die der Guestbook Smart Contract hat. Die erste Funktion benötigt eine Eingabe, um Daten zurückzugeben, die beiden anderen nicht.

Einen intelligenten Vertrag schreiben

Schreiben wir nun einige Daten in den Guestbook Smart Contract. Dieser wird ungefähr so aussehen wie Abbildung 4-9.

Abbildung 4-9. Aufruf einer schreibgeschützten Funktion eines implementierten Smart Contracts

Die MetaMask-Browsererweiterung bietet dir die Möglichkeit, dich mit der Website zu verbinden oder nicht. Nachdem du dich mit der Website verbunden hast, kannst du anfangen, Daten in den Vertrag zu schreiben. Beachte, dass zwei Dinge passieren, wenn du auf Bestätigen klickst:

  • Etherscan erstellt eine neue Transaktion, füllt sie mit den richtigen Daten und schickt sie an deine MetaMask-Geldbörse.

  • MetaMask bittet dann um die Genehmigung, diese Transaktion zu senden.

Nachdem du auf Bestätigen geklickt hast, wird deine Transaktion in das Ethereum-Netzwerk übertragen.

Ausführen eines Smart Contracts

Als Teil der Blockentdeckung fügen Ethereum-Miner Transaktionen zu Blöcken hinzu, und zwar auf ähnliche Weise wie Bitcoin-Miner. Es gibt zwei Hauptaktionen, die eine Transaktion auslösen kann:

Zahlung
Sende den ETH-Wert von Adresse A an Adresse B.
Ausführung
Führe den Smart Contract aus.

Wenn die folgenden Punkte zutreffen, führt der Miner den Smart Contract Code über den EVM aus:

  • Die Empfängeradresse ist ein Smart Contract.

  • Die Daten-Nutzlast enthält Daten.

Das frühere Beispiel für eine Testnachricht hat eine Transaktion erzeugt, bei der die Empfängeradresse der Smart Contract Mastering_Blockchain_Guestbook ist und die Daten-Nutzlast die folgenden Daten enthält:

Function: setmessagefromreader(string_messagefromreader)

MethodID: 0xe4cb814b
[0]: 0000000000000000000000000000000000000000000000000000000000000020
[1]: 0000000000000000000000000000000000000000000000000000000000000020
[2]: 5468697320697320612074657374206d6573736167652c206279204c6f726e65

Gas und Preisgestaltung

Wie wir auf bereits besprochen haben, ist Gas eine Rechnungseinheit, die im Ethereum-Ökosystem verwendet wird, um zu berechnen, wie viel Ether Miner für die Verarbeitung von Transaktionen bezahlt werden. Wenn ein Miner eine Smart-Contract-Transaktion über den EVM ausführt, führt er Opcodesaus - Anweisungenauf der Maschinenebene -, die im Smart Contract geschrieben sind. Jeder Opcode, den er ausführt, ist mit einem Gaspreis verbunden.

Abbildung 4-10 zeigt Beispiele für Opcodes und Gaspreise.

Abbildung 4-10. Liste der Gaspreise nach Opcode

Gas ist notwendig, weil es Miner für die Bearbeitung einer Transaktion durch einen Smart Contract belohnt. Außerdem verteidigt es das Netzwerk gegen Spam und Denial-of-Service-Angriffe. Gas wird in ETH bezahlt. Der Miner erhält die übliche feste Blockbelohnung für die Entdeckung des Blocks plus die ETH, die er von Gas für die Verarbeitung des gesamten Smart-Contract-Codes erhält.

Bei der Strukturierung einer Transaktion gibt es zwei gasbezogene Felder, die du eingeben musst:

Gaspreis
Der ETH-Betrag, der für jede Gaseinheit gezahlt wird. Wenn ein Nutzer möchte, dass seine Transaktion sofort verarbeitet wird, kann er einen höheren Gaspreis zahlen, um dem Miner einen Anreiz zu geben, seine Transaktion anderen Transaktionen vorzuziehen, die auf die Verarbeitung warten.
Gasgrenze
Die maximale Menge an Gas, die du bereit bist, dem Miner für die Bearbeitung deiner Transaktion zu zahlen. Die hier angegebene Menge an Gas sollte ausreichen, um alle Opcodes auszuführen, die die Vertragsfunktion ausführen soll.
Hinweis

Wei ist die kleinste Einheit von Ether (ETH), die 10e-18 ETH beträgt. Der US Dollar ist durch zwei Dezimalstellen teilbar. ETH ist durch 18 Nachkommastellen teilbar. So wie der US-Dollar den Penny als kleinste Werteinheit hat, ist ein Wei die kleinste Werteinheit in Ethereum. Ein Satoshi ist die kleinste Werteinheit für Bitcoin.

Hier sind noch ein paar weitere Konfessionen:

  • 1 wei = 1 wei

  • 1 kwei = 1.000 wei

  • 1 mwei = 1.000.000 wei

  • 1 gwei = 1.000.000.000 wei

Tipp

ETH Gas Station ist eine sehr nützliche Seite, um zu berechnen, welchen Gaspreis du auf Basis der aktuellen Netznutzung zahlen solltest.

In dem früheren Beispiel für den Gästebuch-Smart-Contract, in dem wir eine Testnachricht geschrieben haben, waren die Beträge wie folgt:

  • Gaslimit: 128.050

  • Gasverbrauch durch Transaktion: 85.367 (66,67%)

  • Gaspreis: 0.000000001 ether (1 gwei)

Mit dem Code interagieren

Hier sind ein paar beliebte Methoden für , um programmatisch mit dem Ethereum-Netzwerk zu interagieren:

Web3.js
Die häufigste Art, wie Entwickler ihre Websites mit MetaMask und den intelligenten Verträgen von interagieren lassen, ist Web3.js, eine Node.js-Bibliothek.
Infura
Eine weitere beliebte Option ist Infura, das eine REST-API für das Ethereum-Netzwerk bereitstellt. Diese API ist so aufgebaut, dass sie Entwicklern vertraut ist. Der Vorteil von Infura ist, dass die Lernkurve für den Einsatz viel niedriger ist, weil es den Zugang zu Ethereum übernimmt. Der Nachteil ist, dass die Entwickler/innen darauf vertrauen müssen, dass Infura die Daten richtig sichert und weiterleitet.

Zusammenfassung

Das Ethereum-Ökosystem entwickelte sich schnell von einer 2014 öffentlich vorgestellten Idee zu dem vollwertigen Netzwerk, das es heute ist. Dank seiner Smart-Contract-Eigenschaften und der großen Anzahl von Ressourcen und Tools, die im Ökosystem entwickelt werden, entscheiden sich viele Entwickler/innen dafür, auf Ethereum statt auf Bitcoin zu bauen. Ethereum und Bitcoin teilen sich zwar einige Technologien, aber ihre Entwicklung geht in jedem Fall in unterschiedliche Richtungen.

Get Blockchain beherrschen now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.