Verkle-Bäume
Verkle-Bäume (ein Kofferwort aus „Vector Commitment“ und „Merkle Trees“) sind eine Datenstruktur, die verwendet werden kann, um Ethereum-Blockchain-Knoten zu aktualisieren, sodass sie keine großen Mengen an Zustandsdaten mehr speichern müssen, ohne die Fähigkeit zu verlieren, Blöcke zu validieren.
Zustandslosigkeit
Verkle-Bäume sind ein entscheidender Schritt auf dem Weg zu zustandslosen Ethereum-Clients. Zustandslose Clients sind solche, die nicht die gesamte Zustandsdatenbank speichern müssen, um eingehende Blöcke zu validieren. Anstatt ihre eigene lokale Kopie des Ethereum-Zustands zu verwenden, um Blöcke zu verifizieren, verwenden zustandslose Clients einen „Witness“ (Zeugen) für die Zustandsdaten, der mit dem Block ankommt. Ein Witness ist eine Sammlung einzelner Teile der Zustandsdaten, die erforderlich sind, um eine bestimmte Gruppe von Transaktionen auszuführen, sowie ein kryptografischer Beweis, dass der Witness wirklich Teil der vollständigen Daten ist. Der Witness wird anstelle der Zustandsdatenbank verwendet. Damit dies funktioniert, müssen die Witnesses sehr klein sein, damit sie rechtzeitig sicher über das Netzwerk übertragen werden können, damit Validatoren sie innerhalb eines 12-Sekunden-Slots verarbeiten können. Die aktuelle Zustandsdatenstruktur ist nicht geeignet, da die Witnesses zu groß sind. Verkle-Bäume lösen dieses Problem, indem sie kleine Witnesses ermöglichen und so eine der Haupthürden für zustandslose Clients beseitigen.
Was ist ein Witness und warum brauchen wir ihn?
Einen Block zu verifizieren bedeutet, die im Block enthaltenen Transaktionen erneut auszuführen, die Änderungen auf den Ethereum-Zustands-Trie anzuwenden und den neuen Root-Hash zu berechnen. Ein verifizierter Block ist ein Block, dessen berechneter Zustands-Root-Hash mit dem im Block bereitgestellten übereinstimmt (denn das bedeutet, dass der Block-Vorschlagende die Berechnung wirklich so durchgeführt hat, wie er sagt). In heutigen Ethereum-Clients erfordert die Aktualisierung des Zustands Zugriff auf den gesamten Zustands-Trie, was eine große Datenstruktur ist, die lokal gespeichert werden muss. Ein Witness enthält nur die Fragmente der Zustandsdaten, die erforderlich sind, um die Transaktionen im Block auszuführen. Ein Validator kann dann nur diese Fragmente verwenden, um zu verifizieren, dass der Block-Vorschlagende die Block-Transaktionen ausgeführt und den Zustand korrekt aktualisiert hat. Dies bedeutet jedoch, dass der Witness schnell genug zwischen Peers im Ethereum-Netzwerk übertragen werden muss, um von jedem Blockchain-Knoten sicher innerhalb eines 12-Sekunden-Slots empfangen und verarbeitet zu werden. Wenn der Witness zu groß ist, könnte es für einige Blockchain-Knoten zu lange dauern, ihn herunterzuladen und mit der Chain Schritt zu halten. Dies ist eine zentralisierende Kraft, da es bedeutet, dass nur Blockchain-Knoten mit schnellen Internetverbindungen an der Validierung von Blöcken teilnehmen können. Mit Verkle-Bäumen ist es nicht mehr nötig, den Zustand auf Ihrer Festplatte zu speichern; alles, was Sie benötigen, um einen Block zu verifizieren, ist im Block selbst enthalten. Leider sind die Witnesses, die aus Merkle-Tries erzeugt werden können, zu groß, um zustandslose Clients zu unterstützen.
Warum ermöglichen Verkle-Bäume kleinere Witnesses?
Die Struktur eines Merkle-Tries macht die Größe von Witnesses sehr groß – zu groß, um sie innerhalb eines 12-Sekunden-Slots sicher zwischen Peers zu übertragen. Das liegt daran, dass der Witness ein Pfad ist, der die Daten, die in Blättern gehalten werden, mit dem Root-Hash verbindet. Um die Daten zu verifizieren, ist es notwendig, nicht nur alle Zwischen-Hashes zu haben, die jedes Blatt mit der Root verbinden, sondern auch alle „Geschwister“-Knoten. Jeder Knoten im Beweis hat ein Geschwisterchen, mit dem er gehasht wird, um den nächsten Hash im Trie nach oben zu erstellen. Das sind viele Daten. Verkle-Bäume reduzieren die Größe des Witnesses, indem sie den Abstand zwischen den Blättern des Baums und seiner Root verkürzen und außerdem die Notwendigkeit beseitigen, Geschwister-Knoten zur Verifizierung des Root-Hashes bereitzustellen. Noch mehr Platzeffizienz wird durch die Verwendung eines leistungsstarken Polynomial-Commitment-Schemas anstelle des Hash-basierten Vector-Commitments gewonnen. Das Polynomial-Commitment ermöglicht es dem Witness, eine feste Größe zu haben, unabhängig von der Anzahl der Blätter, die er beweist.
Unter dem Polynomial-Commitment-Schema haben die Witnesses überschaubare Größen, die leicht im Peer-to-Peer-Netzwerk übertragen werden können. Dies ermöglicht es Clients, Zustandsänderungen in jedem Block mit einer minimalen Datenmenge zu verifizieren.
Wie ist die Struktur eines Verkle-Baums?
Verkle-Bäume sind (key,value)-Paare, bei denen die Schlüssel 32-Byte-Elemente sind, die aus einem 31-Byte-Stem (Stamm) und einem Ein-Byte-Suffix bestehen. Diese Schlüssel sind in Extension-Knoten (Erweiterungsknoten) und Inner-Knoten (innere Knoten) organisiert. Extension-Knoten repräsentieren einen einzelnen Stamm für 256 Kinder mit unterschiedlichen Suffixen. Innere Knoten haben ebenfalls 256 Kinder, aber sie können andere Extension-Knoten sein. Der Hauptunterschied zwischen der Struktur des Verkle-Baums und des Merkle-Baums besteht darin, dass der Verkle-Baum viel flacher ist, was bedeutet, dass es weniger Zwischenknoten gibt, die ein Blatt mit der Root verbinden, und daher weniger Daten erforderlich sind, um einen Beweis zu generieren.
Lesen Sie mehr über die Struktur von Verkle-Bäumen (opens in a new tab)
Aktueller Fortschritt
Verkle-Baum-Testnets sind bereits in Betrieb, aber es gibt noch erhebliche ausstehende Updates für Clients, die erforderlich sind, um Verkle-Bäume zu unterstützen. Sie können helfen, den Fortschritt zu beschleunigen, indem Sie Verträge in den Testnets bereitstellen oder Testnet-Clients ausführen.
Sehen Sie sich an, wie Guillaume Ballet das Condrieu-Verkle-Testnet erklärt (opens in a new tab) (beachten Sie, dass das Condrieu-Testnet Proof-of-Work war und nun durch das Verkle Gen Devnet 6 Testnet ersetzt wurde).
Weiterführende Literatur
- Verkle Trees for Statelessness (opens in a new tab)
- Dankrad Feist erklärt Verkle-Bäume bei PEEPanEIP (opens in a new tab)
- Verkle Trees For The Rest Of Us (opens in a new tab)
- Anatomy of A Verkle Proof (opens in a new tab)
- Guillaume Ballet erklärt Verkle-Bäume bei ETHGlobal (opens in a new tab)
- „How Verkle trees make Ethereum lean and mean“ von Guillaume Ballet auf der Devcon 6 (opens in a new tab)
- Piper Merriam über zustandslose Clients auf der ETHDenver 2020 (opens in a new tab)
- Dankrad Feist erklärt Verkle-Bäume und Zustandslosigkeit im Zero Knowledge Podcast (opens in a new tab)
- Vitalik Buterin über Verkle-Bäume (opens in a new tab)
- Dankrad Feist über Verkle-Bäume (opens in a new tab)
- Verkle-Baum EIP-Dokumentation (opens in a new tab)
Letzte Aktualisierung der Seite: 26. Februar 2026
