Optimistic Rollups:以太坊扩容的现状与未来

我们听到了很多关于ZKRollups如何被认为是通用智能合同系统的未来的讨论。但基于我们从运行开放、安全、EVM兼容的L2链中获得的实践经验,且该L2链包含数百个dapps、数十万个用户和数百万个交易,我们对此不予苟同,这篇文章将对此进行解释。

我们将Arbitrum构建为一个OptimisticRollup网络,因为我们相信OptimisticRollup是满足用户对安全、无须信任、EVM兼容的L2网络这一现实需求的最佳方式。我们选择OptimisticRollup系统而不是ZKRollup,是因为OptimisticRollup系统固有的可扩展性和成本优势;鉴于此,如果让我们再次做出选择,我们依然会选择OptimisticRollup。欲了解其中缘由,请继续往下读。

等等!这篇文章的篇幅有多长?

是的,这篇文章很长,而且有些地方很技术性。人们想从他们选择的链中得到什么很简单,但谈到提供这些优势所需的技术,我们需要详细说明。我们希望技术社区能够理解我们的观点。如果你不想读完整篇文章(这无可厚非!),这里有一个简短的概要:

们想要一个可靠地提供安全、进展保证、可见性和快速敲定的区块链网络——他们希望这条链的使用成本很低并且兼容于现有的工具。

通过与ZKRollup进行比较,我们深入研究了OptimisticRollup如何提供上述这些属性的细节方面。

OptimisticRullup能够以较低的成本提供用户想要的这些属性,因为构建ZK证明有着非常高昂的链下成本。

由于ZK证明的构建成本如此高昂,因此完全参与到ZK协议中可能需要专用的硬件设备和/或大规模并行性,从而导致ZKRollup网络实际上更加中心化。

ZKRollup所声称的那些优势,要么同样适用于OptimisticRollup,要么要求牺牲重要的安全性或可用性特性。

OptimisticRollup在操作成本上赢得了很大的胜利,因为执行其代码比计算复杂的加密证明要便宜得多。

让我们从头开始

让我们从以太坊开始讲起。以太坊用户需要通过创建交易来部署智能合约或与智能合约进行交互,你可以通过几种不同的方式来看待以太坊交易:一方面,你可以将其视为一个不透明的数据块,但如果你查看其内容,你会发现交易显然并不只是数据块;它是一个请求,请求智能合约做某件事情,比如记录一些信息,转移一些资产等等。

当一笔交易被发布到以太坊时,会发生两件重要的事情:首先,交易会被打包,以太坊会对一组经排列的交易达成共识;其次,以太坊执行这些交易,并计算由此产生的状态更新。

OptimisticRollups与ZKRollups的共同之处

Optimism Collective推出co-grants,允支持Optimism Grants Council工作并获得链上贡献记录:6月3日消息,Optimism Governance 发推称,Optimism Collective 与链上基础设施 Syndicate 合作推出 co-grants,允许用户支持 Optimism Grants Council 工作并获得链上贡献记录。用户的共同赠款收益将直接流入匹配合约。在 V1 中,匹配合约将由 Optimism 基金会管理,分配将根据 Optimism Grants Council 的决定执行。作为回报,贡献用户将收到共同授予人 NFT 和 Optimism Attestation(证明)。[2023/6/3 11:55:57]

让每个以太坊节点执行每笔交易的代价很高(容易造成网络拥堵和交易成本高昂),而Rollups是一类可以显著减轻这种负载的可扩展性解决方案,可以显著减轻这种负载。通过这种方案,交易的实际执行不是在以太坊上完成的,而是转移到第2层(L2),也即Rollups网络中。

但等等——Rollups应该是由以太坊保护的。这意味着Rollups需要以太坊以某种方式担保交易执行的正确性,即使交易发生在L2领土中。那么以太坊如何对Rollups的状态批准盖章呢?

