Web3.com Ventures Original Research Analysis

0xFishylosopher

Zavedení

„zk-Rollups“ byl pravděpodobně nejžhavějším heslem Web 3 roku. Se spuštěním mainnetu „baby alpha“ od zk-Sync v2.0 v posledních několika dnech dosáhlo toto vzrušení svého zenitu [1]. Ale co za všemi těmito módními slovy „zk-Rollups“ skutečně označují? A kde vstupuje do hry zk-Sync? V tomto článku se pokusím ponořit hluboko do principů a praxe zk-Rollups, vysvětlím klíčové technické znaky zk-Sync v2.0 jako projektu a prozkoumám potenciální budoucí důsledky pro tuto dlouho očekávanou technologii.

Principy zk-rollupů

Proč potřebujeme zk-Rollups na prvním místě? Jasně, Ethereum je skvělé. Ale ve svém současném stavu je síť v zásadě nedostatečná z rozsahu. S rostoucí aktivitou sítě se ceny plynu neúměrně zdražují, zejména pokud dojde k prudkému nárůstu síťové aktivity najednou. Vzhledem k tomu, že Ethereum v posledních letech získává na popularitě v používání a trakci, jeho současná omezená škálovatelnost se stala Achillovou patou sítě.

Zde přichází na řadu „souhrny“ – souhrny Etherea jsou v podstatě „pluginem“, který poskytuje Ethereu extra rozsah škálovatelnosti, a tak opravuje jeho vlastní nehospodárnost z rozsahu. Intuice za nápadem je jednoduchá. Představte si, že máte 5 věcí, které potřebujete přenést z bodu A do bodu B. „Obvyklým“ způsobem, jak to udělat, by bylo přenést předmět 1, přenést předmět 2 atd. jednu po druhé. Ale to je zjevně pomalé a těžkopádné. „Shrnutí“ je v podstatě „srolování“ všech 5 položek do jednoho sáčku, což vám umožní udělat jeden výlet místo 5.

Ale jsou tu dvě upozornění:

  1. Jak zajistíme, aby se do rollupu „vešlo“ všechno?

  2. Jak zajistíme, aby souhrn nebyl podvržený?

zk-Rollups jsou jedním z předních typů rollup technologií (druhým jsou Optimistic Rollups) využívající „důkazy s nulovými znalostmi“ k vyřešení těchto dvou problémů. K vyřešení těchto problémů shromáždí zk-rollup určitý počet transakcí dohromady, provede výpočet na L2 a předloží jak změny stavu, tak „doklad o platnosti“ ověřovateli na L1, který prokáže, že výpočty byly provedeny s integritou. . Tento „důkaz platnosti“ probíhá ve formě „Důkazu nulových znalostí“, což je matematický způsob, jak někomu sdělit, že něco víte, aniž byste mu řekli, co víte.

Jednoduchým příkladem Zero-Knowledge Proof je autograder kódu (pro domácí úkol CS). Autograder je „ověřovatel“, který vám dává spoustu náhodně generovaných testovacích případů, a vy jste „prověřovatel“, který musí být schopen projít všemi testovacími případy, aby prokázal, že máte správný kód. Po celou dobu svůj kód nesdílíte přímo s autograderem. A voila, právě jste provedli „Důkaz nulových znalostí“, který dokazuje, že něco víte, aniž byste řekli, co víte. [2]

Výše uvedený autograder kódu používá „interaktivní důkaz nulových znalostí“, kde spolu autograder a poskytovatel kódu přímo „interagují“. Naproti tomu většina zk-rollupů používá matematicky komplikovanější neinteraktivní důkaz (jako je zk-SNARK nebo Zero Knowledge Succinct Noninteractive ARgument of Knowledge), který ve srovnání s interaktivním důkazem šetří čas i prostor. Zatímco technické podrobnosti o zk-SNARKs přesahují rámec tohoto článku, základní princip předávání testovacích případů je stejný.

