介绍EVM的等效性

或者,以太坊一直是以太坊:我们如何才能学会停止重复造轮子并拥抱以太坊堆栈。

上个月,我们宣布了Optimistic 以太坊历史上最重要的升级。最近,我们将Optimistic Kovan迁移到真正的一键式部署,并提高了网络的稳定性,主网将在不到三周的时间内跟上。

这篇文章是关于我们相信EVM 等效性的(完全符合以太坊虚拟机规范)——将成为L2领域的下一个通用标准。

Optimistic 协议的争议简史

首先,让我们回顾一下我们目前已经采用的Rollup路径。

关于Rollup的黎明

Optimistic 的L2都是关于争议的。如果你认为以太坊是一个全能的、去中心化的法庭,那么L2可扩展性的核心观点是:“不要去法庭兑现支票——如果支票被退回,那就去吧。”

实际上,过去6年的在以太坊可扩展性的研究可以归结为一件事:什么样的“拒付支票”可以被强制执行。首先,只有一组预先商定的参与者可以在彼此之间进行交易(状态通道)。接着,任何人都可以交易,但也可以被审查(Plasma)。最后,我们也解决了审查问题(Rollup)。

在Rollup技术之前,我们已经知道如何在所有这些模型上运行智能合约——只不过这没有太大意义。谁愿意只在几个朋友之间运行 Uniswap,或者以一种会被被审查一周的方式运行?而 Rollups 的出现承诺了提供真正的以太坊式 L2 体验。

兼容时代

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

由于 Uniswap 的设计相对简单,这是可行的,但是当像 Solidity 变量这样基本的东西不能再使用时,它就不是好消息了。对于非开发人员来说;Uniswap 无疑是目前最简单的 DeFi 智能合约之一,但也不意味着Uniswap需要重新构建新的代码才能实现“Rollup兼容”。

到目前为止,以太坊的发展早已远超其“逃逸速度”——任何一个呈指数级增长的生态系统都无法在非EVM接口上重新架构。因此,L2的责任是除了提供“原始”规模之外,确保 L1 法院系统与 EVM 的差异最小化。这迫使Rolllup同时在两条战线上进行开拓:

  • 构建可扩展的、可用于生产的Rollup基础架构。
  • 解决一直难以解决的 EVM-in-EVM 问题。

以太坊的图灵完备性意味着我们知道它可以做到,但在我们的研究过程中,我们了解到需要牺牲一些东西,才能在合理的时间范围内将以太坊带到 L2。

这种牺牲将被称为EVM“兼容性”。

论点很简单:只要可以合理地移植以太坊应用程序以到Rollup上运行——不管这是如何在幕后完成的——我们就可以跟上以太坊的这种“逃逸速度”发展。

大洪水

最开始,这种妥协取得了成功。在2020年,我们竞相推出OVM,以廉价的Gas费用为幌子,引诱用户纷纷逃离以太坊,转向其他L1竞争对手,从而放弃了安全性和真正的价值。

以太坊的网络效应产生的“逃逸速度”发展是有多种形式,我们的使用量激增突出了L1-以太坊的另一个组件,这是其他L1和L2所缺乏的:基础设施。在过去的6年里,以太坊的全球社区让它从一个简单的原型,发展到更多:

  • 成千上万的开发工具已经被深度集成到EVM中。
  • 数十亿美元的公司已经崛起,提供服务和改进节点软件。
  • 以太坊本身变得越来越快。

以太坊的网络效应浪潮只会越来越大。由于一切都是开源的,人们可能会认为这些巨大的胜利也适用于以太坊的L2。

但并没有那么多。

EVM兼容性与EVM等效性并不相同,仅仅满足于兼容性意味着你不得不修改,甚至完全重新构建以太坊支持基础设施所依赖的底层代码。如果L2想要在以太坊的基础设施网络效应浪潮中冲浪,它们必须成为EVM的等效物。

随着Optimistic 以太坊的发展,我们发现越来越多的以太坊工具由于旧的EVM兼容性设计理念,而变得无法使用。

我们知道我们可以做得更好。为了真正支持大众,我们需要的不仅仅是与EVM合约兼容的东西,而是从根本上等同于EVM本身的东西。

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

什么是 EVM 等效性?

简而言之:EVM 等效性是指完全符合以太坊黄皮书,关于协议的正式定义。根据定义,L1 以太坊软件必须符合此规范。

这意味着——深入到最深处——现有的以太坊堆栈现在也将与 L2 系统集成。每个调试器。每个工具链。每个节点实现。我们相信任何提供任何 EVM 体验的 L2 都必须达到这个标准——任何低于此标准的都是不可接受的。

为什么 EVM 等效性很好?

从最开始,我们就在 Geth 上构建了我们的软件,这是以太坊最强大和最受欢迎的实例——这是实现生产就绪的以太坊 L2 的唯一可行途径。OVM v1 引入了一个容器化系统,该系统位于 Geth 的 EVM 之上,有助于避免在 L1 上繁琐地重新实现整个 EVM。