简言之,答案就是:通过使用证明(proofs)。Rollups通过使用专门的证明(proofs)来向以太坊证明其正确性,该证明允许以太坊在不执行交易的情况下验证其正确性。

OptimisticRollups与ZKRollups的不同之处

这些证明看起来非常神奇:允许以太坊在无需实际执行交易的情况下验证Rollups的状态。你可能想知道这些证明是什么样子的,以及它们在实践中是如何实现的。这正是不同的Rollups的相互区别之处。

ZKRollups使用有效性证明(validityproofs):ZKRollups依赖于某一方发布简洁的密码证明,该证明可以表明该发布者知道这条以特定状态结尾的区块链的有效性。这要求该证明方需要执行这条链,从而才能知道如何构建该证明,然后通过一系列复杂的密码操作来构造该证明。该证明通过一个链上L1合约进行检查。ZKRollups的有效性证明是简洁的,而且验证成本足够便宜,可以通过一笔以太坊交易来完成。

OptimisticRollups使用一种不同类型的证明:欺诈证明(fraudproofs)。顾名思义,OptimisticRollups网络是“乐观的”,因为当OptimisticRollups将更新的状态发布到以太坊上时,它们不会发布任何证明。在OptimisticRollups网络中,任何人(节点)都可以发布一个Rollup区块,其中包含了有关执行了某些交易之后的正确结果的声明,其他节点在执行这些相同的交易时,如果不同意该节点的主张就可以提出挑战。一个有效的争议协议会解决任何分歧,保证正确的那一方将会在该挑战中获胜。这些参与方(节点)有很强的动机只发布正确的主张,而不是去挑战不正确的主张,因此在通常情况下,所有节点就是简单地执行所有的交易,而证明代码永远不需要被调用。这整个过程都是由一个L1合约管理。

Optimism宣布已上线Calldata压缩,将降低40%转账费用:3月25日消息,以太坊二层扩容网络Optimism宣布Calldata压缩已上线其主网,将带来40%的转账费用降低。[2022/3/25 14:17:16]

那么哪种类型的Rollup更好呢?在本文的其余部分,我们将从几个维度比较ZKRollups和OptimisticRollups,并解释为何我们认为未来是属于OptimisticRollups,以及像Arbitrum这样的OptimisticRollups本质上有着更好的可扩展性。

OptimisticRollups对比ZKRollups:成本

也许OptimisticRollups和ZKRollups最关键的不同之处就是成本。

OptimisticRollups网络需要其节点简单地执行合约。比如,如果某个合约执行添加操作,那么网络中的节点就执行该添加操作。

另一方面,ZKRollups需要生成一个复杂的密码证明,需要成百上千次昂贵的椭圆曲线运算来将该添加操作包含进证明中。在ZKRollups中,每个合约中的每个指令都会产生这种成本。由于需要对每个指令都生成一个复杂的密码证明,而不是仅仅执行指令,因此对于ZKRollups而言这是一个固有的成本劣势,而且这是一个很大的劣势。

ZKRollups的支持者有时会争辩说,该解决方案只需要一方创建“证明”,而OptimisticRollups则要求系统有许多节点。但是,如果你正在运行一条规模较大的区块链,无论你使用哪种证明系统,它都会有很多节点。真正的区块链需要很多节点来服务各类活动,比如非变异调用、搜索事件日志、向用户显示交易数据、为用户提供将资金提取回L1(主链)所需的数据等等。OptimisticRollups的安全性依赖于这些节点做它们已经需要做的事情——执行交易并追踪区块链的正确状态。

另一方面,在ZKRollups中构建昂贵的、基于椭圆曲线的证明是一个非常大的附加成本。如果想要大规模地证明ZKRollups,将需要专用硬件设备或者大规模并行——或者两者都需要。这都是非常昂贵的。

小结:OptimisticRollups系统有着巨大的固有成本优势。

OptimisticRollups对比ZKRollups:EVM兼容性

