类别:区块链 / 日期:2021-09-12 / 浏览:1296

9 月 1 日凌晨,以太坊扩容收集 Arbitrum 颁布发表主网公测版本正式上线,与此同时 Optimism 则早已经向部门白名单应用开放,那标记着以太坊 L2 扩容计划的一收——Optimistic Rollup 正式登上了舞台。

我们再将目光转向 L2 扩容计划的另一收,ZK Rollup:

zkSync 于 8 月 31 日颁布发表推延上线其 2.0 版本,基于 zkEVM,zkSync 2.0 有望成为首个兼容 EVM 的 ZK Rollup;

8 月 13 日,Polygon 颁布发表以 2.5 亿美圆收买以太坊二层扩容计划 Hermez,Hermez 的核心手艺恰是其 zkEVM 计划;

同样是 8 月 13 日,以太坊基金会在按期公布其撑持的团队研究与开发进度的文章中暗示,过去几个月已经帮助组建了一个团队以停止 zkEVM 的研发。

我们晓得,Vitalik 在比力两种扩容计划时暗示,短期 Optimistic Rollups 很可能在通用的 EVM 计算中胜出,但最末从中持久来看,跟着 ZK-SNARK 手艺的改良,ZK Rollups 将在所有场景中胜出。此中所谓「ZK-SNARK 手艺的改良」,次要就是指 zkEVM 的胜利。

可见,zkEVM 已经成为以太坊扩容计划皇冠上的明珠。笔者希望通过本文,能够让读者领会 zkEVM 的根本原理与开展现状。

zkEVM 的感化

要弄清晰 zkEVM 的感化,我们还需要一些前置常识。

我们先从以太坊讲起,从素质上来讲,以太坊是一个基于交易的形态机。

从以太坊的创世纪形态(Genesis State)起头,通过一个区块又一个区块的交易,改变成最末形态,也即以太坊当前的形态,形态中包罗了所有的账户地址和其映射的账户形态。

三分钟读懂 zkEVM:以太坊扩容计划的明珠  方案 以太坊 零知识证明 扩容 EVM 第1张source:https://ethfans.org/posts/how-does-ethereum-work-anyway

此中详细负责处置交易的就是 EVM,即 The Ethereum Virtual Machine (以太坊虚拟机)。EVM 做为一个仓库机运行,法式员用高级语言例如 Solidity 来编写代码,随后代码被编译成 EVM 能够理解的 EVM 字节码,做为各类 EVM 指令施行尺度的仓库操做,最末产生一个新的形态。

如今的问题来了,我们晓得 ZK Rollup 计划需要对二层上的交易生成零常识证明,再传回一层停止验证,而要生成零常识证明,需要交易的处置过程契合 zk 电路证明的标准。而在 EVM 设想之初,显然没考虑过要撑持零常识证明(究竟结果那是 6,7 年前,零常识证明没进入大大都人的视野),那就是 zkEVM 的意义:一种运行在 ZK Rollup 收集上,兼容 EVM 同时又对零常识证明友好的虚拟机。

两种实现战略

关于 zkEVM,目前次要有两种实现战略:

间接撑持 EVM 现有的指令集,完全兼容 solidity 指令集。利用那种计划的包罗 Hermez 和以太坊基金会 zkEVM。从头设想一种虚拟机,该虚拟机对零常识证明友好,同时对 EVM 开发东西停止适配,来连结对 solidity 的兼容,利用那种计划的次要是 zkSync;

关于第一种战略,因为完全撑持了 EVM 现有的指令集,其利用的是和 EVM 一样的编译器,因而天然就对现有的生态系统和开发东西完全兼容,同时还更好的继承了以太坊的平安模子。

而关于第二种战略,因为不受原有 EVM 指令集的约束,能够更灵敏的将代码编译成对零常识证明更友好的指令集,同时也脱节了兼容所有 EVM 原有指令集所需要的艰巨而繁重的工做。

总的来说,第一种战略兼容性更好,平安性更高,但是工做量更大;第二种战略更灵敏,工做量更小,但需要破费额外精神在适配上。

