2023年:在L2赛道爆发前夕,对各类zkEVM进行简要分析。

'2023年:在L2赛道爆发前夕,简要分析各类zkEVM。'

zkEVM:以太坊的中长期核心方案

引言

预计于2023年秋冬实施的以太坊重大升级——坎昆升级(Cancun-Deneb Upgrade),旨在增强以太坊网络的可扩展性、安全性和可用性,同时降低二层网络的Gas费用。该升级将直接推动太坊二层扩容(L2 Rollups)生态的发展,并有望引发整个L2领域的爆发。

L2扩容赛道中,零知识证明扩容方案(ZK Rollups)以其出色的数据压缩性能而备受关注,已成为以太坊的中长期核心方案。以太坊的创始人Vitalik于2022年根据各家ZK Rollups与以太坊虚拟机(EVM)的兼容性,将其分为四种类型,为zkEVM类型确立了基础标准。本文在Vitalik的启发下,对于赛道更新和技术发展进行详细解读,致力于用明确的逻辑和简洁的语言向技术小白阐明该话题。

什么是 EVM?

EVM(Ethereum Virtual Machine)以太坊虚拟机是第一个图灵完备的区块链虚拟机,也被称为“以太坊的代码运行环境”。通过EVM,智能合约可以在去中心化网络上实现自动化的功能。作为目前持续使用时间最长的区块链虚拟机,EVM是以太坊至关重要的基础设施。事实上,EVM的兼容性已成为衡量其他区块链的重要因素之一,因为EVM的兼容性不仅与智能合约执行环境和以太坊工具集有关,也代表着巨大的网络效应和成熟的生态。

然而,在EVM设计之初,并没有考虑到将来零知识证明(ZK)技术会成为以太坊扩容的核心方案。因此,构建对零知识证明友好的EVM(zkEVM)变得非常困难。

什么是zkEVM?

由于零知识证明和EVM兼容方面的困难,早期的ZK Rollups并不支持EVM。它们通常不具备执行智能合约的能力,或者只支持特定场景的虚拟机,例如仅适用于代币兑换和支付。为了解决这个问题,许多组织和研究人员致力于创建zkEVM,即为智能合约在EVM中的执行生成零知识证明的方案。

随着ZK Rollup扩容方案的稳步发展,各个zk扩容项目根据兼容性和性能之间的权衡,开创了不同的将EVM执行与零知识证明计算结合的方法。

不同类型的zkEVM

根据Vitalik在2022年的分类,将市面上的zk扩容项目分为四种类型,分别是Type1、Type2、Type3和Type4。接下来,我们将用清晰的逻辑和简明扼要的语言对不同类型的zkEVM、技术架构以及各自的优缺点进行梳理。

Type1 类 zkEVM —— 完全等效于以太坊

Type1 类zkEVM完全等同于以太坊,不需要更改以太坊的任何部分。它无需替代哈希、状态树、交易树、预编译合约以及任何其他共识逻辑。该类型的目标是与现有的应用程序完全兼容,开发者可以将应用程序顺利迁移到L2上运行。

优点: – Type1类是所有ZK Rollup中兼容性最高的方案,也是最为开发者友好的方案。开发者可以零修改地部署现有代码到L2上运行,因为其所有的共识逻辑和系统环境与以太坊完全等同。 – 与以太坊本身的扩展方向高度一致,通过在Type1类zkEVM上的探索,未来可以无缝地引入以太坊本身,实现以太坊L1的可扩展性。 – 能够无缝使用现有的海量以太坊基础设施,例如以太坊执行客户端等工具,满足现有的以太坊生态系统需求。 – 和现有以太坊一样,可以验证以太坊区块,包括所有交易执行、智能合约和账户逻辑。

缺点: – Type1类与以太坊融合零知识证明的问题相同,即生成证明所需时间较长。解决这个问题的主要方案是通过并行化证明的工程大规模优化,或通过硬件优化加速证明的生成。

主流项目: – 以太坊基金会PSE(Privacy and Scaling Explorations)团队 – Taiko:已更新至Alpha-4测试网,预计2024年年初上线主网。Taiko是第一个实现去中心化提议者的ZK Rollup项目。

Type2 类 zkEVM —— 完全兼容EVM以太坊虚拟机

Type2 类zkEVM力求与EVM完全兼容,但与以太坊并非完全等效。与以太坊自身的执行环境相比,Type2类主要对区块结构、状态树的数据结构、Gas费用的定价逻辑以及数据存储等方面进行了一些修改,以提供更快、更便宜的验证证明时间。

优点: – 通过对Gas费用的重新定价和删除对ZK不友好的以太坊堆栈,Type2类相较于Type1类具有更快的验证时间。 – Type2类可以与绝大部分现有的以太坊应用程序兼容,因此对于大多数开发者和用户而言,基本上没有兼容性的问题。 – 虽然无法直接使用以太坊执行客户端,但仍然可以支持现有的EVM调试工具和其他开发基础设施,因此仍然可以充分利用以太坊现有的生态。

缺点: – 改变执行环境虽然影响范围小,但仍潜在存在开发问题。例如,将以太坊常用的哈希函数(Keccak)替换为其他对ZK友好的哈希函数(如Poseidon),可能导致依赖于Keccak哈希的程序应用(涉及到历史数据)在迁移到Type2类后的不兼容问题。 – 对已经在以太坊上进行过Gas费用优化的合约甚至以太坊上的Gas费用优化工具,可能会带来问题。 – 虽然Type2类相对于Type1类进一步提高了验证者的效率,但相对于Type4类也存在验证时间较长的相对缺点。