当我们在构建Arbitrum时考虑的一个重要因素是其与EVM(以太坊虚拟机)的兼容性。Arbitrum完全兼容于EVM;它具有相同的RPC接口,并接受与EVM相同的字节码。这意味着在实践中,任何为以太坊编写的代码都可以在Arbitrum上开箱即用。

我们已经运行开放的、兼容EVM的链(包括测试网)一年多时间了,我们已经了解到真正兼容于EVM多么具有挑战性。最初的95%的兼容性并不难实现,但这在实践中还不够好,而要做到更好则不仅需要大量的努力工作,还需要一个不碍事的产品架构。

跨链流动性聚合协议Via Protocol新增支持Optimism:3月24日消息,跨链流动性聚合协议Via Protocol宣布新增支持Optimism,当前支持的代币包括USDT、USDC、ETH以及Synthetix生态的SNX、sUSD、sETH、LYRA、THALES等资产。[2022/3/24 14:15:17]

就EVM兼容性而言,ZKRollups系统运行的范围很广。一些ZKRollups认为EVM兼容性是是老派的工具,并鼓励人们学习使用它们自定义的语言。一些ZKRollups系统并不试图兼容于EVM,当然这对于那些不关心这种兼容性的开发者和用户来说,这也没什么问题。

我们并不是说,在一个全新的世界里,EVM兼容性是客观上最好的东西。但考虑到已经使用EVM的开发者、代码和开发者工具的数量,我们认为EVM具有很多实际的优势。想象一下,某个已经部署在以太坊上的项目想要扩展到一个Rollup网络中,如果需要使用一种新的语言重写代码,委托新的安全审计,并维护多个代码库,那么这将是非常繁琐且容易出错。但即使对于尚未编写代码的新项目而言,EVM兼容性也是一个巨大的优势,因为这允许这些项目使用围绕EVM的现有代码、工具和人才库。

一些ZKRollups项目正在致力于实现兼容EVM的版本,尽管其声明含糊其辞,我们还不知道迄今为止有发布任何代码允许人们在ZKRollup上运行EVM合约。当前已经存在的主要ZKRollups系统有着显著的EVM不兼容性。比如,一个声称兼容于EVM的ZKRollup并不能实现ADDMOD、SMOD、MULMOD、EXP、SELFDESTRUCT和CREATE2操作码;正在考虑取消对XOR、AND和OR的支持;不支持标准交易格式;不支持任何预编译;且可能会限制单笔交易中的合约调用次数。而且,ZK模型似乎存在根本性的EVM不兼容性,即使在最好的情况下,ZK的EVM兼容性也无法像OptimisticRollups那样支持完全的兼容性。

值得说明的是,目前存在几个特定于应用程序的ZKRollup系统的例子,例如Zcash、ZKSync1.0、Loopring。事实上,其中一些系统运行良好。其核心区别在于,它们经过了微调,并针对非常适合ZKRollup实现的特定应用程序进行了特别优化。当前还不存在一个通用的编译器,以允许人们以兼容的方式从EVM过渡到ZKRollup。虽然有一些团队声称正在对此进行研究,但对于用户定义的ZK-EVM合约,当前没有可用的公共代码或证明成本的基准。根据我们了解的情况和所有可公开获得的数据,我们认为这会非常昂贵。

V神:Optimism第一轮融资是成功的,期待可追溯公共产品融资的后续进展:11月17日消息,V神发布长文表示,上个月,以太坊二层扩容解决方案 Optimism 进行了第一轮可追溯公共产品融资,总共向 58 个项目分配了 100 万美元,以奖励这些项目已经为 Optimism 和以太坊生态系统所做的出色工作。文章称,总的来说,我认为 Optimism 第一轮融资是成功的。许多有趣和有价值的项目得到了资助,衍生出很多讨论。无论如何,可追溯公共产品融资仍然是一项令人兴奋的、以多种方式进行的制度创新的新实验。这是一项非货币驱动的去中心化治理的实验,也是一项通过追溯而不是主动激励来实现事情的实验。无论结果如何,我都期待看到这个实验在接下来的几轮中如何发展。[2021/11/17 21:56:54]

