zkEVM:以太坊可扩展性的未来

  • galaxy
  • 发布于 2022-12-01 18:29
  • 阅读 21

该文章深入探讨了零知识以太坊虚拟机(zkEVMs),这是一种旨在提升以太坊可扩展性的技术。文章详细介绍了zkEVMs的工作原理、不同实现方式(zkSync, Polygon, Scroll),以及它们在EVM等效性上的差异,包括语言级别、字节码级别和共识级别。此外,还讨论了zkEVMs面临的挑战,如技术新颖性、去中心化和硬件要求,并展望了zkEVMs未来的竞争格局。

zkEVM:以太坊可扩展性的未来

介绍

零知识以太坊虚拟机(zkEVM)是一项雄心勃勃且具有变革意义的技术,可在短期和长期内提高以太坊的可扩展性。今年,三个主要的以太坊扩容项目——zkSync、Polygon 和 Scroll——都宣布了其 zkEVM 实现的重大进展,其中许多已于今年在早期 alpha 阶段启动,并作为其自身独立的 Layer-2 (L2) 区块链运行。随着时间的推移,zkEVM 有可能直接从以太坊的基础层运行。

作为背景,zkEVM 是一种虚拟机,可以执行与以太坊虚拟机 (EVM) 相同的高级编程语言或低级字节码,并使用零知识证明 (ZKP) 证明此代码,这是一种加密证明,可以验证数据,而无需泄露关于数据本身的任何信息,例如其属性或内容。ZKP 由计算机科学家 Goldwasser、Micali 和 Rackoff 在 1982 年首次提出(Silvio Micali 是 Algorand 区块链的创始人)。ZKP 经常与同态加密混淆,同态加密是密码学的另一个分支,允许对加密数据执行操作,而无需解密。同态加密方案由 Rivest、Adleman 和 Dertouzos 在 1978 年首次提出,并且一直是支持云计算和存储的关键技术之一。值得注意的是,同态加密也被用于一些公共区块链协议中,例如隐私币 Grin,以混淆交易金额。

在过去的 40 年里,计算机科学家发明了几种用于安全有效地生成 ZKP 的算法,其中许多算法属于两大类:知识的可扩展透明论证 (STARK) 或知识的简洁非交互式论证 (SNARK)。这些算法已被开发用于大量用例,包括核裁军、身份验证系统,以及最近通过公共区块链和加密货币的出现来实现区块链的可扩展性。具体在以太坊上,许多开发人员认为 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 的复杂性之前,首先在高层次上了解交易如何包含在以太坊的区块中非常重要。

区块生产

当用户向以太坊提交新的交易时,连接到网络的计算机(也称为节点)会将交易存储在名为 mempool 的本地数据结构中,该数据结构负责维护未确认交易的列表。然后,运营节点并质押 32 ETH 增量作为网络抵押品的验证者会随机选择,以将 mempool 中的交易批量处理到区块中。选择将新区块附加到以太坊区块链的验证者有时被称为“提议者”。一些提议者在构建区块时会依赖第三方区块构建器,而不是他们的本地 mempool,以从最大可提取价值 (MEV) 中获得额外的奖励。有关 MEV 的更多信息,请阅读此 Galaxy Research 报告。

区块按顺序组织,并通过父哈希(前一个区块的头哈希)链接在一起。每个区块都包含其父区块的前一个哈希,将区块链接在一起并形成区块链数据结构。下图显示了通过父哈希链接区块的方式:

Slide1

在 2022 年 9 月 15 日之前,以太坊依赖于工作量证明 (PoW) 共识机制,其中矿工而不是验证者负责区块生产,并且矿工需要消耗大量电力来处理用户交易,而不是花费大量资金。有关 PoS 对以太坊影响的完整分析,请阅读 Galaxy 的合并研究摘要此处

在 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”。为了帮助读者概念化操作码,以下是以太坊黄皮书中定义的简单操作码的快照:

Slide6

多年来,以太坊开发人员已向 EVM 添加了新的操作码。他们还添加了预编译,使用户能够在网络上执行更高级的操作,例如哈希函数和标量乘法。作为同类中的第一个运行时环境,EVM 已被广泛采用作为通用公共区块链上智能合约部署的标准。然而,作为同类中的第一项技术,EVM 确实存在设计限制,其中与本报告最相关的是 EVM 与 ZKP 的不兼容性。