主流项目: – Scroll:已上线Pre-Alpha测试网,预计2023年8月上线主网。目前属于Type3类zkEVM,但正在向Type2类过渡。 – Polygon zkEVM(Polygon团队的ZK Rollup方案):2023年3月上线主网Beta版本,目前也在向Type2类zkEVM过渡。

Type3 类 zkEVM —— 几乎兼容EVM以太坊虚拟机

Type3 类zkEVM更像是一个过渡,旨在提高兼容度,过渡为Type2/1类,或通过降低兼容度、提高ZK友好度,过渡为Type4类。

优点: – 相较于Type1和Type2类zkEVM,Type3类更加ZK友好,验证时间更短。 – 相比于Type4类zkEVM,Type3类可以兼容更多现有的以太坊应用程序。

缺点: – 相较于Type1和Type2类zkEVM,Type3类具有更高的不兼容性和更多元素的牺牲。因此,Type3类更像是一个过渡,大多数方案可能通过提升兼容度,过渡到Type2类zkEVM。 – 相较于Type4类zkEVM,Type3类依然存在较长的验证时间。

主流项目: – Scroll:通过提升以太坊兼容度,正在向Type2类zkEVM发展。 – Polygon zkEVM(Polygon团队的ZK Rollup方案):目前正在向Type2类zkEVM过渡。

Type4 类 zkEVM —— 兼容高级语言

Type4 类zkEVM实际上属于zkVM(零知识证明虚拟机)而非零知识证明以太坊虚拟机。此类型的zkEVM通过编程语言层面的兼容实现,开发者仍然可以使用以太坊常用的编程语言(如Solidity)编写智能合约。该类型项目通过编译器将编程语言转换为自定义的可读代码,并在其自定义环境中执行。

优点: – 验证时间非常快。 – 直接从高级语言编译可以大大降低成本。 – 提高了去中心化程度,降低了成为验证者的技术门槛。 – 此类zkEVM能够通过原生支持账户抽象,进一步实现EVM等效链的原生账户抽象功能。

缺点: – 许多现有的以太坊应用程序无法复制到此类zkVM中,或在复制过程中会出现问题。例如,该类项目中的合约地址可能与EVM中的地址不同;Type4类zkEVM不支持手写的EVM字节码;编译器不支持Solidity的某些功能。 – 对于以太坊开发者而言,将应用部署到此类项目上需要更复杂的调整。因此,相对于前几类zkEVM,该类项目对于开发者的友好度相对较低,可能影响生态发展和技术迭代速度。 – 不容易充分借力于以太坊现有的繁荣生态和网络效应。

主流项目: – zkSync Era:zkSync是Matter Labs团队构建的ZK Rollup方案,最初的版本不支持与EVM兼容的智能合约,但通过架构升级后实现了与高级语言的兼容。 – Starknet:Starkware团队构建的ZK Rollup方案,早期属于Type4类zkEVM,但目前有项目旨在使其实现与Type2.5-3类zkEVM类似的兼容程度。

综上所述,根据Vitalik的分类以及各项目的进展(截至2023年8月),可以用下图总结不同类型的zkEVM和各自的主流项目。

(各家主流ZK Rollup项目的分类)

(各家主流ZK Rollup项目对比)

Vitalik在文章最后总结道:“从个人角度来看,我希望通过zkEVM的改进以及以太坊本身的改进,使以太坊对于ZK-SNARK更加友好,最终实现所有方案都能成为Type1类。”在这样的未来,我们将有多个zkEVM实现,可以用于ZK Rollups,也可以用于验证以太坊链本身。以太坊不必为L1(第一层)使用制定单一的、规范化的zkEVM,不同的客户端可以选择不同的证明方式,继续受益于代码层面的冗余。

但实现这样的未来仍需要相当长的时间。同时,在以太坊扩容和基于以太坊的ZK Rollup的不同路径方面,我们也将看到大量的创新。

需要说明的是,尽管市面上的zkEVM方案使用的是Vitalik 2022年发布的分类,但还存在其他分类标准。无论如何分类,这些zkEVM类型并没有绝对的优劣之分。它们只是在兼容性和速度之间进行取舍:Type1类zkEVM与以太坊的兼容性最高但验证时间较慢;Type4类zkEVM与以太坊的兼容性较差但验证速度更快。

当然,zkEVM的兼容性和速度并不是部署应用时开发者唯一的考量因素。还有许多其他因素会影响他们的选择,例如:

  • L2交易排序的去中心化程度
  • 费用的支付方式和代币经济模型
  • 生成证明的规则和硬件标准
  • 自托管的机制
  • 数据可用性

但由于大多数通用ZK Rollup项目目前仍处于测试阶段,目前尚无法进行横向对比。

最后,无论zkEVM项目属于哪种类型,这并不是静态的。随着各个方案对zkEVM的探索以及以太坊本身的改进,可能所有方案最终都能达到Type1类zkEVM的效果。届时我们将有多个zkEVM实现,既可用于ZK Rollups,又可用于验证以太坊链本身。在未来,让我们期待在扩展以太坊和ZK Rollup不同路径上持续创新。

参考链接:ZK-EVM Explained by Vitalik