小结:只有OptimisticRollups以最小的成本支持完全的EVM兼容性。

OptimisticRollups对比ZKRollups:无须信任的可见性和压缩

在设计Arbitrum时,我们考虑的一个关键属性是无须信任的可见性(trustlessvisibility)。简单来说,无须信任的可见性意味着任何人都可以在无需某个中心化的参与方的帮助下查看或获取区块链的内容。重要的是,这不仅意味着每个人都可以看到偶尔的状态快照,还意味着每个人都可以看到区块链的完整历史——即它是如何到达当前状态的。一个实用的区块链链可以让任何人运行一个节点,它可以支持非突变调用、搜索事件历史记录和查看每一笔交易——而不需要依赖一个中心化的数据提供商。无须信任的可见性使之成为可能。

坦率地说,有些ZKRollups系统在可见性方面走了捷径,并试图回避它们没有提供完整区块链功能的事实。当你听到“压缩”这个词时,请小心弄清楚:他们是否说他们正在更有效地编码链的内容(这正是Arbitrum所做的,并且将在我们的Nitro版本发布中做得更好)?或者,他们是在说,部分区块链历史根本就不会被提供给你,除非一个中心化的数据提供商愿意稍后与你共享?

回想一下,ZKRollups证明其实只证明了“证明者”知道的有效链,但“证明”本身不会告诉你那条链是什么,即使你有足够的数据来验证该“证明”,可能也没有足够的数据来重建区块链的历史。

举个例子,假设Alice提交了一笔支付给Bob1ETH的交易,很快又出现了Bob提交了一笔支付给Charlie1ETH的连续交易。接下来,你需要验证一个证明:Alice比以前少了1ETH,Bob的余额没改变,而Charlie比以前多了1ETH。

但是具体发生了什么?Alice付钱给Bob了吗?Bob付钱给Charlie了吗?也许是Alice直接付钱给Charlie,也许是Alice销毁了1ETH,而Charlie所获得的1ETH是由其他人支付的,也许这个“其他人”名叫Diana,而不是Bob。如果我们从区块链中寻找Bob的支付证据,但对于一些不提供区块链可见性的ZKRollups来说,根本无法区分并找到Bob支付的交易。

MakerDAO为Optimism提供二层DAI快速提款解决方案:3月10日消息,MakerDAO智能合约团队即将推出解决方案Optimism DaiBridge,可解决Optimistic Rollup需要1周提款时间的问题。具体来说,该解决方案允许锁定L1DAI来铸造L2oDAI,并允许oDAI即时被销毁以访问L1DAI。MakerDAO将于今年第三或第四季度支持快速提款功能,允许从oDAI迁移到DAI,并立即结算。MakerDAO智能合约团队成员表示,“不同于侧链,所有用于重建Optimistic虚拟机(OVM)状态的数据都在Layer1上存在于规范交易链(CTC),尽管必须等待1周才能确保CTC的计算结果正确无误,但我们可以在几分钟内获得链下证据,证明单个交易正确无误。”[2021/3/10 18:31:30]

许多智能合约应用程序所需要的不是仅仅知道某个偶然的检查点,而是需要了解整条链——了解发生了什么以及如何达到最终状态。ZKRollups有时吹嘘自己有着比OptimisticRollups更好的“压缩”,但它们会隐藏区块链的数据,这样只有“证明者”知道这并不是压缩,而是删除了重要的数据。如果ZKRollup提供商表示他们“不需要”发布整条区块链的历史,其实他们真正的意思是他们无法保证区块链的可见性,而放弃区块链可见性保证并不是OptimisticRollups愿意做出的妥协。

小结:OptimisticRollups以最小的成本提供无须信任的可见性。

OptimisticRollups对比ZKRollups:无须信任的、及时的最终性(finality)

