从保证交易顺序开始到保证交易执行,在用户可认为一笔交易完成之前有几个不同的阶段。我们以用户将交易提交到序列器为例(也可能是通过其他的节点)。
-
A)序列器已经排好顺序并确认了该交易,但还没有批量打包发布在L1上。如果用户相信序列器,则他在此刻就可以认为该交易已经具有最终性了,不过恶意的序列器仍可以违背该最终性。未来我们会加入一层加密经济学安全层,通过质押和惩罚来震慑作恶的序列器。
-
B)序列器已经向L1提交了批次交易。此刻,序列器并没有任何特殊能力(假设该批次交易没有被L1拒绝的话),也不需要任何信任了。对于那些不信任序列器的用户而言,他们的交易已经被L1上的批次交易所确认了。
根据『一诚则诚原则』,只要顺序确定了,交易的结果也就确定了。
-
C)验证者发布包含用户交易的断言;注意,验证者没有能力来审查或排除你的交易(他们只能不断添加后续交易)也没有能力进行重排序。其他验证者也可以在该断言上质押。在此,如果用户相信某个验证者(或他自己就是验证者),该交易可以认为是被完全确认了。
-
D)7天挑战期结束后,断言也就确认了。在此,交易结果被永久锁定在L1上。
大部分用户只需要等待序列器的确认即可(假设序列器是善意的)。在Arbitrum启动时我们会来运行序列器,日后会将序列器变为更去中心化的有惩戒措施的方案。相信序列器对用户而言风险较低。
对于那些对安全有更高需求的用户,可等待序列器提交批次交易。目前是每隔一小时一次,不过在主网上线后会变为每15分钟或更短时间一次。批次之间的时间间隔需要能足够摊薄提交批次的成本。有点像中心化交易所提现时,会将多个交易打包集中处理。
另外,用户永远都有自己提交交易的能力以摆脱对序列器的依赖(也就是在上方流程中没有A和B)。在这种情况下,该交易会在序列器提交其下一个交易后或协议强制规定时间结束后(主网为24小时),验证者会将该交易纳入队列。一般而言,用户应该不太需要通过这种方式进行交易,但该方法也是Arbitrum抗审查能力的保障,即使在序列器宕机的情况下也可以交易。
在交易排序锁定后,交易的结果是完全确定的。假设有一位验证者来保护rollup的正确性,你就可以认为你的交易已经尘埃落定了。唯一重要的事情就是,在断言确认后,其包含的提现请求也具备了最终性,可以提走了。