🇨🇿 Výhody Determinismu Pro ZK Rollupy Na Cardanu

Cardano transakce zřídka selhávají, protože ověření není závislé na sdíleném globálním stavu. Toto je klíčový rozdíl mezi modelem UTxO projektu Cardano a modelem založeným na účtu jež používá Ethereum. Přístup Cardana umožňuje předvídatelné a deterministické ověřování transakcí a provádění skriptů. Výsledek je znám předem, což je výhodné zejména pro implementaci ZK Rollupů. Ty lze implementovat bez potřeby centralizovaných sekvencerů. V tomto článku se nejprve ponoříme do vysvětlení determinismu a důvodů proč transakce na Ethereum mohou failovat. Poté vysvětlíme základní principy ZK Rollupů na Ethereum. Následně prozkoumáme, jak by se ZK Rollups mohly lišit v rámci ekosystému Cardano.

Úvod do ZK Rollups

Zero-Knowledge Rollup (ZK Rollup) je řešení škálování vrstvy 2 (L2). Může vzít část stavu (obvykle zůstatky na uživatelských účtech) z vrstvy 1 (L1) a převést ji do L2. To umožňuje, aby v L2 docházelo ke složitým výpočtům, které by jinak byly pomalé a náročné na zdroje, kdyby se prováděly v řetězci (tj. v L1). Jinými slovy, výpočet probíhá mimo řetězec, což poskytuje efektivní řešení pro škálování.

Změny stavu, jako je ověřování transakcí a provádění inteligentních smluv, se počítají mimo řetězec a následně se ověřují v řetězci pomocí důkazů nulových znalostí (ZK Proofs nebo ZKP). ZK Rollupy výrazně zvyšují transakční propustnost a minimalizují transakční náklady, a to vše při dědění zabezpečení sítě základní vrstvy, ke které jsou připojeni za účelem vypořádání.

ZK Rollups pravidelně odesílají malou datovou podmnožinu do vrstvy 1 (L1). Tato data jsou výsledkem zpracování velkého objemu dat ve vrstvě 2 (L2). Tímto způsobem ZK Rollups efektivně využívá odolnost proti cenzuře a bezpečnost základní vrstvy pro konečné vypořádání transakcí.

Potřeba kontextu při ověřování transakcí

V každém finančním systému vyžaduje ověření transakce – převod hodnoty mezi dvěma nebo více účastníky – určitý kontext nebo stav pro ověření. Systém musí mimo jiné ověřit, zda má na účtu odesílatele dostatek prostředků. Musí také zajistit, aby uživatelé neutráceli stejné prostředky více než jednou, čímž se vyřeší známý problém dvojího utrácení.

Blockchain je distribuovaný finanční systém, kde se zpracování transakcí nebo přechody stavů dosahuje přidáním nových bloků na konec blockchainu. Každý blok obsahuje více transakcí.

Jak je znázorněno na obrázku, globální stav se mění s každým nově přidaným blokem. Poslední změna stavu nastala po přidání bloku N+4, čímž se stal aktuální globální stav N+4.

Cardano a Ethereum používají různé kontexty pro ověřování transakcí.

V případě Etherea je validace transakcí nebo smart kontraktů závislá na globálním stavu v konkrétním okamžiku. Tento globální stav zahrnuje aktuální stav všech účtů, včetně jejich zůstatků a stavu všech existujících smart kontraktů. Transakce v rámci bloku jsou uspořádány v pevném pořadí a každá transakce má potenciál změnit globální stav. V důsledku toho může být výsledek provedení transakce ovlivněn transakcemi, které byly provedeny před ním v rámci stejného bloku.

Jak je znázorněno na obrázku, nejnověji přidaný blok je N+3, takže globální stav je N+3. Síť se pokouší přejít do nového stavu, N+4, a tak je zkonstruován nový blok N+4. Je důležité si uvědomit, že ověření transakce v bloku N+4 (označeném zeleným rámečkem) závisí na globálním stavu. Jakmile je transakce začleněna do bloku N+4, lze ověřit následnou transakci, která bude záviset jak na globálním stavu, tak na předchozí transakci.