Svatým grálem zk-Rollups je virtuální stroj Ethereum s nulovými znalostmi (zk-EVM), který umožňuje vývojářům přenést jakýkoli chytrý kontrakt Ethereum bez úprav do řetězce zk-Rollup. Ale tohle je těžké. Protože každý „problém“ vyžaduje různé sady „testovacích případů“, vývoj „algoritmu důkazu“, který dokáže vyřešit každý představitelný testovací případ, je technickým úzkým hrdlem důkazů s nulovými znalostmi a zk-rollupů.

Jak říká sám Vitalik Buterin:

Obecně je můj vlastní názor, že v krátkodobém horizontu pravděpodobně zvítězí optimistická souhrnná kumulace pro obecný výpočet EVM a kumulativní ZK pravděpodobně zvítězí v případě jednoduchých plateb, výměn a dalších případů použití specifických pro aplikaci, ale v střednědobé až dlouhodobé souhrny ZK zvítězí ve všech případech použití, protože se technologie ZK-SNARK zlepšuje. [3]

Zk-Rollups byly historicky zavedené technologie pouze pro případy použití specifické pro aplikace, kde jsou „testovací případy“ dobře definované a mají omezený rozsah. Několik projektů však rychle postupuje směrem k „hradu na kopci“ – generickému algoritmu zk-Rollup kompatibilnímu s EVM. [4]

zk-Sync v2.0

zk-Sync v2.0 je jen jedním z mnoha projektů, které jsou v současné době ve hře při vývoji zk-EVM (jiné zahrnují StarkNet, Polygon Hermez a Scroll). Na rozdíl od zk-Sync v1.0, který vyžadoval, aby uživatelé přestavěli velké části svých kódových základen pro port z EVM na zk-Sync, v zk-Sync v2.0 mohou programátoři nasadit své aplikace s malými až žádnými změnami — nebo jak může chtít tvrdit zk-Sync.

V praxi nejsou všechny zk-EVM vytvořeny stejně. Existuje zřetelný kompromis mezi komposovatelností (jak blízko je původním kontraktům EVM) a výkonem (jak rychle poběží zk-Rollups) [6]. V rámci tohoto kompromisu se zk-Sync rozhodl pro úplnou optimalizaci výkonu, čímž obětoval na složitelnosti.

Z pohledu Vitalika Buterina existují čtyři odlišné typy zk-EVM, shrnuté v následující tabulce:

Jak uvádí Vitalik, ve svém současném stavu je zk-Sync v2.0 zk-EVM typu 4, který je schopen kompilovat smlouvy napsané v Solidity a jazycích vyšší úrovně pomocí vlastního kompilátoru, který je odlišný od EVM. Protože zk-Sync má plnou kontrolu nad designem svého kompilátoru, je schopen agresivně optimalizovat rychlost a propustnost. Cena za to je, že některé DApps a EVM ladicí nástrojové řetězce mohou být nekompatibilní se zk-Sync v2.0. Zk-Sync je v podstatě stejný kryt auta jako Ethereum, ale s vyměněným motorem[5].

Matter Labs ve své vývojářské dokumentaci skutečně tvrdí, že zatímco operace „čtení“ inteligentních smluv lze integrovat bez jakýchkoli změn v kódu, operace „zápis“ inteligentních smluv potřebují „dodatečný kód“ kvůli „zásadním rozdílům mezi L1 a L2“ [6]. . Ve skutečnosti je to mírně zavádějící. Není to ani tak kvůli „zásadnímu rozdílu“ mezi L1 a L2, ale spíše kvůli typu zk-Rollup, který se Matter Labs rozhodly sledovat – souhrn typu 4. Protože zk-Sync je v zásadě souhrn typu 4, který používá jiný kompilátor a bajtkód, znamená to, že inteligentní smlouvy mají různé adresy a infrastruktura ladicího programu, která se spoléhá na analýzu bajtového kódu, nemusí fungovat na zk-Sync v2. 0 [7].

