Säuberung für den Ethereum Tree

Danny de Boer

von Danny de Boer

Am · Lesezeit: 2 Minuten

Danny de Boer

Als Informatiker schaut Danny de Boer kritisch auf die Blockchain-Entwicklung und Kryptographie. Zwischen Komplexität und Hype erklärt er allgemeinverständlich und anwendungsbezogen. Seit 2014 berichtet er für BTC-ECHO aus der Krypto-Szene.

Teilen
vacuuming

Quelle: © gmstockstudio - Fotolia.com

ETH339.63 $ -0.32%

Der bisher letzte Ethereum Hard Fork, Spurious Dragon, wurde soweit ohne Probleme durchgeführt. Dieser Fork sollte als Antwort auf die DoS-Angriffe eingesetzt werden. Nun geht es aber noch um den sogenannten Ethereum-Tree-State.

Der Artikel wurde zuletzt aktualisiert am 30. Juni 2019 05:06 Uhr von Danny de Boer

Dieser ist sozusagen der (ist)-Zustand, in dem sich das Ethereum-Netzwerk zu einem gegebenen Zeitpunkt aufhält. Durch die DoS-Angriffe im September wurden eine Menge leere Accounts erstellt, die praktisch keine Funktionalität aufweisen.

Problematisch ist das insofern, als das die nicht-funktionalen Accounts trotzdem Speicherplatz belegen, die Verarbeitungszeit verlängern und somit das Netzwerk verlangsamen.

Schadensbericht

Während der Angriffe im Oktober missbrauchte der Angreifer den Befehl “SUICIDE”, welcher bis dato noch eine Schwachstelle aufwies. Der Befehl wurde immer wieder aufgerufen und führte dazu, dass unzählige leere Accounts erstellt wurden.


Der Angreifer konnte damit 19 Millionen leere Accounts erstellen und zahlte lediglich 90 gas pro Account (weniger als 1 Cent pro Account).

Accounts

Leere Accounts ohne Funktionalität wären eigentlich auch kein Problem. Wo ist nun der Unterschied zu nicht-existenten Accounts? Leere Accounts müssten in den Ethereum-State-Tree aufgenommen werden, nicht-existente dagegen nicht. Praktischerweise können leere Accounts in nicht-existente umgewandelt werden.

Durch den Spurious Dragon Hard Fork wurde nun eine neue Protokoll-Regel eingeführt, die es verhindert, dass neue leere Accounts erschaffen werden. Stattdessen bleibt ein nicht-existenter Account zurück. Außerdem können leere Accounts durch Interaktionen “berührt” werden, wodurch sie gelöscht werden.

Ethereum Tree Säuberung

Nun läuft ein Ethereum-Contract durch alle Accounts und interagiert mit den leeren Accounts. Dadurch werden sie gelöscht, der Ethereum-State-Tree wird damit gesäubert. Durch diesen Prozess werden manche Nodes verlangsamt. Doch diese Methode ist zurzeit die beste, Buterin schrieb auf Reddit:

“Der Grund wieso die Transaktionen (“Säuberungstransaktionen”, Anm. d. Red.) die Nodes verlangsamen, liegt daran, dass sie mit jeder Interaktion einen (leeren) Account löschen – dies führt zu 5-10 Schreibvorgängen in der Datenbank. Jede ähnliche Vorgehensweise würde letztendlich zum selben Effekt führen.”

Denn selbst wenn man einen neuen Ethereum-State mit nur existenten und nicht-leeren Accounts aufbauen würde, wäre es derselbe Prozess von der anderen Seite und denselben Effekten.

Der Säuberungscontract kann hier verfolgt werden. Außerdem lassen sich weitere Informationen über das Netzwerk auf ethstats.net finden. Die Säuberung läuft übrigens nicht 24/7. Ein kurzer Stopp für mehrere Minuten oder Stunden ist technisch bedingt und kein Grund zur Sorge. Insgesamt soll die Säuberungsaktion eine Woche anhalten. Die Unabänderlichkeit (Immutability) des Ethereum-Netzwerks ist nicht betroffen.

BTC-Echo


Teilen

Die aktuellsten News kostenlos per E-Mail

Ich stimme zu, dass meine E-Mail-Adresse für den Versand des Newsletters gespeichert und verarbeitet wird. Weitere Hinweise
BTC-ACADEMY

Kryptowährungen einfach kaufen und verkaufen

Ein Bankkonto, Krypto-Wallets und Trading vereint

  • Einfach, sicher und zuverlässig
  • Kontoeröffnung in nur 5 Minuten
  • Nur 1% Handelsgebühr
  • Made in Germany