为什么 EVM 等效必须成为 L2 通用标准?

在多链世界中,「一次编码,随处部署」已经变得极其重要。

上个月,我们宣布了 Optimistic 以太坊史上最重要的一次 。最近,我们将 Optimistic Kovan 迁移到真正的一键部署,并提高了其稳定性,主网将在不到三周后跟进登场。

但这篇文章不是介绍一键部署或增量改进。我们在这篇文章表达的主旨是,我们相信 EVM 等效(EVM Equivalence,即完全符合以太坊合约虚拟机 EVM 的规范),将成为 L2 下一个通用标准。

Optimistic 争议解决协议之历史

首先,一起回顾一下为前一代 Rollups 解决方案所走过的路径。

Rollups 的黎明

采取 Optimistic Rollups 的 L2 解决方案的核心都是关于解决争议。如果把以太坊想象成一个万能的、去中心化的法庭,那么 L2 扩容解决方案的核心观点是:「不要每次都去法庭兑现支票——只有支票跳票时才去。」

实际上,过去 6 年的扩容性研究可以归结为一件事:应该对怎样的「跳票支票」予以强制执行。

起初的解决方案是只有一组预先商定的各方可以相互交易(状态通道!)。然后变成任何人都可以进行交易,但也可能被审查(plasma!)。最终,我们解决了审查问题(Rollups!)。

在 Rollups 扩容解决方案之前,我们已经 如何在所有这些模型上运行智能合约——只是没有多大意义。谁想在几个朋友之间运行 Uniswap,或者以一种需要被审查一周的方式运行? Rollups 承诺能提供真正的以太坊风格的 L2 体验。

兼容时代

当然,仅仅「承诺」真正的以太坊风格的 L2 体验并不能真正创造出广泛的部署。对于 Unipig (第一个 L2 AMM),我们必须使用与 Rollup 争议合约兼容的自定义代码重新创建 Uniswap,而不是 EVM 本身。

由于 Uniswap 的设计相对简单,这是可行的,但是当像 Solidity 变量这样基本的东西不能再使用时,这可不是一个好兆头。 对于非开发人员而言,其中的难度过高;Uniswap 已经是目前最简单的 DeFi 智能合约之一,即使 Uniswap 也需要进行大修才能开箱即用的「兼容 Rollup」,这也不是好兆头!

到目前为止,以太坊的发展速度已经远远超过了逃逸速度。一个呈指数级增长的生态系统根本无法围绕非 EVM 接口重新构建。因此,除了提供「原始级」扩容之外,L2 有责任确保 L1 法庭系统与 EVM 保持最小差异。这迫使 Rollups 解决方案需要同时在两个方面开创先河:

  • 构建一个可扩容、 已准备好投入生产的 rollup 基础设施。
    * 长期存在的、 名声不佳的在「 EVM 中重新部署 EVM」(EVM-in-EVM) 的尴尬问题。

以太坊的 意味着我们知道它可以实现,但在研究过程中我们了解到,需要牺牲一些东西才能在合理的时间范围内将以太坊应用能移植到 L2 领域。

这种牺牲被称为 EVM 「兼容性」。

论点很简单:只要以太坊应用可以合理地移植到 rollup 解决方案上运行,不管在幕后这是如何完成的,我们就可以捕捉到以太坊的逃逸速度。

「这是兼容性?」

大洪水

最初,这种妥协得到了回报。2020 年,我们推出 OVM,因为用户逃离以太坊,转移到其他以「廉价费用」为幌子、放弃安全性和价值的底层公链(L1)竞争对手。我们在 1 月份启动了 ,在过去的 10 个月里,我们通过几百万笔交易为用户节省了数亿美元。

但是以太坊网络效应产生的逃逸速度存在多种形式,不过我们的使用量飙升突显了其他的 L1 和 L2 与以太坊相比,缺乏一个核心组件:基础设施。在过去的 6 年里,以太坊的全球社区已经将它从一个准系统原型,变成了非常强大的基础设施:

  • 数以千计的开发工具已深度集成到 EVM 中。
  • 单纯服务和改进节点软件领域,已经出现价值数十亿美元的公司。
  • 以太坊本身变得 。

以太坊网络效应的浪潮只会越来越大。由于一切都是开源的,人们可能会期望以太坊 L2 也能同样应用上述的巨大成果。
但迄今收效甚微。

EVM 兼容性与 EVM 等效性不同,仅仅满足于兼容性,意味着你被迫修改、甚至完全重新实现较底层代码,以太坊支持基础设施也依赖这些代码。如果 L2 解决方案想要充分利用以太坊基础设施的网络效应,它们必须成为 EVM 。

