在坎昆升级前夕,让我们一起回顾一下以太坊zkEVM的发展历程。

在坎昆升级前夕,回顾以太坊zkEVM的发展历程。

坎昆升级:以太坊重大升级的影响与前景

作者:RJ 来源:作者推特@0xRJ_eth

引言

坎昆升级(Cancun-Deneb Upgrade)是以太坊的一项重大升级计划,预计于2023年秋冬实施。该升级的核心目标是增强以太坊网络的可扩展性、安全性和可用性,并极大程度降低二层网络的Gas费。若该升级成功实施,将直接受益太坊二层扩容(L2 Rollups)生态,甚至也有可能推动整个 L2 赛道的爆发。

在L2扩容赛道中,具有极佳数据压缩性能的零知识证明扩容方案(ZK Rollups)被认为是以太坊中长期的核心方案。根据以太坊创始人Vitalik在2022年所提出的分类标准,该方案被分为四种不同类型,其中zkEVM是一种基于EVM(以太坊虚拟机)的零知识证明方案。这篇文章受到Vitalik开创性分类标准的启发,旨在以清晰的逻辑和简洁的语言,以Vitalik的见解为基础,提供更新赛道的详细解释。

什么是EVM?

EVM(以太坊虚拟机)是第一个图灵完备的区块链虚拟机,可理解为以太坊上的代码运行环境。EVM专门用于执行部署在以太坊网络上的智能合约,使其能够在去中心化网络上实现自动化的功能。

作为最早发布、最经得起考验的区块链虚拟机,EVM是以太坊非常重要的基础设施。在评判其他区块链项目时,EVM的兼容性已成为一个重要的考量因素,因为EVM的兼容性不仅影响智能合约执行环境和可用的以太坊工具集,更代表了巨大的网络效应和成熟复杂的生态。

然而,EVM在设计之初并未考虑到零知识证明技术的应用,因此构建零知识证明友好的EVM(zkEVM)变得非常困难。

什么是zkEVM?

由于零知识证明和以太坊虚拟机的兼容性难题,早期的ZK Rollup并不支持EVM。这些项目普遍缺乏执行智能合约的能力,因此在特定场景下受到限制,例如代币兑换和支付。

为了解决这个问题,许多组织和研究人员专注于创建zkEVM,即可以为智能合约在EVM中的执行过程和结果生成零知识证明的方案。

随着ZK Rollup扩容方案的不断发展和技术进步,各个zk扩容项目在兼容性和性能方面进行权衡和取舍,创造出了将EVM执行和零知识证明计算结合的不同方法。

在2022年,Vitalik曾在博客中详细介绍了不同类型的zkEVM,并对市面上的zk扩容项目进行了分类和对比。

类型 特点
Type1 类 完全等效于以太坊
Type2 类 完全兼容EVM以太坊虚拟机
Type3 类 几乎兼容EVM以太坊虚拟机
Type4 类 兼容高级语言

表格:不同类型的zkEVM

接下来,让我们以简明的语言和清晰的逻辑对zkEVM的类型、技术架构以及各自的优缺点进行梳理。

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

架构:

Type1 类zkEVM与以太坊完全等同,无需改变以太坊系统环境的任何部分,无需取代哈希、状态树、交易树、预编译合约和共识逻辑。其目标是与现有应用程序完全兼容,开发者可以无需修改即可将应用程序部署到L2中运行。

优点:

  1. 兼容性最高的方案,最为开发者友好,允许开发者零摩擦地部署现有代码到L2上运行。
  2. 与以太坊本身的探索扩容方向高度一致,将以太坊L1本身更具可扩展性。
  3. 可以无缝使用现有的以太坊基础设施,享受其巨大的网络效应和成熟复杂的生态。

缺点:

  1. 证明生成所需时间较长,目前行业中的主要解决方案是通过大规模并行化证明或硬件优化来加速。

