本文作者:Patrick McCorry;编译:Cointime Freya
rollup交易分为三个阶段,它逐渐成为结算的、最终的和不可逆转的。
我们在rollup的背景下探讨了一个有趣的问题:
交易的最终性 → rollup交易是什么时候被认为是最终的和不可逆转的?
与等待X次确认的工作量证明区块链的最终一致性,或以太坊的权益证明协议相比,rollup中的最终性存在很大的不同,rollup将在连续两次超级多数投票(epoch)后完成交易。
在rollup中,对交易最终性的追求分为三个阶段:
- 排序者的承诺 → 排序者向用户承诺,交易将按照预期排序和执行;
- 秩序最终确定性 → 用户的交易相对于所有其他交易有一个最终的秩序;
- 执行结算 → 桥梁智能合约确信用户交易的最终执行。
我们的文章将重点介绍上述的三个阶段,以及交易在每个阶段中的进展情况。在进一步深入研究之前,Optimistic Rollups和Validity Rollups的交易最终确定性是相同的,或者至少这两种类型的Rollup都可以利用它。
排序者的承诺
在高层次上,交易的生命周期始于用户在将交易传递给排序者之前使用数字签名对其进行授权。
排序者可以通过以下方式作出回应:
- 他们交易的预测执行;
- 一个承诺,即当交易被结算为最终交易时,这个执行将保持不变。
这个承诺是可能的,因为排序者是唯一拥有所有待处理交易列表的一方。他们有权在传递交易之前决定如何对交易进行排序。因此,只有排序者知道链下数据库的待处理状态。
我们称其为承诺,因为排序者可以决定向用户返回一个无效的响应并忽略该事务。
rollup可以通过两种方式帮助抵御恶意和说谎的排序者:
- 签名收据。排序者可能必须返回带有其数字签名的收据,这可能会被用来削减/惩罚他们对用户撒谎。
- 强制包容。用户可以绕过排序者,将他们的交易提交给桥梁智能合约。
虽然排序器的作用是为决定交易执行的最终顺序提供一条快速通道,但这并不是他们唯一的决定权。最终要由桥梁智能合约来决定所有未处理交易的最终顺序。
也就是说,只要能够及时发布(Arbitrum约24小时),桥梁将优先处理由排序者提出的那批交易。
交易顺序的最终性
数据可用性:数据项在某个时间点发布,所有在线方都可以获取。
在rollup的情况下,向桥梁智能合约发布一批交易的行为,使所有诚实的用户、执行者和其他排序者能够获取交易列表。
新的一批交易应该被附加到rollup的规范交易链上。任何一方都可以针对它们本地的数据库副本执行新的交易,并计算出链下数据库的新状态。这是一个确定性的过程,所有各方都应该得出相同的状态。
正如我们稍后将看到的那样——只要您能够相信一个诚实的一方会加强并执行结算,那么就有可能在仅依赖于订单最终确定性的桥梁上构建协议。
请注意,一些汇总会绕过此阶段,因为 Sequencer 将交易直接发送给 Executors,这样做有利也有弊,我们在此不做讨论。
执行结算
执行结算的唯一目的是说服智能合约,而不是外部各方或共识协议,最终执行所有有序交易。
毕竟,在这个时间点上:
- Bridge已下令执行所有交易;
- 包括用户在内的任何人,都可以计算出预期数据库的副本。
最终确定性的的层次
这就把我们带到了rollup的一个最有趣的方面。
它将排序交易和计算其预期执行的过程分开:
- 首先进行排序。各方都可以确定相同的交易列表,并在本地计算出链下数据库的新状态。
- 延迟执行。 整个过程的重点是在执行有序交易后,说服桥接智能合约了解数据库的新状态。
订购和执行之间的时间延迟可可能会很长。例如,如果我们考虑交易批次被发送到桥梁智能合约的频率,那么在撰写本文时,在Arbitrum和Optimism上是每30秒发送一次。
分离流程允许任何人在使用桥接智能合约解决执行之前确定性地计算数据库状态。
因此,订单的最终最终确定性可以在10分钟内确定,但执行结算可能至少需要2周的时间。
这就引出了本文的关键要点:
下单后交易和结算前交易。只要你可以相信一个诚实的一方会加强并使用桥接智能合约执行最终的执行结算,那么代理就可以在最终排序后对未处理的数据库状态采取行动。
假设一个用户想要快速从以太坊的rollup中提取资金,那么需要三个步骤:、
- 用户发送资金+费用。用户可以挑选一个流动性提供者(LP),并发出将资金转移到LP的交易。该交易在rollup中得到确认,它将把资金发送到以太坊上的一个特殊仲裁合同。
- LP等待订单的最终确定。LP将等待rollup交易实现订单的最终性,然后决定在以太坊上发送用户资金。
- LP或用户获得资金。用户的资金将在执行结算时到达仲裁合约。如果LP已经向用户支付了资金,仲裁合约将向LP发送资金,或者如果LP未能履行其职责,它将在L1上退还用户的资金。
在上述例子中,用户可以乐观地在<10分钟内收到LP的资金,而LP将有信心在约2周的时间内偿还资金。如果出现问题且LP未履行职责,则将在约2周后偿还用户的资金。
总而言之,任何直接向桥梁智能合约发布交易数据的rollup都可以实现交易的最终性。
我们已经提到了Arbitrum和Optimism支持订单最终确定性,但我也知道Scroll、Polygon Hermez和潜在的ZkSync也已经实现了它
大多数讨论都集中在Optimistic Rollups如何利用订单最终确定性,来绕过执行结算延迟(约2周)。
但是,它对于有效性rollup同样有用,因为用户可以在订单执时就假定它是最终交易。这为执行者提供了回旋的余地,可以等待有序交易rollup起来,然后再将有效性证明放在一起进行执行结算。
*本文由CoinTime整理编译,转载请注明来源。
所有评论