时间:2021-12-17|浏览:317
我们宣布了Optimistic 以太坊历史上最重要的升级。最近,我们将Optimistic Kovan迁移到真正的一键式部署,并增加了稳定性,主网在不到三周的时间内就会跟上。
这篇文章是关于我们相信EVM 等效性——完全符合以太坊虚拟机规范——将成为L2领域的下一个通用标准。
Optimistic 争议协议简史
首先,让我们回顾一下我们已经采取的当代Rollup路径。
Rollup的黎明
Optimistic 的L2都是关于争议的。如果你认为以太坊是一个全能的、去中心化的法庭,那么L2可扩展性的核心观点是:“不要去法庭兑现支票——如果支票被退回,就去呗。”
实际上,过去6年的可扩展性研究可以归结为一件事:什么样的“拒付支票”可以被强制执行。首先,只有一组预先商定的参与者可以在彼此之间进行交易(状态通道)。然后,任何人都可以交易,但也可以被审查(plasma)。最终,我们也解决了审查问题(rollup)。
在Rollup之前,我们已经知道如何在所有这些模型上运行智能合约——只是没有多大意义。谁愿意只在几个朋友之间运行Uniswap,或者以一种可以被审查一周的方式运行?Rollup承诺提供真实的以太坊风格的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年,我们竞相推出OVM,因为用户纷纷逃离以太坊,转向其他L1竞争对手,后者在“廉价费用”的幌子下放弃了安全性和价值。
但以太坊的网络效应产生的退出速度有多种形式,我们的使用量激增突出了L1-以太坊的另一个组件,这是其他L1和L2所缺乏的:基础设施。在过去的6年里,以太坊的全球社区让它从一个简单的原型,发展到更多:
成千上万的开发工具已经被深度集成到EVM中。
数十亿美元的公司已经崛起,只是为了服务和改进节点软件。
以太坊本身变得越来越快。
以太坊的网络效应浪潮只会越来越大。由于一切都是开源的,人们可能会认为这些巨大的胜利也适用于以太坊的L2。
但并没有那么多。
EVM兼容性与EVM等效性并不相同,仅仅满足于兼容性意味着你不得不修改,甚至完全重新实现以太坊支持基础设施所依赖的底层代码。如果L2想要在以太坊的基础设施网络效应浪潮中冲浪,它们必须成为EVM的对等物。
随着Optimistic 以太坊的发展,我们发现越来越多的以太坊工具不断发现自己无法使用,这是由于我们旧的EVM兼容性设计理念。
我们知道我们可以做得更好。为了真正支持大众,我们需要的不仅仅是与EVM合约兼容的东西,而是从根本上等同于EVM本身的东西。
EVM等效性是我们如何弥合以太坊L1的基础设施网络效应和以太坊L2的执行环境之间的差距。
EVM等效性:搭乘以太坊的采用浪潮
什么是EVM等效性?
简而言之:EVM等效性完全符合以太坊黄皮书,即协议的正式定义。根据定义,L1以太坊软件必须符合该规范。
这意味着——深入到最深处——现有的以太坊堆栈现在也将与L2系统集成。每一个调试器。每一个工具链。每个节点的实现。我们相信任何L2提供任何EVM体验都必须达到这个标准-任何不足都是不可接受的。
为什么EVM等效性好?
OVM v1引入了一个容器化系统,它位于Geth的EVM之上,有助于避免在L1上冗长地重新实现整个EVM。
这种组合在早期取得了一些胜利,但由于EVM本身不支持容器化,所以它不是免费的。随着Optimistic 以太坊的发展,不可忽视的等价性的力量不容忽视:
像Solidity、Vyper和Hardhat这样的项目都在开发他们的OVM版本的开发工具,
随着每一行代码的改变,采用像Erigon这样的实验性实现变得越来越困难。这告诉我们,我们总是需要投入大量的精力来集成未来的客户端实现。
与现有的超优化版本相比,重新实现EVM的某些部分会带来gas开销。这让我们认识到,要实现气体成本的最小化,就必须采用EVM等效设计理念。
现在是时候寻求一种更好的方法了。
我们如何实现EVM等效?
值得庆幸的是,我们找到了一种比在EVM中冗长地重新实现EVM更好的方法。
分离区块生成和执行
在实践中,我们确实需要对以太坊L2-ify做一些改变:特别是区块是如何生成的。在L1上,节点使用工作证明共识机制来确定区块;在L2上,批量交易通过发送到“父链”(L1以太坊)的批量应用。如果一个L2使用它自己的工作证明,那么它将是一个L1!所以在这个层面上,“等效性”根本就是无稽之谈。
区块链模块化的一个核心模式是将共识与执行分离——也就是说,使用不同的流程来确定和执行下一个区块。我们可以借用这个模式在L2中使用。基本上,我们只需要定义一个函数,它接受L1区块,对它们进行Rollup处理,然后输出L2区块——格式与L1区块完全相同。从那以后,L2的执行可以被定义为等效于L1。
用戶喜愛的交易所
已有账号登陆后会弹出下载