Dank-féle párhuzamos futtatás (Danksharding)
A Danksharding az a módszer, amivel az Ethereum egy valóban skálázható blokklánc lesz, ehhez azonban számos protokollfejlesztést kell végrehajtani. A Proto-Danksharding egy köztes lépés a megvalósításban. Mindkettő célja az, hogy a második blokkláncrétegen (L2) a tranzakciók a lehető legolcsóbbak legyenek a felhasználók számára, az Ethereum pedig több mint 100 000 tranzakciót tudjon feldolgozni másodpercenként.
Mi az a Proto-Danksharding?
A Proto-Danksharding, más néven EIP-4844(opens in a new tab), az összegzések egyik módja annak, hogy olcsóbb adatokat adjanak a blokkokhoz. A név attól a két kutatótól származik, akik ezt a módszert javasolták: Protolambda és Dankrad Feist. Korábban az összevont tranzakciókat a tranzakciók költségének csökkentésében behatárolta az a tény, hogy a tranzakciós adatokat a CALLDATA
mezőbe posztolják.
Ez egy drága megoldás, mert az Ethereum-csomópontok dolgozzák fel és a láncon örökre élő adat marad, miközben az összevont tranzakcióknak csak egy rövid időre lenne szükségük ezekre. A Proto-Danksharding az adatblobokat vezeti be, amelyeket el lehet küldeni és hozzá lehet csatolni a blokkokhoz. Az ezekben a blobokban lévő adatok nem elérhetők az EVM számára, és automatikusan törlődnek egy meghatározott idő után (a jelen írás idéjén ez 4096 korszak vagy 18 nap). Így az összevont tranzakciók sokkal olcsóbban be tudják küldeni az adatokat, és ez a felhasználóknak olcsóbb tranzakciókat eredményez.
Hogyan ellenőrzik a blobadatokat?
A összevont tranzakciók az általuk feldolgozott tranzakciókat adatblobokban posztolják. Emellett posztolnak egy „elköteleződést” is. Tehát az adathoz hozzáillesztenek egy polinomiális funkciót. Ezt a funkciót számos ponton meg lehet vizsgálni. Például, ha egy rendkívül egyszerű függvényt definiálunk, f(x) = 2x-1
, akkor ezt a funkciót megvizsgálhatjuk arra, hogy x = 1
, x = 2
, x = 3
, amelyből az 1, 3, 5
eredmények származnak. A bizonyító ugyanezt a funkciót alkalmazza az adatra, és megvizsgálja azt ugyanazokon a pontokon. Ha az eredeti adat megváltozott, akkor a függvény sem lesz azonos, és az értékek is különbözni fognak minden ponton. Valójában az elköteleződés és a bizonyíték is elég bonyolult, mert kriptográfiai függvényekbe van csomagolva.
Mi az a KZG?
A KZG a Kate-Zaverucha-Goldberg rövidítés egy olyan séma három szerzője(opens in a new tab), amely egy adathalmazt egy kis kriptográfiai „elköteleződésre”(opens in a new tab) redukál. A összevont tranzakció által beküldött adatblobot ellenőrizni kell, hogy az összevont tranzakció megfelelően működik-e. Ennek lényege, hogy a bizonyító újrafuttatja a blobban lévő tranzakciókat, hogy megvizsgálja az elköteleződés érvényességét. Ez koncepcionálisan ugyanolyan, mint ahogy a végrehajtási kliensek ellenőrizik az Ethereum-tranzakciók érvényességét az első blokkláncrétegen (L1) a Merkle-bizonyítékok alapján. A KZG egy alternatív bizonyíték, amely egy polinomiális egyenletet illeszt az adathoz. Az elköteleződés megvizsgálja a polinomiálist néhány titkos adatponton. A bizonyító ugyanezt a polinomiálist illeszti rá az adatra, megvizsgálja ugyanazon értékeken, és ellenőrzi, hogy az eredmény ugyanaz-e. Ilyen módon lehetséges ellenőrizni az adatot a zero-knowledge technikákkal kompatibilis módon, amelyet néhány összevont tranzakció és az Ethereum-protokoll használ.
Mit volt a KZG-ceremónia?
A KZG-ceremónia egy olyan módszer volt, amellyel az Ethereum-közösség több tagja együtt létrehozhatott egy számokból álló titkos, véletlenszerű sorozatot, amelyet adatvalidálásra tudtak használni. Nagyon fontos volt, hogy ezt a számsort ne tudja meg senki és ne is lehessen újraalkotni azt. Ennek biztosításához minden egyes résztvevő az előző tagtól kapott egy részletet. Ekkor létrehozhattak néhány új, véletlenszerű értéket (pl. azzal, hogy a böngésző leköveti az egérmozgást), és ezt összekeverhették az előző részlettel. Ezután elküldték ezt az értéket a következő tagnak, és megsemmisítették a saját gépükön. Amíg volt legalább egy személy, aki jóhiszeműen végezte ezt a folyamatot, addig a támadó számára nem derült ki a végső érték.
Az EIP-4844 KZG-ceremónia nyilvános volt és emberek tízezrei vettek benne részt, hogy hozzátegyék a saját entrópiájukat (véletlenszerűséget). Összesen több mint 140 000 hozzájáruló volt, ami a világ legnagyobb ilyen jellegű ceremóniájává tette. Ahhoz, hogy a ceremóniát megtámadhassák, ezeknek a résztvevőknek 100%-ban rosszhiszeműnek kell lenniük. A résztvevők szempontjából lényeges, hogy ha ő maguk jóhiszeműen jártak el, akkor nincs szükség arra, hogy megbízzanak másban, mert már maguk is biztosították a ceremóniát (egyénként kielégítették az N-ből 1 résztvevő kritériumot).
Mi az a Danksharding?
A Danksharding az összevont tranzakciós skálázási megoldás teljes megvalósítása, amely a Proto-Dankshardinggal kezdődik. A Danksharding az Ethereumon hatalmas helyet teremt az összevont tranzakcióknak, hogy az összecsomagolt tranzakciós adataikat beküldjék. Ezzel az Ethereum képes lesz könnyedén támogatni az egyéni összevont tranzakciók százait, és tranzakciók millióit végrehajtani minden másodpercben.
Ez úgy működik, hogy a blokkokhoz csatolt blobokat a Proto-Danksharding hatról (6) a teljes Dankshardingban 64-re bővítjük. A szükséges változások többi része a konszenzus kliensek működését fejleszti, hogy azok képesek legyenek az új, nagy méretű blobokat kezelni. Ezen változások néhány része már benne van az ütemtervben, függetlenül a Danksharding bevezetéstől. Például a Dankshardinghoz szükséges a javaslattevő-építő szétválasztás (PBS) bevezetése. Ez egy olyan fejlesztés, amely szétválasztja a blokkok építését és azok előterjesztését a különböző validátorok között. Ugyanígy az adatelérhetőség-mintázás szükséges a Dankshardinghoz, de az igazán könnyű kliensek fejlesztéséhez is, amelyek nem tárolnak túl sok előzményadatot („státuszmentes kliensek”).
Jelenlegi helyzet
A teljes Danksharding bevezetéséhez még számos év szükséges. Időközben a KZG ceremóniája több mint 140 000 hozzájárulással zárult, és a Proto-Danksharding EIP(opens in a new tab)-je lejárt. Ezt a javaslatot az összes teszthálózatban maradéktalanul bevezették, és 2024 márciusában a Cancun-Deneb ("Dencun") hálózatfrissítéssel életbe lépett a Mainnet hálózaton.
További olvasnivaló
- Proto-Danksharding jegyzetek(opens in a new tab) – Vitalik Buterin
- Dankrad jegyzetei a Dankshardingról(opens in a new tab)
- Dankrad, Proto és Vitalik beszélgetése a Dankshardingról(opens in a new tab)
- A KZG-ceremónia(opens in a new tab)
- Carl Beekhuizen beszéde a Devconon a megbízható összeállításról(opens in a new tab)
- Bővebben az adatelérhetőség-mintázásról a blobokhoz(opens in a new tab)
- Dankrad Feist a KZG elköteleződésekről és bizonyítékokról(opens in a new tab)
- KZG polinomiális elköteleződések(opens in a new tab)