Rollup 一直向下

为了提高以太坊的可扩展性,有几个 L2 网络将交易执行从基础层抽象到 Rollup。Rollup 压缩交易数据,使得将一批交易提交到基础层所需的区块空间量远低于通过链上 mempool 单独确认所有这些交易。Rollup 不是由验证者或矿工运营,而是由称为“排序器”的网络运营商运营。排序器负责验证 Rollup 的状态转换。它们是将用户交易捆绑到 Rollup 批处理中,然后将此批处理的证明提交到以太坊的基础层的实体。以下是说明排序器在 Rollup 中的作用的图表:

Slide5

有关以太坊 L2 生态系统的完整概述,请阅读此 Galaxy 研究报告

Rollup 与以太坊上其他的扩容解决方案(如 Plasma 和状态通道)不同,在以太坊的历史进程中,核心开发人员已经研究并从以太坊的可扩展性路线图中删除。Rollup 主要有两种类型:乐观 Rollup 和零知识 (ZK) Rollup。乐观 Rollup 依赖于欺诈证明,这意味着 L2 网络状态的更改会发布到以太坊,而没有直接证明其有效性。只要至少有一个诚实的参与者在监视乐观 Rollup 的状态转换,就可以检测并取消无效的状态转换。在 Arbitrum 和 Optimism 的情况下,可以提交欺诈证明的“质询窗口”持续一周。一旦质询窗口结束,乐观 Rollup 的状态转换就被认为是最终且有效的。

另一方面,ZK Rollup 依赖于 ZKP,它会在每次在 L2 上处理一批交易时生成发布到以太坊的有效性证明。为所有交易批次自动生成有效性证明会增加 ZK Rollup 的安全保证。这也意味着可以从 ZK Rollup 中提取资金,每次将新的有效性证明提交到以太坊时,而对于乐观 Rollup,通常需要等待大约 7 天才能进行争议和欺诈证明生成。ZK Rollup 还提供比乐观 Rollup 更好的数据压缩。下表总结了乐观 Rollup 和 ZK Rollup 之间的高级差异:

Slide2

乐观 Rollup 优于 ZK Rollup 的主要优势是乐观 Rollup 的虚拟机与 EVM 几乎相同。目前在以太坊上运行的乐观 Rollup 实现(例如 Optimism 和 Arbitrum)模拟与以太坊相同的交易执行环境,分别称为 OVM 和 AVM。大多数 ZK Rollup 都是特定于应用程序的,这意味着它们不支持所有类型的基于以太坊的交易和 dapps。Loopring、StarkEx Rollup 和 zkSync 1.0 是特定于应用程序的 ZK Rollup 的示例,它们支持特定类型的付款、代币交换和/或 NFT 铸造。

某些 ZK Rollup(例如 StarkNet)是通用的,这意味着它们支持所有类型的交易和 dapps。然而,这些 ZK Rollup 要求 dapp 开发人员学习如何在针对生成 ZKP 进行了优化的新自定义执行环境中执行其智能合约代码,而不是 EVM 兼容性。考虑到现有去中心化应用程序和用户难以加入新的执行环境,这给 ZK Rollup 在以太坊上的采用带来了挑战。为了克服这个问题,诸如 Polygon Hermez、zkSync 和 Scroll 等 ZK Rollup 项目正在开发一种与 EVM 兼容的 ZK Rollup,EVM 是以太坊上所有智能合约代码的本机执行环境。

STARK、SNARK、意志和有效性

实际上,Rollup 的区别不仅在于链上发布的证明类型(在乐观 Rollup 的情况下为欺诈证明,在 ZK Rollup 的情况下为有效性证明),还在于 Rollup 的数据可用性策略和证明算法。

