Ethereum fusioniert Testnet Kintsugi durch Fehler aufgeteilt, hier ist der Grund

Das Zusammenführungsereignis im Ethereum-Netzwerk ist der Übergang vom derzeit verwendeten Proof-of-Work-Modell zum Proof-of-Stake-Konsensmodell. Diese Fusion bedeutet, dass das aktuelle Ethereum-Mainnet-System und die neue Beacon-Kette, oft als Ethereum 2.0 bezeichnet, zu einer Blockchain verschmelzen.

Um die Fusion zu testen, wurde im Dezember das Kintsugi-Testnetz bereitgestellt. Der Zweck des Testnetzes besteht darin, verschiedene Randfälle auszuführen und zu beobachten, wie sich das System verhält. Einer der Entwickler, die an der Durchführung von Tests auf Kintsugi beteiligt sind, ist Marius van der Wijden, Ethereum-Kernentwickler, der mit dem Kundenteam von Geth (Go-Ethereum) zusammenarbeitet.

„Das Testnetz lief ein paar Wochen fehlerfrei. Letzte Woche habe ich einen Fuzzer erstellt, der ungültige Blöcke sendet. Ein Block enthält viele Informationen, wie die Transaktionen, den Hash des vorherigen Blocks, das Gaslimit usw.“, sagt Marius van der Wijden.

Einige Implementierungen haben den Block nicht ausgeführt und überprüft

Ein Fuzzer ist eine gängige Art von Testwerkzeug, das von Entwicklern verwendet wird, um zufällige Eingaben für Funktionen oder andere Codeteile zu generieren und zu versuchen, sie auf die eine oder andere Weise zum Brechen zu bringen. Es geht darum, fehlerhafte und unerwartete Eingaben zu generieren und zu beobachten, was mit dem System passiert.

Der von van der Wijden erstellte Fuzzer erzeugt einen gültigen Block und ändert ein Element davon, um ihn ungültig zu machen. Eine Technik, die verwendet wird, besteht darin, ein Element in ein anderes zu ändern. In diesem Fall hat der Fuzzer den Blockhash in den übergeordneten Hash geändert.

„Knoten sollten einen solchen geänderten Block ablehnen. Da der übergeordnete Hash jedoch selbst auf einen gültigen Block zeigte, führten einige Implementierungen den Block nicht tatsächlich aus und überprüften ihn, sondern suchten ihn stattdessen in einem Cache nach. Da der vorherige Block gültig war und sich im Cache befand, wurde auch der neue Block als gültig angenommen“, erklärt van der Wijden.

Netzwerk zweimal aufgeteilt

Das Ergebnis war, dass die Hälfte des Netzwerks, die Geth-Clients, den Block ablehnte, während die andere Hälfte, die Nethermind- und Besu-Clients, ihn akzeptierten, was dazu führte, dass sich die Kette spaltete, da wir nun zwei verschiedene Ansichten über den korrekten Zustand hatten. Zu allem Überfluss kam noch ein weiteres Problem hinzu.

Laut van der Wijden teilen sich wiederum die Geth-Kettenknoten, die aus Lighthouse-Geth, Prysm-Geth, Lodestar-Geth, Nimbus-Geth und Teku-Geth bestehen, auf.

„Diese Aufteilung wird noch untersucht, aber es sieht so aus, als ob Teku auch einen Caching-Mechanismus hat, der fehlgeschlagen ist“, sagt van der Wijden.

Da zum Zeitpunkt des Verfassens dieses Artikels mehrere verschiedene Forks des Kintsugi-Testnetzes existieren und jeder Knoten denkt, dass er sich auf einem korrekten Fork befindet, wird das Netzwerk nicht mehr finalisiert.

„Wir werden etwas finden, um das Netzwerk wieder zusammen zu bringen. Wir haben den Nethermind-Client bereits aktualisiert und diese Knoten befinden sich jetzt in der richtigen Kette. Wir brauchen immer noch den Fix für Teku, da mehr als 33 Prozent der Knoten Teku sind, sonst wird die Kette nicht abgeschlossen“, sagt van der Wijden.

Zwischenfall bringt Gutes

Laut van der Wijden verhindert oder verzögert dieser Vorfall weder weitere Tests des Ethereum-Merges noch verzögert er den Merge selbst. Laut van der Wijden hilft der Vorfall sogar dabei, Randfälle zu testen, die bei ordnungsgemäßem Betrieb des Netzwerks schwer zu testen gewesen wären.

„Lange Zeiträume ohne Finalisierung stellen eine Herausforderung für die Knoten dar und es ist sehr wichtig für uns zu sehen, wie sie sich gerade verhalten. Wir denken, dass das Testnetz irgendwann wieder zusammenkommen wird, aber ich denke nicht, dass wir versuchen werden, es manuell zu reparieren, da es uns die Möglichkeit gibt, interessante Randfälle zu testen.“

„Ich glaube nicht, dass dies die Zusammenführung verzögern wird, da die Zusammenführung noch nicht geplant ist. Aber es zeigt, wie wichtig Tests sind. Ich denke, die Zusammenführung kommt sehr gut voran. Wir brauchen noch ein paar Wochen, um die Software in einen akzeptablen Zustand zu bringen, und dann brauchen wir noch ein paar Monate, um sie zu testen“, sagt van der Wijden.

Was passiert, wenn dies im Mainnet passiert?

Eine interessante Frage ist, was passiert wäre, wenn ein solcher Fehler in der Mainchain aufgetreten wäre.

„Wir haben ziemlich früh mit dem Testen begonnen, also haben wir mit einigen Fehlern wie diesem gerechnet. Ein solcher Fehler im Mainnet wäre jedoch ziemlich unangenehm, da wir den Fehler finden und beheben müssten, worin wir ziemlich gut sind, den Code veröffentlichen und dann alle Staker wissen lassen müssten, dass sie ihre Knoten aktualisieren sollten. Der letzte Teil ist meiner Meinung nach der schwierige Teil, da einige Benutzer die Entwicklung nicht allzu genau verfolgen“, sagt van der Wijden.

Für weitere Details wird dem interessierten Leser empfohlen, Marius van der Wijdens Tweets auf den Vorfall.

CryptoSlate-Newsletter

Mit einer Zusammenfassung der wichtigsten täglichen Geschichten in der Welt von Krypto, DeFi, NFTs und mehr.

Holen Sie ein Rand auf dem Cryptoasset-Markt

Greifen Sie als bezahltes Mitglied von auf mehr Krypto-Einblicke und -Kontexte in jedem Artikel zu CryptoSlate Edge.

On-Chain-Analyse

Preisschnappschüsse

Mehr Kontext

Melden Sie sich jetzt für $ 19 / Monat an. Entdecken Sie alle Vorteile

Quelle: https://cryptoslate.com/ethereum-merge-testnet-kintsugi-split-by-bug-heres-why/