在评估某个Rollup网络时,我们需要确定一个关键要求,即该Rollup是否提供无须信任的、及时的最终性(finality)。简单来说,这意味着在你提交交易后,你和其他所有人都应该及时且确定地知道该交易的结果,并且没有人能够篡改或撤消该交易。

在我们看来,实现及时的最终性的最佳方法是将交易排序与交易执行分开。排序就是对被提交的交易生产一个敲定的顺序,执行就是试图以该顺序来执行这些交易。如果交易执行是确定的(正如在Arbitrum上那样),那么敲定交易排序就足以敲定结果,因为这些结果就是交易顺序的确定性函数。如果每个人都知道交易的顺序,那么每个人都可以轻松确定结果。

敲定一个交易顺序需要将该顺序发布到L1链上,并包含足够的信息以允许任何人自己执行这些交易,以便以无须信任的方式知晓其结果。理想的Rollup是尽可能频繁地将排序的交易数据发布到L1链。

在OptimisticRollups系统中,发布到L1链的成本最低,实际上Arbitrum通常会在每一分钟左右将排序的交易数据发布到L1链,为用户提供快速的最终性(finality)并保证没有人可以撤消他们的交易。此外,Arbitrum还会每隔一小时左右就产生一个新的OptimisticRollup结果主张(resultassertion),但由于拍下已经被敲定,且执行是确定性的,因此完全不会减慢最终敲定的速度。

原则上,ZKRollups系统也可以按照类似的方式运行;即将交易的排序(可以频繁发布到L1)与稍后进行的验证以及偶尔的有效性证明分开。然而,与OptimisticRollups系统发布数据一样,以这种方式运行的ZKRollups需要将基本相同的数据发布到L1链上,但对于上文中讨论的(所谓)“压缩”技术并不支持这么做。ZKRollups为了让“压缩”技术起作用,必须在同一笔L1交易中实时证明一系列L2交易的有效性,而且每次发布一批L2交易时都必须这么做。

因此,寻求使用备受吹捧的“压缩”技术的ZKRollups只有两个选择:

1)每分钟左右发布排序交易和执行证明:这可以保持快速的最终性(finality),但需要每分钟在链下生成ZK证明并在L1链上进行验证。根据实现情况,在区块链链上发布ZK证明的成本估计在500,000gas到500万gas之间。

2)每小时发布排序交易和证明:这种做法虽然可以使ZK证明的检查成本变得略微合理,但将最终性(finality)的时间会延长到一个小时。在用户向ZKRollups运营者提交交易和其发布到链上之间的时间里,用户无法保证他们的交易是否会被打包在内,而且只能相信ZKRollups的运营者。

如果你正在构建一个ZKRollup系统,会发现上述两个选项其实都是不可接受的——第一个成本太昂贵,第二个无法提供及时的最终性。因此,如果你最终会使用与我们在OptimisticRollup(即Arbitrum)中使用的相同类型的定序器(sequencer),并在一个ZKRollup版本的Arbitrum中发布基本上相同的数据。

如果你听到有人吹捧某个ZKRollup可以将数小时的数据压缩为一个点,要务必谨慎。如果他们只在很长一段时间结束时发布单点数据,那么这意味着他们在这段时间内没有提供最终确定性。

小结:出于实际考虑,ZKRollups系统不得不以与OptimisticRollups相同的方式来实现及时的最终性。

OptimisticRollups对比ZKRollups:无须信任的活性

无须信任的活性(trustlessliveness)是指任何人都可以推进系统进程(无须信任的安全属性可以确保这种进程的正确性)。

OptimisticRollups允许任何节点声明正确的交易执行。提出该声明只要求节点执行该链的交易,然后存入一笔质押金(stake),当该声明被协议确认之后可以退还该质押金。