正如本报告前面提到的,有效性证明分为两大类,称为 SNARK 和 STARK。

  • SNARK 依赖于椭圆曲线密码学,这是一种最常用在比特币和以太坊中的数据加密技术。SNARK 通常还依赖于可信设置,这意味着该算法需要受信任的实体预先生成一段数据。可信设置仪式不是重复事件,而是一次性过程,其中一个人或一组人生成核心数据。此数据称为公共参考字符串 (CRS),它是一个值,然后用于 zk-SNARK 算法中以生成可信的证明。如果生成 CRS 所需的输入受到威胁,则可能导致错误的证明生成。因此,重要的是,生成 CRS/SRS 所需的输入应由所有仪式参与者销毁,或在仪式完成后无法检索。SNARK 算法的一些示例包括 Sonic、Plonk、Redshift 和 Marlin。

  • 另一方面,STARK 不依赖于椭圆曲线或可信设置。STARKS 依赖于哈希函数,一些开发人员认为这对于抗量子密码学是有利的。然而,STARK 更复杂,需要更多的计算资源才能运行。它们也在 2018 年晚于 SNARK 推出,而 SNARK 自 2012 年以来就已存在。由于这些原因,SNARK 比 STARK 作为证明算法使用得更广泛。STARK 算法的一些示例包括 Fractal、SuperSonic、Fri-STARK 和 genSTARK。

除了生成有效性证明的不同方法外,ZK Rollup 的数据可用性策略也可能不同,这意味着它们提交到链上的交易批次的哪些组成部分最终会不同。Rollup(包括乐观 Rollup 和 ZK Rollup)通常会在每次处理一批交易时将三个数据提交到以太坊主网。首先,Rollup 的验证者会将新网络状态的根哈希提交给以太坊。(状态是指 L2 上交易和帐户余额的更新记录。)状态记录在 Merkle 树数据结构中,如下所示:

Slide7

根哈希是整个 Merkle 树的加密承诺,有时也称为状态承诺。并非所有 ZK Rollup 都需要将根哈希提交给以太坊,但通常这样做是为了使用发布在以太坊上的数据轻松重建和验证在 Rollup 上执行的交易。

除了高级根哈希,确认 Layer 2 区块链的新状态外,还在以太坊上记录了加密证明。对于乐观 Rollup,此证明可以是 ZKP 或欺诈证明。它可以通过 STARK 或 SNARK 算法生成。最后,除了这两个数据外,ZK Rollup 还会将批处理的交易的压缩版本(也称为状态增量)发布到以太坊。状态增量是一种经济高效的将大量交易数据提交到以太坊的方式,这是 ZK Rollup 独有的。乐观 Rollup 不使用状态增量,而是使用其他数据压缩技术来批量处理交易并将其提交到链上。

(顺便说一句,某些 ZK Rollup 项目(例如 Scroll 团队)实际上并不依赖于将状态增量发布到以太坊所带来的额外数据压缩收益。在 Scroll 开发人员看来,即将发布的代码更改(例如以太坊改进提案 4844danksharding)将显着降低将交易数据提交到以太坊的成本,因此状态增量与其他数据压缩技巧相比的效率提升将微不足道。)

使用来自 Merkle 树最低级别的数据(即叶子)并将其与来自 Merkle 树最高级别(即根)的根哈希相结合,允许任何人重建和验证链上提交的交易批次的内容。大多数 Rollup 的一个定义特征是能够使用提交到以太坊链上的数据来重新创建在 Layer-2 网络上执行的交易。但是,某些 Rollup 避免将状态增量或其他压缩交易数据提交给以太坊,而是将数据发布到其他地方以降低运营成本并提高网络可扩展性。某些开发人员会认为,避免将交易数据提交给以太坊并因此破坏交易重建保证的 Layer-2 网络不应被归类为 Rollup。

Rollup 处理状态增量的方式决定了网络是否可以归类为 validium 或 volition。

  • Validium 最好理解为仅将有效性证明和根哈希提交到链上,同时将状态增量存储在链下单独网络上的 Rollup。从理论上讲,这会将 Rollup 的交易吞吐量提高到 9,000 TPS,因为 Rollup 不再依赖以太坊来获取数据可用性,并且受到网络区块空间的限制。Validium 的缺点是安全性。用于发布链下数据的单独网络不继承与以太坊相同的安全保证。

  • 另一方面,Volition 将发布链下或链上状态增量的决定权交给用户。它们最初由以太坊扩容初创公司 Starkware 开创。这是一种新颖的方式,让用户可以决定他们的交易是否需要更高的安全性,这可能需要更高的成本,方法是直接在以太坊链上或在链下网络(例如 Starkware 受信任的数据可用性委员会 (DAC))上进行确认。

