Tento článek je příspěvek komunity. Autorem je Kenny Li, spoluzakladatel Manta Network, programovatelného protokolu Layer 1 pro ochranu soukromí, který využívá technologii nulových znalostí.

Pohledy v tomto článku pocházejí od přispěvatele/autora a nemusí nutně odrážet pohledy Binance Academy.

TL;DR

  • Virtuální stroj Ethereum s nulovými znalostmi (zkEVM) je stavový stroj Ethereum, který může provádět chytré smlouvy způsobem kompatibilním s technologií ZKP (zero-knowledge proof).

  • zkEVM rozšiřují možnosti nulových znalostí (zk-rollups) na Ethereum o podporu decentralizovaných aplikací (DApps).

  • zkEVM usnadňují nasazení stávajících i nových projektů Ethereum pomocí ZKP ke zlepšení ekosystému Ethereum.

Úvod

Původní vývojáři Etherea nezvažovali technologii ZKP, když síť poprvé navrhovali v roce 2014. V posledních letech si však ZKP získal pozornost a očekává se, že bude hrát mnohem výraznější roli v prostoru blockchainu. Snahy o spojení technologie ZKP a virtuálního stroje Ethereum proto zesílily.

Abychom pochopili, co je to zkEVM, pojďme si nejprve stručně zopakovat jeho dva základní koncepty: zk-rollups a EVM.

Co jsou Zk-Rollups?

Rollup je škálovací řešení, které kompiluje četná provedení transakcí mimo hlavní řetězec a odesílá data zpět do hlavní sítě jako jednu transakci. Tento proces zvyšuje propustnost a zároveň snižuje náklady na provádění těchto transakcí.

Na Ethereu jsou transakce v rámci souhrnu komprimovány a odeslány do hlavní sítě Ethereum za náklady na ověření jedné transakce. Mainnet Ethereum poskytuje vypořádání a ověřuje data transakcí obsažená v souhrnu.

Zk-rollup je typ rollupu, který využívá technologii ZKP, kryptografickou technologii, která umožňuje ověřit platnost části informace, aniž by byla informace samotná odhalena. zk-rollups nepotřebují zveřejňovat všechna transakční data do hlavní sítě Ethereum; potřebují pouze stavové rozdíly (např. změny stavu uživatelského účtu) a doklad o platnosti, čímž se snižují poplatky za plyn.

Bezpečnost zk-rollups pochází z kryptografie ZKP, kde se k ověření důkazu a dosažení nedůvěryhodnosti používají kryptografické prostředky. To se liší od jiných souhrnů, jako jsou optimistické souhrny, jejichž bezpečnost vychází z ekonomické teorie her, kde jsou špatní hráči demotivováni potenciálními ztrátami a vyzyvatelé jsou motivováni pobídkami.

Co je EVM?

EVM je stavový stroj, ve kterém běží systém účtů Ethereum a chytré smlouvy. Každé provedení inteligentní smlouvy spouští EVM k přechodu ze starého stavu do nového. EVM definuje pravidlo pro výpočet nových a platných stavů z jednoho bloku do druhého.

Stát je v Ethereu důležitým pojmem. Je to datová struktura Merkle Patricia Trie, která představuje aktuální stav Etherea a umožňuje komukoli sledovat informace o transakci od aktuálního bloku až po blok genesis.

Všechny uzly zapojené do údržby Etherea existují, aby byla zajištěna kontinuita a konsensus, což každému uzlu umožňuje vidět přesný aktuální stav. EVM hraje klíčovou roli při udržování této konzistence.

Jak funguje ZkEVM?

EVM ve výchozím nastavení nepodporuje ZKP. Cílem zkEVM je zajistit kontinuitu stavu Etherea a zároveň poskytnout důkaz, že všechny informace jsou správné. Tímto způsobem jsou ověřovány různé faktory zapojené do výpočtu těchto procesů při zachování bezpečnosti a soukromí.

zkEVM to dělá replikací prostředí Ethereum jako zk-rollups. Převezme počáteční stav, vypočítá všechny transakce a poté vydá nový, aktualizovaný stav spolu s doprovodným ZKP. Tento důkaz je předložen inteligentní smlouvě ověřovatele, která kontroluje správnost výstupu počátečního i nového stavu, aniž by bylo nutné ověřovat všechny transakce jednotlivě.

Protože zkEVM jsou založeny na EVM, vývojáři jsou schopni snadno portovat Ethereum DApps a chytré smlouvy na zkEVM, aniž by museli dělat vývojovou práci ZKP. Jinými slovy, zkEVM umožňují zk-rollups provádět chytré kontrakty, kromě swapů tokenů a plateb, které byly dříve podporovány bez zkEVM.

Díky funkci kompatibility EVM mohou vývojáři vytvářet nové produkty pomocí stávajících nástrojů EVM a programovacího jazyka Solidity, přičemž si mohou užívat vylepšeného zabezpečení, které je součástí zkEVM. Stejné výhody platí i pro uživatele – mohou nadále používat stejné DApps a známé nástroje, ale s větším zabezpečením a soukromím.

Kompatibilita EVM versus ekvivalence EVM

Když je blockchain označován jako kompatibilní s EVM, znamená to, že nabízí prostředí, které může nasazovat DApps napsané v programovacím jazyce Solidity. Solidity je navržena pro vývoj chytrých kontraktů, které běží na síti Ethereum.

Ve skutečnosti mohou vývojáři Etherea zkopírovat a vložit kód existujících DApps z Etherea a nasadit jej na jiné EVM kompatibilní řetězce s minimálními úpravami. Pro uživatele je jakákoli adresa řetězce kompatibilní s EVM stejná jako jejich adresa Ethereum.