次要计划比照Hermez zkEVM

Hermez 接纳的是第一种战略,其将所有 EVM 指令集全数翻译为中间指令(micro opcode)。

寡所周知,EVM 有一些变长的指令,好比 CALL,EXP,CREATE 等,那些指令生成对 zk 电路证明不友好,操纵中间指令能够更友好地表达那些指令的逻辑。中间指令在 uVM 中施行,uVM 中利用了大量的密码学东西,来实现 zk 完整,而且利用了 Plookup 算法来提拔证明及验证效率。

三分钟读懂 zkEVM:以太坊扩容计划的明珠  方案 以太坊 零知识证明 扩容 EVM 第2张

Hermez zkEVM 在实现上的别的一个亮点,是其同时利用了两套证明系统,详细来说即生成一个 STARK 证明,然后再用 PLONK 或 Groth16 对那个 STARK 证明生成一个证明并在一层停止验证,那一过程就像是对证明的证明。之所以那么做,是因为 STARK 固然很优良,但是证明规模却很大,在链长进行验证时开销也很大,而 Groth16 或 PLONK 却拥有更小的证明规模和更快的验证速度。那种两相连系,各取所长的做法,很容易让人想到非对称加密算法和对称加密算法连系利用的场景。

AppliedZKP zkEVM

AppliedZKP zkEVM 和 Hermez 一样,接纳的是第一种战略。

AppliedZKP 接纳数据总线(Bus Mapping)的思绪,将存储和计算分隔。在 Bus Mapping 抽取了准确的存储数据的根底上,由 State proof 证明数据的一致性,EVM proof 证明计算逻辑的准确性。

三分钟读懂 zkEVM:以太坊扩容计划的明珠  方案 以太坊 零知识证明 扩容 EVM 第3张

详细的过程如下:

EVM 通过 Bus Mapping 读取需要的相关形态,形态由 Storage,Memory,Stack 三部门构成;EVM 施行 opcode;EVM 再通过 Bus Mapping 写回新的形态;过程中 State proof 负责 Bus Mapping 读写信息的一致性和准确性,EVM proof 负责 EVM 对 opcode 施行的准确性。zkSync EVM

与 Hermez 和 AppliedZKP 差别,zkSync 拔取了第二种战略。zkSync 的 zkEVM 并不是 EVM 的复刻品,而是为了可以运行 99% 的 Solidity 合约并确保其可以在各类情况下(包罗回滚和异常情况)一般工做而全新设想。与此同时,zkEVM 能够用来高效的在电路中生成零常识证明。

zkSync EVM 利用 TinyRAM 来实现通俗指令集,而对 Gas 消耗庞大的指令如 SHA256/keccak 则特殊实现其电路,最初利用递归聚合手艺,将所有的证明聚合成一个,以提拔效率。

三分钟读懂 zkEVM:以太坊扩容计划的明珠  方案 以太坊 零知识证明 扩容 EVM 第4张soruce: https://medium.com/matter-labs/zksync-2-0-hello-ethereum-ca48588de179

zkSync 同时开发了两套针对 zkEVM 的编译器前端: Yul 和 Zinc。 Yul 是能够针对差别后端编译成字节码的中间 Solidity 暗示;Zinc 则是基于 Rust 为智能合约和通用零常识证明电路开发的语言。那赐与了开发者更大的选择空间。

同时,在构建本身的编译器时,zkSync 选择了 LLVM,那一消费工业级产物更先进的编译器框架,以确保编译器足够完整和拥有所有典范优化。

写到最初

zkEVM 手艺在多个优良团队的持续勤奋下,已经日渐成熟,相信在半年摆布的时间内就会相继落地,届时兼容 EVM 的 ZK Rollup 扩容计划必然会绽现出本身的荣耀。

现在的区块链手艺正进入了史无前例的大争鸣时代。从公链之争,到以太坊扩容计划之争,以至详细到一个扩容计划下,都有着差别的项目朴直在前仆后继,你逃我赶。笔者非常高兴,能身处那个区块链手艺最朝气蓬勃的大时代。

 可能感兴趣的文章

最近发表