EVM 等效的 4 个主要级别

鉴于上述用于理解以太坊上的交易执行、EVM 和 ZK Rollup 的框架,我们现在可以讨论 zkEVM。zkEVM 是一种 ZK Rollup,它模拟与主网以太坊相同的交易执行环境。zkEVM 的实现方式因其证明算法以及数据可用性策略而异。zkEVM 的 EVM 等效级别也各不相同。EVM 等效有四个主要级别。以下是不同级别的高级摘要:

Slide4

语言级别等效

为了实现语言级别的 EVM 等效,zkEVM 必须能够理解和原生编译 EVM 友好的语言。换句话说,这些类型的 zkEVM 可以将 EVM 友好的编程语言(例如 Solidity 或 Yul)转换为针对生成 ZKP 优化的自定义语言。这被认为是 ZK Rollup 中实现 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。稍后将在本报告中更详细地讨论这两种 zkEVM。在其当前设计中,这两种实现仅与 EVM 字节码部分兼容。但是,这些实现正在努力随着时间的推移实现完全兼容。

共识级别等效

EVM 等效的第四个也是最后一个级别是在共识级别。这是 ZK Rollup 可以实现的与 EVM 的最高的本机兼容性。它有时被称为“嵌入式 Rollup”,尽管并非所有嵌入式 Rollup 都需要基于 ZK,但可以是乐观 Rollup。其思想是,zkEVM 生成的加密证明不需要以任何身份在以太坊上重新执行。这些证明本身可用于验证在以太坊主网上生成的区块。从某种意义上说,实现共识级别兼容性的 zkEVM 是 zkEVM 最真实的形式。

对于一些开发人员来说,可以实现共识级别兼容性的 ZK Rollup 是唯一应该被称为 zkEVM 的 ZK Rollup 类型,而具有语言和字节码兼容性的其他 ZK Rollup 应分别被视为 EVM 兼容和 EVM 等效,但不是 zkEVM。关于 zkEVM 的精确定义及其不同级别的 EVM 等效性,以太坊开发人员之间存在大量争议。事实上,EVM 等效是一个频谱,上面描述的每个级别都不是 rigid 类别。zkEVM 开发的早期性质意味着为语言级别兼容性构建的项目也可能提供某种类型的字节码级别兼容性,而字节码级别兼容的 zkEVM 最终可能发展成为具有一定共识级别等效性的混合 Rollup。

在本报告的下一部分中,我们将更深入地了解目前正在以太坊上生产的五个 zkEVM 实现。

以太坊上的 zkEVM 项目概览

目前,没有接近生产就绪的 zkEVM 实现可以实现共识级别兼容性。这是一个持续的研究和开发领域,以太坊核心开发人员将其描述为“ 多年工程工作”。但是,有些实现可以在语言和字节码级别上实现等效性,这仍然是对以太坊上当前的 ZK Rollup Layer 2 生态系统(主要以应用程序为中心)的改进。构建 ZK Rollup 以执行通用智能合约和用户交易,而不是以应用程序为中心的交易,这是一项艰巨的任务,到目前为止,只有少数项目已成功在主网上启动。

以下是以太坊上五个 zkEVM 项目的高级概述:

Slide3Slide8

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 依赖于一种名为 UltraPLONK的基于 SNARK 的证明算法。它还依赖于一个开源编译器基础架构,称为 LLVM,用于将 Solidity 和其他类型的编程语言编译为 zkEVM 字节码。该项目于 2022 年 10 月以“baby alpha”阶段启动,预计到 2022 年底将完全对外部用户开放,尽管有关 zkSync 2.0 上证明生成的完整细节仍未由 Matter Labs 团队披露。(由于 L2 网络之间的激烈竞争,以及由于 Rollup 技术的起步阶段为错误创造了更大的技术风险,大多数 Rollup 项目都以高度保密的方式运行,并且不遵循开源的开发过程。)一旦启动,zkSync 2.0 将成为一个 volition,使用户可以选择将交易中的状态增量从链下发布到称为 zkPorter的单独协议,而不是链上发布到以太坊。从理论上讲,该策略会将 zkSync 2.0 的每秒交易吞吐量从 2,000 TPS 提高到超过 20,000 TPS。

