Säuberung für den Ethereum Tree

Quelle: © gmstockstudio - Fotolia.com
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.
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.



Krypto-Trading lernen
Der Einsteigerkurs für den Handeln von Bitcoin und digitalen Währungen
3 Stunden Videokurs mit Profitrader Robert Rother
Jetzt traden lernen
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).
Bitcoin, Aktien, Gold und ETFs in einer App handeln!
Zuverlässig, Einfach, Innovativ - Deutschlands beliebteste Finanzinstrumente einfach und sicher handeln.
Die Vorteile:☑ Kostenloses 40.0000 EUR Demokonto
☑ Registrierung in nur wenigen Minuten
☑ PayPal Ein-/Auszahlung möglich
☑ 24/7 verfügbar + mobiler Handel Zum Anbieter
76,4% der Kleinanlegerkonten verlieren Geld beim CFD-Handel mit diesem Anbieter [Anzeige].
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