Foresight News

Posted on Nov 15, 2023Read on Mirror.xyz

漫谈 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 采样。