StarkNet

与 zkSync 类似,StarkNet 是一个由 Starkware 团队构建的通用的 ZK Rollup,已经在以太坊上运行。Starknet 的交易执行环境被称为 StarkNet OS,其原生智能合约编程语言被称为 Cairo。与其他 ZK Rollup 相比,Starknet 是功能最全的之一。StarkNet 为用户提供了一个可选的离链数据解决方案(使 Rollup 成为 volition),以实现比非 volition 类型 Rollup 低得多的交易费用。StarkNet OS 依赖于基于 STARK 的证明算法。与 zkSync 2.0类似,StarkNet OS 上证明生成的流程不是开源的。与其竞争对手 zkSync 类似,随着时间的推移,开源有关证明生成过程的详细信息,以便任何人都能够连接到网络、运行专用硬件并获得生成证明的奖励,这是 Rollup 长期开发路线图的一部分。

StarkNet 本身不支持与 EVM 的语言级别兼容性。但是,Nethermind 团队(以太坊执行层软件客户端)正在积极构建一个名为 Warp 的 Solidity 到 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。一些值得注意的 DeFi 应用程序使用 StarkEx 来提高以太坊上的可扩展性,包括 soRare、Immutable 和 DeversiFi。

Polygon zkEVM

由 Polygon 团队(以前称为 Matic Network)构建的 zkEVM 实现实现了与 EVM 的字节码级别兼容性。Polygon 的 zkEVM 预计将于 2023 年初的某个时候在以太坊上启动,并且最近已开源以供公众审查。(重要的是要注意,虽然该代码可以公开查看,但由于它不是根据开源代码许可证发布的,因此不能使用、修改或共享。)Polygon 的 zkEVM 实现依赖于基于 SNARK 和 STARK 的证明。具体来说,zk-SNARK 用于证明 zk-STARK 的正确性。这样做的好处是利用了与 zk-STARK 相关的快速证明时间,以及生成 zk-SNARK 所需的相对较少的计算资源。关于数据可用性,Polygon 的 zkEVM 实现不会立即支持链下数据解决方案。但是,Polygon 正在积极努力通过开发 Polygon Avail来使其 zkEVM 实现成为一种 volition。

Polygon 成立于 2017 年,是一家主要专注于以太坊不同扩容解决方案的公司。它于 2020 年 6 月推出了基于权益证明的以太坊侧链,称为 Polygon PoS。从那时起,Polygon 的产品套件已显着增长和多样化。除了该公司的 zkEVM 实现之外,它还在积极开发两个其他 ZK Rollup 实现,Polygon Miden 和 Polygon Zero,以及一个结合了乐观 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 专注于根据嵌入式 Rollup 模型实现与 EVM 的共识级别兼容性。

PSE 研究中使用的证明算法是一种 zk-SNARK,称为 Halo2,它由 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 rollups),因为有效性证明和欺诈证明的生成都严重依赖于中心化排序器。如上所述,排序器是 L2 的利益相关者,负责批量处理用户交易并将这些批次的证明提交到以太坊的 L1。

目前在以太坊上运行的每个 rollup 都由一个中心化排序器运营,并依赖于由单个实体管理的可升级智能合约。rollup 今天呈现中心化性质的主要原因之一是由于技术的初创性,以及在代码中出现意外错误时需要进行快速修复。此外,特别是 zkEVM 背后的技术正在不断变化,使得有信心地激励用户在自己的设备上运行这项新兴技术变得困难。对 rollup 的排序器进行去中心化通常意味着启动一个 token,并详细制定一个共识协议,以便以无需许可的方式组织多个排序器和证明者。虽然启动 token 和创建共识协议的挑战对于公共区块链来说并不新鲜,但负责任地启动它们需要时间和大量的深思熟虑。StarkWare 宣布的 token 计划因其设计和初始的供应分配而引起争议,而 Polygon 预计将在其 zkEVM 推出后修改其现有 MATIC token 的 token 经济学。zkSync 预计也将在未来几个月内为其 rollup 推出一个专门的 token,而 Scroll 推出 token 的计划仍不清楚。

