Optimistic Rollups 【3】是第 2 层 (L2) 协议,旨在扩展以太坊基础层的吞吐量。 它们通过链下处理交易来减少以太坊主链上的计算,从而显着提高处理速度。 与侧链等其他扩展解决方案不同,Optimistic Rollup 通过在链上发布交易结果或 Plasma 链来从主网获得安全性,Plasma 链也通过欺诈证明验证以太坊上的交易,但将交易数据存储在其他地方。
由于计算是使用以太坊的缓慢且昂贵的部分,Optimistic Rollups可以在可扩展性方面提供高达 10-100 倍的改进。Optimistic Rollups还将交易以 calldata
形式写入以太坊,从而降低用户的 Gas 成本。
什么是calldata
calldata
:calldata
是 Solidity 合约中的一个特殊的只读数据区域,用于存储函数调用的参数和外部合约的调用数据。它适用于接收函数调用的输入数据,但不支持修改。calldata
用于接收函数调用的输入数据,如函数参数和外部合约调用的数据。它只支持读取,不支持修改,适用于接收外部输入。【4】
Optimistic Rollups是一种扩展以太坊的方法,涉及将计算和状态存储移至链下。Optimistic Rollups在以太坊之外执行交易,但将交易数据以 calldata
形式发布到主网。
Optimistic Rollups运营商在提交到以太坊之前将多个链下交易大批量捆绑在一起。这种方法可以将固定成本分散到每批中的多个交易中,从而降低最终用户的费用。Optimistic Rollups还使用压缩技术来减少以太坊上发布的数据量。
Optimistic rollups被认为是“optimistic(乐观的)”,因为它们假设链下交易是有效的,并且不会发布链上发布的交易批次的有效性证明。这将Optimistic rollups与Zero-knowledge rollups分开,Zero-knowledge rollups发布链外交易有效性的加密证明。
相反,Optimistic rollups依赖于欺诈证明方案来检测交易计算不正确的情况。在以太坊上提交Rollup批次后,有一个时间窗口(称为挑战期),在此期间任何人都可以通过计算欺诈证明来质疑Rollup交易的结果。
如果欺诈证明成功,Rollup协议将重新执行交易并相应地更新Rollup的状态。成功的欺诈证明的另一个影响是,负责将错误执行的交易包含在区块中的定序器会受到惩罚。
如果在挑战期过后,Rollup批次仍然没有受到挑战(即所有交易都正确执行),则它被视为有效并在以太坊上被接受。其他人可以继续在未经确认的Rollup块上进行构建,但需要注意的是:如果基于之前发布的错误执行的交易,交易结果将被逆转。
#### OPTIMISTIC ROLLUP 如何与以太坊互动?
Optimistic rollups是在以太坊之上运行的链下扩展解决方案。每个Optimistic rollups均由部署在以太坊网络上的一组智能合约管理。Optimistic rollups处理以太坊主链上的交易,但将链下交易(批量)发布到链上汇总合约。与以太坊区块链一样,该交易记录是不可变的,并形成“optimistic rollup chain(乐观汇总链)”。
Optimistic Rollup 的架构包括以下部分:
链上合约:Optimistic Rollup 的操作由以太坊上运行的智能合约控制。这包括存储汇总区块(rollup blocks)、监控汇总状态更新(monitor state updates on the rollup)以及跟踪用户存款(track user deposits)的合约。从这个意义上说,以太坊充当Optimistic Rollup的基础层或“第一层(Layer1)”。
链下虚拟机(VM):虽然管理Optimistic Rollup协议的合约在以太坊上运行,但rollup protocol(汇总协议)在与以太坊虚拟机分开的另一个虚拟机上执行计算和状态存储。链下虚拟机是应用程序运行和执行状态更改的地方;它充当Optimistic Rollup的上层或“Layer2(第二层)”。
由于Optimistic Rollup旨在运行为 EVM 编写或编译的程序,因此链下 VM 包含许多 EVM 设计规范。此外,链上计算的欺诈证明允许以太坊网络强制执行链下虚拟机中计算的状态更改的有效性。
Optimistic Rollup被描述为“混合扩展解决方案(hybrid scaling solutions)”,因为虽然它们作为单独的协议存在,但它们的安全属性源自以太坊。除此之外,以太坊还保证 Rollup 链下计算的正确性以及计算背后数据的可用性。这使得Optimistic Rollup比不依赖以太坊安全的纯链下扩展协议(例如侧链)更安全。
Optimistic Rollup依赖于主要的以太坊协议来实现以下功能:
1.数据可用性(Data availability)[5]
“不要信任,要验证”是以太坊的一句常见格言。这个想法是,您的节点可以通过执行从对等方接收到的块中的所有事务来独立验证其接收到的信息是否正确,以确保提出的更改与节点独立计算的更改精确匹配。这意味着节点不必相信该块的发送者是诚实的。如果数据丢失,这是不可能的。
数据可用性是指用户对验证区块所需的数据确实可供所有网络参与者使用的信心。对于以太坊Layer1(第 1 层)上的完整节点来说,这相对简单;全节点下载每个块中所有数据的副本 - 数据必须可用才能下载。丢失数据的块将被丢弃,而不是添加到区块链中。这就是“链上数据可用性”,它是整体区块链的一个特性。完整节点不会被欺骗接受无效交易,因为它们会自己下载并执行每笔交易。然而,对于模块化区块链、Layer2(第 2 层)Rollup和轻客户端,数据可用性环境更加复杂,需要一些更复杂的验证程序。
数据可用性问题是需要向整个网络证明添加到区块链中的一些交易数据的rollup(汇总)形式确实代表了一组有效的交易,但这样做不需要所有节点下载所有数据。完整的交易数据对于独立验证区块是必要的,但要求所有节点下载所有交易数据是扩展的障碍。数据可用性问题的解决方案旨在提供充分的保证,确保完整的交易数据可供不为自己下载和存储数据的网络参与者进行验证。
轻节点和第 2 层汇总是网络参与者的重要示例,它们需要强大的数据可用性保证,但无法自行下载和处理交易数据。避免下载交易数据使得轻节点变得轻量,并使rollup(汇总)成为有效的扩展解决方案。
数据可用性也是未来“无状态”以太坊客户端的一个关键问题,这些客户端不需要下载和存储状态数据来验证块。无状态客户端仍然需要确定数据在某处可用并且已被正确处理。
数据可用性和第 2 层汇总(DATA AVAILABILITY AND LAYER 2 ROLLUPS)
第 2 层扩展解决方案(例如rollups)可通过链下处理交易来降低交易成本并提高以太坊的吞吐量。 Rollup 交易被压缩并批量发布到以太坊上。批次代表以太坊上单笔交易中的数千个单独的链外交易。这减少了基础层的拥塞并降低了用户的费用。
然而,只有当提议的状态变化可以被独立验证并确认是应用所有单独的链下交易的结果时,才可能信任发布到以太坊的“摘要”交易。如果rollup(汇总)运营商不提供可用于此验证的交易数据,那么他们可能会向以太坊发送错误的数据。
Optimistic Rollups将压缩的交易数据发布到以太坊并等待一段时间(通常为 7 天)以允许独立验证者检查数据。如果任何人发现问题,他们可以生成防欺诈并用它来挑战Rollup(汇总)。这将导致链回滚并忽略无效块。这只有在数据可用的情况下才有可能。目前,数据以 CALLDATA
形式永久可用,永久存在于链上。然而,EIP-4844 很快将允许Rollup(汇总)将其交易数据发布到更便宜的 Blob 存储中。这不是永久存储。在从以太坊第 1 层删除数据之前,独立验证者必须在大约 1-3 个月内查询 Blob 并提出挑战。数据可用性仅由以太坊协议在较短的固定窗口内保证。之后,它就成为以太坊生态系统中其他实体的责任。任何节点都可以使用 DAS 验证数据可用性,即通过下载 Blob 数据的小型随机样本。
零知识汇总(ZK Rollup)不需要发布交易数据,因为零知识有效性证明保证了状态转换的正确性。然而,数据可用性仍然是一个问题,因为如果不访问其状态数据,我们就无法保证 ZK-rollup 的功能(或与其交互)。例如,如果操作员隐瞒有关Rolllup(汇总)状态的详细信息,用户将无法知道他们的余额。此外,它们无法使用新添加的块中包含的信息执行状态更新。
如前所述,Optimistic Rollup将交易数据以 calldata
形式发布到以太坊。由于 rollup 链的执行基于提交的交易,因此任何人都可以使用锚定在以太坊基础层上的这些信息来执行 rollup 的状态并验证状态转换的正确性。
数据可用性至关重要,因为如果无法访问状态数据,挑战者就无法构建欺诈证明来质疑无效的rollup操作。通过以太坊提供数据可用性,Rollup 操作者进行恶意行为而逃脱惩罚(例如提交无效块)的风险降低了。
2.抵制审查制度(Censorship resistance)
Optimistic rollups还依赖以太坊来抵抗审查。在Optimistic rollups中,中心化实体(运营商)负责处理交易并向以太坊提交Rollup(汇总)区块。这有一些含义:
Rollup 运营商可以通过完全离线或拒绝生成包含某些交易的区块来审查用户。
Rollup 运营商可以通过扣留 Merkle(默克尔) 所有权证明所需的状态数据来阻止用户提取存入 Rollup 合约中的资金。保留状态数据还可以向用户隐藏汇总的状态,并阻止他们与Rollup(汇总)交互。
Optimistic rollups通过迫使运营商在以太坊上发布与状态更新相关的数据来解决这个问题。在链上发布 Rollup 数据有以下好处:
如果Optimistic rollups算子离线或停止生成交易批次,另一个节点可以使用可用数据来重现汇总的最后状态并继续块生产。
用户可以使用交易数据创建 Merkle 证明来证明资金所有权,并从汇总中提取资产。
用户还可以在 L1 上提交交易,而不是提交给定序器,在这种情况下,定序器必须在一定的时间限制内包含交易才能继续生成有效的块。
3.沉降(Settlement)
以太坊在optimistic rollups的背景下扮演的另一个角色是结算层。结算层锚定整个区块链生态系统,建立安全性,并在另一条链(在本例中为optimistic rollups)上发生需要仲裁的争议时提供客观的最终结果。
以太坊主网提供了一个optimistic rollups的中心,以验证欺诈证据并解决争议。此外,只有在以太坊接受 rollup 区块后,在 rollup 上进行的交易才是最终的。一旦rollup交易被提交到以太坊的基础层,它就无法回滚(除了极不可能发生的链重组情况)。
OPTIMISTIC ROLLUPS如何运作?
交易执行和聚合(Transaction execution and aggregation )
用户将交易提交给“操作者”,“操作者”是负责处理OPTIMISTIC ROLLUPS上的交易的节点。也称为“验证器”或“聚合器”,运营商聚合交易,压缩底层数据,并在以太坊上发布区块。
尽管任何人都可以成为验证者,但OPTIMISTIC ROLLUPS验证者必须在生成区块之前提供保证金,就像权益证明系统(POS)一样。如果验证者发布无效区块或建立在旧但无效的区块上(即使他们的区块有效),则该保证金可能会被削减。通过这种方式,OPTIMISTIC ROLLUPS利用加密经济激励来确保验证者诚实行事。
OPTIMISTIC ROLLUPS链上的其他验证器预计将使用其Rollup状态副本执行提交的交易。如果验证者的最终状态与运营商提出的状态不同,他们可以发起挑战并计算欺诈证明。
一些OPTIMISTIC ROLLUPS可能会放弃无需许可的验证器系统,并使用单个“定序器”来执行链。与验证器一样,排序器处理交易,生成Rollup(汇总)块,并将汇总交易提交到 L1 链(以太坊)。
排序器与常规Rollup(汇总)运算符不同,因为它们对事务的排序有更大的控制权。此外,排序器可以优先访问 Rollup 链,并且是唯一被授权向链上合约提交交易的实体。来自非定序器节点或普通用户的事务只是在单独的收件箱中排队,直到定序器将它们包含在新批次中。
向以太坊提交汇总区块(Submitting rollup blocks to Ethereum)
如前所述,OPTIMISTIC ROLLUPS的运营商将链外交易捆绑成一批,并将其发送到以太坊进行公证。此过程涉及压缩交易相关数据并将其作为 calldata
发布在以太坊上。
calldata
是智能合约中不可修改、非持久的区域,其行为大多类似于内存。而 calldata
作为区块链历史日志的一部分保留在链上,它不存储为以太坊状态的一部分。由于 calldata
不触及以太坊状态的任何部分,因此在链上存储数据更便宜。
calldata
关键字也在 Solidity 中用于在执行时将参数传递给智能合约函数。 calldata
标识事务期间调用的函数,并以任意字节序列的形式保存函数的输入。
在optimistic rollup的情况下, calldata
用于将压缩的交易数据发送到链上合约。 rollup 运算符通过调用 rollup 合约中所需的函数并将压缩数据作为函数参数传递来添加新批次。使用 calldata
可以降低用户费用,因为rollup(汇总)产生的大部分成本来自于链上存储数据。
Rollup(汇总)批次提交的示例以展示此概念的工作原理。定序器调用 appendSequencerBatch()
方法并使用 calldata
将压缩的交易数据作为输入传递。
状态承诺(State commitments)
在任何时间点,Optimistic Rollup 的状态(账户、余额、合约代码等)都被组织为称为“状态树”的 Merkle 树。该 Merkle 树的根(状态根)引用 rollup 的最新状态,经过哈希处理并存储在 rollup 合约中。链上的每个状态转换都会产生一个新的rollup状态,操作员通过计算新的状态根来提交该状态。
运营商在过帐批次时需要同时提交旧状态根和新状态根。如果旧状态根与链上合约中现有的状态根匹配,则后者将被丢弃并替换为新状态根。
Rollup操作员还需要为事务批次本身提交 Merkle 根。这允许任何人通过提供 Merkle 证明【6】来证明批次中包含交易(在 L1 上)。
状态承诺,尤其是状态根,对于证明optimistic rollup中状态更改的正确性是必要的。Rollup合约在发布后立即接受来自操作员的新状态根,但稍后可以删除无效的状态根以将Rollup(汇总)恢复到正确的状态。
欺诈证明(Fraud proving)
正如所解释的,optimistic rollup允许任何人在不提供有效性证明的情况下发布区块。然而,为了确保链保持安全,optimistic rollup指定了一个时间窗口,在此期间任何人都可以对状态转换提出异议。因此,汇总块(rollup blocks)被称为“断言(assertions)”,因为任何人都可以质疑其有效性。
如果有人对断言提出异议,则汇总协议(rollup protocol)将启动欺诈证明计算。每种类型的欺诈证明都是交互式的——有人必须先发表断言,然后另一个人才能质疑它。区别在于计算欺诈证明需要多少轮交互。
单轮交互式证明方案在 L1 上重播有争议的交易以检测无效断言。 Rollup 协议使用验证者合约模拟 L1(以太坊)上有争议的交易的重新执行,并通过计算出的状态根确定谁赢得了挑战。如果挑战者关于Rollup正确状态的声明是正确的,则运营商将受到削减保证金的惩罚。
然而,在 L1 上重新执行交易以检测欺诈需要发布单个交易的状态承诺,并增加必须在链上发布的数据汇总。重放交易也会产生大量的gas成本。由于这些原因,optimistic rollup正在转向多轮交互式证明,从而以更高的效率实现相同的目标(即检测无效的汇总操作)。
多轮交互证明(Multi-round interactive proving )
多轮交互式证明涉及断言者和挑战者之间的来回协议,由 L1 验证者合约监督,最终决定说谎的一方。当 L2 节点对断言提出质疑后,断言者需要将有争议的断言分成相等的两半。在这种情况下,每个单独的断言将包含与其他断言一样多的计算步骤。
然后挑战者将选择它想要挑战的断言。划分过程(称为“二分协议”)持续进行,直到双方对单个执行步骤的断言产生争议。此时,L1 合约将通过评估指令(及其结果)来解决争议,以抓住欺诈方。
断言者需要提供“一步证明”来验证有争议的单步计算的有效性。如果断言者未能提供一步证明,或者 L1 验证者认为证明无效,则他们将输掉挑战。
关于此类欺诈证明的一些注意事项:
- 多轮交互式欺诈证明被认为是有效的,因为它最大限度地减少了 L1 链在争议仲裁中必须完成的工作。 L1 链不需要重播整个交易,只需要重新执行 rollup 执行中的一个步骤。
- 二分协议减少了链上发布的数据量(无需为每个交易发布状态提交)。此外,optimistic rollup交易不受以太坊 Gas 限制的限制。相反,重新执行交易的乐观汇总必须确保 L2 交易具有较低的 Gas 限制,以模拟其在单个以太坊交易中的执行。
- 恶意断言者的债券的一部分被奖励给挑战者,而另一部分则被烧毁。销毁可以防止验证者之间的串通;如果两个验证者串通发起虚假挑战,他们仍然会丧失相当大一部分的全部权益。
- 多轮交互证明需要双方(断言者和挑战者)在指定的时间窗口内做出动作。如果在截止日期之前未能采取行动,违约方将放弃挑战。
为什么欺诈证明对于optimistic rollup很重要
欺诈证明很重要,因为它们促进了optimistic rollup中的去信任最终性。无需信任的最终性是一种optimistic rollup的质量,可以保证交易(只要它有效)最终会得到确认。
恶意节点可以通过启动错误挑战来尝试延迟有效汇总块(rollup block)的确认。然而,欺诈证明最终将证明汇总区块的有效性并使其得到确认。
这也与optimistic rollup的另一个安全属性有关:链的有效性依赖于一个诚实节点的存在。诚实的节点可以通过发布有效断言或质疑无效断言来正确推进链。无论如何,与诚实节点发生纠纷的恶意节点将在欺诈证明过程中失去其权益。
L1/L2 互操作性
Optimistic rollup旨在与以太坊主网实现互操作性,并允许用户在 L1 和 L2 之间传递消息和任意数据。它们还与 EVM 兼容,因此您可以将现有 dapp 移植到 optimistic rollups 或使用以太坊开发工具创建新的 dapp。
-
资产流动(Asset movement)
进入Rollup,要使用optimistic rollup,用户将 ETH、ERC-20 代币和其他接受的资产存入 L1 上Rollup的桥接合约中。桥梁合约将把交易转发到 L2,在那里铸造等量的资产并将其发送到用户在optimistic rollup上选择的地址。
用户生成的交易(如 L1 > L2 存款)通常会排队,直到排序器将它们重新提交到Rollup合约。然而,为了保持审查制度的抵抗力,optimistic rollup允许用户在交易延迟超过允许的最大时间时直接向链上Rollup合约提交交易。
一些optimistic rollup采用更直接的方法来防止排序器审查用户。这里,一个区块是由自上一个区块以来提交给 L1 合约的所有交易(例如存款)以及在Rollup链上处理的交易来定义的。如果定序器忽略 L1 事务,它将发布(可证明)错误的状态根;因此,一旦用户生成的消息发布到 L1 上,定序器就无法延迟。
退出Rollup,由于欺诈证明方案,从optimistic rollup中撤回以太坊变得更加困难。如果用户发起 L2 > L1 交易以提取 L1 上托管的资金,他们必须等到挑战期过去。然而,提款过程本身相当简单。
在 L2 Rollup 上发起提现请求后,该交易将被纳入下一批,同时用户在 Rollup 上的资产将被销毁。一旦该批次在以太坊上发布,用户就可以计算 Merkle 证明,验证其退出交易是否包含在区块中。然后就是等待延迟期完成 L1 上的交易并将资金提取到主网。
为了避免在将资金提取到以太坊之前等待一周,Optimistic Rollup 用户可以聘请流动性提供者(LP)。流动性提供者承担待处理的 L2 提款的所有权,并在 L1 上向用户付款(以换取费用)。
流动性提供者可以在释放资金之前检查用户提款请求的有效性(通过自己执行链)。这样他们就可以保证交易最终会得到确认(即无需信任的最终性)。
-
EVM兼容性(EVM compatibility)
对于开发人员来说,optimistic rollup的优势在于它们与以太坊虚拟机 (EVM) 的兼容性,或者更好的是等效性。 EVM 兼容的 Rollups 符合以太坊黄皮书中的规范
Optimistic Rollup 中的 EVM 兼容性具有以下优点:
1.开发人员可以将以太坊上现有的智能合约迁移到 Optimistic Rollup 链,而无需大量修改代码库。这可以节省开发团队在 L2 上部署以太坊智能合约时的时间。
2.使用Optimistic Rollup的开发人员和项目团队可以利用以太坊的基础设施。这包括编程语言、代码库、测试工具、客户端软件、部署基础设施等。
3.使用现有工具很重要,因为多年来这些工具已经过广泛的审核、调试和改进。它还消除了以太坊开发人员学习如何使用全新的开发堆栈进行构建的需要。
-
跨链合约调用(Cross-chain contract calls)
用户(外部拥有的账户)通过向Rollup合约提交交易或让排序器或验证器为他们执行此操作来与 L2 合约进行交互。Optimistic Rollup还允许以太坊上的合约账户使用桥接合约与 L2 合约进行交互,以在 L1 和 L2 之间中继消息和传递数据。这意味着您可以在以太坊主网上编写 L1 合约来调用属于 L2 Optimistic Rollup合约的函数。
跨链合约调用是异步发生的——这意味着调用首先发起,然后在稍后执行。这与以太坊上两个合约之间的调用不同,在以太坊上,调用会立即产生结果。
跨链合约调用的一个例子是前面描述的代币存款。 L1 上的合约托管用户的代币,并向配对的 L2 合约发送消息,以在Rollup上铸造等量的代币。
由于跨链消息调用导致合约执行,发送者通常需要支付计算所需的 Gas 费用。建议设置较高的 Gas 限制,以防止交易在目标链上失败。跨链桥就是一个很好的例子;如果交易的 L1 端(存入代币)有效,但 L2 端(铸造新代币)由于 Gas 不足而失败,则押金将无法收回。
最后,我们应该注意合约之间的 L2 > L1 消息调用需要考虑延迟(L1 > L2 调用通常在几分钟后执行)。这是因为从Optimistic Rollup发送到主网的消息在挑战窗口到期之前无法执行。
OPTIMISTIC ROLLUP费用如何运作?
Optimistic rollup使用类似于以太坊的Gas费方案来表示用户为每笔交易支付的费用。Optimistic rollup收取的费用取决于以下组成部分:
-
状态写入(State write)
Optimistic rollup将交易数据和块头(由前一个块头哈希、状态根、批次根组成)发布到以太坊,作为
calldata
。以太坊交易的最低成本为 21,000 Gas。Optimistic rollup可以通过在单个区块中批量处理多个交易来降低将交易写入 L1 的成本(这将 21k 的 Gas 分摊到多个用户交易上)。 -
calldata
calldata
:除了基本交易费用之外,每个状态写入的成本取决于发布到 L1 的calldata
的大小。calldata
成本目前受 EIP-1559 管辖,其中规定calldata
的非零字节的成本为 16 个gas,零字节的成本为 4 个gas。为了降低用户费用,Rolllup运营商压缩交易以减少在以太坊上发布的calldata
字节数。 -
L2 运营商费用(L2 operator fees)
这是支付给Rollup节点的金额,作为处理交易中产生的计算成本的补偿,就像以太坊上的Gas费一样。 Rollup 节点收取较低的交易费用,因为 L2 具有更高的处理能力,并且不会面临网络拥塞,迫使以太坊上的验证者优先处理费用较高的交易。
Optimistic rollup应用多种机制来降低用户费用,包括批量交易和压缩 calldata
以降低数据发布成本。您可以查看 L2 费用追踪器实时概览使用基于以太坊的Optimistic rollup的成本。
OPTIMISTIC ROLLUP如何扩展以太坊?
正如所解释的,Optimistic rollup在以太坊上发布压缩的交易数据以保证数据可用性。压缩链上发布的数据的能力对于通过Optimistic rollup扩展以太坊的吞吐量至关重要。
以太坊主链对数据块可以容纳的数据量进行了限制,以 Gas 单位计价(平均块大小为 1500 万个 Gas)。虽然这限制了每笔交易可以使用的 Gas 量,但这也意味着我们可以通过减少交易相关数据来增加每个区块处理的交易量,从而直接提高可扩展性。
Optimistic rollup使用多种技术来实现事务数据压缩并提高 TPS 比率。例如这篇文章比较基本用户交易(发送以太币)在主网上生成的数据与同一交易在Rollup上生成的数据量:
对这些数字进行一些粗略计算可以帮助显示Optimistic rollup带来的可扩展性改进:
- 每个区块的目标大小是 1500 万个 Gas,验证一个字节的数据需要花费 16 个 Gas。将平均区块大小除以 16 Gas (15,000,000/16) 显示平均区块可以容纳 937,500 字节的数据。
- 如果基本Rollup交易使用 12 个字节,则平均以太坊区块可以处理 78,125 个Rollup交易 (937,5000/12) 或 39 个Rollup批次(如果每个批次平均容纳 2,000 个交易)。
- 如果以太坊每 15 秒生成一个新区块,那么Rollup的处理速度将达到每秒大约 5,208 笔交易。这是通过将以太坊区块可以容纳的基本Rollup交易数量(78,125)除以平均区块时间(15 秒)来完成的。
这是一个相当乐观的估计,因为Optimistic rollup交易不可能包含以太坊上的整个区块。然而,它可以粗略地了解Optimistic rollup可以为以太坊用户提供多少可扩展性增益(当前实现提供高达 2,000 TPS)。
以太坊上数据分片的引入预计将提高Optimistic rollup的可扩展性。由于Rollup交易必须与其他非Rollup交易共享区块空间,因此它们的处理能力受到以太坊主链上数据吞吐量的限制。 Danksharding 将增加 L2 链可用于发布每个块数据的空间,使用更便宜的、临时的“blob”存储而不是昂贵的永久 CALLDATA
。
Optimistic rollup的优点和缺点
优点 | 缺点 |
---|---|
在不牺牲安全性或免信任性的情况下大幅改进可扩展性。 | 由于潜在的欺诈挑战而导致交易最终延迟。 |
交易数据存储在第一层链上,提高了透明度、安全性、抗审查性和去中心化性。 | 集中式Rollup运算符(排序器)可以影响事务排序。 |
欺诈证明保证了不可信的最终性,并允许诚实的少数群体确保链的安全。 | 如果没有诚实的节点,恶意操作者可以通过发布无效区块和状态承诺来窃取资金。 |
计算欺诈证明对常规 L2 节点开放,与需要特殊硬件的有效性证明(在 ZK-rollups 中使用)不同。 | 安全模型依赖于至少一个诚实节点执行汇总交易并提交欺诈证明以挑战无效的状态转换。 |
Rollup 受益于“无需信任的活跃性”(任何人都可以通过执行交易和发布断言来强制链前进) | 用户必须等待挑战期结束才能将资金提取回以太坊。 |
Optimistic rollup依赖于精心设计的加密经济激励措施来提高链上的安全性。 | Rollup 必须将所有交易数据发布到链上,这会增加成本。 |
与 EVM 和 Solidity 的兼容性允许开发人员将以太坊原生智能合约移植到 rollups 或使用现有工具创建新的 dapp。 |
使用Optimistic rollup
目前有多个基于Optimistic rollup的Layer2网络可以供我们使用。
参考资料
3.https://ethereum.org/en/developers/docs/scaling/optimistic-rollups/
4.https://www.wxbuluo.com/article/129.html