这样的组合在早期取得了一些成就,但由于 EVM 本身并不支持容器化,所以它并不够自由和灵活。即使对于我们专注于 Geth 的团队来说,这些变化也开始累积起来。随着 Optimistic 以太坊的发展,等效性的这种不可思议的力量是不容忽视:

  • Solidity、Vyper 和 Hardhat 等项目都开发了 OVM 的版本,这会冒着分散这些团队有限资源的风险。这告诉我们,团队总是需要致力于维护非等效代码库。
  • 随着每一行代码的更改,采用像 Erigon 这样的实验性实例变得更加困难。这告诉我们,我们总是需要投入精力来集成未来的客户端实例。
  • 与现有的超优化版本相比,重新实现部分 EVM 会带来额外的Gas开销。这告诉我们,最小化 Gas 成本需要等效于 EVM 的设计理念。

是时候寻求更好的方法了,即使它可能并不简单。

我们如何实现 EVM 等效性?

值得庆幸的是,我们找到了一种比在 EVM 中冗长去实现 EVM 更好的方法。这就是你要做的。

分离块的生成和执行

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

区块链模块化的核心模式是将共识与执行分离——也就是说,有不同的流程来确定和执行下一个区块。我们可以借用这个模式在 L2 中使用。基本上,我们只定义一个函数,它接受 L1 块,对它们进行Rollup处理,并输出 L2 块

——格式与 L1 块完全相同。从那时起,L2 执行可以定义为等同于 L1。

ETH2 合并 API

那么,现有 L1 客户端实现的共识/执行模块化的现状如何?

它即将在所有以太坊实现中标准化。

事实证明,ETH2 合并需要与 EVM 等效性Rollup完全相同的抽象:信标链提供与 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 块是一个有趣的、违反直觉的想法——但这正是等效性所需要的!

关于这种方法还有很多令人兴奋的事情要说,但我们必须把剩下的留到以后的帖子里!

以太坊的未来

如果以太坊要实现以 Rollup 为中心的未来,那么 Rollup 必须以以太坊为中心。

这就是等效性所提供的。

欺诈证明万岁

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

未来的Rollup将非常简单,无需 L2 专家即可部署。这意味着 L2 将不再关于如何或者是否提供安全性上竞争,而是把重点放在提供安全性的内容上。这包括竞争:

  • 性能、稳定性和正常运行时间
  • 网络效应、生态系统专业化和社区
  • MEV 预防和排序工具

总之,这意味着 EVM 等效性的Rollup在去中心化方面展开竞争。这是整个生态系统民主化的巨大胜利,也是使我们整个行业更加反脆弱和抗审查的重要一步。

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

至此,以太坊兼容性的桎梏已经解除。

ETH标准

EVM 等效性的力量归结为标准化。

在多链世界中,“一次编写,随处部署”变得至关重要。

拥有许多“兼容”的链,每一个都略有不同,会导致碎片化:你需要一个 EVM 专家团队来处理单个代码库,还需要组建 EVM 专家团队负责每个链的每个代码库。

Vitalik 将 EVM 与 Javascript 进行了比较,甚至在他第一次发布它时,这个类比在这个上下文中得到了很好的反映。在互联网的早期,Web 浏览器之间的不兼容(看看你,IE)困扰着 Web 开发,并导致开发人员和生态系统的分裂。

Web3 完全是关于协调和开源标准,而等效性为明显出现的标准(EVM)提供了一条路径,以避免重复过去的错误。

即使随着这个标准的发展,我们的欺诈证明方法也意味着 L2 可以毫不费力地同步发展。L1 和 L2 携手前行。

这种好处是双向的——当几乎所有的以太坊 EIP 都可以在 L2 上采用时,Rollup成为一个令人兴奋的创新现场测试平台环境。想象一下,在激励测试网和主网之间的某个Rollup,在验证新的交易类型、预编译和EOF,在它们升级到 L1 之前测试各种不可预见的后果。

DeFi 的最大障碍之一是,没有可替代的DeFi 的现场环境来随心所欲地测试。你不能在测试网上“重新创建”DeFi,所以当你想测试更改时,它总是“在产品中测试”。

EVM 等效性使我们能够在实时环境中测试 EIP,并对整个以太坊环境进行更安全、长期的改进,而无需“硬分叉”。

以太坊会一直存在

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

希望通过对 EVM 等效性的新认识,您可以明白原因:我们是同一个生态系统。

Layer 2 长期以来一直承诺多链以太坊的未来,充满活力的城市深入到这个新网络空间的前沿。虽然我们可以预期这些链是多样化和丰富的,但 EVM 等效性引入了与以太坊的新连接——不仅仅是作为结算层,而是在其组成的最深层次。

它一直是以太坊,而且永远都是。

……

我们要衷心感谢帮助实现这一目标的社区成员:Ansgar Dietrichs、David Hoffman、George Hotz、Georgios Konstantopoulos、lightclients、Magmo 团队、protolambda、ricmoo、还有无数人:谢谢!!!!

和往常一样——我们正在招聘!如果你不仅想为以太坊的未来工作,还想为以太坊的未来工作,我们想谈谈。如果您只想关注我们,请加入我们的Discord!

译者:jianan#3403

原文链接:https://medium.com/ethereum-optimism/introducing-evm-equivalence-5c2021deb306

Discord:https://discord.gg/optimism