在 zkEVM 的背景下,排序器去中心化的一个重要的第一步是开源项目软件,在撰写本文时,很少有项目这样做。可以依赖大量现有用户社区来支持其 rollup 的 zkEVM 实现,可能在 zkEVM 运营的去中心化方面具有优势。

zkEVM 硬件挑战

虽然 zkEVM 证明的验证很简单,但生成它们在计算上非常密集,部分原因是 ZKP 背后的数学依赖于线性的计算序列。这使得在一台机器上并行生成证明的工作变得困难。最近在这方面取得了一些进展,即使用了递归证明。递归证明是一种用于减少证明生成延迟的技术。它指的是重复生成一个证明的证明,以进一步压缩交易,从而使得在 ZK-rollup 上并行处理小批量交易成为可能。这是 StarkNet VM 和 Polygon 的 zkEVM 用于生成有效性证明的技术。

由于生成 ZKP 所需计算的密集性,zkEVM 可能不得不依赖于高级硬件,如图形处理器 (GPU)、现场可编程门阵列 (FPGA),甚至专用集成电路 (ASIC)。运行证明生成所需计算的专用硬件的需求,与在工作量证明 (PoW) 共识协议下高效挖掘区块的专用硬件的需求非常相似。这两种硬件行业增长的区别在于,证明者的选择过程与矿工的选择过程不同。

证明者是被赋予生成有效性证明的网络利益相关者。另一方面,排序器负责将用户交易排序和打包成一个批次,并将数据提交到 Layer-1 区块链。从技术上讲,排序器和证明者的责任可以合并为一个角色。然而,由于证明生成和交易排序都需要高度专业的技能才能做得好,因此分离这些责任可以防止 rollup 功能中不必要的中心化。

如果证明者和排序器的选择过程与矿工的选择过程类似,后者依赖于实现 Nakamoto 共识并奖励拥有最高效硬件的参与者,那么 ZKP “挖矿” 行业有可能沿着与比特币 PoW 挖矿行业相同的轨迹发展。然而,有几个原因表明,特别是证明者的选择过程更有可能是一个确定性的过程,其设计类似于权益证明 (PoS),而不是 Nakamoto 式的 PoW 共识。

首先,对证明者使用 Nakamoto 式的选择过程意味着拥有最高效硬件的证明者将主导证明市场。为了避免证明者市场的垄断,以及证明者重复使用电力,像 Scroll 这样的项目正在研究证明者选择的替代设计,该设计要求证明者抵押资产作为抵押品,这与以太坊验证者需要抵押 32 ETH 的余额非常相似。权益抵押模型的实施确保了证明者在游戏中拥有利益,这些利益可能会因破坏网络安全和活跃性的行为而受到惩罚,例如未能计算分配的交易批次的有效性证明。重要的是,奖励和惩罚证明者的激励措施与 ZK-rollup 上选择排序器的模型相平衡,以便网络利益相关者有足够的参与度来履行这两项职责。

确定性地选举证明者来生成证明,而不是让所有证明者竞争生成证明的另一个好处是,有可能提高交易吞吐量和网络可扩展性。选举证明者意味着几个人可以并行地为不同的交易批次生成证明,而不是所有证明者为相同的交易批次生成证明。然而,依赖于某种形式的权益抵押和削减进行领导者选举的系统的弱点之一是复杂性。与 Nakamoto 式的 PoW 系统相比,PoS 系统依赖于更复杂的制衡设计来保持参与者的诚实。例如,Nakamoto 式的共识通常只需要参与者,即矿工,生成其工作证明即可获得奖励。确定性的 PoS 系统可能需要参与者(通常称为验证者)做更多的事情,例如存入资产、委托资产、对交易和区块进行投票、提议区块以及监控其他验证者的行为。