Jedním z důvodů, proč mohou transakce Ethereum selhat, je nepředvídatelnost globálního stavu v době ověřování transakce. Když je transakce konstruována, není možné předvídat její výsledek. Globální stav během ověřování transakce se může lišit od stavu během vytváření transakce. V mezidobí mezi odesláním transakce a validací se mohly zůstatky na účtech účastníků transakce změnit. Tyto změny zůstatků na účtech by mohly zabránit provedení transakce tak, jak původně zamýšlel zadavatel.

Obrázek ilustruje období mezi odesláním transakce TX 10, ke kterému došlo kolem bloku N+2 (stav +2), a následnou validací transakce následující po validaci transakce TX 9. Během tohoto období došlo k četným změnám v globálním nastal stav. Ověření transakce TX 10 je závislé jak na globálním stavu, tak na změnách zavedených transakcí TX 9. Transakce TX 9 nebo jakákoli předchozí změna může potenciálně způsobit selhání transakce TX 10.

Ethereum transakce lze charakterizovat jako stavové.

Naproti tomu Cardano funguje bez globálního státu a využívá model UTxO. V tomto modelu je ověřování transakcí založeno na jeho vstupech a výstupech, čímž se eliminuje potřeba odkazu na globální stav. Každá transakce spotřebovává určité UTXO jako vstupy a generuje nové UTXO jako výstupy. Platnost transakce závisí výhradně na tom, zda jsou spotřebované UTXO platné a nevyčerpané a zda se celková hodnota vstupů shoduje s celkovou hodnotou výstupů.

Validace transakcí jsou na sobě nezávislé. UTxO jsou neměnné objekty a lze zajistit exkluzivní přístup. V rámci blokové validace je jednoduché zajistit, aby každý vstup UTxO byl spotřebován pouze jednou a celý. Pořadí transakcí v rámci Cardano bloku je v kontextu státu nepodstatné.

Obrázek znázorňuje síť, která generuje nový blok, N+4, obsahující transakce TX 9 a TX 10. Nové transakce, TX 9 a TX 10 spotřebovávají staré výstupní UTxO (reprezentované zelenými rámečky) a tvoří vstupní UTxO (reprezentované červenými rámečky). Pořadí transakcí v rámci bloku je irelevantní, protože transakce jsou nezávislé a vzájemně se neovlivňují. Transakce TX 10, zadaná krátce po vytvoření bloku N+2, může spotřebovat UTxO z transakce v rámci tohoto bloku. Přidání nového bloku N+4 má za následek vytvoření nových UTxO ze vstupních UTxO, což znamená změnu stavu.

Transakce Cardano jsou ze své podstaty bez stavové. Vstupy i výstupy jsou známy v okamžiku zadání transakce. To umožňuje místní ověření transakce před odesláním, což zajišťuje, že pravděpodobně projde ověřením sítě. Schopnost utratit vstupní UTxO (jejich existenci a schopnost je utratit se správným podpisem) lze ověřit lokálně, stejně jako výsledek spuštění skriptu (který závisí na vstupních datech přidaných v transakci zadavatelem). To dává zadavateli vysoký stupeň důvěry, že transakce neproběhne.

Na rozdíl od Etherea Cardano funguje předvídatelně a deterministicky. Tento zásadní rozdíl výrazně ovlivňuje použití ZK Proofs.

Je důležité objasnit, že Ethereum ověřuje transakce deterministicky v tom smyslu, že za předpokladu stejných vstupů (transakční data) a stejného stavu (aktuální globální stav blockchainu Ethereum) bude EVM vždy produkovat stejný výstup. Výsledek ověření transakce však není deterministický. Výsledek ověření se může lišit od očekávání uživatele.

Během odesílání transakce nemůže uživatel předvídat, jaký bude globální stav v době ověření transakce. Proto je nemožné odhadnout výsledek ověření. Lze to pouze předpokládat.

ZK Rollup udržuje stav

V řešeních na 2. vrstvě, jako jsou ZK Rollups, je ověřování transakcí zásadní pro zachování integrity systému. To zahrnuje záruky proti dvojímu utrácení a neoprávněnému vytváření nových tokenů.