在ZKRollups系统上,进展要求任何节点都可以创建并发布推进区块链状态所需的ZK证明,但这必须是通过使用任何人都可以获取的硬件和软件就能实现,因此必须不能要求构建或购买独特的专用型硬件,也不能要求进行大规模并行计算。必须有一条在普通的设备上就能构建一个合适的ZK证明的途径。如果某个ZKRollup提供商无法做到这一点,或者没有发布用于生成系统证明的代码,那么该ZKRollup就无法提供无须信任的活性,该系统也就没有活性保证。他们的系统是中心化的,因为只有拥有专用设备的参与方才能推进系统进程。(目前还不清楚的是那些领先的ZKRollups提供商是否将让证明对普通用户可行。)

小结:OptimisticRollups系统更容易提供无须信任的活性。

OptimisticRollups对比ZKRollups:桥接

ZKRollups的优势领域是与以太坊L1的桥接。OptimisticRollups系统在将资金从Rollup取款至L1方面有一个为期一周的延迟,而ZKRollups则允许在ZK证明发布至L1之后立即实现桥接。在实践中,这并不是一个很大的差异,因为OptimisticRollups用户可以使用快速桥接服务,从而实现将资金从L2撤回至L1的低延迟。因此,ZKRollups在这方面的优势主要是,其用户可以避免支付桥接服务收取的小额费用(这些服务在费用上将会相互竞争)。这并不是理论上的:制剂室,当前有许多上线的桥接服务,提供从Arbitrum即时取款的服务。

需要强调的是,ZKRollups在桥接方面的优势非常狭窄:仅限于从L2桥接回以太坊L1。从前(大约是2019年),许多人认为Rollups的推出将很缓慢,且只会有一到两个上线的dApps,在这样的情况下,Rollup用户将会经常发现自己在L1和L2之间来回桥接。但我们并不处于这样的世界中。Arbitrum拥有一个蓬勃发展的生态系统,其中包含了数百个dApps,范围覆盖了整个DeFi领域,且许多用户正在桥接至Arbitrum并长期留在这个网络中。此外,在某种程度上,用户不仅仅是去以太坊,而是跨越多条链。他们也在前往其他L1链和侧链,且对于这种直接桥接,ZKRollups对比OptimisticRollups并没有什么优势。

小结:ZKRollups系统在桥接至L1方面有一点优势,但由于快速桥接服务和多链使用模式,因此在实践中这种优势在很大程度上被减弱。

写在最后

通过对比OptimisticRollups和ZKRollups,我们认为OptimisticRollups系统是明显的赢家。OptimisticRollups更便宜,拥有完全兼容EVM和现有的工具,且在实践中唯一的缺点是在没有快速桥接服务的情况下桥接至L1较为缓慢。ZKRollups的其他优势需要牺牲链的可见性或最终性时间,我们认为这并不是用户想要的。

对于ZKRollups系统来说,这些都不太可能改变。兼容于EVM的合约执行的ZK证明将保持着比OptimsticRollups的执行更加昂贵,且实现无须信任的活性、链可见性和去中心化的要求也将保持不变。虽然如果情况发生变化,我们也愿意将Arbitrum切换到基于ZKRollup的执行,但我们认为不会。

我们将以一个警告结束。现在有一种趋势是,人们将Arbitrum今天提供的东西与ZKRollups系统说他们将来会提供的东西进行比较。但这种比较没有什么意义。如果我们将现有的系统进行比较,就会发现只有像Arbitrum这样的OptimisticRollups支持通用智能合约的开放部署。或者,如果我们在比较未来的系统,那么我们应该将Arbitrum的未来与未来的ZKRollups系统进行比较。

我们正在不断改进Arbitrum——例如,我们即将发布的Nitro版本包含更低的成本和更好优化的链上数据无损压缩。我们正在孜孜不倦地改进Arbitrum,将成本降低到理论极限。正如我们在这篇文章中所展示的,我们相信,当考虑到这两种系统的现状以及它们各自的理论局限性时,OptimisticRollups显然是赢家。

撰文:OffchainLabs

编辑:南风

郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。

银河链

[0:15ms0-2:194ms