Drzewa Verkle
Drzewa Verkle (połączenie „Vector commitment” oraz „Merkle Trees”) to struktura danych, którą można wykorzystać do ulepszenia węzłów Ethereum, aby mogły przestać przechowywać duże ilości danych o stanie bez utraty możliwości walidacji bloków.
Bezstanowość
Drzewa Verkle są kluczowym krokiem w drodze do bezstanowych klientów Ethereum. Bezstanowe klienty to takie, które nie muszą przechowywać całej bazy danych o stanie w celu walidacji nadchodzących bloków. Zamiast wykorzystywać własną lokalną kopię stanu Ethereum do weryfikacji bloków, bezstanowe klienty wykorzystują „świadka” do danych o stanie, który przychodzi z blokiem. Świadek jest zbiorem indywidualnych części danych o stanie, które są wymagane do wykonania określonego zestawu transakcji, oraz kryptograficznym dowodem na to, że świadek naprawdę jest częścią wszystkich danych. Świadek jest używany zamiast bazy danych o stanie. Aby to działało, świadkowie muszą być bardzo mali, tak aby można ich było bezpiecznie rozgłaszać w sieci w czasie umożliwiającym walidatorom przetworzenie ich w ciągu 12-sekundowego slotu. Obecna struktura danych o stanie nie jest odpowiednia, ponieważ świadkowie są zbyt duzi. Drzewa Verkle rozwiązują ten problem, zezwalając na małych świadków, co usuwa jedną z głównych przeszkód dla bezstanowych klientów.
Czym jest świadek i dlaczego ich potrzebujemy?
Weryfikowanie bloku oznacza ponowne wykonanie transakcji zawartych w bloku, z zastosowaniem zmian do drzewa trie stanu Ethereum i obliczeniem nowego hasha korzenia. Zweryfikowany blok to taki, którego obliczony hash korzenia stanu jest taki sam jak ten dostarczony z blokiem (ponieważ oznacza to, że proponent bloku naprawdę wykonał obliczenia, o których mówi, że je wykonał). W obecnych klientach Ethereum aktualizowanie stanu wymaga dostępu do całego drzewa trie stanu, które jest dużą strukturą danych i musi być przechowywane lokalnie. Świadek zawiera tylko fragmenty danych o stanie, które są wymagane do wykonania transakcji w bloku. Walidator może następnie wykorzystać tylko te fragmenty do zweryfikowania, że proponent bloku wykonał transakcje w bloku i poprawnie zaktualizował stan. Oznacza to jednak, że świadek musi być rozsyłany między użytkownikami w sieci Ethereum wystarczająco szybko, aby każdy węzeł mógł go bezpiecznie otrzymać i przetworzyć w ciągu 12 sekund. Jeśli świadek jest za duży, pobranie go i nadążenie za łańcuchem może zająć niektórym węzłom zbyt długo. Jest to siła centralizująca, ponieważ tylko węzły z szybkim połączeniem internetowym mogą uczestniczyć w walidacji bloków. Dzięki drzewom Verkle nie ma potrzeby przechowywania stanu na dysku twardym; wszystko, czego potrzebujesz do zweryfikowania bloku, jest zawarte w samym bloku. Niestety świadkowie, którzy mogą zostać stworzeni przez drzewa trie Merkle, są zbyt duzi, aby obsługiwać bezstanowe klienty.
Dlaczego drzewa Verkle pozwalają na mniejszych świadków?
Struktura drzewa trie Merkle sprawia, że rozmiary świadków są bardzo duże — zbyt duże, aby bezpiecznie rozsyłać je między użytkownikami w ciągu 12-sekundowego slotu. Dzieje się tak, ponieważ świadkowie są ścieżką łączącą dane, które są przechowywane w liściach do hasha korzenia. Aby zweryfikować dane, wymagane jest posiadanie nie tylko wszystkich pośrednich hashy, które łączą każdy liść z korzeniem, ale również wszystkich „sąsiednich” węzłów. Każdy węzeł w dowodzie ma swojego sąsiada, z którym jest hashowany, aby utworzyć kolejny hash w górę drzewa trie. To bardzo dużo danych. Drzewa Verkle zmniejszają rozmiar świadka poprzez skrócenie dystansu między liśćmi drzewa a jego korzeniem oraz wyeliminowanie konieczności dostarczania sąsiednich węzłów do weryfikacji hasha korzenia. Jeszcze większą wydajność przestrzenną można uzyskać dzięki zastosowaniu potężnego schematu zobowiązania wielomianowego zamiast zobowiązania wektorowego w stylu hashowym. Zobowiązanie wielomianowe pozwala świadkowi na zachowanie stałego rozmiaru bez względu na liczbę liści, które udowadnia.
W schemacie zobowiązania wielomianowego świadkowie mają rozsądne rozmiary, które można z łatwością przesłać w sieci peer-to-peer. Pozwala to klientom weryfikować zmiany stanu w każdym bloku przy użyciu minimalnej ilości danych.
Jaka jest struktura drzewa Verkle?
Drzewa Verkle to pary (key,value), gdzie klucze są 32-bajtowymi elementami złożonymi z 31-bajtowego rdzenia i jednobajtowego sufiksu. Klucze te są zorganizowane w węzły rozszerzeń i węzły wewnętrzne. Węzły rozszerzeń reprezentują pojedynczy rdzeń dla 256 potomków z różnymi sufiksami. Węzły wewnętrzne również mają 256 potomków, ale mogą nimi być inne węzły rozszerzeń. Główna różnica między strukturą drzewa Verkle a drzewa Merkle jest taka, że drzewo Verkle jest znacznie bardziej płaskie, co oznacza, że istnieje mniej węzłów pośrednich łączących liście z korzeniem, co sprawia, że potrzebna jest mniejsza ilość danych do wygenerowania dowodu.
Przeczytaj więcej o strukturze drzew Verkleopens in a new tab
Aktualny postęp
Sieci testowe drzew Verkle są już dostępne, ale wciąż istnieją spore zaległości co do aktualizacji klientów, które są wymagane do obsługi drzew Verkle. Możesz jeszcze bardziej przyspieszyć postęp wdrażając kontrakty do sieci testowych lub uruchamiając klientów sieci testowych.
Zobacz, jak Guillaume Ballet wyjaśnia sieć testową Condrieu Verkleopens in a new tab (pamiętaj, że sieć testowa Condrieu była oparta na mechanizmie proof-of-work i została zastąpiona siecią testową Verkle Gen Devnet 6).
Dalsza lektura
- Drzewa Verkle dla bezstanowościopens in a new tab
- Dankrad Feist wyjaśnia drzewa Verkle w PEEPanEIPopens in a new tab
- Drzewa Verkle dla reszty z nasopens in a new tab
- Anatomia dowodu Verkleopens in a new tab
- Guillaume Ballet wyjaśnia drzewa Verkle na ETHGlobalopens in a new tab
- „Jak drzewa Verkle sprawiają, że Ethereum jest w dobrej kondycji” – Guillaume Ballet na Devcon 6opens in a new tab
- Piper Merriam o klientach bezstanowych z ETHDenver 2020opens in a new tab
- Dankrad Fiest wyjaśnia drzewa Verkle i bezstanowość w podcaście Zero Knowledgeopens in a new tab
- Vitalik Buterin o drzewach Verkleopens in a new tab
- Dankrad Feist o drzewach Verkleopens in a new tab
- Dokumentacja EIP drzew Verkleopens in a new tab
Strona ostatnio zaktualizowana: 23 lutego 2026
