Danksharding je způsob, jakým se Ethereum stane skutečně škálovatelným blockchainem, ale k dosažení tohoto cíle je zapotřebí několik aktualizací protokolu. Proto-danksharding je mezikrokem na této cestě. Oba mají za cíl učinit transakce na vrstvě 2 (l2) pro uživatele co nejlevnějšími a měly by škálovat Ethereum na více než 100 000 transakcí za sekundu.
Co je proto-danksharding?
Proto-danksharding, známý také jako EIP-4844 (opens in a new tab), je způsob, jakým mohou rollupy přidávat do bloků levnější data. Název pochází od dvou výzkumníků, kteří s tímto nápadem přišli: Protolambda a Dankrad Feist. Historicky byly rollupy omezeny v tom, jak levné mohou být uživatelské transakce, skutečností, že odesílají své transakce v CALLDATA.
To je drahé, protože je to zpracováváno všemi uzly Etherea a zůstává to onchain navždy, i když rollupy potřebují data jen na krátkou dobu. Proto-danksharding zavádí datové bloby, které lze odesílat a připojovat k blokům. Data v těchto blobech nejsou přístupná pro EVM a jsou automaticky smazána po stanovené době (v době psaní tohoto textu je to nastaveno na 4096 epoch, tedy asi 18 dní). To znamená, že rollupy mohou odesílat svá data mnohem levněji a přenést úspory na koncové uživatele ve formě levnějších transakcí.
Jak jsou data v blobech ověřována?
Rollupy odesílají transakce, které provádějí, v datových blobech. Odesílají také „závazek“ k těmto datům. Dělají to tak, že na data aplikují polynomiální funkci. Tuto funkci lze poté vyhodnotit v různých bodech. Pokud například definujeme extrémně jednoduchou funkci f(x) = 2x-1, pak můžeme tuto funkci vyhodnotit pro x = 1, x = 2, x = 3, což dává výsledky 1, 3, 5. Dokazovatel aplikuje stejnou funkci na data a vyhodnotí ji ve stejných bodech. Pokud se původní data změní, funkce nebude identická, a proto nebudou identické ani hodnoty vyhodnocené v každém bodě. Ve skutečnosti jsou závazek a důkaz složitější, protože jsou zabaleny do kryptografických funkcí.
Co je KZG?
KZG je zkratka pro Kate-Zaverucha-Goldberg – jména tří původních autorů (opens in a new tab) schématu, které redukuje datový blob na malý kryptografický „závazek“ (opens in a new tab). Datový blob odeslaný rollupem musí být ověřen, aby se zajistilo, že se rollup nechová nesprávně. To zahrnuje dokazovatele, který znovu provede transakce v blobu, aby zkontroloval, zda byl závazek platný. Koncepčně je to stejné jako způsob, jakým exekuční klienti kontrolují platnost transakcí Etherea na vrstvě 1 (l1) pomocí Merkleových důkazů. KZG je alternativní důkaz, který na data aplikuje polynomiální rovnici. Závazek vyhodnocuje polynom v některých tajných datových bodech. Dokazovatel by aplikoval stejný polynom na data a vyhodnotil jej na stejných hodnotách, přičemž by zkontroloval, zda je výsledek stejný. Jedná se o způsob ověření dat, který je kompatibilní s technikami s nulovým vědomím používanými některými rollupy a případně dalšími částmi protokolu Ethereum.
Co byl ceremoniál KZG?
Ceremoniál KZG byl způsob, jakým mohlo mnoho lidí z celé komunity Etherea společně vygenerovat tajný náhodný řetězec čísel, který lze použít k ověření některých dat. Je velmi důležité, aby tento řetězec čísel nebyl znám a nikdo jej nemohl znovu vytvořit. Aby se to zajistilo, každá osoba, která se ceremoniálu zúčastnila, obdržela řetězec od předchozího účastníka. Poté vytvořila nějaké nové náhodné hodnoty (např. tím, že svému prohlížeči umožnila měřit pohyb myši) a smíchala je s předchozí hodnotou. Následně odeslala hodnotu dalšímu účastníkovi a zničila ji ze svého lokálního počítače. Dokud to alespoň jedna osoba v ceremoniálu udělala poctivě, konečná hodnota bude pro útočníka neznámá.
Ceremoniál KZG pro EIP-4844 byl otevřen veřejnosti a zúčastnily se ho desítky tisíc lidí, aby přidali svou vlastní entropii (náhodnost). Celkem bylo zaznamenáno více než 140 000 příspěvků, což z něj činí největší ceremoniál svého druhu na světě. Aby byl ceremoniál narušen, muselo by být 100 % těchto účastníků aktivně nepoctivých. Z pohledu účastníků, pokud vědí, že byli poctiví, není třeba důvěřovat nikomu jinému, protože vědí, že ceremoniál zabezpečili (individuálně splnili požadavek 1 z N poctivých účastníků).
Co je danksharding?
Danksharding je plnou realizací škálování rollupů, které začalo s proto-dankshardingem. Danksharding přinese na Ethereu obrovské množství prostoru pro rollupy, aby mohly ukládat svá komprimovaná transakční data. To znamená, že Ethereum bude schopno snadno podporovat stovky jednotlivých rollupů a učinit miliony transakcí za sekundu realitou.
Funguje to tak, že se rozšíří počet blobů připojených k blokům ze šesti (6) v proto-dankshardingu na 64 v plném dankshardingu. Zbytek požadovaných změn jsou všechno aktualizace způsobu, jakým fungují konsensuální klienti, aby jim umožnily zpracovávat nové velké bloby. Několik z těchto změn je již v plánu pro jiné účely nezávislé na dankshardingu. Například danksharding vyžaduje, aby bylo implementováno oddělení navrhovatele a tvůrce (PBS). Jedná se o aktualizaci, která odděluje úkoly vytváření bloků a navrhování bloků mezi různé validátory. Podobně je pro danksharding vyžadováno vzorkování dostupnosti dat, ale je také vyžadováno pro vývoj velmi lehkých klientů, kteří neukládají mnoho historických dat („bezstavoví klienti“).
Současný pokrok
Plný danksharding je vzdálen několik let. Mezitím byl ceremoniál KZG ukončen s více než 140 000 příspěvky a EIP (opens in a new tab) pro proto-danksharding dospěl. Tento návrh byl plně implementován ve všech testnetech a byl spuštěn na Mainnetu s aktualizací sítě Cancun-Deneb („Dencun“) v březnu 2024.
Další čtení
- Poznámky k proto-dankshardingu (opens in a new tab) – Vitalik Buterin
- Dankradovy poznámky k dankshardingu (opens in a new tab)
- Dankrad, Proto a Vitalik diskutují o dankshardingu (opens in a new tab)
- Ceremoniál KZG (opens in a new tab)
- Přednáška Carla Beekhuizena na Devconu o důvěryhodných nastaveních (opens in a new tab)
- Více o vzorkování dostupnosti dat pro bloby (opens in a new tab)
- Dankrad Feist o závazcích a důkazech KZG (opens in a new tab)
- Polynomiální závazky KZG (opens in a new tab)
Poslední aktualizace stránky: 6. června 2026