Podobně jako Ethereum (L1), ZK Rollups (L2) také zachovávají globální stav. Tento globální stav se aktualizuje s každou transakcí, takže pořadí transakcí je významné.

Údržba stavu v ZK Rollups je podstatně méně složitá než v blockchainu Ethereum, především proto, že na to typicky dohlíží centralizovaná entita, známá jako sekvencer. Výsledkem je, že jediný server může spravovat zůstatky na uživatelských účtech.

Uživatelé, kteří chtějí využívat ZK Rollups, jsou povinni uzamknout tokeny, které byly raženy na Ethereum. Dosahují toho pomocí inteligentní smlouvy Ethereum, která uzamkne tokeny a generuje ekvivalentní množství ve druhé vrstvě.

Ve druhé vrstvě mohou uživatelé odesílat transakce. Tyto transakce mění zůstatky uživatelských účtů ve vrstvě 2. Je však důležité poznamenat, že všechny změny stavu, ke kterým dojde ve vrstvě 2, nemají vliv na globální stav Etherea v daný okamžik.

Globální stav v síti Ethereum se mění nezávisle na stavu vrstvy 2.

Pokud si uživatelé přejí opustit vrstvu 2 a odemknout tokeny zajištěné v Ethereum smart kontraktu, jsou povinni zahájit výběr ze ZK Rollup. Tato akce má za následek spálení jejich tokenů ve vrstvě 2 a odemknutí ekvivalentního množství tokenů ve vrstvě 1. Během tohoto procesu se náležitě projeví jakékoli změny ve vlastnictví tokenů, ke kterým došlo ve vrstvě 2.

Chcete-li vybrat tokeny z Rollupu ZK, musí být předložen důkaz ZK.

Když si uživatel přeje převést své tokeny z Rollupu ZK zpět do Etherea, zahájí žádost o výběr. Tato žádost specifikuje množství tokenů, které má v úmyslu vybrat, a adresu Ethereum, na kterou mají být tokeny zaslány.

Následně systém ZK Rollup vygeneruje doklad o nulových znalostech (ZK), který potvrdí tento požadavek na výběr.

Tento důkaz v podstatě potvrzuje, že „uživatel skutečně vlastní tyto tokeny na vrstvě 2 a nebyly utraceny“.

Tento ZK Proof je poté předložen ke smart kontraktu na Ethereum. Pokud smart kontrakt ověří, že důkaz je platný, požadované množství tokenů se odemkne ze smart kontraktu a přenese se na Ethereum adresu uživatele.

Shrnutí:

Ethereum uzamkne tokeny uživatelů v důsledku vkladové transakce, což současně ovlivňuje jak globální stav Etherea, tak stav ZK Rollup. Uživatelé mohou využívat tokeny pouze ve vrstvě 2. Transakce provedené v ZK Rollup primárně ovlivňují stav vrstvy 2. Dále si ukážeme, jak změny stavu v ZK Rollup také ovlivňují stav vrstvy 1. Pokud si uživatelé přejí převést tokeny z vrstvy 2 zpět do Etherea, musí odeslat transakci výběru, která odemkne tokeny ve vrstvě 1. Tato akce znovu změní stavy vrstvy 1 i vrstvy 2.

Zatímco zůstatky v Ethereu a ZK Rollup jsou propojeny, nejsou vždy ekvivalentní a fungují poněkud nezávisle.

Jak ZK Rollup funguje?

Ve vrstvě 2 má každý uživatel účet se zůstatkem. Uživatelé zadávají transakce, které mohou zahrnovat převody hodnoty mezi účty. Tyto transakce shromažďuje a sekvenuje centralizovaná entita známá jako sekvencer.

Sekvencer tvoří novou dávku transakcí, představující skupinu jednotlivých transakcí, které byly zpracovány mimo řetězec.

Uživatelské transakce nejsou zahrnuty v novém kořenovém adresáři stavu ani v dokladu ZK. Místo toho jsou uloženy samostatně ve vrstvě dostupnosti dat, což je úložiště mimo řetězec. Tato data jsou zásadní pro rekonstrukci stavu kumulace a jejich ukládání mimo řetězec zvyšuje škálovatelnost.