大多数 zkEVM 可能会选择一种无需许可的、确定性的(基于分配)而不是概率性的(基于竞争)的证明者选择过程,从而尽量减少其 rollup 的电力使用。以太坊联合创始人 Vitalik Buterin 估计,计算 zkEVM 的有效性证明所需的电力将不到在 PoW 共识协议下挖掘以太币所用电力的 1%。zkEVM 设计者的目标是尽可能缩短证明时间,同时保持尽可能多的用户在经济上可以访问证明生成。实现与共识级别兼容的 zkEVM 的要求之一是将证明生成时间缩短到与以太坊 Layer 1 区块时间(平均 13.5 秒)相当。

只有当 zkEVM 背后的规范变得清晰和标准化时,ZKP 硬件制造商才能真正地发展和成熟。最后,在 rollup 采用并实施一种无需许可地选择证明者和排序器的模型之前,预测有效性证明计算行业的电力使用情况仍然很困难。

zkEVM 竞争展望

在短期内,zkEVM 正在竞争成为第一个在主网上启动的项目。然而,从长远来看,它们将在 EVM 兼容性(从语言到共识级别)和 VM 效率方面展开竞争。一旦用于启用 zkEVM 的技术得到更广泛的测试、使用和理解,那么 zkEVM 也必须与 optimistic rollups 和其他 L2 可扩展性解决方案竞争,以争取用户采用。

先发优势和后发优势

zkSync、Polygon 和 Scroll 团队的 zkEVM 实现正在竞相成为第一个在主网上启动的项目。首先在主网上启动的优势在于,在吸引 dapp 开发者方面领先于其他 zkEVM 实现。考虑到 rollup 之间的互操作性和 dapp 可组合性很困难,这种领先优势可能尤其重要。Dapp 可组合性指的是像积木一样在 dapp 之上构建 dapp 的能力,并且是以太坊去中心化金融 (DeFi) 生态系统的一个特别重要的特性,这使得 dapp 开发者更有可能倾向于已经拥有最多采用量的 L1 或 L2。

另一方面,由于 zkEVM 作为一项技术的新颖性,首批推出的 zkEVM 实现不太可能针对以太坊 dapp 开发者进行优化。正如本报告中提到的,在字节码级别和共识级别上与 EVM 完全兼容的 zkEVM 实现尚未准备好用于生产。能够更本地地支持以太坊 dapp 部署的 zkEVM 实现可能不会首先启动,而是具有更具 EVM 等效性的后发优势。等效级别越深,zkEVM 的开发者入门体验就越容易。换句话说,可以从自 2015 年以来一直是主要 dapp 执行环境的 EVM 转移的工具越多,在 zkEVM dapp 开发者采用方面就越好。

通过 EVM 等效性吸引 dapp 开发者是 zkEVM 实现之间竞争的第一个明显领域,虽然 dapp 开发者采用的先发优势很强,但这项技术还处于起步阶段,因此在构建生产就绪的 zkEVM 时,仍有进行重大迭代和改进的空间。最终,这场游戏类似于从头开始的创新者的困境 —— 是首先尝试建立分销和社区更好,还是通过更好的功能推翻先发者更好?

VM 设计

随着时间的推移,zkEVM 的另一个竞争和改进领域是效率。如前所述,EVM 没有针对 ZK 系统进行优化,并且构建可以证明基于以太坊的智能合约和 dapp 的通用 ZK rollup 需要大量的开销。有可能针对 SNARK 或 STARK 证明优化的其他 VM 设计会使 EVM 兼容性随着时间的推移变得不那么理想,Starkware 团队强烈坚持这一观点。Warp 工具(将 Solidity 编译为 Cairo)和其他类似的工具是由社区驱动的倡议,因为 StarkWare 内部团队专注于尽可能提高 StarkNet VM 的效率,而不是简单地实现 EVM 兼容。

在以太坊上,值得注意的是,如果不破坏向后 dapp 兼容性,就无法显着更改或升级 EVM(以及相关的 Solidity)。自 EVM 于 2015 年发布以来,开发者一直在对 EVM 及其高级编程语言 Solidity 进行修改,以在较小的方面提高可用性和安全性。例如,在 2019 年以太坊的伊斯坦布尔硬分叉升级期间,核心开发者向 EVM 添加了一个名为“CHAINID”的新 opcode,它将返回规范链的唯一标识号。这旨在通过允许节点检查 CHAINID 来防止升级后的节点连接到未升级的节点,这是一项特别有用的升级,有助于防止“重放攻击”,在这种攻击中,恶意行为者可以利用糟糕的节点发现。