随着 Optimistic 以太坊的发展壮大,我们不断发现越来越多的以太坊工具无法使用,主要原因是我们旧的 EVM 兼容性设计理念。
我们知道我们还有很多提升空间。为了真正支持大众的使用,我们需要不仅与 EVM 合约兼容,而且从根本上等同于 EVM 本身的东西。

EVM 等效性主要关系我们如何弥合以太坊 L1 基础设施网络效应和以太坊 L2 的执行环境之间的差距。

EVM 等效性:乘着以太坊被广泛采用的东风

什么是 EVM 等效性?

简单说: EVM 等效性完全符合 ,后者是对该协议的正式定义。根据定义,L1 以太坊软件必须符合这一规范。
这意味着—从最根本上讲,现有的以太坊堆栈现在也将与 L2 系统集成——每个 debugger 。每个工具链。每个节点实现。我们相信,任何提供 EVM 体验的 L2 都必须满足这一标准——任何不足都是不可接受的。

为什么 EVM 等效性是个好方案?

从第 0 天起,我们就在 Geth (以太坊最强大和最受欢迎的部署)上构建了我们的软件——这是通往生产就绪的以太坊 L2 解决方案的唯一可行途径。 OVM v1 引入了一个容器化系统,位于 Geth 的 EVM 之上,有助于避免在 L1 上繁琐地重新实现整个 EVM。

这一组合在早期取得一定程度的成功,但由于 EVM 本身不支持容器化,所以它不是免费的。即使对于我们专注于 Geth 的团队,这些变化也开始累积。随着 Optimistic 以太坊的发展壮大, 等效性具备令人难以置信的力量:

  • Solidity、Vyper 和 Hardhat 等项目无私地致力于开发其 OVM 版本的开发工具,但我们制造出的风险是:让这些本身资源已经很有限的团队进一步分散资源。这教会我们,各家团队总是需要投入人力来维护非等效的代码库。
  • 随着每一行代码的改变,采用像 Erigon 这样的实验性部署变得更加困难。 这教会我们,我们将始终需要致力于整合未来的客户部署。
  • 与现有的超优化版本相比,重新实现部分 EVM 会制造出 gas 开销。这教会我们,要实现 gas 成本最小化,需要 EVM 等效设计理念。

是时候寻求更好的解决方法了,即使解决方案可能有一些乏味。

如何实现 EVM 等效性?

值得庆幸的是,我们找到了更好的方法,不用在 EVM 中繁琐地重新部署 EVM。以下步骤就是你要做的。

实现区块生产和执行的分离

在实践中,我们确实必须对以太坊的 L2 进行一些更改:特别是如何生成区块。在 L1 上,节点使用工作量证明(PoW)共识机制来确定区块;在 L2 上,通过发送分批交易到「父链」(L1 以太坊)实现批量交易。如果 L2 使用自己的 PoW 共识,它将是 L1! 所以「等效性」在这个层面上基本上是荒谬的。

区块链模块化的一个核心特征是将共识与执行分离——也就是说,确定和执行下一个区块分别通过不同的过程完成。我们可以借用这个模式,在 L2 中加以使用。简单说,我们只是定义了一个函数,它接收 L1 区块,处理它们以进行 rollup 交易,并以与 L1 区块完全相同的格式输出 L2 区块。因此,L2 执行可以定义为等效于 L1。

以太坊 2.0 合并 API

现有 L1 客户端部署中的共识 / 执行模块化的状态如何? 嗯:它将在所有以太坊部署方案中实现标准化。

事实证明,以太坊 2.0 需要与 完全相同的抽象:信标链等同于 L1 为 Rollup 所做的完全相同的「父链」角色。这将使在 L2 中使用 L1 客户端变得非常简单。

标准得到执行

好的,我们已经介绍了为什么等效性为强大的模块化抽象和极其简单的客户端部署打开了大门。但我们如何在链上实际执行这一操作?

首先,这种模块化的强大之处在于灵活——只要解决方案与 EVM 等效,我们就可以使用它。而当它们变得可行时,这意味着对防欺诈证明的改进,甚至是等效于 EVM 的零知识证明,都可以轻松地插入现有的链下堆栈中。

不过从短期来看,我们目前需要一些可行的方法——我们已经找到了这一点。 一种解决方案是在 Solidity 中实现完美的 EVM 等效部署,但 EVM 是一个复杂的野兽,具有许多 VM 指令,因此这是一项艰巨的任务。此外,未来对 EVM 的更新也必须在 Solidity 中重新部署。

我们的解决方案是:不是在 Solidity 中部署 EVM,而是 一个具有更小、更简单指令集的 VM,并在防欺诈证明期间在这一 VM 中运行 EVM。为此,我们必须简单地编译一个现有的 EVM 编译器,例如 geth,以便在更简单的 VM 中运行。

