本文介绍了 4 种级别的 EVM 等效性,以太坊上的 zkEVM 项目概览,构建 zkEVM 所面临的的挑战,zkEVM 的竞争展望。
原文:zkEVMs: The Future of Ethereum Scalability(galaxy)
作者:Galaxy Digital ,Christine Kim
编译:Kyle,DeFi 之道
介绍
零知识以太坊虚拟机 (zkEVM) 是一项雄心勃勃且改变游戏规则的技术,可在短期和长期内提高以太坊的可扩展性。今年,三个主要的以太坊扩容项目 ——zkSync、Polygon 和 Scroll—— 各自宣布了其 zkEVM 实施的重大进展,其中许多项目已在今年的早期 alpha 阶段启动,如今作为独立的第 2 层 (L2) 运行区块链。随着时间的推移,zkEVM 有可能直接从以太坊的基础层运行。
简而言之,zkEVM 是虚拟机,可以执行与以太坊虚拟机 (EVM) 相同的高级编程语言或低级字节码,并使用零知识证明 (ZKP) 证明此代码,加密证明可在不泄露的情况下验证数据有关数据本身的任何信息,例如其属性或内容。早在 1982 年,计算机科学家 Goldwasser、Micali 和 Rackoff(Silvio Micali 是 Algorand 区块链的创始人)首次将 ZKP 作为概念引入。 ZKP 经常与同态加密相混淆,同态加密是密码学的另一个分支,它允许对加密数据执行操作而无需解密数据。同态加密方案于 1978 年由 Rivest、Adleman 和 Dertouzos 首次提出,已成为实现云计算和存储的关键技术之一。值得注意的是,同态加密也被用于一些公共区块链协议,如隐私币 Grin 来混淆交易金额。
在过去的 40 年里,计算机科学家发明了多种算法来安全高效地生成 ZKP,其中许多算法属于两大类:可扩展的透明知识论证 (STARKs) 或简洁的非交互式知识论证 (SNARKs)。这些算法是为大量用例开发的,包括核裁军、身份认证系统,以及最近通过公共区块链和加密货币的出现来实现区块链可扩展性。特别是在以太坊上,许多开发人员认为 ZKP 是扩展的 “圣杯”,因为与其他用于验证交易数据的加密方案相比,ZKP 具有简洁和易于验证的特点。难以构建或破解但易于验证是密码协议开发人员的共同目标,因为它允许广泛而有效的分发。
对于零知识系统的所有好处,众所周知,它们很难推广和应用于证明任意复杂性的代码。构建 ZKP 以本地支持和证明以太坊区块链上所有类型的交易活动一直是开发人员在过去几年中进行的一项持续研究计划。直到 2021 年 11 月,Starkware 才推出了第一个用于证明基于以太坊的交易的通用 ZK 系统。这是通过 Starkware 团队创建的自定义编程语言 Cairo 实现的。然而,最近,在 2022 年 7 月,三种不同的基于以太坊的 L2 协议 ——zkSync、Polygon 和 Scroll—— 宣布在利用 ZKP 以 zkEVM 的形式扩展以太坊方面取得了突破。
注意:虽然通俗地称为 zkEVM,但这些虚拟机并没有利用 ZKP 的隐私优势,而是完全受益于 ZKP 的安全和效率优势。因此,这些类型的虚拟机更准确的名称是有效性证明生成 EVM,但在本报告中,将使用更流行的名称 zkEVM。
本报告旨在让读者熟悉 zkEVM 的一般概念,并检查以太坊开发中的各种实现。由于 zkEVM 是一个高级主题,本报告首先简要概述以太坊网络的现状,并通过介绍区块生产、EVM 和 rollup 等核心概念为理解 zkEVM 奠定基础。然后,我们将总结以太坊上可以存在的不同类型的 zkEVM,并比较目前生产中的 5 种主要 zkEVM 实现。然后,我们将重点介绍这项新兴技术在实施中面临的挑战,以及我们对 zkEVM 随时间推移的竞争格局的展望。总体而言,zkEVM 仍处于以太坊开发和采用的早期阶段,尽管它们成为 L2 区块链和最终以太坊协议本身的首选扩展技术的潜力很高。
今天的以太坊
在深入研究 zkEVM 的复杂性之前,重要的是首先要从高层次理解交易是如何包含在以太坊的区块中的。
区块生产
当用户向以太坊提交新交易时,连接到网络的计算机(也称为节点)将交易存储在称为内存池的本地数据结构中,内存池负责维护未确认交易的列表。然后,随机选择运行节点和抵押 32 ETH 作为网络抵押品的验证者,将内存池中的交易批量处理并处理成块。选择将新区块附加到以太坊区块链的验证者有时被称为 “提议者”。一些提议者在构建区块时将依赖第三方区块构建器而不是本地内存池,以从最大可提取价值 (MEV) 中获得额外奖励。有关 MEV 的更多信息,请阅读这份 Galaxy Research 报告。
区块按顺序组织,并通过父哈希(前一个区块的 header 哈希)链接在一起。每个区块都包含其父区块的前一个哈希,将区块链接在一起并形成区块链数据结构。通过父哈希链接区块如下图所示:
直到 2022 年 9 月 15 日,以太坊依赖工作量证明 (PoW) 共识机制,矿工代替验证者负责区块生产,矿工无需消耗大量资金,而是需要消耗大量电力处理用户交易。如需 PoS 对以太坊影响的完整分类,请在此处阅读 Galaxy 的 Merge 研究纲要。
在 PoW 和 PoS 共识协议下,以太坊区块链缺乏可扩展性的根源在于有限的区块空间问题。区块空间在以太坊上以 gas 为单位测量。需要更多计算量才能执行的交易通常以较高的 gas 单位定价,而计算成本较低(即资源密集程度较低)的交易具有较低的 gas 成本。 gas 通过以太坊网络自动设置的称为基本费用的动态 gas 费率转换为 ETH。以太坊协议限制区块,因此它们最多只能包含 3000 万单位的 gas。这个最大区块 gas 限制保持了快速的区块传播时间并降低了链分裂的风险。有关以太坊费用动态的更多信息,请阅读这份 Galaxy Research 报告。
以太坊虚拟机
一旦交易被包含在以太坊上的一个区块中,这些交易就会通过称为以太坊虚拟机 (EVM) 的自定义运行时环境执行。 EVM 旨在在以太坊上部署任意复杂度的代码。这本质上是使以太坊成为通用区块链的根本原因,有时也称为图灵完备系统。
EVM 执行交易的方式有规则。首先,EVM 将人类可读的编程语言(如 Solidity 和 Yul)编译为面向机器或 “低级” 语言,称为 EVM 字节码。然后,EVM 将字节码解析为称为 “操作码” 的顺序指令列表。每个操作码命令 EVM 执行不同的任务,并以十六进制形式在 EVM 字节码中表示。例如,在链上执行智能合约时命令 EVM 保留瞬态数据的操作码以助记符表示为 “MSTORE”,以十六进制形式表示为 “0x52”。为了帮助读者概念化操作码,以下是以太坊黄皮书中定义的简单操作码的快照:
多年来,以太坊开发人员向 EVM 添加了新的操作码。他们还添加了预编译,使用户能够在网络上执行更高级的操作,例如哈希函数和标量乘法。作为同类中的第一个运行时环境,EVM 已被广泛用作通用公共区块链上智能合约部署的标准。然而,作为同类技术中的第一项,EVM 确实存在设计限制,其中与本报告最相关的是 EVM 缺乏与 ZKP 的兼容性。
rollup
为了提高以太坊的可扩展性,有几个 L2 网络将交易执行从基础层抽象到 rollup。 Rollups 压缩交易数据,使得将一批交易提交到基础层所需的区块空间量明显低于通过链上的内存池单独确认这些交易。 rollups 由被称为 “排序器” 的网络运营商运营,而不是验证者或矿工。排序器负责验证 rollup 的状态转换。它们是将用户交易打包成一个 rollup 批次,然后将这批交易的证明提交给以太坊基础层的实体。下图说明了排序器在 rollup 中的作用:
有关以太坊 L2 生态系统的完整概述,请阅读这份 Galaxy 研究报告。
Rollup 不同于以太坊上的其他扩展解决方案,例如 Plasma 和状态通道,这些方案在以太坊的历史进程中,核心开发人员已经研究并从以太坊的可扩展性路线图中废弃。rollup 有两种主要类型:Optimistic 和零知识 (ZK)。 Optimistic rollups 依赖于欺诈证明,这意味着对 L2 网络状态的更改会在没有直接证明其有效性的情况下发布到以太坊。只要至少有一个诚实的参与者在观察 optimistic rollup 的状态转换,就可以检测并取消无效的状态转换。就 Arbitrum 和 Optimism 而言,可以提交欺诈证明的 “挑战窗口” 持续一周。一旦挑战窗口结束,optimistic rollup 的状态转换就被认为是最终的和有效的。
另一方面,ZK rollup 依赖于 ZKP,每次在 L2 上处理交易批次时,ZKP 都会生成有效性证明并发布到以太坊。自动生成所有交易批次的有效性证明,增加了 ZK rollup 的安全保障。这也意味着每次向以太坊提交新的有效性证明时都可以从 ZK rollups 中提取资金,而对于 optimistic rollups 通常有大约 7 天的等待期以允许争议和欺诈证明的生成。 ZK rollups 还提供了比 optimistic rollups 更好的数据压缩。下表总结了 optimistic 和 ZK-rollup 之间的高级差异:
optimistic rollup 相对于 ZK rollup 的主要优势是 optimistic rollup 的虚拟机与 EVM 的虚拟机几乎相同。目前在以太坊上运行的 optimsitc rollup 实现,如 Optimism 和 Arbitrum,模拟了与以太坊相同的交易执行环境,分别称为 OVM 和 AVM。大多数 ZK rollup 都是特定于应用程序的,这意味着它们不支持所有类型的基于以太坊的交易和 dapp。
Loopring、StarkEx rollups 和 zkSync 1.0 是特定应用程序 ZK rollups 的示例,它们支持特定类型的支付、代币交换和 / 或 NFT 铸币。
StarkNet 等某些 ZK rollup 是通用的,这意味着它们支持所有类型的交易和 dapp。然而,这些 ZK rollup 要求 dapp 开发人员学习如何在新的自定义执行环境中执行他们的智能合约代码,该环境针对生成 ZKP 而优化,而不是 EVM 兼容性。鉴于现有的去中心化应用程序和用户难以加入新的执行环境,这对在以太坊上采用 ZK rollups 提出了挑战。为了克服这个问题,Polygon Hermez、zkSync 和 Scroll 等 ZK rollup 项目正在致力于实现与 EVM 兼容的 ZK rollup,EVM 是以太坊上所有智能合约代码的原生执行环境。
STARK、SNARK、Volitions 和 validiums
在实践中,rollup 不仅通过链上发布的证明类型来区分(optimistic rollup 中的欺诈证明或 ZK rollup 中的有效性证明),而且还通过 rollup 的数据可用性策略和证明算法来区分。
如本报告前面所述,有两大类有效性证明,称为 SNARK 和 STARK。
- SNARKs 依靠椭圆曲线密码学,这是一种在比特币和以太坊中最常用的数据加密技术。 SNARK 通常还依赖于可信设置,这意味着该算法需要由可信实体提前生成一段数据。可信设置仪式不是重复的事件,而是一个人或一群人生成核心数据的一次性过程。此数据称为公共参考字符串 (CRS),它是一个值,然后在 zk-SNARK 算法中用于生成可信赖的证明。如果生成 CRS 所需的输入受到损害,那么这可能会导致错误的证明生成。因此,重要的是所有仪式参与者销毁用于生成 CRS/SRS 的输入,或者在仪式完成后使其无法恢复。基于 SNARK 的算法的一些示例包括 Sonic、Plonk、Redshift 和 Marlin。
- STARKS 不要依赖椭圆曲线或可信设置。 STARKS 依赖哈希函数,一些开发人员认为哈希函数有利于抗量子加密。然而,STARK 更复杂,需要更多的计算资源才能运行。它们在 2018 年推出的时间也晚于 SNARKs,而 SNARKs 自 2012 年以来一直存在。由于这些原因,作为证明算法,SNARKs 比 STARKs 被更广泛地使用。基于 STARK 的算法的一些示例包括 Fractal、SuperSonic、Fri-STARKs 和 genSTARK。
除了生成有效性证明的不同方法外,ZK rollup 的数据可用性策略也不同,这意味着它们对交易批次的哪些组件最终发布在链上的策略。 Rollups,包括 optimistic 和 ZK,通常在每次处理一批交易时将三份数据提交到主网以太坊。首先,rollup 的验证者将新网络状态的根哈希提交给以太坊。(状态是指 L2 上交易和账户余额的更新记录。)状态记录在一个 Merkle 树数据结构中,如下图:
根哈希是整个 Merkle 树的密码承诺,有时也称为状态承诺。并不要求所有 ZK rollup 都将根哈希提交给以太坊,但它们这样做的目的很常见,目的是使用发布在以太坊上的数据轻松重建和验证在 rollup 上执行的交易。
除了用于确认第 2 层区块链新状态的高级根哈希之外,以太坊上还记录了加密证明。在 optimistic rollups 的情况下,此证明可以是 ZKP 或欺诈证明。它可以通过 STARK 或 SNARK 算法生成。最后,除了这两条数据之外,ZK rollups 还向以太坊发布了批处理交易的压缩版本,也称为状态增量。 State delta 是一种将大量交易数据提交到以太坊的经济高效的方式,这是 ZK rollups 独有的。 Optimistic rollups 代替状态增量,使用其他数据压缩技术来批量处理事务并将它们提交到链上。
(旁注:某些 ZK rollups 项目,例如 Scroll 团队,实际上并不依赖于将状态 delta 发布到以太坊所获得的额外数据压缩收益。在 Scroll 开发人员的心目中,即将到来的代码更改,例如以太坊改进提案 EIP-4844 和 danksharding 将显着降低将交易数据提交给以太坊的成本,这样状态 delta 相对于其他数据压缩技巧的效率提升可以忽略不计。)
使用来自 Merkle 树最低层(叶子)的数据,并将其与来自 Merkle 树最高层(根)的根哈希相结合,允许任何人重建和验证在链上提交的交易批次的内容。大多数汇总的一个决定性特征是能够使用链上提交给以太坊的数据重新创建在第 2 层网络上执行的交易。然而,某些 rollup 避免将状态 delta 或其他压缩交易数据提交给以太坊,而是将数据发布到其他地方以降低运营成本并提高网络可扩展性。某些开发人员会争辩说,避免将交易数据提交给以太坊并因此破坏交易重建保证的第 2 层网络不应归类为 rollup。
rollup 处理状态 delta 的方式决定了该网络是可以归类为 validium 还是 volition。
- Validium 最好将其理解为仅在链上提交有效性证明和根哈希,同时将状态 delta 存储在链下的单独网络上的 rollup。这在理论上将 rollup 的交易吞吐量提高到 9,000 TPS,因为 rollup 不再依赖以太坊的数据可用性并受网络区块空间的限制。 validiums 的缺点是安全性。用于发布链下数据的独立网络不继承与以太坊相同的安全保证。
- volitions 让用户决定在链下或链上发布状态 delta。 它们首先由以太坊扩展初创公司 Starkware 开创。 这是一种新颖的方式,通过直接在链上向以太坊或 Starkware 可信数据可用性委员会 (DAC) 等链下网络确认,让用户决定他们的交易是否需要增强的安全性,但成本可能更高。
EVM 等效的 4 个主要层面
给出了理解以太坊上交易执行的上述框架、EVM 和 ZK rollups,我们现在可以讨论 zkEVMs。 zkEVM 是一种 ZK rollup,它模仿与主网以太坊相同的交易执行环境。 zkEVM 的实现在证明算法和数据可用性策略上有所不同。 zkEVM 的 EVM 等效级别也不同。 EVM 等效性有四个主要级别。 以下是不同级别的高级摘要:
语言层面等效
为了实现语言层面的 EVM 等效性,zkEVM 必须能够理解并本地编译 EVM 友好的语言。换句话说,这些类型的 zkEVM 可以将 EVM 友好的编程语言(如 Solidity 或 Yul)翻译成一种为生成 ZKP 而优化的定制语言。这被认为是在 ZK-rollups 中实现 EVM 兼容性的最简单和最有效的方法之一。然而,这些类型的 zkEVM 在为用户和智能合约开发人员提供与 EVM 交互相同的体验方面最受限制。
与 EVM 的语言层面兼容性意味着通过编译器运行 Solidity,该编译器将 EVM 的高级编程语言翻译成定制的低级语言,可以由专为生成 ZKP 而设计的虚拟机解释。对于大多数只关心通过 Solidity 代码与 EVM 交互的以太坊用户和智能合约开发人员来说,zkEVM 的底层行为可能并不重要,只要可以通过 zkEVM 执行与以太坊主网上相同类型的代码即可。另一方面,为 EVM 构建的复杂开发工具、框架和测试环境可能需要修改才能在仅具有语言层 EVM 兼容性的 zkEVM 上使用。
字节码层面等效
EVM 等效的第二个和第三个层面是字节码层面,这需要 ZK rollup 才能解释从更高级语言(例如 Solidity 或 Yul)编译下来的 EVM 字节码。 zkEVM 可以模仿与 EVM 相同的高级编程语言和低级字节码,从而实现与 EVM 更深层次的兼容性。这些类型的 zkEVM 构建起来更复杂,因为它们需要更高级的工程设计。
如本报告前面所述,虚拟机执行 EVM 字节码的方式是通过称为操作码的特定指令列表。每个操作码命令 EVM 执行不同的任务。字节码兼容的 zkEVM 的目标是创建一个 ZK 系统,该系统可以证明 EVM 字节码并解析字节码包含的各种操作码。这些类型的 zkEVM 的优势在于它们与基于 EVM 的应用程序和工具的兼容性。完全字节码兼容的 zkEVM 将能够支持与基于以太坊的原生应用程序相同的调试工具和开发人员基础设施。然而,实现完全的字节码兼容性通常会带来创建低效且昂贵的 ZK 系统的负面结果。为了降低成本和提高效率,部分字节码兼容的 zkEVM 可能会删除 EVM 的某些功能,例如使用 ZK 数学和密码学更难证明的预编译。
目前,有两种字节码兼容的 zkEVM,Polygon zkEVM 和 Scroll zkEVM。两者都将在本报告的后面部分进行更详细的讨论。在他们当前的设计中,这两个实现仅部分兼容 EVM 字节码。但是,随着时间的推移,这些实现正朝着完全兼容的方向努力。
共识层等效
EVM 等效的第四个也是最后一个层面是共识层。这是 ZK rollups 可以实现的对 EVM 的最高原生兼容性。它有时被称为 “enshrined rollups”,尽管并非所有 enshrined rollups 都需要基于 ZK,但可以是 optimistic rollups。这个想法是由 zkEVM 生成的加密证明不需要以任何身份在以太坊上重新执行。证明本身可用于验证主网以太坊上生成的区块。从某种意义上说,实现共识层面兼容性的 zkEVM 是 zkEVM 的最真实形式。
对于一些开发者来说,能够实现共识层面兼容性的 ZK rollup 是唯一一种应该称为 zkEVM 的 ZK rollup,而其他具有语言和字节码兼容性的 ZK rollup 应该分别被认为是 EVM 兼容的和 EVM 等效的,但不是一个 zkEVM。关于 zkEVM 的精确定义及其不同层面的 EVM 等效性,以太坊开发人员之间存在大量争议。事实上,EVM 等效是一个范围,上面描述的每个层面都不是严格的类别。 zkEVM 开发的早期性质意味着为语言层面兼容性而构建的项目也可能提供某种类型的字节码层面兼容性,而字节码层面兼容的 zkEVM 最终可能会发展成为具有大量共识层面等效性的混合 rollup。
在本报告的下一节中,我们将深入了解目前在以太坊上生产的五个 zkEVM 实现。
以太坊上的 zkEVM 项目概览
目前,还没有接近生产就绪的 zkEVM 实现可以实现共识层面的兼容性。 这是一个正在进行的研究和开发领域,以太坊核心开发人员将其描述为 “多年工程努力”。 然而,有些实现在语言和字节码层面上实现了等效,这仍然为以太坊上当前主要以应用程序为中心的 ZK rollup Layer 2 生态系统提供了改进。 构建 ZK rollup 来执行一般的智能合约和用户交易而不是以应用程序为中心的交易是一项艰巨的任务,到目前为止,只有少数项目在主网上成功启动。
以下是以太坊上五个 zkEVM 项目的高级概述:
zkSync 2.0
Matter Labs 是一个区块链工程团队,成立于 2018 年 12 月。该团队于 2020 年 6 月在以太坊上推出了自己的 ZK rollup 协议,称为 zkSync。zkSync 是以太坊上锁定总价值第六大 L2 网络,支持有限范围的智能合约操作,包括 ETH、ERC20 代币和原生 NFT 的低 gas 传输,以及原子互换和限价订单。该公司最近通过由 Andreessen Horowitz 牵头的 B 轮融资筹集了 5000 万美元,并宣布了一项 2 亿美元的国库基金,致力于在未来几年扩展 zkSync 生态系统。
zkSync 2.0 是一种语言级兼容的 zkEVM,旨在支持所有类型的智能合约操作。 zkSync 2.0 依赖于一种基于 SNARK 的证明算法,称为 UltraPLONK。它还依赖于称为 LLVM 的开源编译器基础架构,将 Solidity 和其他类型的编程语言编译成 zkEVM 字节码。该项目于 2022 年 10 月在 “婴儿 alpha” 阶段启动,预计到 2022 年底将对外部用户全面开放,尽管 Matter Labs 团队仍未披露 zkSync 2.0 证明生成的全部细节。(由于 L2 网络之间的激烈竞争,以及由于 rollup 技术的初期阶段导致了更大的技术漏洞风险,大多数 rollups 项目都在高度保密的情况下运行,并且不公布开源开发流程。)一旦启动,zkSync 2.0 将是一种 volition,让用户可以选择将状态 delta 从他们的链下交易发布到一个称为 zkPorter 的单独协议,而不是在链上发布到以太坊。该策略理论上会将 zkSync 2.0 的每秒交易吞吐量从 2,000 TPS 提高到超过 20,000 TPS。
StarkNet
与 zkSync 一样,StarkNet 是 Starkware 团队构建的已经在以太坊上运行的通用 ZK rollup。 Starknet 的交易执行环境称为 StarkNet OS,其原生智能合约编程语言称为 Cairo。与其他 ZK rollups 相比,Starknet 是功能最全面的网络之一。 StarkNet 为用户提供了一个可选的链下数据解决方案(使 rollup 成为一种 volition),以实现比非 volition 类型的 rollup 成倍降低的交易费用。 StarkNet 操作系统依赖于基于 STARK 的证明算法。与 zkSync 2.0 一样,在 StarkNet OS 上生成证明的过程不是开源的。与 zkSync 等竞争对手类似,随着时间的推移,开源关于证明生成的细节,以便任何人都可以连接到网络,运行专用硬件,并通过生成证明获得奖励,这是 rollup 长期发展路线图的一部分。
StarkNet 本身不支持与 EVM 的语言层面兼容性。但是,以太坊执行层软件客户端 Nethermind 背后的团队正在积极构建名为 Warp 的 Solidity to Cairo 语言编译器。使用 Warp 编译器,StarkNet 用户可以部署基于以太坊的智能合约,而无需在 Cairo 重写代码。此外,还有一个名为 Kakarot 的社区驱动项目,用于构建另一个 Solidity 到 Cairo 语言的编译器,以帮助支持 StarkNet 与 EVM 的兼容性。
Starkware 团队在 7 月公布了他们推出原生 StarkNet 代币和新基金会的计划。在透露初始 100 亿供应量的三分之一将分配给 StarkNet 核心贡献者后,代币的拟议分配成为争议的根源。今年,Starkware 作为一家公司以 80 亿美元的估值筹集了 1 亿美元。该轮融资由投资公司 Greenoaks Capital、Coatue 和 Tiger Global 领投。除了 StarkNet 之外,StarkWare 还为用户提供了一种可定制的区块链可扩展性解决方案,称为 StarkEx,它利用了该公司新颖的基于 STARK 的 ZK 技术。与 StarkNet 不同,StarkEx 是一个以应用程序为中心的 ZK rollup。使用 StarkEx 在以太坊上实现更大可扩展性的一些值得注意的 DeFi 应用程序包括 soRare、Immutable 和 DeversiFi。
polygon zkEVM
Polygon 团队构建的 zkEVM 实现(以前称为 Matic Network)实现了与 EVM 的字节码级别兼容性。 Polygon 的 zkEVM 预计将于 2023 年初的某个时候在以太坊上推出,并且最近已开源供公众审查。(重要的是要注意,虽然代码可以公开查看,但不能使用、修改或共享,因为它不是在开源代码许可下发布的。)Polygon 的 zkEVM 实现依赖于基于 SNARK 和 STARK 的证明。具体来说,zk-SNARKs 用于证明 zk-STARKs 的正确性。这具有利用与 zk-STARK 相关的快速证明时间以及生成 zk-SNARK 所需的相对较轻的计算资源的优势。关于数据可用性,Polygon 的 zkEVM 实现不会立即支持链下数据解决方案。但是,Polygon 正积极致力于通过开发 Polygon Avail 使他们的 zkEVM 实现成为一种意愿。
Polygon 成立于 2017 年,是一家主要专注于以太坊不同扩展解决方案的公司。它于 2020 年 6 月推出了基于权益证明的以太坊侧链,称为 Polygon PoS。从那时起,Polygon 的产品套件得到了显着发展和多样化。除了该公司的 zkEVM 实施之外,它还在积极开发另外两个 ZK rollup 实施,Polygon Miden 和 Polygon Zero,以及结合了 optimistic rollup 和 ZK rollup 的混合 rollup 实施,称为 Polygon Nightfall。今年早些时候,Polygon 团队完成了自首次代币发行 MATIC 代币以来的第一轮重大融资,并从 40 家风险投资公司筹集了 4.5 亿美元。该轮融资由红杉资本印度领投。
Scroll
Scroll 是另一个字节码层面兼容的 zkEVM 实现。 Scroll 由 Sandy Peng、Ye Zhang 和 Haichen Shen 于 2021 年创立,他们于 2022 年宣布为白名单用户推出他们的 pre-alpha 版本测试网。值得注意的是,围绕其 zkEVM 实现的所有代码都是公开的,并在开源许可下发布。 Scroll 将依赖于一种基于 SNARK 的证明算法,并且不支持链下数据可用性解决方案。此外,Scroll 团队正在设计一个用于证明生成的去中心化市场,以支持他们的 zkEVM。为此,他们还专注于构建可以由世界各地的用户运行的专用硬件,以无需许可和抗审查的方式生成 ZKP。
Scroll 团队与以太坊基金会的扩展解决方案研发团队密切合作,称为隐私扩展以太坊 (PSE) 团队。 PSE 在 zkEVM 方面的工作将在本报告的下一节中讨论。与 zkSync、StarkWare 和 Polygon 等其他团队相比,Scroll 更小,更专注于研究(即较少以商业为导向)。他们也只专注于他们的 zkEVM 实施,而其他竞争团队拥有一套其他与 ZK 相关的产品和服务。 Scroll 今年在 A 轮融资中筹集了 3000 万美元,投资方包括 Polychain Capital 和 Bain Capital Crypto 等领先的加密货币风险投资公司,以及包括以太坊基金会的 Ying Tong 和 Carlos Aria 在内的几位天使投资人。
隐私与扩展探索 (PSE)
PSE 是以太坊基金会的一个研究机构,专注于探索 ZKP 的前沿研究及其在以太坊上的应用。他们以前被称为 “AppliedZKP” 小组。与本报告中强调的其他 zkEVM 实施相比,PSE 的 zkEVM 并不专注于在不久的将来成为生产就绪(PSE 研究的生产就绪组件正在由 Scroll 团队实施)。 PSE 正在研究的 zkEVM 专注于根据 enshined rollup 模型实现与 EVM 的共识层兼容性。
PSE 研究中使用的证明算法是称为 Halo2 的 zk-SNARK,由 Zcash (ZEC) 加密货币的核心开发团队 Electric Coin Company 开发。 PSE 团队构建的 zkEVM 开发是开源的,任何人都可以参与。 除了 zkEVM,PSE 团队还在推进其他几个项目,包括研究反共谋去中心化应用程序基础设施、增强用户交易隐私以及替代加密签名方案。 如需 PSE 正在处理的项目的完整列表,请单击此处。
构建 zkEVM 的挑战
与在以太坊上构建生产就绪的 zkEVM 实现有关,存在一些持续的挑战。 实施 zkEVM 等新技术、zkEVM 的去中心化操作以及构建用于生成 zkEVM 证明的专用硬件的未经证实和未经测试的性质是开发人员面临的障碍。 本节提供了对这些挑战的一些见解。
新奇点
zkEVM 是以太坊上的一个新概念,工作在 2022 年才正式开始。这项技术面临的一个简单挑战是其未经证实和未经大规模测试的性质。大多数 zkEVM 实现在生成证明的方式、生成证明的硬件要求以及去中心化排序器的细节方面仍然存在很大的模糊。建立对 zkEVM 作为可靠的可扩展性解决方案的信任是 Scroll、Polygon、StarkNet 和 zkSync 等团队关注的一个重要领域。
去中心化的挑战
围绕去中心化 zkEVM 操作的前进道路的问题广泛适用于所有 rollup(包括 Optimistic rollup),因为有效性和欺诈证明的生成在很大程度上取决于中心化排序器。如上所述,排序器是 L2 利益相关者,负责批处理用户交易并将这些批次的证明提交给以太坊的 L1。
目前在以太坊上运行的每个 rollup 都由中心化排序器运营,并依赖于由单个实体管理的可升级智能合约。今天 rollup 的中心化性质的一个主要原因是由于技术的初期以及在代码中出现意外错误时需要快速修复。此外,尤其是 zkEVM 背后的技术在不断变化,因此很难自信地激励用户在自己的设备上运行这项新兴技术。为 rollup 去中心化排序器通常意味着启动一个代币并充实一个共识协议,以一种无需许可的方式组织多个排序器和证明者。虽然启动代币和创建共识协议的挑战对于公共区块链来说并不新鲜,但它们需要时间和大量的考虑才能负责任地启动。由于设计和最初的供应分配,StarkWare 宣布的代币计划引起了争议,而 Polygon 预计将在其 zkEVM 推出后改进其现有 MATIC 代币的代币经济学。 zkSync 也有望在未来几个月为其 rollup 推出专用代币,而 Scroll 推出代币的计划仍不明朗。
在 zkEVM 的背景下,用于排序器去中心化的重要的第一步是开源项目软件,在撰写本文时很少有人这样做。在去中心化 zkEVM 操作方面,可以依赖于大量预先存在的用户进行 rollup 的 zkEVM 实现可能具有优势。
zkEVM 硬件挑战
虽然 zkEVM 证明验证起来很简单,但生成它们需要大量计算,部分原因是 ZKP 背后的数学依赖于线性计算序列。这使得并行化工作以在机器上生成证明变得困难。最近使用递归证明在这方面取得了进展。递归证明是一种减少证明生成延迟的技术。它指的是重复生成证明的证明以进一步压缩交易,从而可以并行处理 ZK-rollup 上的小批量交易。这是 StarkNet VM 和 Polygon 的 zkEVM 用于生成有效性证明的技术。
由于生成 ZKP 所需的密集计算性质,zkEVM 可能不得不依赖高级硬件,例如图形处理单元 (GPU)、现场可编程门阵列 (FPGA),甚至专用集成电路 (ASIC)。需要专门的硬件来运行必要的计算来生成证明,这与需要专门的硬件来根据工作量证明 (PoW) 共识协议有效地挖掘区块没有什么不同。这两个硬件行业的增长差异在于证明者与矿工的选择过程。
证明者是负责生成有效性证明的网络利益相关者。另一方面,排序器负责将用户交易排序和打包成批次,并将数据提交到第 1 层区块链。从技术上讲,排序者和证明者的职责可以合并为一个角色。然而,因为证明生成和交易排序都需要高度专业化的技能才能很好地执行,所以拆分这些职责可以防止汇总功能不必要的集中。
如果证明者和排序器的选择过程类似于矿工的选择过程,依赖于达成中本聪共识并用最高效的硬件奖励参与者,那么 ZKP “挖矿” 行业就有可能沿着相同的轨迹发展作为比特币的 PoW 挖矿业。然而,有几个原因可以解释为什么特定证明者的选择过程更可能是一个在设计上类似于权益证明 (PoS) 而不是中本聪风格的 PoW 共识的确定性过程。
首先,对证明者使用中本聪式的选择过程意味着拥有最高效硬件的证明者将主导证明市场。为了避免证明者市场的垄断,以及证明者重复用电,像 Scroll 这样的项目正在寻找替代设计来选择证明者,这需要证明者将资产作为抵押品,这与以太坊验证者被要求抵押 32 ETH 的方式不同。 staking 模型的实施确保证明者在游戏中拥有皮肤,可以因破坏网络安全性和活跃性的行为而受到惩罚,例如未能为指定的一批交易计算有效性证明。重要的是,奖励和惩罚证明者的激励与在 ZK-rollup 上选择排序器的模型相平衡,以便网络利益相关者有足够的参与来履行这两项责任。
确定性地选择证明者生成证明而不是让所有证明者竞争生成证明的另一个好处是可以提高交易吞吐量和网络可扩展性。选择证明者意味着几个证明者可以并行地为不同批次的交易生成证明,而不是所有证明者都为同一批交易生成证明。然而,依赖于某种形式的 staking 和 slashing 的领导人选举系统的弱点之一是复杂性。与中本聪风格的 PoW 系统相比,PoS 系统依靠更复杂的制衡设计来保持参与者的诚实。例如,中本聪式的共识通常只需要参与者,即矿工,产生他们工作的证明来获得奖励。确定性 PoS 系统可能对参与者(通常称为验证者)提出更多要求,例如存入资产、委托资产、对交易和区块进行投票、提议区块以及监控其他验证者的行为。
大多数 zkEVM 可能会尝试通过选择确定性(基于分配)而不是概率性(基于竞争)的无需许可的证明者选择过程来尽量减少 rollup 的用电量。以太坊联合创始人 Vitalik Buterin 估计,根据 PoW 共识协议,计算 zkEVM 的有效性证明所需的电力不到用于开采 ETH 的 1%。 zkEVM 设计人员的目标是尽可能减少证明时间,同时让尽可能多的用户可以经济地访问证明生成。实现共识层兼容的 zkEVM 的要求之一是将证明生成时间减少到与以太坊第 1 层块时间(平均 13.5 秒)相当。
只有当 zkEVM 背后的规范变得清晰和标准化后,ZKP 硬件制造商才能真正成长和成熟。 最后,预测有效性证明计算行业的用电量仍然很困难,直到 rollups 采用并实施一种无需许可地选择证明者和排序器的模型。
zkEVM 竞争展望
在短期内,各种 zkEVM 正在竞争成为第一个在主网上启动。 然而,从长远来看,他们将在 EVM 兼容性层面(从语言到共识层面)和 VM 效率方面展开竞争。 一旦支持 zkEVM 的技术得到更广泛的测试、使用和理解,zkEVM 很可能还必须与 optimistic rollups 和其他 L2 可扩展性解决方案竞争以吸引用户采用。
先发优势和后发优势
zkSync、Polygon 和 Scroll 团队的 zkEVM 实现正在竞相率先在主网上推出。首先在主网上启动的优势归结为在吸引 dapp 开发人员方面领先于其他 zkEVM 实现。鉴于 rollup 之间的互操作性和 dapp 可组合性很困难,这可能是一个特别重要的收获。 Dapp 可组合性是指像积木一样在 dapp 之上构建 dapp 的能力,是以太坊去中心化金融 (DeFi) 生态系统的一个特别重要的特征,它使 dapp 开发人员更有可能被 L1 或 L2 所吸引,而这些 L1 或 L2 已经拥有最多的采用。
另一方面,由于 zkEVM 作为一项技术的新颖性,首批推出的 zkEVM 实现不太可能针对以太坊 dapp 开发人员进行最优化。正如本报告中提到的,在字节码层面和共识层面上与 EVM 完全兼容的 zkEVM 实现尚未准备好用于生产。可以更原生地支持以太坊 dapp 部署的 zkEVM 实现可能不会首先启动,而是具有更多 EVM 等效的后发优势。等效性水平越深,zkEVM 的开发人员入职体验就越容易。换句话说,从 2015 年以来一直是主要 dapp 的执行环境的 EVM 可以转移的工具越多,zkEVM dapp 开发人员的采用就越好。
通过 EVM 等效性吸引 dapp 开发人员是 zkEVM 实现之间第一个明显的竞争领域,虽然 dapp 开发人员采用的先发优势很强,但该技术还处于初期阶段,因此仍有进行重大迭代和改进的空间。来构建一个生产就绪的 zkEVM。最终,该游戏类似于从零开始的创新者困境 —— 成为第一个并尝试建立分销和社区更好,还是成为第二个并以更好的功能推翻先行者更好?
虚拟机设计
随着时间的推移,zkEVM 的另一个竞争和改进领域是效率。如前所述,EVM 并未针对 ZK 系统进行优化,构建通用的 ZK rollup 可以证明基于以太坊的智能合约和 dapps 需要大量开销。随着时间的推移,为 SNARK 或 STARK 证明优化的其他 VM 设计可能会降低 EVM 兼容性,这是 Starkware 团队强烈持有的观点。将 Solidity 编译为 Cairo 的 Warp 工具和其他类似工具都是社区驱动的举措,因为内部 StarkWare 团队专注于使 StarkNet 的 VM 尽可能高效,而不是简单地与 EVM 兼容。
在以太坊上,值得注意的是,EVM(以及关联的 Solidity)不能在不破坏 dapp 向后兼容性的情况下进行重大更改或升级。自 EVM 于 2015 年发布以来,开发人员对 EVM 及其高级编程语言 Solidity 进行了修补,以在较小的方面提高可用性和安全性。例如,在 2019 年以太坊伊斯坦布尔硬分叉升级期间,核心开发人员向 EVM 添加了一个名为 “CHAINID” 的新操作码,它将返回规范链的唯一标识号。这是为了通过允许节点检查 CHAINID 来防止升级的节点连接到未升级的节点,这是一种特别有用的升级,有助于防止 “重放攻击”,在这种攻击中,恶意行为者可以利用不良的节点发现。
以太坊核心开发人员一直坚称,以太坊的发展路线图中仍将对 EVM 进行进一步的更改。新的操作码和预编译可能会继续添加到 EVM 中,这表明现有的 zkEVM 实现必须灵活地适应 EVM 中的变化。然而,即使有了这些改进,Mina、Sui 和 Aptos 等替代第 1 层区块链仍然有机会尝试不同的 VM 设计和智能合约语言设计,从长远来看,这可能会使 EVM 过时。 zkEVM 实现主要侧重于在字节码和共识层面与 EVM 的深度兼容性,长期押注 EVM 在智能合约开发中的相关性和主导地位。
Optimistic rollups 过渡到 ZK rollups
最后,本报告中讨论的五个 zkEVM 实现击败了 Optimism 或 Arbitrum 等乐观汇总,这并不是一个必然的结论。在技术层面上,ZK rollups 比 optimistic rollups 更安全、更高效,并且有可能更具成本效益。但是,它们在证明为 EVM 设计的通用计算方面的灵活性并未经过测试和大规模广泛部署。一旦 zkEVM 推出并且其背后的技术更加成熟和稳健,以欺诈为动力的乐观汇总(例如 Optimism 和 Arbitrum)就有可能升级并过渡到生成有效性证明。此外,混合汇总和多证明者系统使用欺诈证明乐观地验证用户交易并间歇性地发布有效性证明,随着 zkEVM 背后的技术成熟,逐渐加快有效性证明的生成时间是一个活跃的研究领域,今天正在认真讨论由像 Vitalik Buterin 这样的以太坊核心开发人员和像 Optimism 的 Kelvin Fichter 这样的 L2 开发人员。
已经在以太坊上推出的 Rollup 具有预先存在的用户群的优势,理论上可以很容易地移植到 Rollup 的新升级版本,类似于 2022 年推出的 Arbitrum Nitro。这种可能性可能是团队为什么选择 zkEVM 的支持者(不包括 Scroll)对完全开源他们项目的代码犹豫不决,直到他们的主网启动,直到他们的 rollup 建立了一个相当大的用户群以与其他现有 rollup 的网络护城河竞争。随着时间的推移,optimistic rollups 到 ZK rollups 的可升级性表明 zkEVM 实现不仅相互竞争,而且在更广泛的以太坊 L2 生态系统的背景下。
结论
最近对 zkEVM 的兴趣激增引发了几个关于以太坊可扩展性路线图终局的问题。在最真实的意义上,zkEVM(与 EVM 具有共识层面兼容性的 ZK rollup)代表了对 EVM 主导地位的长期押注,并且通过关联,以太坊作为智能合约执行的主要平台。 zkEVM 也是对以太坊可扩展性路线图的长期押注,因为它以汇总和将交易执行抽象为 rollup 而不是与共识和数据可用性相结合。
尽管今年宣布了几个接近生产就绪的 zkEVM,但该技术仍处于起步阶段。实现与 EVM 具有共识层面兼容性的 zkEVM 仍然是一项研究计划,距离准备好投入生产可能还需要数年时间。然而,对于仅在一年前实现与 EVM 的字节码级兼容性的 zkEVM,情况也是如此。 Polygon、zkSync、StarkWare 和 Scroll 对 zkEVM 实现的快速发展继续推动计算机科学和数学的界限,并且超出了预期。在以太坊主网上推出 Polygon zkEVM 和 zkSync 2.0 将是使用真实用户和 dapp 活动测试 zkEVM 的重要起点。
两个生产就绪的 zkEVM 的可用性和可扩展性可能会不仅颠覆 zkEVM 协议的竞争格局,而且还会颠覆 optimistic rollups 和替代 L1 区块链的竞争格局。如果 zkEVM 成功,optimistic rollups 将不得不转换为 ZK rollup 设计以保持长期竞争力。替代的 L1 区块链还必须在其 VM 设计上进行创新,以与可扩展的 EVM 竞争。关于 ZKP 在以太坊上的就绪性和适用性还有很多待证明,而生产就绪 zkEVM 的推出应该被视为这项新技术竞争格局的开始。
zkEVM 的一些持续关注和发展领域包括它们的硬件设计和代币经济学。用于生成 ZKP 的硬件环境以及哪种 rollup 成功地去中心化证明生成仍有待观察。这在很大程度上将归结为各个团队的社区建设,以及这些汇总中的任何一个能够在多大程度上成功地引发 dapps,尤其是 DeFi dapps 向其网络的大规模迁移。这些发展领域需要时间和迭代才能正确。然而,鉴于 zkEVM 试图在以太坊上实现的先进性,以及它们对公共区块链未来的广泛潜在影响,这一进展将受到以太坊利益相关者、研究人员、密码学家和学者等的密切关注。
免责声明:作为区块链信息平台,本站所发布文章仅代表作者及嘉宾个人观点,与 Web3Caff 立场无关。文章内的信息仅供参考,均不构成任何投资建议及要约,并请您遵守所在国家或地区的相关法律法规。