Danksharding to sposób, w jaki Ethereum staje się prawdziwie skalowalnym blockchainem, ale aby to osiągnąć, wymaganych jest kilka aktualizacji protokołu. Proto-danksharding jest krokiem pośrednim na tej drodze. Oba mają na celu sprawienie, by transakcje w warstwie 2 (L2) były jak najtańsze dla użytkowników i powinny przeskalować Ethereum do >100 000 transakcji na sekundę.
Czym jest proto-danksharding?
Proto-danksharding, znany również jako EIP-4844 (opens in a new tab), to sposób dla rollupów na dodawanie tańszych danych do bloków. Nazwa pochodzi od dwóch badaczy, którzy zaproponowali ten pomysł: Protolambdy i Dankrada Feista. Historycznie rzecz biorąc, rollupy były ograniczone w tym, jak tanie mogą być transakcje użytkowników, przez fakt, że publikują one swoje transakcje w CALLDATA.
Jest to drogie, ponieważ jest przetwarzane przez wszystkie węzły Ethereum i pozostaje onchain na zawsze, mimo że rollupy potrzebują tych danych tylko przez krótki czas. Proto-danksharding wprowadza bloby danych, które mogą być wysyłane i dołączane do bloków. Dane w tych blobach nie są dostępne dla EVM i są automatycznie usuwane po ustalonym czasie (w momencie pisania tego tekstu jest to 4096 epok, czyli około 18 dni). Oznacza to, że rollupy mogą wysyłać swoje dane znacznie taniej i przekazywać oszczędności użytkownikom końcowym w postaci tańszych transakcji.
Jak weryfikowane są dane blobów?
Rollupy publikują wykonywane przez siebie transakcje w blobach danych. Publikują również „zobowiązanie” do danych. Robią to poprzez dopasowanie funkcji wielomianowej do danych. Funkcja ta może być następnie ewaluowana w różnych punktach. Na przykład, jeśli zdefiniujemy niezwykle prostą funkcję f(x) = 2x-1, to możemy ewaluować tę funkcję dla x = 1, x = 2, x = 3, otrzymując wyniki 1, 3, 5. Prover stosuje tę samą funkcję do danych i ewaluuje ją w tych samych punktach. Jeśli oryginalne dane zostaną zmienione, funkcja nie będzie identyczna, a zatem wartości ewaluowane w każdym punkcie również nie będą takie same. W rzeczywistości zobowiązanie i dowód są bardziej skomplikowane, ponieważ są opakowane w funkcje kryptograficzne.
Czym jest KZG?
KZG to skrót od Kate-Zaverucha-Goldberg – nazwisk trzech oryginalnych autorów (opens in a new tab) schematu, który redukuje blob danych do małego kryptograficznego „zobowiązania” (opens in a new tab). Blob danych przesłany przez rollup musi zostać zweryfikowany, aby upewnić się, że rollup nie zachowuje się nieuczciwie. Wymaga to od provera ponownego wykonania transakcji w blobie, aby sprawdzić, czy zobowiązanie było ważne. Koncepcyjnie jest to to samo, co sposób, w jaki klienty wykonawcze sprawdzają ważność transakcji Ethereum w warstwie 1 (L1) za pomocą dowodów Merkle'a. KZG to alternatywny dowód, który dopasowuje równanie wielomianowe do danych. Zobowiązanie ewaluuje wielomian w pewnych tajnych punktach danych. Prover dopasowałby ten sam wielomian do danych i ewaluował go dla tych samych wartości, sprawdzając, czy wynik jest taki sam. Jest to sposób weryfikacji danych, który jest kompatybilny z technikami z wiedzą zerową używanymi przez niektóre rollupy, a ostatecznie przez inne części protokołu Ethereum.
Czym była ceremonia KZG?
Ceremonia KZG była sposobem dla wielu osób z całej społeczności Ethereum na wspólne wygenerowanie tajnego, losowego ciągu liczb, który może posłużyć do weryfikacji pewnych danych. Bardzo ważne jest, aby ten ciąg liczb nie był znany i nie mógł zostać przez nikogo odtworzony. Aby to zapewnić, każda osoba biorąca udział w ceremonii otrzymywała ciąg od poprzedniego uczestnika. Następnie tworzyła nowe losowe wartości (np. pozwalając przeglądarce na pomiar ruchu myszy) i mieszała je z poprzednią wartością. Następnie przesyłała wartość do kolejnego uczestnika i niszczyła ją na swojej lokalnej maszynie. Dopóki choć jedna osoba w ceremonii zrobiła to uczciwie, ostateczna wartość będzie niemożliwa do poznania dla atakującego.
Ceremonia KZG dla EIP-4844 była otwarta dla publiczności i wzięły w niej udział dziesiątki tysięcy osób, aby dodać własną entropię (losowość). W sumie było ponad 140 000 wkładów, co czyni ją największą tego typu ceremonią na świecie. Aby ceremonia została podważona, 100% tych uczestników musiałoby być aktywnie nieuczciwych. Z perspektywy uczestników, jeśli wiedzą, że byli uczciwi, nie ma potrzeby ufać nikomu innemu, ponieważ wiedzą, że zabezpieczyli ceremonię (indywidualnie spełnili wymóg 1 z N uczciwych uczestników).
Czym jest danksharding?
Danksharding to pełna realizacja skalowania rollupów, która rozpoczęła się od proto-dankshardingu. Danksharding zapewni ogromne ilości miejsca w Ethereum dla rollupów do zrzucania ich skompresowanych danych transakcyjnych. Oznacza to, że Ethereum będzie w stanie z łatwością obsługiwać setki pojedynczych rollupów i sprawi, że miliony transakcji na sekundę staną się rzeczywistością.
Działa to poprzez rozszerzenie blobów dołączonych do bloków z sześciu (6) w proto-dankshardingu do 64 w pełnym dankshardingu. Reszta wymaganych zmian to aktualizacje sposobu działania klientów konsensusu, aby umożliwić im obsługę nowych, dużych blobów. Kilka z tych zmian znajduje się już na mapie drogowej w innych celach, niezależnych od dankshardingu. Na przykład danksharding wymaga wdrożenia separacji proponującego i budującego (PBS). Jest to aktualizacja, która rozdziela zadania budowania bloków i proponowania bloków pomiędzy różne walidatory. Podobnie, próbkowanie dostępności danych (DAS) jest wymagane dla dankshardingu, ale jest również wymagane do rozwoju bardzo lekkich klientów, którzy nie przechowują wielu danych historycznych („klienty bezstanowe”).
Obecny postęp
Pełny danksharding to kwestia kilku lat. W międzyczasie ceremonia KZG zakończyła się z ponad 140 000 wkładów, a EIP (opens in a new tab) dla proto-dankshardingu dojrzało. Propozycja ta została w pełni wdrożona we wszystkich sieciach testowych i została uruchomiona w Sieci głównej wraz z aktualizacją sieci Cancun-Deneb („Dencun”) w marcu 2024 r.
Dalsza lektura
- Notatki o proto-dankshardingu (opens in a new tab) – Vitalik Buterin
- Notatki Dankrada o dankshardingu (opens in a new tab)
- Dankrad, Proto i Vitalik dyskutują o dankshardingu (opens in a new tab)
- Ceremonia KZG (opens in a new tab)
- Wystąpienie Carla Beekhuizena na Devconie o zaufanych konfiguracjach (opens in a new tab)
- Więcej o próbkowaniu dostępności danych dla blobów (opens in a new tab)
- Dankrad Feist o zobowiązaniach i dowodach KZG (opens in a new tab)
- Zobowiązania wielomianowe KZG (opens in a new tab)
Ostatnia aktualizacja strony: 6 czerwca 2026