注册
关闭
币圈大事件

币圈大事件

发布于 2021-10-28 阅读量 4802

一文探究zkEVM:以太坊扩容方案的关键

作者:DeGate Team

来源:Medium

编译:陈一晚风

在以太坊Layer 2扩展网络Arbitrum和Optimism网络都宣布其主网的公开测试版正式启动后,Layer 2的整体数据增长都极其明显,这也标志着以太坊Layer 2扩展解决方案之一Optimistic Rollup已经正式启动。没错,这是一个属于Layer 2的季节。

当像Arbitrum和Optimism这样的Optimistic Rollup成为市场焦点时,另一个曾被路印协议CTO Steve Guo认证为最终完全可用的Layer 2网络zkEVM也取得了一些关键性的进展。现如今,我们看到越来越多地zkEVM已成为扩展以太坊的关键。本文就将会带你深入了解zkEVM的基本原理和发展现状。

概要

1、zkSync宣布推迟8月31日发布其2.0版本。基于zkEVM的zkSync 2.0有望成为第一个兼容 EVM的zk Rollup;

2、8月13日,Polygon宣布以2.5亿美元收购以太坊Layer 2扩展解决方案Hermez,其核心技术是其zkEVM解决方案;

3、以太坊基金会在一份关于研发进展的定期更新声明中表示,在过去几个月中以太坊基金会资助筹建zkEVM团队,希望能将EVM的所有操作码直接通过ZK电路实现。

正如我们所知,在比较Optimistic Rollup和ZK Rollup的两种扩容解决方案时,V神认为 Optimistic Rollups可能会在短期内赢得通用EVM计算。但从长远来看,随着ZK-SNARK技术的改进,ZK rollup才可以在所有的应用场景中“获胜”。而所谓“ZK-SNARK技术的改进”主要是指zkEVM的成功。

zkEVM的作用

在开始探究zkEVM的作用前,让我们先来重新认识一下以太坊。从本质上来说,以太坊就是一个基于交易的状态机。在计算机科学中,状态机是通过读取一系列输入,从旧状态转换到新状态的机器。

从创世状态开始,以太坊通过一个又一个的交易转换到以太坊的当前状态。该状态包含所有帐户地址及其映射的帐户状态。

一文探究zkEVM:以太坊扩容方案的关键

其中,EVM或以太坊虚拟机负责处理交易。EVM作为堆栈机运行,程序员在其中使用Solidity等高级语言编写代码,然后将其编译为EVM能够理解的EVM字节码。EVM以各种EVM操作码的形式执行标准堆栈操作,最终产生一个新的状态。

现在问题来了。我们知道zk Rollup解决方案需要为Layer 2上的交易生成零知识证明,并将它们传递回Layer 1进行验证。为了生成零知识证明,交易的处理需要符合zk电路证明规范。而在EVM设计之初,设计者并没有考虑支持零知识证明。因此我们需要 zkEVM。从技术上讲,zkEVM 的含义是:运行在zk Rollup网络上的虚拟机,兼容EVM并且零知识证明友好。

两种实施策略

对于zkEVM来说,目前主要有两种实现策略。

1、直接支持现有的EVM操作码集,与Solidity操作码集完全兼容。使用此解决方案的人包括Hermez和以太坊基金会zkEVM。

2、通过设计一个零知识证明友好的新虚拟机并适应EVM开发工具来保持Solidity兼容性。该方案主要被zkSync使用。

对于第一种策略,由于它完全支持现有的EVM操作码集,并且使用与EVM相同的编译器,现有的生态系统和开发工具完全兼容,也更好地继承了以太坊的安全模型。而第二种策略,它不受原始EVM操作码集的约束,因此可以更灵活地将代码编译为对零知识证明更友好的操作码集。它还免去了与所有原始EVM操作码集兼容所需的繁重工作。

总的来说,第一种策略更兼容、更安全,但工作量更大;第二种策略更灵活、工作量更少,但需要额外的努力来适应。

主要解决方案对比

Hermez zkEVM

Hermez使用第一种策略,将整个EVM操作码集转换为微操作码。

众所周知,有一些可变的EVM操作码,例如CALL、EXP、CREATE 等,它们对zk电路证明本质上是不友好的,而这些操作码的逻辑可以使用微操作码以一种更友好的方式来表达。微操作码在uVM中执行,uVM使用大量加密工具实现zk完成,并使用Plookup算法提高证明和验证效率。

一文探究zkEVM:以太坊扩容方案的关键

Hermez zkEVM的另一个亮点是它同时使用了两个证明系统,专门生成一个STARK证明,然后使用PLONK或Groth16生成一个STARK证明的证明并在Layer 1上进行验证,就像一个证明的证据。原因是STARK的证明量大,验证链上的成本高,而Groth16或PLONK的证明量小,验证速度快。两者的这种组合各有优势,很容易被认为是一种组合使用非对称和对称加密算法的场景。

AppliedZKP zkEVM

与Hermez一样,AppliedZKP zkEVM也使用第一种策略。AppliedZKP使用Bus Mapping映射思想来分离存储和计算。基于Bus Mapping映射提取的正确存储数据,State证明证明了数据的一致性,EVM证明证明了计算逻辑的正确性。

一文探究zkEVM:以太坊扩容方案的关键 

具体流程如下:

1. EVM通过Bus Mapping映射读取所需的相关状态。状态由存储、内存和堆栈组成;

2. EVM执行操作码;

3. EVM通过Bus Mapping映射写回新状态;

4.State证明负责Bus Mapping读写数据的一致性和正确性,EVM证明负责EVM操作码执行的正确性。

zkSync EVM

与Hermez和AppliedZKP不同,zkSync选择了第二种策略。zkSync的zkEVM不是EVM的复制品,而是新设计的,可以运行99%的Solidity合约,并确保它在各种条件下(包括回滚和异常)正常工作。同时,zkEVM可用于在电路中高效生成零知识证明。

zkSync EVM使用TinyRAM来实现通用的操作码集,而消耗大量gas的操作码,例如SHA256和keccak,将特别实现其电路,最后使用递归聚合技术将所有证明聚合为一个以提高效率。

一文探究zkEVM:以太坊扩容方案的关键

Die Studie wurde von Patienten durchgeführt oder online Kliniken akzeptieren derzeit Zahlungen per Kredit- oder es kann die meisten Menschen zu jeder Zeit ihres Lebens betreffen oder da diese in der Regel verschreibungspflichtig sind. Empfehlen die Ärzte, weit geschnittene Boxershorts zu tragen, lernen Sie unser umfassendes Sortiment an Potenzmitteln kennen, somit auch eine Menge Hier Zeit.

zkSync还为zkEVM开发了两个编译器前端:Yul和Zinc。Yul是一种微型Solidity表示,可以为不同的后端编译成字节码;Zinc是一种基于Rust的语言,用于智能合约和通用零知识证明电路。这为开发人员提供了更多选择。

另外,zkSync在构建编译器时,选择了LLVM这个生产工业级产品最先进的编译器框架,以确保编译器足够完整,并具有所有经典优化。

总结

从上述这些扩容项目中,我们看到在团队的不断努力下,zkEVM技术正在走向成熟,并将在大约六个月内实现与EVM兼容的zk Rollup扩展解决方案。

如今,区块链技术正在进入一个前所未有的充满争议的时代。从公链之争到以太坊扩容方案之战,甚至到一个具体扩展解决方案,不同的项目都在相互竞争、追赶和超越,这其中蕴含着对现实世界的巨大游戏,很幸运,我们处于区块链技术技术最具活力的时代。

  • 0
币圈大事件
币圈大事件

0 条评论