广告位

您现在的位置是:首页>币种

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

币种 2021-09-28 11:14

摘要:继 以太坊 Layer2扩展网络Arbitrum和Optimism网络宣布其主网的公测版本正式发布之后,Layer2的总体数据都是极为显著的增长,这也标志着以太坊Layer2扩展解决方案之一OptimisticRollup正式启动。是的,...

image.png


以太坊Layer2扩展网络Arbitrum和Optimism网络宣布其主网的公测版本正式发布之后,Layer2的总体数据都是极为显著的增长,这也标志着以太坊Layer2扩展解决方案之一OptimisticRollup正式启动。是的,这是属于Layer2的季节。

在诸如Arbitrum和Optimism等OptimisticRollup成为市场关注焦点时,Layer2网络zkEVM在这方面取得了一些关键的进展。如今,我们看到越来越多的zkEVM已经成为扩展以太坊的关键。这篇文章让你对zkEVM的基本原理和发展状况有了更深入的了解。

概述。

zkSync宣布将其2.0版本推迟到8月31日。以zkEVM为基础的zkSync2.0将成为第一个与EVM兼容的zkRollup;

8月13日,Polygon公司宣布以2.5亿美元的价格收购以太坊Layer2扩展解决方案Hermez,其核心技术为zkEVM解决方案;

3、以太坊基金会在一份有关研究与发展进展情况的定期声明中说,在过去几个月里,以太坊基金会资助了zkEVM团队,希望通过ZK电路直接实现EVM的操作码。

我们知道,在比较OptimisticRollup和ZKRollup的两个扩展解决方案时,V神相信OptimisticRollups可能很快就能赢得一个通用EVM计算。但是从长期来看,ZK-SNARK技术得到了提高,ZKrollup能够在各种应用场景中“胜出”。“ZK-SNARK技术的改进”主要指zkEVM的成功。

zkEVM功能。

首先,在探讨zkEVM的角色之前,让我们重新了解一下以太坊。实际上,以太坊是一种基于交易的状态机。电脑科学中,状态机是通过读取一系列输入,将旧状态转换为新状态的机器。

自创世以来,以太坊通过一次又一次的交易转化为目前的以太坊状态。此状态包含映射到的所有帐户地址和帐户状态。

在这些事务中,EVM或EVMs负责处理事务。EVM会像一个堆栈,程序员用Solidity之类的高级语言写出代码,然后编译成EVM可以理解的EVM字节码。EVM以多种EVM操作码形式执行标准栈操作,最终生成新的状态。

这是个问题。我们知道zkRollup解决方案需要对Layer2上的事务产生零知识证明,并将它们传回Layer1进行验证。要产生零知识证明,交易的处理必须符合zk电路证明规范。而且,在EVM设计的初期,设计人员没有考虑对零知识的验证。所以需要zkEVM。zkEVM从技术上来说意味着:运行在zkRollup网络中的虚拟机,兼容EVM,并通过零知识证明友好。

二是执行战略。

对zkEVM而言,目前有两种主要的实现策略。

1、直接支持现有EVM操作码集,完全符合Solidity操作码集。该方案的使用者包括Hermez和以太坊基金zkEVM。

2、在使用EVM开发工具时,设计一个零知识证明友好的新型虚拟机,保持Solidity兼容。这个模式主要由zkSync使用。

对第一个策略来说,因为它完全支持现有的EVM操作码集,而且使用与EVM相同的编译器,现有的生态系统和开发工具是完全兼容的,并且更好地继承了以太坊的安全模型。另一种方法,它不受原始EVM操作码集的限制,因此可以更灵活地将代码编译成对零知识证明更加友好的操作码集。这也省去了与所有原始EVM操作代码集兼容所需要的大量工作。

总体而言,第一个策略更加兼容、安全,但是工作量较大;第二个策略更加灵活,工作量较小,但是需要进行更多的调整。

主方案对比。

赫梅兹基埃夫。

Hermez使用第一个策略,把整个EVM操作码集转换成微操作码。

据了解,EVM操作码有多种,如CALL、EXP、CREATE等,它们对zk电路的证明很不友好,而且这些操作码的逻辑也可以用微操作码更友好地表达。微操作码是在uVM中执行的,uVM使用大量的加密工具来实现zk,并且利用Plookup算法提高了验证和验证的效率。

HermezzkEVM的另一亮点是,它同时使用两个证明系统,专门生成STARK证明,然后使用PLONK或Groth16生成STARK证明,并在Layer1上进行验证,作为证据证明。这是因为STARK的证明量大,验证链的开销大,而Groth16或PLONK的证明少,验证速度快。二者的结合各有其优点,可以轻易地视为一种结合使用非对称和对称加密算法的方案。

苹果。

和Hermez一样,AppliedZKPzkEVM也使用了第一个策略。AppliedZKP使用BusMapping映射思想将存储和计算分开。根据BusMapping映射提取的存储数据,State证明了数据的一致性,EVM证明了计算逻辑是正确的。

详细程序如下:

1.EVM在BusMapping映射中读取相关的必需状态。其状态包括存储、存储器、堆栈;

2.EVM执行运算码;

3.EVM通过BusMapping映射写入新的状态;

4.State证明负责BusMapping读取和写入数据的一致性和正确性,EVM证明负责处理EVM操作码的正确执行。

zkSyncEVM。

不像Hermez和AppliedZKP,zkSync选择了第二个策略。zkSync的zkEVM不是一个EVM的副本,而是全新设计的,能够运行99%的Solidity合同,保证在不同的情况下都能正常工作(包括回滚和异常)。利用zkEVM可以有效地生成电路中的零知识证明。

zkSyncEVM使用TinyRAM实现一般操作码集,同时消耗了大量gas操作码,如SHA256和keccak,具体实现其电路,并利用递归聚合技术将所有的证明数据集中起来,以提高效率。

zkSync还开发了两种用于zkEVM的编译器前端:Yul和Zinc。Yul是一种小型Solidity语言,它能将各种后端编译成字节码;Zinc是一种用于智能合同和一般零知识证明电路的基于Rust的语言。这样,开发者可以有更多的选择。

此外,zkSync选择了LLVM这一最先进的工业级产品编译器框架,来保证编译器是完整的,并且是所有经典优化。

概述。

通过以上几个项目,我们看到了ZkEVM技术正逐步成熟,并将在六个月内实现与EVM兼容的zkRollup扩展解决方案。

目前,区块链技术正进入一个史无前例的争论时代。由公共供应链争夺战到以太坊扩张计划之争,甚至是一种具体的扩展方案,不同的项目正互相竞争、追赶超越,这里面蕴藏着与现实世界的巨大博弈,我们所处的是区块链技术最有活力的时代。


Tags: 以太坊  zkEVM 

广告位
  • 欧易(OKEx)
    广告位

推荐阅读

站点信息