主流项目:

  • 以太坊基金会PSE(Privacy and Scaling Explorations)团队
  • Taiko项目

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

架构:

Type2 类zkEVM力求完全兼容EVM以太坊虚拟机,但不等效于以太坊。相较于以太坊自身的运行环境,此类型主要对区块结构、状态树的数据结构、Gas费的定价逻辑和数据存储等进行了一些修改,以实现更快、更便宜的证明生成。

优点:

  1. 通过重新定价Gas费和删除不友好的EVM堆栈,提供较快的验证时间。
  2. 能够与绝大部分现有的以太坊应用程序兼容,大多数开发者和用户感受到的摩擦较小。
  3. 仍可使用EVM调试工具和其他开发基础设施,依然能够借力以太坊繁荣生态。

缺点:

  1. 对Gas费定价规则的更改可能带来一些问题,对已经在以太坊上进行过优化的合约和Gas费优化工具可能影响较大。

主流项目:

  • Scroll项目
  • Polygon zkEVM

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

架构:

Type3 类zkEVM更像是一个过渡类型,通过提高兼容性或降低兼容性以提高zk友好度,逐渐过渡为Type2或Type4 类型。

优点:

  1. 较高的zk友好度,验证时间更短。
  2. 相较于Type4 类zkEVM,可以兼容更多现有的以太坊应用程序。

缺点:

  1. 相较于Type2和Type1类zkEVM,存在更高的不兼容性和更多元素的牺牲,对以太坊开发者不太友好。
  2. 证明时间相对较长。

主流项目:

  • Scroll项目
  • Polygon zkEVM

Type4 类 zkEVM——兼容高级语言

架构:

Type4 类zkEVM实际上属于zkVM(零知识证明虚拟机),是编程语言层面的兼容。开发者可以继续使用习惯的高级语言(如Solidity)编写智能合约,编译为项目自定义的可读代码进行执行。

优点:

  1. 验证时间非常快。
  2. 直接从高级语言编译,降低成本,降低技术门槛。
  3. 支持原生的账户抽象。

缺点:

  1. 很多现有的以太坊应用程序无法在此类方案中复制,或在复制过程中会出现问题。
  2. 对以太坊开发者来说,部署应用程序需要更复杂的调整,可能影响生态发展和技术迭代速度。
  3. 难以借力于以太坊现有生态和网络效应。

主流项目:

  • zkSync Era
  • Starknet

根据Vitalik在2022年提出的zkEVM分类,并结合目前各个项目的进展,我们可以用下图简单总结:

图表:各类zkEVM项目分类

各类zkEVM主流项目

根据Vitalik的分类标准,并结合现有的zkEVM项目,我们可以对各个主流项目进行对比:

图表:各主流zkEVM项目对比

总结

Vitalik在结尾总结道:“就我个人而言,我希望通过zkEVM的改进和以太坊本身的改进相结合,使以太坊对ZK-SNARK更加友好,最终实现Type1 类 zkEVM。”在未来,我们将会看到多个zkEVM实现,既可以用于ZK Rollups,也可以用于验证以太坊链本身。在这个未来实现之前,需要相当长的时间,但在此期间,我们将看到以太坊扩容和基于以太坊的ZK Rollup方案的不断创新。

需要强调的是,虽然市面上主流zkEVM分类方式是根据Vitalik的分类,但也存在其他分类标准。不同类型的zkEVM并没有绝对的优劣之分,它们只是在兼容性与速度之间做出取舍。Type1 类zkEVM与以太坊兼容性最高,但验证时间较长;Type4 类zkEVM验证时间更快,但兼容性较差。

当然,部署应用程序的选择并不仅仅取决于zkEVM的兼容性和速度。还有其他因素需要考虑,例如L2交易排序的去中心化程度、费用、生成证明的规则和自托管能力等。然而,目前大多数通用的ZK Rollup项目仍处于测试网阶段,无法进行横向对比。

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