了解什么是EVM等效性,它如何成为Layer2的通用标准
Kyle原文来自于Optimism PBC。
上个月,我们宣布了 Optimistic Ethereum 历史上最重要的技术升级。 最近,我们将 Optimistic Kovan 迁移到真正的一键部署并提高了稳定性,主网的升级将在三周内进行跟进。
但这篇文章不是关于一键部署或增量改进。
这是一篇关于我们相信以太坊虚拟机等效性(EVM Equivalence)——与EVM规范完全一致——将成为Layer 2(L2)的下一个通用标准的帖子。
Optimistic纠纷协议(Dispute Protocols)简史
首先,让我们回顾一下我们采用的当前一代Rollup的发展路径。
Rollup黎明时代
Optimistic L2 都是关于“纠纷(disputes)”的。 如果你认为以太坊是一个万能的、去中心化的法庭,那么 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 的差异最小。这迫使Rollup同时在两个方面处于领先地位:
- 构建可扩展的、生产就绪的Rollup基础架构。
- 解决长期臭名昭著的 EVM-in-EVM 问题。
以太坊的图灵完备性意味着我们知道它可以完成,但在我们的研究过程中,我们了解到需要牺牲一些东西才能在合理的时间范围内将以太坊带到 L2。
这种牺牲将被称为 EVM“兼容性”。
论点很简单:只要以太坊应用程序可以合理地移植到Rollup上运行——不管这是如何在幕后完成的——我们可以捕捉到以太坊的逃逸速度。
“这是兼容吗?”
大洪水时代
最初,这种妥协得到了回报。在 2020 年,随着用户逃离以太坊到其他以“廉价费用”为幌子并放弃安全和价值的Layer 1竞争对手,我们竞相推出 OVM。我们在 1 月份启动了我们的主网,在过去的 10 个月里,我们通过几百万笔交易为用户节省了数亿美元费用。
但是以太坊的网络效应产生的逃逸速度有多种形式,我们飙升的使用量突显了以太坊 L1的另一个其他 L1 和 L2 缺乏的组成部分:基础设施。在过去的 6 年里,以太坊的全球社区已经将它从一个准系统原型变成了:
- 数以千计的开发工具已深度集成到 EVM 中。
- 价值数十亿美元的公司的出现只是为了服务和改进节点软件。
- 以太坊本身变得越来越快。
以太坊网络效应的浪潮只会越来越大。由于一切都是开源的,人们可能会期望这些巨大的胜利也适用于以太坊 L2。
但没有那么多。
EVM 兼容性与 EVM 等效性不同,仅仅满足于兼容性意味着你被迫修改甚至完全重新实现以太坊支持基础设施也依赖的低级代码。 如果 L2 想要在以太坊的基础设施网络效应浪潮中冲浪,它们必须实现 EVM 等效性。
随着 Optimistic Ethereum 的发展,我们发现越来越多的以太坊工具不断大幅度地发现自己,这是由于我们旧的 EVM 兼容性设计理念。
我们知道我们可以做得更好。 为了真正支持大众用户,我们需要的东西不仅与 EVM 合约兼容,而且从根本上等同于 EVM 本身。
EVM 等效性是我们弥合以太坊 L1 的基础设施网络效应和以太坊 L2 的执行环境之间差距的方式。
EVM 等效性:乘着以太坊的采用浪潮
… 什么是 EVM 等价性?
简而言之:EVM 等效性完全符合以太坊黄皮书,即协议的正式定义。 根据定义,L1 以太坊软件必须符合此规范。
这意味着——深入到最深处——现有的以太坊堆栈现在也将与 L2 系统集成。 每个调试器。 每个工具链。 每个节点实现。 我们相信,所有提供任何 EVM 体验的 L2 都必须满足这一标准——任何缺失都是不可接受的。
… 为什么 EVM 等效性很好?
从第 0 天开始,我们就在 Geth 上构建了我们的软件,Geth 是以太坊最强大和最受欢迎的客户端实现——这是通往生产就绪的以太坊 L2 的唯一可行途径。 OVM v1 引入了一个容器化系统,它位于 Geth 的 EVM 之上,有助于避免在 L1 上繁琐地重新实现整个 EVM。
这个组合赢得了一些早期的胜利,但由于 EVM 本身不支持容器化,所以它不是免费的。即使对于我们专注于 Geth 的团队来说,这些变化也开始累积起来。随着Optimistic Ethereum的发展,等效性的惊人力量不可忽视:
- Solidity、Vyper 和 Hardhat 等项目无私地致力于开发 OVM 版本的开发工具,但我们冒着将这些已经资源受限的团队分散的风险。这告诉我们,团队总是需要投入人力来维护非等效的代码库。
- 随着每一行代码的改变,采用像 Erigon 这样的实验性实现变得更加困难。这告诉我们,我们将始终需要致力于整合未来的客户端实现。
- 与现有的超优化版本相比,重新实现部分 EVM 会引入 gas 成本。这告诉我们,最小化 gas 成本需要等效于 EVM 的设计理念。
是时候寻求更好的方法了。
... 我们如何实现 EVM 等效性?
值得庆幸的是,我们找到了比在 EVM 中繁琐地重新实现 EVM 更好的方法。这就是你要做的。
分离区块生成和执行
好的——在实践中,我们确实必须对L2以太坊 进行一些更改:特别是如何生成区块。在 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 浏览器之间的不兼容困扰着 Web 开发,并导致开发人员和生态系统碎片化。
Web3 是关于协调和开源标准的,等效性为明显出现的标准提供了一条途径——EVM——以避免重复过去的错误。
即使这个标准不断发展,我们的欺诈证明方法也意味着 L2 可以毫不费力地协同发展。 L1 和 L2 手拉手一起向前移动。
这种好处是双向的——几乎所有的以太坊 EIP 都可以在 L2 上采用,并且Rollup成为一个令人兴奋的创新实时测试环境。 想象一下,一个位于激励测试网和主网之间的Rollup,在外部证明新的交易类型、预编译和 EOF,在它们升级到 L1 之前测试不可预见的后果。
DeFi 的最大障碍之一是,随心所欲地测试,无法取代 DeFi 的现场环境。 您无法在测试网上“重新创建”DeFi,因此当您想测试更改时,总是“在现实产品中测试”。
EVM 等效性允许我们在实时环境中测试 EIP,并对整体以太坊环境进行更安全、长期的改进,而无需“交叉硬分叉”。
一路下来都是以太坊
我们最近启动了第一个追溯公共物品资助的实验。 100 万美元的协议收入将很快奖励给有益于以太坊的公共产品! 有些人问我们为什么这笔钱会流向整个以太坊,而不仅仅是它来自的 Optimistic Ethereum 生态系统。
希望通过对 EVM 等效性的新理解,您可以明白原因:我们是同一个生态系统。
layer 2长期承诺一个多链以太坊的未来,充满活力地深入这个新网络空间的前沿。 虽然我们可以预期这些链是多样化和丰富的,但 EVM 等效性引入了与以太坊的新连接——不仅仅是作为一个结算层,而是在它们组成的最深层次上。
这一路下来都是以太坊,而且永远都是。??
我们衷心感谢帮助实现这一目标并帮助我们分享它的令人难以置信的社区成员:Ansgar Dietrichs、David Hoffman、George Hotz、Georgios Konstantopoulos、lightclients、Magmo 团队、protolambda、ricmoo,和无数其他人:谢谢!!!!