以太坊核心开发者一直坚称,对 EVM 的进一步更改仍将在以太坊的开发路线图中进行。新的 opcode 和预编译可能会继续添加到 EVM 中,这表明现有的 zkEVM 实现必须灵活地适应 EVM 中的变化。然而,即使有了这些改进,Mina、Sui 和 Aptos 等替代 Layer 1 区块链仍有机会尝试不同的 VM 设计和智能合约语言设计,从长远来看,这可能会使 EVM 过时。主要专注于在字节码和共识级别上与 EVM 深度兼容的 zkEVM 实现正在长期押注 EVM 在智能合约开发方面的相关性和主导地位。

Optimistic rollups 过渡到 ZK rollups

最后,本报告中讨论的五种 zkEVM 实现击败 Optimism 或 Arbitrum 等 optimistic rollups 也不是必然的结论。从技术层面来看,ZK rollups 比 optimistic rollups 更安全、更高效,并且有可能更具成本效益。然而,它们在证明为 EVM 设计的一般计算方面的灵活性尚未经过测试和大规模部署。一旦 zkEVM 推出,并且它们背后的技术更加成熟和稳健,那么像 Optimism 和 Arbitrum 这样的欺诈驱动 optimistic rollups 可能会升级并过渡到生成有效性证明。此外,混合 rollup 和多证明者系统以乐观的方式使用欺诈证明来验证用户交易,并间歇性地发布有效性证明,随着 zkEVM 背后的技术成熟,逐渐加快有效性证明生成时间,这是一个活跃的研究领域,正在被以太坊核心开发者如 Vitalik Buterin 和 L2 开发者如 Optimism 的 Kelvin Fichter 等认真讨论。

已经在以太坊上推出的 Rollup 具有预先存在的用户群的优势,理论上可以很容易地将其移植到 rollup 的新升级版本中,类似于 2022 年推出的 Arbitrum Nitro。这种可能性可能是 zkEVM 背后的团队(不包括 Scroll)不愿完全开源其项目代码的原因之一,直到他们的主网启动以及他们的 rollup 建立起相当大的用户群,以与其他预先存在的 rollup 的网络护城河竞争。乐观 rollup 随着时间的推移升级到 ZK rollup 的能力表明,zkEVM 实现不仅在彼此之间竞争,而且在更广泛的以太坊 L2 生态系统的背景下竞争。

结论

最近对 zkEVM 兴趣的爆发引发了关于以太坊可扩展性路线图最终目标的几个问题。从最真实的意义上讲,zkEVM(与 EVM 具有共识级别兼容性的 ZK rollup)代表了对 EVM 的长期押注,并且通过关联,以太坊作为智能合约执行的主要平台。zkEVM 也是对以太坊可扩展性路线图的长期押注,因为它以 rollup 为中心,并将交易执行抽象到 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 的一些持续关注和发展的领域包括其硬件设计和 token 经济学。生成 ZKP 的硬件格局以及哪个 rollup 成功地去中心化证明生成,仍有待观察。这在很大程度上取决于各个团队的社区建设,以及其中任何一个 rollup 能够在多大程度上成功地引发 dapp(尤其是 DeFi dapp)大规模迁移到其网络上。这些发展领域需要时间和迭代才能做好。然而,考虑到 zkEVM 正试图在以太坊上完成的先进性质,以及它们对公共区块链未来可能产生的广泛影响,以太坊利益相关者、研究人员、密码学家和学者将密切关注这一进展。

  • 原文链接: galaxy.com/insights/rese...
  • 登链社区 AI 助手,为大家转译优秀英文文章,如有翻译不通的地方,还请包涵~
点赞 0
收藏 0
分享
本文参与登链社区写作激励计划 ,好文好收益,欢迎正在阅读的你也加入。

0 条评论

请先 登录 后评论
galaxy
galaxy
江湖只有他的大名,没有他的介绍。