简单总结一下:我们允许 Geth 本身在一个有争议的环境中运行。由于 Geth 与 EVM 等效,因此这一环境也是如此。我们因此能够绕过在链上重新部署 EVM 的难度,同时摆脱应对 EVM 未来升级的繁重工作,使这一解决方案不会很快过时。

我们正在与我们最喜欢的 George Hotz 合作构建第一个 EVM 等效证明系统。进展令人兴奋——该系统已经可以运行自伦敦硬分叉以来的所有 L1 区块。通过一份防欺诈证明运行 L1 区块,是一个有趣的、违反直觉的想法——但这正是等效性所需要的!

哇——关于这种方法还有很多令人兴奋的事情值得说,但我们必须把余下内容留给以后的帖子!

以太坊的未来

如果以太坊要实现以 Rollups 为中心的 ,Rollups 必须成为以以太坊为中心。

等效性正是解决这一问题。

防欺诈证据已死。防欺诈证明安息吧

这种以 Geth 为中心的模块化设计,不仅仅是我们使用的优雅部署,它是朝着防欺诈基础设施商品化迈出的一大步。今天,安全地设计和启动 rollup 需要对 L2 争议解决机制有着深入了解 ,以及它们如何与节点软件协同工作。这严重限制了创新——想象一下,在这个世界中,每个 Web 开发者还必须是 IP 网络、系统管理和微芯片制造方面的专家。

未来的 Rollups 将非常简单,简单到不需要专门的 L2 专家来部署。这意味着 L2 将不再在如何或是否提供安全性方面展开竞争,而是竞争其提供安全性的内容。这包括在以下方面展开竞争:

  • 性能、稳定性和正常运行时间
  • 网络效应、生态系统专业化和社区
  • 预防矿工可提取价值(MEV)以及排序的工具

总而言之,这意味着与 EVM 等效的 rollup 正在去中心化程度上展开竞争。这是整个生态系统大众化道路上的巨大胜利,也是让我们整个行业在消除脆弱和审查方面取得的重要一步。

这也意味着我们团队终于可以专注于自己的核心能力(最重要的部分):构建世界上最快、最可靠、最安全的 L2 Geth。

以太坊兼容性的束缚已经解除。

#ETHTheStandard

EVM 等效性的巨大力量可以归结为标准化。

在多链世界中,「一次编码,随处部署」变得至关重要。

拥有许多「兼容」链,其中每条链都略有不同,这会导致碎片化:从需要一个 EVM 专家团队处理单个代码库,变成一个大型 EVM 专家团队处理每条链的每个代码库。

以太坊联合创始人 Vitalik 甚至在他首次发布 EVM 时就将其与 Javascript 进行了 ,当前这种情况下,正是这种类比特别好的体现。在互联网早期,网络浏览器(IE 等)之间的不兼容困扰着网络开发工作,导致开发者和生态系统陷入碎片化。

Web3 的核心是关于协调和开源标准,而等效性为明显发展为标准的 EVM 提供了一条发展途径,以避免重复过去的错误。

即使这个标准不断发展演变,我们的防欺诈证明方法,也意味着 L2 可以毫不费力地协同发展。L1 和 L2 手拉手一起前进。

这种是双向收益——几乎所有的以太坊 EIP 都可以在 L2 上采用,并且 rollup 成为一个令人兴奋的创新实时测试环境。想象一下,一个位于激励测试网和主网之间的 rollup 项目,另辟蹊径证明新的交易类型、预编译和 EOF,在它们顺利升级到 L1 之前测试不可预见的后果。

DeFi 的最大障碍之一是:无法随心所欲地测试,因为没有可以取代 DeFi 的现场环境。无法在测试网上「重新创建」DeFi,因此当想测试更改时,总是「在生产中测试」。

EVM 等效性允许我们在实时环境中测试 EIP,并对以太坊整体环境进行更安全、长期的改进,而无需进行「令人心惊胆战的硬分叉」。

以太坊夯实走向未来

我们最近 了第一个追溯公共产品资助的实验。100 万美元的协议收入,将很快奖励给有益于以太坊的公共产品!有些人问我们,为什么这笔钱会流向整个以太坊,而不仅仅是局限于 Optimistic 以太坊生态系统。

希望通过对 EVM 等效性的新理解,您可以明白其中的道理:我们是同一个生态系统。

L2 长期承诺推动以太坊的多链未来,充满活力的项目深入到这个新网络空间的前沿。我们可以预期这些链会是多元化、数量丰富,但跟随 EVM 等效性诞生了与以太坊的新连接接口——不仅作为结算层,而且在其构成的最底层。

以太坊会一路夯实,而且一直都是。