None
Blockchain

Das Ethereum Istanbul-Upgrade

by Viktor Garske on Dec. 7, 2019, 4:40 p.m.
Language icon Language: this article is available in: en

Ein kleiner Blick über den Tellerrand: im Laufe des heutigen und morgigen Tages passieren interessante Dinge bei Ethereum. Die Open Source-Software und das gleichnamige Netzwerk Ethereum bilden ein verteiltes System für DApps, die unter die Kategorie der Smart Contracts fallen. DApps kann man sich als „distributed decentraliced cloud computing“ vorstellen. Als Datenstruktur wird eine Blockchain eingesetzt. (Rudimentäre) Anwendungen (Beispielprogramm) werden dort verewigt und können über entsprechende Clients angesprochen werden.

Das Ganze basiert momentan überwiegend auf JavaScript(-ähnlichen Sprachen) und fühlt sich wie die Entwicklertools-Konsole im Webbrowser an. Aber es funktioniert und das sogar erstaunlich gut.

Ressourcen in Form von CPU-Zeit, etc. werden über den eigenen Token Ether verrechnet. Und da haben wir es: bei Ethereum stehen wir zur Hälfte in der Welt der Kryptowährungen – aber eben nur zur Hälfte.

Ethereum unterscheidet sich von Bitcoin nicht nur in den DApps sowie der Struktur. Das Netzwerk ist geprägt von ständigem Wandel, Weiterentwicklung und resultierenden Upgrades. Weit am Horizont steht der Umstieg auf "Ethereum 2.0" an. Dabei geht um die Umstellung von Proof of Work-Verfahren mit den Minern hin zum Proof of Stake-Verfahren mit sog. Validatoren. Da diese Umstellung tiefe Einschnitte in jeglicher Weise für das Netzwerk bedeutet, wird die Migration schrittweise vollzogen.

Hard Fork-Upgrade

Teil der Migration sind Upgrades, die mitunter zu einem Hard Fork führen. Dies ist immer dann der Fall, wenn die Änderungen nicht abwärtskompatibel sind, also mit dem Upgrade Abläufe und Verhaltensweisen erlaubt werden, die vorher verboten waren. Wird ein Upgrade nicht von ausreichend Nutzern adaptiert, kann sich die Blockkette teilen.

Hard Fork visualisiert

Schauen wir uns das in der Grafik einmal an und fangen oberhalb der gestrichelten Linie an, wo Version 1 läuft: Blöcke werden wie üblich der Blockchain angefügt, indem sie auf einen Parent bzw. Elternteil verweisen. Somit lässt sich rekursiv der Weg zum Urblock, dem Genesis-Block, zurückverfolgen. Das Proof of Work-Verfahren sagt weiterhin aus, dass Grundlage für neue Transaktionen die Kette an Blöcken ist („best block chain“), für die der meiste Aufwand in Form von Mining nötig war. So erklären sich auch die doppelten Blöcke mit der gleichen Nummer: sie gelten als „abgelaufen“ (stale), sofern eine andere Kette mehr Nachfolger hat. Soweit so gut – schauen wir uns nun den Bereich unterhalb der gestrichelten Linie an: hier wird Version 2 betrieben. Anfangs bei Block 99 verhält sich das System genau wie Version 1. Es ist allerdings einprogrammiert, dass ab Block 100 die Änderungen scharf gestellt werden. Das hat zur Folge, dass die dann weitergeführte Blockchain nicht mehr mit Version 1 kompatibel ist.

Problematisch ist dies, weil somit double spending, das mehrfache Ausgeben des gleichen Coins, möglich wird: wer bis zum Block 99 einen Coin in seiner Wallet hatte, kann ihn nun auf beiden Chains zwei Mal ausgeben, da die Ketten nicht mehr miteinander kommunizieren können. Werden Coins aus der Version 1-Blockchain (ab Block 100) von einer Exchange sogar noch zum Handel angeboten, ist das Chaos perfekt: dann haben wir einen weiteren Altcoin (alternative coin) mit eigenem Kurs, etc. Da alte Vermögen (die von Block ≤ 99) ebenfalls gültig sind, haben wir quasi neue Token geschaffen – der Rest ist Auslegungssache vom Finanzamt.

Um nicht durch die potentielle Fragmentierung Schaden zu erleiden, sind deshalb die Entwickler von solchen Systemen meist bemüht, eine hohe Adaption von Upgrades zu erreichen. Dazu aber später noch mehr.

Istanbul-Upgrade

Das Upgrade mit dem Codenamen Istanbul wirkt ab Blocknummer 9.069.000 und bringt für Ethereum einige Neuigkeiten mit:

  • EIP-152 soll Interoperabilität mit Zcash ermöglichen und verbessern
  • EIP-1108 und EIP-2028 machen (Privatsphäre)funktionalitäten erschwinglicher, indem die Kosten für zk-SNAKS (zero knowledge-Instrumenten für bessere Privatsphäre) angepasst und die Gebühr (bei Ethereum sog. gas) von Calldata von 68 gas pro Byte auf 16 gas pro Byte gesenkt werden
  • EIP-1884 hebt die Kosten (gas) für bestimmte opcodes an
  • EIP-1344 fügt das CHANID opcode hinzu, um die korrekte Blockkette zu tracken
  • EIP-2200 ändert das gas metering im Zusammenhang mit dem SSTORE opcode

Übrigens: die erwähnten Opcodes sind wirklich als solche zu verstehen, da Smart Contracts / DApps kompiliert werden und nur das Kompilat mit den eigenen Opcodes samt ABI in der Blockchain gespeichert und schließlich in der Ethereum Virtual Machine (EVM) ausgeführt wird.

Aber irgendwie will das Upgrade diesmal nicht so: auf ethernodes.org/istanbul lässt sich beobachten, wie viele Nodes dieses Upgrade bereits installiert haben (durch ein simples Update des Node-Clients wie geth oder parity). Momentan sind es zum Zeitpunkt des Artikels nur knapp 50 %. Gewünscht wären > 95 %.

Dabei tickt die Uhr: heute Nacht um ca. 01:00 Uhr MEZ soll Block 9069000 erreicht und das Upgrade vollzogen werden. Es bleibt zu schauen, was passiert.

Ethereum Forks sind im Gegensatz zu Bitcoin nicht unüblich: so entstand durch einen erzwungenen Hard Fork durch das Entwicklerteam in Folge des DAO-Hacks Ethereum Classic.

Tags:
Author image
Viktor Garske

Viktor Garske ist der Hauptautor des Blogs und schreibt gerne über Technologie, Panorama sowie Tipps & Tricks.

Comments (0)

Comments are not enabled for this entry.