V budoucnu může zk-Sync přidat nativní podporu pro byte-kód EVM, což systému umožní pomalý přechod na kumulativní typ 3, který podporuje širší rozsah těchto „okrajových případů“. Ale aby zk-Sync Type 4 nebo Type 3 zk-Rollup uspěly ve srovnání s Polygon Hermez a Scroll Labs’ Type 2 rollup, který v podstatě vyměňuje rychlost za širší kompatibilitu, musí existovat dva důležité předpoklady. Za prvé, existuje jen malý zlomek nedůležitých projektů, které nejsou kompatibilní s vlastním kompilátorem zk-Sync. Za druhé, existuje kvalitativní rozdíl v rychlosti provádění zk-Sync ve srovnání s typem 2 zk-EVM.

Osobně se bohužel domnívám, že tomu tak není. Jakýkoli pokročilý vývojový ekosystém se spoléhá na vyspělou infrastrukturu „lešení“, včetně pohodlných, modulárních, ladicích a testovacích nástrojů. Pokud, jak Vitalik postuluje, velká část EVM-nativních ladicích nástrojů nebude schopna portovat na zk-Sync kvůli rozdílům v bajtkódu, pak zk-Sync bude muset vyvinout vlastní sadu nástrojů pro testování a ladění. To je další režie, která může v konečném důsledku bránit rychlosti přijetí zk-Sync jako řešení L2 ve srovnání s jeho složitelnějšími konkurenty typu 2 zk-EVM, jako jsou Polygon Hermez a Scroll.

Budoucnost pro zk-Rollups

S mnoha konkurenčními hráči v bitvě o zk-EVM je pravděpodobně jen otázkou času, kdy uvidíme plně funkční zk-EVM. Ale co bude dál? Silnice je užitečná pouze tehdy, pokud jsou na ní budovy; dlouhodobá síla zk-rollup pochází z projektů využívajících toto řešení.

Právě teď jsou DeFi, GameFi a mobilní aplikace hlavními příjemci infrastruktury zk-Rollup. DeFi i GameFi jsou v zásadě úspory z rozsahu, protože se jim daří v prostředí, kde je používá spousta lidí. Mobilní aplikace, jako jsou mobilní peněženky, také otevírají stavidla masovému spotřebiteli, který je příliš líný (nebo si nemůže dovolit) stolní PC. Použití zk-Rollups pro tyto situace proto dává velký smysl.

Ale to není v žádném případě limit užitečnosti zk-Rollups. Jestli něco, tak tohle je jen začátek. zk-Rollups jsou pro Ethereum tím, čím je 5G pro internet. Stejně jako 5G může umožnit nový svět aplikací a systémů IoT, zk-Rollups mohou také otevřít stavidla „Blockchain of Things“, což umožní digitálním zařízením našeho fyzického světa – ledničkám, hodinkám, semaforům a všem ostatním – být integrované s chytrými smlouvami zajištěnými na Ethereu.

Jedním z největších argumentů proti IoT je, že umožní Big Tech překročit náš každodenní život. Ale s „Blockchain of Things“ si můžeme užívat vymoženosti IoT, aniž bychom se museli obávat, že naše chytrá zařízení budou kompromitována v centralizované databázi. Místo pohodlí NEBO soukromí můžeme mít pohodlí A soukromí. To je svět, který nám zk-Rollups může slíbit.

🐦 @0xfishylosopher

📅 31. října 2022

Tyto informace jsou čistě vzdělávací a neměly by být brány jako finanční poradenství. Všechny vyjádřené názory jsou názory autora a nemusí být nutně schváleny společností Web3.com Ventures.

Reference

[1] https://blog.matter-labs.io/baby-alpha-has-arrived-5b10798bc623

[2] Převzato z https://pages.cs.wisc.edu/~mkowalcz/628.pdf

[3] https://vitalik.ca/general/2021/01/05/rollup.html

[4] https://www.coindesk.com/tech/2022/07/20/the-sudden-rise-of-evm-compatible-zk-rollups/

[5] https://cryptobriefing.com/the-race-scale-ethereum-zkevm-rollups/

[6] https://docs.zksync.io/dev/contracts/#porting-smart-contracts

[7] https://vitalik.ca/general/2022/08/04/zkevm.html