Napsal: zkSync
Sestavil: Shenchao TechFlow
TLDR
Upgrade: ZkSync Era přechází na nový Boojum proof systém bez nutnosti regenerace.
Výkon: Boojum předvádí nejlepší atestační výkon ve své třídě a doplňuje sekvencer zkSync Era, který již zvládne více než 100 TPS.
Decentralizace: Zkoušečky Boojum vyžadují pouze 16 GB paměti RAM, což umožňuje budoucí rozsáhlou decentralizaci zkušebních zařízení.
Posláním zkSync je prosazovat osobní svobodu pro všechny – učinit digitální sebevlastnictví univerzálně přístupným vybudováním důvěryhodné, bezpečné, bez oprávnění, cenově dostupné, snadno použitelné, odolné a nekonečně škálovatelné blockchainové sítě.
Při plnění této mise byla před více než třemi měsíci zpřístupněna veřejnosti alfa verze zkSync Era a odezva byla úžasná. Hlavní přednosti sítě:
Celková uzamčená hodnota TVL je 577 milionů USD (zdroj: L2Beat);
23 750 000 transakcí za posledních 30 dní – nejvíce ze všech L2 (zdroj: L2Beat);
9 735 zdrojovým kódem ověřených smart kontraktů.
V březnu 2023 byla spuštěna zkSync Era založená na SNARK, využívající bitvě testovaný obvodový rámec, který podporuje zkSync Lite na mainnetu již téměř tři roky. Věděli jsme však, že to nebude konečná verze systému zkSync Era proof, a proto jsme systém navrhli tak, aby nám umožnil provést v něm zásadní změny bez regenerace. To znamená, že můžeme nasadit významné kryptografické upgrady, aniž bychom rušili vývojáře a uživatele.
V zákulisí pracujeme na kryptografickém upgradu již dlouhou dobu. Dnes s radostí oznamujeme první upgrade: zkSync Era přechází na nový STARK proof systém s názvem „Boojum“.
Seznamte se s Boojumem
Boojum je aritmetická a omezující knihovna, kterou jsme vyvinuli na základě Rust, kterou používáme k implementaci zkSync Era a ZK Stack, vylepšené verze obvodu ZK.
Co je Boojum?
Vlastnosti Boojum:
PLONK Aritmetizace: V kontextu protokolů s nulovými znalostmi je aritmetizace procesem převodu obecných výpočtů do matematické formy. Stejně jako současný systém důkazů i systém upgradu stále používá aritmetiku ve stylu PLONK. Díky tomuto přístupu je zápis obvodů ZK jednodušší než u některých alternativ, což usnadňuje vývoj, audit, údržbu a upgrade systému.
Výkonné schéma závazku: V srdci Boojum leží schéma závazku FRI, klíčová složka, která nám umožňuje zavázat se k ohraničeným polynomům a následně efektivně dokázat, že nárokované (polynomické) otevření je skutečně polynom nízkého stupně.
Efektivita systému: Ačkoli generování svědků je někdy přehlíženo, když lidé mluví o výkonu nátisku, v současných verzích nátiskového systému jsme dosáhli bodu, kdy jsou optimalizované zkoušečky GPU tak účinné, že doba generování svědků je přibližně stejná jako doba generování nátisků. . S Boojum poskytujeme automatickou paralelizaci (pokud to graf závislosti umožňuje) generování svědků při zachování jednoduchosti definování funkcí generování svědků.
Snadné rozšíření: Základní abstrakce omezovacího systému je velmi stručná, ale umožňuje uživatelům přidávat vlastní typy hradel různými způsoby, jako je přidání některých specializovaných polynomů nebo opětovné použití takzvaných „generických sloupců“. Rozhraní rozšíření poskytuje možnost automaticky generovat ověřovače, verifikátory a rekurzivní verifikátory poté, co uživatelé definují jednoduchou geometrii pro svůj obvod. To umožňuje velmi efektivní vývojový proces, pokud uživatel změní strukturu obvodu a zvolí jiný typ brány k použití, může jednoduše znovu zavolat rozhraní a to znovu vygeneruje klíče a zajistí použití správného dokazovatele a ověřovače.
Single Stack: S Boojum lze vše výše uvedené provádět pouze pomocí standardních, idiomatických výrazů Rust, využívajících výrazovou sílu jeho typového systému. Výpočetně náročné části GPU prover jsou napsány v CUDA C++, ale pro složení poskytujeme vazby Rust.
Boojum standardně používá primární pole o velikosti 2^64 - 2^32 + 1 (nazývané "pole Goldilocks") a poskytuje implementace odpovídajících primitiv pro vazbu polí, jako je hashovací funkce Poseidon2, a aktualizace založené na vyhledávacích tabulkách standardní kryptografická primitiva jako SHA256, Keccak256 a Blake2s.
Důležité je, že v posledním kroku zabalíme důkaz STARK do netransparentního SNARK založeného na párování a ověříme tento SNARK na Ethereu. Tento důkaz je mnohem menší a méně nákladný na ověření tento krok snižuje náklady na systém důkazů a tím i samotnou transakci.
Proč si vybrat Boojum?
Při navrhování Boojum stály za rozhodnutím dva klíčové faktory: (1) špičkový nátiskový výkon a (2) snížené hardwarové požadavky na decentralizaci.
Výkon světové třídy
Současný systém založený na SNARK, i když je v současnosti účinný, neškáluje na velké objemy transakcí v téměř reálném čase v ZK Stack. Budoucím cílem zkSync Era běžícího jako Hyperchain je podporovat tyto systémy v příštích několika letech. Naší vizí pro tyto systémy je, že důkazy lze generovat a ověřovat levně a rychle, což umožňuje rychlou finalizaci a interoperabilitu mezi hyperřetězci.
Výkon systému důkazů přímo ovlivňuje poplatky, které uživatelé platí za své transakce, a tyto náklady se musí časem přiblížit nule. Současná verze systému proof je dostatečně efektivní na to, aby vybudovala zkEVM a zpracovala miliony transakcí během několika měsíců, ale s Boojum to můžeme udělat ještě lépe!
Abychom změřili dobu generování důkazů v síti (a také další klíčové metriky související s výkonem), spojili jsme se se společností Celer, jejíž tým má rozsáhlé zkušenosti s benchmarkingem a analýzou více systémů důkazů. Na obrázku níže můžete vidět, že Boojum fungoval dobře na většině systémů, které byly profilovány. Výsledky hovoří samy za sebe: naše implementace prokazuje prvotřídní nátiskový výkon a podle našich nejlepších znalostí je nejrychlejším nátiskovým systémem, který se v současnosti používá ve výrobě.
Pro spravedlivé srovnání Celer provedl tyto benchmarky na zkušebně založené na CPU, ale náš mainnetový systém používá zkušebnu založenou na GPU, která je rychlejší.
Přechod na zkušební systém založený na STARK představuje významné zlepšení výkonu a pomůže zajistit konečnost a podporu nízké latence pro zvýšené úrovně aktivity zkSync Era a dalších systémů založených na ZK Stack.
Snižte požadavky na decentralizovaný hardware
Tyto výsledky výkonu jsou obzvláště působivé, vezmeme-li v úvahu, že toto není jediná metrika, pro kterou optimalizujeme – chceme zlepšit výkon systému a zároveň snížit hardwarové požadavky na jeho provoz.
V současnosti běžně používané nátiskové systémy, včetně našeho stávajícího systému, mají vyšší hardwarové nároky. Náš současný ověřený systém běží na sadě GPU A100, každý s 80 GB RAM. Potřeba drahých a výkonných strojů představuje významnou překážku pro náš cíl: budoucnost uživatelem řízené decentralizované generace zkušebních zařízení. K dosažení tohoto cíle nestačí, aby bylo generování důkazů bez oprávnění; uživatelé by také neměli potřebovat drahý stroj se stovkami GB paměti RAM.
Toto je další oblast, kde jsme udělali mimořádně působivý pokrok! Náš GPU tester pro Boojum vyžaduje pouze 16 GB RAM a tato nízká bariéra vstupu je důležitým krokem pro budoucnost, kterou si představujeme. Důkaz založený na CPU je k dispozici také s pouhých 64 GB RAM, chceme to snížit na 32 GB a plně využít moderních vícejádrových procesorů.
Konečně, sekvencer založený na zkSync Era Rust již dokáže zpracovat více než 100 transakcí za sekundu (TPS). Zavedení nového proof systému nejen zlepšuje výkon, ale také snižuje hardwarové požadavky, což z něj činí ideální doplněk k sekvenceru. Zlepšení výkonu, která přináší Boojum, znamenají, že systém dokáže rychleji prokazovat transakce, zatímco snížené hardwarové požadavky zlepšují přístup sítě k levnějším strojům pro větší horizontální škálovatelnost.
Boojumova mainnetová cesta
Tým strávil měsíce vývojem tohoto upgradu a jsme nadšeni, že jsme nyní dosáhli fáze testování systému na mainnetu. Také jsme se chtěli podělit o některé z našich dosavadních příběhů.
Upgrade zkSync Era
Za prvé, design zkSync Era nám umožňuje upgradovat každou komponentu v průběhu času a certifikační systém není výjimkou.
Podobně jako u Etherea používáme stromovou datovou strukturu Merkle pro ukládání informací o stavu sítě. Vzhledem k tomu, že dokládáme prohlášení o stavu systému, je tato informace nezbytná k prokázání systému. Pro tento Merkle strom (a způsob, jakým s ním systém důkazů interaguje), je klíčovým návrhovým rozhodnutím použít nealgebraickou hashovací funkci, konkrétně Blake2s. Pokud bychom optimalizovali pouze pro snadné generování důkazů, použili bychom algebraickou hašovací funkci (jako je Poseidon2), ale tato volba by spojila pozorovatelný stav s parametry důkazového systému – jako je výběr prvočíselných polí. Jakýkoli upgrade na proof systém pak vyžaduje kompletní regeneraci stavu.
Cesta Boojum od designu k recenzi
Asi před měsícem jsme začali připravovat kompletní end-to-end verzi naší nové implementace proof system. Vzhledem ke složitosti této změny a kritičnosti správnosti systému jsme zahájili řadu interních a externích auditů.
V té době byly obvody zkEVM a aritmetická knihovna Boojum stále v aktivním vývoji, ale spolupracovali jsme s externími bezpečnostními auditory, abychom se zaměřili na včasnou identifikaci potenciálních problémů se spolehlivostí našich hlavních obvodů a komponent Boojum. Úzce jsme spolupracovali, abychom jim poskytli úplný zdrojový kód a přístup k dokumentaci, a oni zkontrolovali a otestovali obvod zkEVM a gadget Boojum pomocí automatických i manuálních testovacích metod.
Boojum: Od recenze k testování
Tím se dostáváme k dnešku, dalšímu kroku v našem postupném zavádění: Mainnet Shadow Mode! S radostí oznamujeme, že nyní spouštíme nový systém důkazů souběžně se stávajícím systémem důkazů, ačkoli Boojum je zatím pouze ve verzi beta. Začali jsme generovat a ověřovat „stínové důkazy“ pro bloky hlavní sítě.
Tyto stínové nátisky nejsou vyžadovány pro mainnetovou verzi zkSync Era – to bude stále řízeno stávajícím nátiskovým systémem. Tyto stínové důkazy jednoduše ověříme, abychom mohli dále testovat a optimalizovat systém, ale s použitím skutečných produkčních dat z aktivity uživatelů zkSync Era.
Boojum: Od testu k mainnetu
Stejně jako u všeho, co děláme, je bezpečnost vždy na prvním místě. O migraci budeme uvažovat teprve tehdy, až budeme zcela spokojeni s naším testováním nového systému a v příštích týdnech a měsících se podělíme o další podrobnosti. Plánujeme také provést další audity a bezpečnostní hodnocení, abychom tento vzrušující upgrade přiblížili plnému nasazení a postupně vyřazovali současný atestační systém.
Věříme, že Boojum je dalším krokem k tomu, aby byl zkEVM bezpečnější, škálovatelnější a efektivnější.
