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