Na základě dávky vypočítá sekvencer nový globální stav, také známý jako kořen stavu, a ZK Proof.

V kontextu kryptografie ZK působí vrstva 1 (L1) jako ověřovatel a vrstva 2 (L2) jako ověřovatel.

Sekvencer pravidelně odesílá novou transakci do Etherea. Každá transakce obsahuje doklad o ZK a nový kořen stavu (globální stav).

Kořen stavu je kryptografický závazek k novému stavu ZK Rollup po zpracování dávky transakcí. Označuje čistý efekt všech transakcí v dávce.

Důkaz ZK je kryptografický důkaz, který potvrzuje platnost přechodu stavu reprezentovaného dávkou. Ověří, že dávka transakcí byla zpracována správně a vyústila v nový globální stav.

Jak důkaz ZK, tak nový globální stav jsou závislé na dávce transakcí a jsou z ní kryptograficky odvozeny. Nabízejí bezpečný a efektivní způsob, jak reprezentovat dávku transakcí v hlavním řetězci, aniž by bylo nutné zpracovávat každou transakci v řetězci.

Ethereum smart contract (verifier) nevyžaduje pro ověření dávku transakcí. Potřebuje pouze důkaz ZK a nový kořen stavu. Ethereum potřebuje pouze potvrdit, že dávka jako celek je platná (jak je doloženo dokladem ZK) a pochopit čistý dopad na každý zůstatek účtu.

Na obrázku můžete vidět uživatelské transakce úplně nahoře. Sekvencer (ZK Rollup prover) bere nejnovější uživatelské transakce, objednává je a vytváří dávku transakcí. Z dávky vygeneruje ZK Proof a nový globální stav (kořen stavu) (červené šipky představují kryptografickou závislost na dávce) a odešle ji do Etherea k ověření v transakci. Ethereum (ověřovatel ZK) ověří a uloží transakci v blockchainu, čímž změní vlastní globální stav.

Ethereum si zachovává ZK Proof a nový globální stav přenášený sekvencerem, čímž zajišťuje integritu ZK Rollup.

Virtuální stroj Ethereum (EVM) může fungovat v rámci ZK Rollup. To znamená, že vývojáři mohou psát chytré smlouvy stejným způsobem, jako by to dělali pro hlavní síť Ethereum. Tato kompatibilita s EVM usnadňuje portování decentralizované aplikace (DApp) z Etherea do ZK Rollup.

To v podstatě posouvá provádění chytrých smluv DApp z Etherea na ZK Rollup. Zatímco chytré smlouvy nadále dodržují pravidla EVM, jejich provádění se stává škálovatelnějším a efektivnější, protože probíhá na vrstvě 2 (L2).

Snadná migrace chytrých kontraktů na řešení na 2. vrstvě je jedním z důvodů, proč ZK Rollups (a další řešení na 2. vrstvě) přijímají model založený na účtu podobný tomu, který používá Ethereum.

Výhody Cardanova determinismu

Komunita Ethereum aktivně zkoumá různé metody pro zvýšení škálovatelnosti a efektivity, přičemž technologie Zero-Knowledge je jedním ze slibných řešení, která jsou předmětem zkoumání. Zavedení sekvencerů v ZK Rollups je klíčovým mechanismem pro správu a řazení transakcí v síti Layer 2.

Sekvencery slouží jako řešení problematiky řazení transakcí a determinismu, hrají klíčovou roli ve fungování ZK Rollups. Použití sekvencerů však zavádí úroveň centralizace, což vyvolává obavy v souvislosti s principem decentralizace blockchainu. Sekvencer, který je jedinou entitou s mocí objednávat transakce, by se mohl potenciálně stát místem selhání nebo manipulace.

Ověřování transakcí Cardano je deterministické a umožňuje vytváření transakcí, jejichž výsledek je znám a předvídatelný v době vytváření transakce. To je možné, protože ověřování transakcí Cardano spoléhá pouze na vstupy a výstupy transakce, nikoli na žádný globální stav.

V kontextu důkazů ZK je tento deterministický charakter výhodný. Při vytváření důkazu ZK v podstatě dokazujete, že znáte tajný vstup, který, když je podroben určitému výpočtu, vede ke známému výstupu. Protože je výpočet deterministický, můžete předvídat výstup při sestavování ZK Proof.

