探讨 Rollup 交易 Finality 的层级

Marsbit
媒体专栏
热度: 27186

交易何时成为最终且不可逆转的?

原文标题:Tiers of Transaction Finality for Rollups

原文作者:Patrick McCorry

原文来源:substack

编译:Kate, Marsbit

我们在Rollup的背景下中探索了一个有趣的问题:

交易最终性 → 什么时候Rollup交易被认为是最终且不可逆的?

与等待X次确认的工作量证明区块链的最终一致性或以太坊的权益证明协议相比,Rollup中的最终性非常不同,后者将在连续两次绝对多数投票(epoch)后完成交易。

总的来说,追求交易的最终性有三个阶段:

• Sequencer的承诺 → Sequencer向用户承诺,交易将按照预期进行排序和执行。

• 订单最终性(Order Finality) → 用户的交易相对于所有其他交易有一个最终的顺序。

• 执行结算 → 桥接智能合约确信用户交易的最终执行。

我们的文章主要关注上述三个阶段,以及交易在每个阶段中的进展情况。在深入研究之前,Optimistic Rollup和Validity Rollup的交易的最终确定性是相同的,或者至少这两种类型的Rollup都可以利用它:)

Sequencer的承诺

Rollup

Sequencer是唯一了解链下数据库待定状态的一方,因为他们有权决定/提议待定交易的排序。

在高层次上,交易的生命周期始于用户在将交易传递给Sequencer之前使用数字签名对其进行授权。

Sequencer可以响应:

•交易的预期执行,

•当交易作为最终结算时,此执行将保持的承诺。

这一承诺是可能的,因为Sequencer是唯一拥有所有待处理交易列表的一方。在传递之前,他们有权决定交易的顺序。因此,只有Sequencer才能知道链下数据库的挂起状态。

我们称其为承诺,因为Sequencer可以决定向用户返回无效响应并忽略交易。

Rollup有两种方法可以帮助抵御恶意和撒谎的Sequencer:

•签名的收据。Sequencer可能必须返回带有他们数字签名的收据,这可能会被用来削减/惩罚他们对用户撒谎。

•强行收录。用户可以绕过Sequencer,将交易提交给桥接智能合约。

虽然为决定交易执行的最终顺序提供快速路径是Sequencer的职责,但这并不是他们唯一的决定权。最终由桥接智能合约决定所有未决交易的最终顺序。

话虽如此,只要它及时发布(Arbitrum约24小时),桥将优先考虑由Sequencer提出的批次交易。

交易订单最终确定

Rollup

桥接智能合约决定交易的最终顺序,并授权任何人计算链下数据库的副本

桥接智能合约和底层的区块链,履行了数据可用性层的作用,提供了单一的保证:

数据可用性:数据项在某个时间点发布,所有在线方都可以获取。

在Rollup的情况下,将一批交易发布到桥接智能合约的行为使所有诚实的用户、执行者和其他排序者能够获取交易列表。

新的交易批应该追加到汇总的规范交易链中。任何一方都可以对其本地数据库副本执行新的交易,并为链下数据库计算新的状态。这是一个确定性的过程,所有各方都应该得到相同的状态。

正如我们稍后将看到的那样——只要你能够相信一个诚实的一方会加强并执行执行结算——那么就有可能在仅依赖于订单最终性的桥上构建协议。

注意,当Sequencer将交易直接发送到executor时,一些Rollup绕过了这个阶段,这样做有利弊,我们在这里不讨论。

执行结算

Rollup

最终目标是让智能合约执行有序交易。

执行结算的唯一目的是说服智能合约,而不是外部方或共识协议,最终执行所有有序交易。

毕竟,在这个时间点:

•桥已下令执行所有交易,

•任何人(包括用户)都可以计算预期数据库的副本。

唯一不知道数据库当前状态的是桥接智能合约,因为它缺乏重放和处理所有未决交易的计算资源。

由执行者(Executor)来验证并提出新的数据库状态,并提供有说服力的证据来证明该验证是正确的。Executor可以决定处理一个或多个批次的交易,唯一的约束是执行必须遵守交易的最终顺序。证据可以是欺诈证明,也可以是有效性证明。

执行结算的唯一原因是授权桥接合约执行副作用,包括从链下系统向L1智能合约转移资金或发送消息。只有当桥接器确信相关交易正在执行时,它才能执行副作用

换句话说,桥只有在确信所有交易都有效并正确执行时才会释放资金。

最终结果总结的层次

Rollup

这给我们带来了Rollup中最有趣的一个方面。

它将排序交易的过程和计算其预期的执行分开:

•先下单。各方都可以确定相同的交易列表,并在本地为链下数据库计算新的状态。

•延迟执行。整个过程的重点是在有序交易执行之后,让桥接智能合约相信数据库的新状态。

分离流程允许任何人在使用桥接智能合约解决执行之前确定地计算数据库状态。

下订单和执行之间的时间延迟可能非常大。例如,如果我们考虑将交易批次发送到桥接智能合约的频率,那么在撰写本文时,在Arbitrum和Optimism上是每30秒发送一次。

因此,订单最终结果可以在10分钟内确定,但执行结算可能至少需要2周时间。

这就引出了本文的要点:

下单后结算前交易。只要你相信一个诚实的一方会加强并使用桥接智能合约执行最终的执行结算,那么代理就可以在最终排序后对未结算的数据库状态采取行动。

让我们考虑一个用户想要快速从以太坊的rollup中提取资金,这有三个步骤:

•用户发送资金+费用。用户可以选择一个流动性提供者(LP)并发出将资金转移到LP的交易。这笔交易在rollup中得到确认,它将把资金发送到以太坊的特殊仲裁合约。

•LP等待订单最终确定。LP将等待Rollup交易实现订单最终性,然后决定在以太坊上发送用户资金。

•LP或用户获得资金。用户的资金将在执行结算时到达仲裁合约。仲裁合约将向LP发送资金,如果他们已经支付给用户,或者如果LP未能履行其职责,它将简单地在L1上退还用户的资金。

在上面的例子中,用户可以乐观地在不到10分钟内收到LP资金,LP将有信心在大约2周内偿还资金。如果有问题,LP没有履行他们的职责,那么用户将在大约2周后偿还他们的资金。多令人兴奋啊!

总之,订单最终性可用于任何将交易数据发布到桥智能合约的Rollup。

我们已经提到了Arbitrum和Optimism支持订单最终性,但我也知道Scroll、Polygon Hermez和潜在的ZkSync也实现了它。

大多数讨论都集中在Optimistic Rollup如何利用订单最终确定性来绕过执行结算延迟(约2周)。

但是,它对于有效性rollup同样有用,因为用户可以在交易被下令执行时就假定它是最终交易。这为执行者提供了回旋余地,可以等待有序交易堆积起来,然后再将有效性证明放在一起并结算执行。

只有我的朋友:)

声明:本文为入驻“MarsBit 专栏”作者作品,不代表MarsBit官方立场。
转载请联系网页底部:内容合作栏目,邮件进行授权。授权后转载时请注明出处、作者和本文链接。未经许可擅自转载本站文章,将追究相关法律责任,侵权必究。
提示:投资有风险,入市须谨慎,本资讯不作为投资理财建议。
免责声明:本文不构成投资建议,用户应考虑本文中的任何意见、观点或结论是否符合其特定状况,及遵守所在国家和地区的相关法律法规。