To znamená, že adresy jsou kompatibilní s běžnými peněženkami, jako jsou Metamask a Trust Wallet. V současné době mezi hlavní EVM kompatibilní řetězce patří BNB Chain, Avalanche C-Chain a Polygon.

Kompatibilitu EVM nelze zaměňovat s ekvivalencí EVM, což znamená, že z pohledu vývojáře DApp jsou souhrny na 2. vrstvě téměř totožné s 1. vrstvou Ethereum.

Abychom použili analogii operačního systému, ekvivalence EVM je podobná obnově souborů a nastavení prostřednictvím Apple Cloud, pokud předchozí počítač uživatele i nový počítač běží na operačním systému Apple.

Naproti tomu kompatibilita EVM znamená, že pokud nový počítač přejde na systém Windows, je třeba původní soubory stáhnout prostřednictvím cloudového úložiště a převést je, aby bylo možné obnovit preferovaná nastavení a staré soubory.

Různé typy ZkEVM

Generování a ověřování ZKP přímo pomocí EVM je extrémně pomalé, protože Ethereum nebylo původně navrženo pro podporu technologie ZKP. V některých případech to může trvat i několik hodin. Je však nezbytné najít rovnováhu mezi kompatibilitou EVM a účinností ZKP.

Zakladatel Etherea Vitalik Buterin kategorizoval zkEVM do následujících čtyř typů. Podobně jako u blockchainového trilematu mají každý jiný kompromis mezi výkonností ZKP a kompatibilitou EVM.

Typ 1: Ekvivalence na úrovni konsensu – zkEVM, který je zcela ekvivalentní Ethereu

Na úrovni konsensu je zkEVM typu 1 – také známý jako zakotvený souhrn – ekvivalentní Ethereu a stav řetězce a transakce zkEVM jsou identické jako u Etherea. Mohou vzájemně ověřovat bloky a být přímo používány s klienty pro provádění Ethereum.

ZkEVM typu 1 činí samotné Ethereum škálovatelnějším a lze jej přímo zavést do hlavní sítě Ethereum. Nevýhodou je, že účinnost ZKP je extrémně špatná a vyžaduje velké množství výpočtů k ověření. Řešením je v budoucnu použití rozsáhlých paralelních validátorů nebo specializovaných integrovaných obvodů pro zk-SNARK.

ZkEVM typu 1 s vysokou účinností ZK by byly nejideálnější formou zkEVM. V současné době existuje mnoho projektů budujících nebo zkoumajících tento typ zkEVM.

Typ 2: Ekvivalence na úrovni bytecode — zcela ekvivalentní EVM

Typ 2 je zcela ekvivalentní EVM, ale ne Ethereum. Liší se od Etherea z hlediska datových struktur (jako je bloková struktura a stavový strom) a odstraňuje některé operace zásobníku, které nejsou přátelské ke ZK.

Je plně kompatibilní se stávajícími DApps, ladicími nástroji a vývojovou infrastrukturou Etherea. Ekvivalence na úrovni bajtového kódu může urychlit dobu dokazování, i když ne výrazně. Jasnou nevýhodou typu 2 je, že je drahý, není synergický se ZK, s nízkou a drahou účinností.

Typ 2.5: Podobný typu 2, ale s úpravami poplatků za plyn

Typ 2.5 sdílí výhody a nevýhody typu 2, ale má o něco nižší poplatky za plyn.

Typ 3: Ekvivalence na úrovni bytecode — téměř ekvivalentní EVM

Na základě typu 2, typ 3 dále obětuje kompatibilitu pro zlepšenou účinnost ZK. Odstraňuje funkce, které je obtížné implementovat na zkEVM, jako jsou předkompilace, takže některé kódování používané v DApps, které tuto funkci vyžadují, musí být přepsáno.

Typ 4: Ekvivalence na úrovni vývojového jazyka – jazyk na vysoké úrovni ekvivalentní EVM

EVM typu 4 mají nejvyšší výkon ZK, ale relativně podprůměrnou kompatibilitu.

Závěrečné myšlenky

Hlavním účelem implementace zkEVM je rozšířit podporu výpočtů ZKP na provádění inteligentních smluv a tím rozšířit DApps na všechny protokoly kompatibilní s EVM. Zde však aplikace ZKP nekončí.

Technologie ZKP může být potenciálně kompatibilní s případy použití Web2. Kombinace různých případů použití Web2 se ZKP by mohla učinit aplikace Web3 plynulejšími a uživatelsky přívětivějšími. Umožnil by také uživatelům, kteří jsou již zvyklí na tradiční internetové prohlížeče, přístup k Web3 a následně by podpořil přijetí Web3.

Další čtení

  • Co je důkaz nulových znalostí a jak to ovlivňuje blockchain?

  • Optimistické vs. souhrny s nulovými znalostmi: Jaký je rozdíl?

  • Zlepšení transparentnosti kryptoměn s důkazem nulových znalostí


Disclaimer and Risk Warning: This content is presented to you on an “as is” basis for general information and educational purposes only, without representation or warranty of any kind. It should not be construed as financial, legal or other professional advice, nor is it intended to recommend the purchase of any specific product or service. You should seek your own advice from appropriate professional advisors. Where the article is contributed by a third party contributor, please note that those views expressed belong to the third party contributor, and do not necessarily reflect those of Binance Academy. Please read our full disclaimer here for further details. Digital asset prices can be volatile. The value of your investment may go down or up and you may not get back the amount invested. You are solely responsible for your investment decisions and Binance Academy is not liable for any losses you may incur. This material should not be construed as financial, legal or other professional advice. For more information, see our Terms of Use and Risk Warning.