Vzhledem k tomu, že veškeré znalosti o vynaložených UTxO, vyrobených UTxO a spuštěných validátorech (smart kontraktech) jsou známy během vytváření transakce, je možné vytvořit ZK důkaz, který prokáže, že validátor (zakódovaný jako aritmetický obvod) byl úspěšně proveden. .

Důkaz ZK Proof lze konstruovat mimo řetězec v důsledku složitějších výpočtů. On-chain validátor obsahuje aritmetický obvod, který ověřuje správnost jakéhokoli poskytnutého svědectví ZK Proof.

To je důvod, proč může být potřeba sekvenceru snížena nebo dokonce potenciálně eliminována. Výpočty mimo řetězec by mohly být potenciálně provedeny bez sekvenceru kvůli determinismu transakcí. V Cardano’s ZK Rollup potřebuje každá transakce vědět pouze o svých konkrétních vstupech a výstupech a nemusí interagovat s globálním stavem. Jinými slovy, výhody modelu UTxO v L1 lze přenést na L2.

V Ethereu využívají řešení škálování ZK Proof sekvencery k seřazení dávek transakcí deterministickým způsobem tak, aby mohl být znám stav pro vytvoření požadovaného důkazu (svědek ZK Proof).

Při konstrukci transakcí Ethereum není k dispozici dokonalá znalost příslušného stavu. To prakticky znemožňuje konstrukci důkazu na prvním místě bez důvěryhodných sekvencerů (operátorů), protože stav kontraktu není v době zpracování transakce znám.

V Cardano však není potřeba vědět, kde se transakce v bloku objeví, protože to, kde se v bloku objeví, neovlivňuje stav chytré smlouvy. Pouze jedna transakce může interagovat se stavem - Datum UTxO - per blok.

Tato deterministická povaha Cardana umožňuje vytvářet ZK důkazy bez potřeby sekvenceru. Dokonce se teoreticky lze obejít bez externí vrstvy dostupnosti dat.

V síti L2 musí existovat subjekt (ZK Prover), který bude konstruovat transakce pro L1. Stav L2 nebude globálním stavem jako v Ethereu, ale spíše stavem všech nezávislých transakcí.

V ZK Rollup mohou UTxO fungovat nezávisle na sobě, podobně jako ve vrstvě 1. To umožňuje vysokou úroveň paralelismu a nezávislosti mezi transakcemi.

I při absenci sekvenceru a dávkování transakcí je pravděpodobně nutné nějakým způsobem přenést stav vrstvy 2 do L1, aby byla zajištěna integrita a konzistence systému. Zatímco Cardano nevyžaduje sekvencer k dosažení determinismu, L2 stále spoléhá na L1 pro zabezpečení.

ZK Rollups, které využívají model UTxO, lze snadněji decentralizovat, na rozdíl od těch v ekosystému Ethereum. Deterministický charakter a model UTxO otevírají cestu novým možnostem implementace. Může být výrazně jednodušší vyvinout implementaci ZK Rollup, která je efektivnější a decentralizovanější, než čeho lze dosáhnout pomocí modelu založeného na účtech.

Uvidí se, zda se nějakému týmu podaří vytvořit ZK Rollup, který funguje bez sekvenceru a zachovává integritu systému pomocí validátorových skriptů a ZK důkazů.

Závěr

Cardaní UTxO model představuje několik výhod, včetně deterministických transakcí, silného potenciálu pro použití pro důkazy ZK, eliminace potřeby sekvencerů a teoretické možnosti konstrukce ZK Rollups bez vrstvy dostupnosti dat. Tyto výhody z něj činí příznivější volbu pro ZK Rollups ve srovnání s modelem založeným na účtu Ethereum. Nadcházející Chang hard fork představí kryptografii ZK Cardano, což znamená začátek nové kapitoly pro celý ekosystém.

Článek napsali Cardanians s podporou Cexplorer.

Přečtěte si celý článek: https://cexplorer.io/article/advantages-of-determinism-for-zk-rollups-on-cardano