漫谈 TTF,一笔 Rollup 交易多久才能最终确定?
TTF(time to finality),是指一个交易信号从开始广播到到达最终状态所花费的时间。
原文标题:《A tweet on rollup time-to-finality (TTF)》
撰文:@larry0x
编译:Frank,Foresight News
首先,什么是 TTF,为什么它很重要?
最终性是交易永远不能被取消、恢复或修改的状态,也即被视为已解决对应的交易问题。
TTF(time to finality)是一个交易信号从开始广播到到达最终状态所花费的时间,以下是几个选定链的 TTF:
TTF 是一个具有多种用途的重要参数:
如果我是一个接受加密货币支付的商家,我想在交付商品或服务之前等待 TTF,以便我知道付款不会被取消。
如果我是跨链桥接协议,并且发送方链上提交了一个数据包,我想在将其中继到接收方链之前等待 TTF。
……
其次,Rollups
Rollup 区块的生命周期有 2 个阶段:
(1)其数据被发布到数据可用性(DA)层;
(2)在结算层证明有效;
值得注意的是,TTF 对于 Rollup 链的全节点和轻节点是不同的:
对于前者,他们不需要等待 (2) 结算,因为只要 (1) 中发布区块数据,他们就可以立即自己验证有效性;
对于后者,他们确实需要等待结算过程;
在结算层证明阶段,有两种类型的 Rollups,具体取决于他们使用的机制:
Validity Rollups(又名 zero-knowledge rollups,zkRUs)。在排序器生成一个区块之后,证明者(通常是与排序器相同的人)提交一个有效性证明,通过一些加密魔法证明该区块是有效的。
Optimistic Rollups(opRUs)。排序器生成了区块,但并不证明它是有效的。如果它实际上无效,任何人(证明者)都可以提交欺诈证明来挑战它,这会导致区块被拒绝。如果没有人证明某个区块在一段时间内(称为争议期)无效,则该区块被视为有效。
注:我不喜欢 zkRU 这个词,因为很多这样的证明系统实际上不是零知识技术,所以「Validity Rollup」是更准确的术语。然而,「zkRU」的使用是如此普遍,所以我就用它。
还有一些重要的事情需要了解:
实际上,区块数据通常不会在区块生成后立即发布到 DA 层。排序器通常会稍等一下,然后批量发布几个区块(可能是为了节省 Gas 费);
有效性证明也经常被延迟,通常是因为生成这些证明的计算量很大并且需要时间;
有效性和欺诈证明不仅在链上传播。例如,如果有人向我发送链下有效性证明,我可以确定该区块是有效的,而无需等待(2)链上结算过程。
最后,我们准备讨论 Rollup 交易需要多长时间才能达到最终结果。
对于全节点而言,过程很简单:只要区块 (1) 被发布并在 DA 层上完成,那么它就被最终确定。
如果我们表示:
T1:区块发布在 DA 层上的频率(例如,如果排序器每 10 分钟在 DA 层上发布一批,则 T1 = 10 分钟 )
T2:DA 层的 TTF
那么 Rollup 的 TTF = T1 + T2。
对于轻节点,他们必须等待 (1) 和 (2) 完成。对于 opRU,(2)的时间为挑战期;对于 zkRU 来说,时间是证明者生成并发布有效性证明后。
如果我们表示:
T3:对于 opRU,挑战期;
T4:对于 zkRU,有效性证明发布在结算层的时间;
T5:结算层的 TTF;
然后是 Rollup 的 TTF:
对于 opRU:max (T1+T2, T3);
对于 zkRU:max(T1+T2,T4+T5);
这些方程中的「最大值」意味着我们需要等待 DA 和结算过程完成,以时间较长者为准(几乎总是结算)。
现在,问题来了!请记住,我们说过证明也可以在链下传播。对于 zkRU,如果我们在链下收到有效性证明,那么我们可以立即说交易已完成,而无需等待链上结算过程。
对于 opRU 来说,这很难说。挑战期(T3)往往较长的原因是担心结算层可能审查欺诈证据。所以这实际上取决于你的风险承受能力。如果您非常有信心结算层不会审查交易,您可以选择等待更短的时间。否则你会等待更长的时间,但你不必等待比 T3 更长的时间。
让我们总结一下:
这里有两个实际案例,Arbitrum 和 zkSync。他们使用以太坊进行 DA 和结算,所以 T2 = T5 = 13 分钟。
Arbitrum 的排序器大约每 T1= 6 分钟发布一次数据,Arbitrum 的挑战期 T3= 1 周;
zkSync 的排序器大约每 T1= 3 分钟发布一次数据,证明不定期发布,但平均一次 T4 = 1 小时;
我们还可以考虑一个假设的 zkRU,它使用 Celestia 进行 DA,我认为这更接近最终结果:
T1 = 0(Celestia 很便宜,所以我们假设区块在生成后立即发布);
T2 = 12 秒;
T4 = 证明生成时间,取决于证明系统;
最后,简要讨论下这一切的含义
如您所知,我是 Cosmos 的粉丝,IBC 使用轻节点客户端来验证数据包,因此需要等待 TTF,如上图「For light nodes」一栏所示。
对于 opRU,这可能长达 1 周(如果您对以太坊的审查阻力不太有信心),这对于实际目的来说太长了。这就是为什么对于 opRU,我们必须使用全节点桥,例如 Axelar 和 Wormhole,它们由一堆运行全节点的运营商组成。
缺点是我们需要信任这个运营商集合,它在经济上可能不如发送者链安全,这就是我看空 opRU 的原因。
对于普通的 zkRU,我们只需要等待 DA 最终确定(在以太坊上为 16 分钟)+ 证明生成时间,我们不需要等待证明在以太坊上发布——这是相对 opRU 的主要优势!
这也是我认为 Celestia 可以改善 Rollup 跨链体验的一种方式。在以太坊上,我们只等待 12 秒 + 证明生成时间,而不是等待 16 分钟。轻节点客户端可以使用 QGB 检查来自 Celestia 验证器的证明(我猜测它现在已重命名为 Blobstream),或者也可能进行 DA 采样。