一笔Rollup交易究竟要多久才能“最终确定”?
探讨TTF:一笔 Rollup 交易需要多长时间才能最终确认?
关于TTF讨论:一笔Rollup交易需要多长时间才能最终确认?
TTF是啥,咋就这么重要了?
最终性,不是指你在桃花源里的那个状态,而是指交易一旦完成,就没人能取消、篡改或破坏。那交易一旦发布出来,它到达最终状态需要多长时间呢?这就是 TTF(time to finality)的定义。
TTF有非常多的应用场景,比如:
- 你是一个接受加密货币支付的商家,你想在把货发出去之前等待TTF,保证付款不会被取消;
- 你是一个跨链桥接协议,发送链提交了一个数据包,你想在将其转发到接收链之前等待TTF;
- …
先了解一下Rollups
Rollup区块的生命周期有两个阶段:
- 数据发布到数据可用性(DA)层;
- 结算层证明有效性。
需要注意的是,对于Rollup链上的全节点和轻节点来说,TTF是不同的:
- 对于全节点,他们不需要等待结算,只要数据发布到DA层,他们就可以自己验证有效性;
- 对于轻节点,他们需要等待结算过程。
在结算层证明阶段,有两种类型的Rollup,具体取决于他们使用的机制:
- Validity Rollups(又名零知识Rollups,zkRUs):排序器生成一个区块后,证明者提交一个有效性证明。
- Optimistic Rollups(opRUs):排序器生成一个区块,但不证明它的有效性。如果这个区块实际上是无效的,任何人都可以提交欺诈证明来挑战它,这样区块就会被拒绝。如果在一段时间内没有人证明某个区块是无效的(争议期),那么这个区块将被视为有效。
需要注意的是,尽管有些零知识Rollup实际上并不是使用零知识技术,但是“Validity Rollup”这个术语更准确。不过,“zkRU”这个用法非常普遍,咱就继续用它好了。
还有几个重要的要点:
- 实际上,区块数据通常并非在生成后立即发布到DA层。排序器通常会稍等一会儿,然后批量发布几个区块,可能是为了节省手续费;
- 有效性证明也经常会被延迟,因为生成这些证明的计算量很大,需要时间;
- 有效性和欺诈证明不仅在链上传播,如果有人向我发送链下有效性证明,我可以确定该区块是有效的,而无需等待链上结算过程。
到底要等多久才能最终确定一个Rollup交易?
对于全节点来说,过程非常简单:只要区块被发布并在DA层上完成,那么它就被视为最终确定。
我们定义一下几个参数:
- T1:区块发布到DA层的频率(比如,如果排序器每10分钟发布一批区块到DA层,那么T1 = 10分钟);
- T2:DA层的TTF。
那么,Rollup的TTF = T1 + T2。
对于轻节点来说,他们需要等待数据发布和结算的完成。对于opRU来说,结算时间就是挑战期;对于zkRU来说,结算时间是有效性证明的发布时间。
我们再定义一下几个参数:
- T3:对于opRU,挑战期;
- T4:对于zkRU,有效性证明的发布时间;
- T5:结算层的TTF。
那么,Rollup的TTF为:
- 对于opRU:max(T1+T2, T3);
- 对于zkRU:max(T1+T2, T4+T5)。
这里的“max”意味着我们需要等待DA和结算过程完成,以时间较长的那个为准(通常是结算)。
现在,问题来了!请注意,我们前面说过证明也可以在链下传播。对于zkRU来说,如果我们在链下收到有效性证明,那么我们可以立即说交易已完成,而无需等待链上结算过程。
但是对于opRU来说,就不好说了。挑战期往往很长,因为我们担心结算层可能会审核欺诈证据。所以,这实际上取决于你的风险承受能力。如果你对结算层不会审查交易非常有信心,你可以选择等待更短的时间。否则,你会选择等待更长的时间,但不必等待比T3更长的时间。
让我们总结一下:
这里有两个实际案例,Arbitrum和zkSync。它们都使用以太坊作为数据可用性和结算层,所以T2 = T5 = 13分钟。
- Arbitrum的排序器大约每6分钟发布一次数据,挑战期T3=1周;
- zkSync的排序器大约每3分钟发布一次数据,证明不定期发布,但平均需要1小时(T4)。
我们还可以考虑一个假设的zkRU,它使用Celestia作为数据可用性层,我认为这更接近最终结果:
- T1 = 0(Celestia很便宜,我们假设区块在生成后立即发布);
- T2 = 12秒;
- T4 = 证明生成时间,取决于证明系统。
最后,我们来简要讨论一下这究竟意味着什么
作为一个Cosmos的粉丝,我知道IBC使用轻节点客户端来验证数据包,因此需要等待TTF,就像上图“对于轻节点”一栏所示。
对于opRU来说,这可能长达1周(如果你对以太坊的审核阻力不够自信),这对于实际目的来说太长了。这就是为什么我们必须使用全节点桥,例如Axelar和Wormhole,这些桥由一群运行全节点的操作员组成。
遗憾的是,我们需要相信这些操作员集合,在经济方面可能不如发送链安全,这就是我对opRU持负面看法的原因。
对于普通的zkRU来说,我们只需要等待数据可用性层达到最终状态(在以太坊上是16分钟)+ 证明生成时间,我们不需要等待证明在以太坊上发布——这是与opRU相比的主要优势!
这也是我认为Celestia可以改善Rollup跨链体验的一种方式。在以太坊上,我们只需要等待12秒 + 证明生成时间,而不是等待16分钟。轻节点客户端可以使用QGB检查来自Celestia验证器的证明,或者也可能进行数据可用性的采样。
有了这些信息,现在你知道为什么一笔Rollup交易需要花费那么长时间才能最终确定了吧!你有什么想法或疑问吗?快来和我互动吧!
We will continue to update 算娘; if you have any questions or suggestions, please contact us!
Was this article helpful?
93 out of 132 found this helpful
Related articles