漫谈 TTF,一笔 Rollup 交易多久才能最终确定?
TTF(time to finality),是指一个交易信号从开始广播到到达最终状态所花费的时间。
原文标题:A tweet on rollup time-to-finality (TTF)
原文作者:@larry0x
原文来源:twitter
首先,什么是 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 来说,时间是证明者生成并发布有效性证明后。
关于【漫谈 TTF,一笔 Rollup 交易多久才能最终确定?】的延伸阅读
加密杂谈:对RaaS和Eigenlayer的一些看法
本文讨论了加密货币领域的热门话题,包括Rollup技术、Restaking、LRT、AVS和Eigenlayer。作者认为目前情况并不乐观,团队进展缓慢,Rollup部署过多也不利。对于Restaking、LRT、AVS和Eigenlayer的不满,存入ETH数量巨大,但空投效果不佳。团队发布庞大白皮书,但工作原理和概念仍不清楚。Eigenlayer决定暂不启用惩罚机制,但是否有必要为每个新兴协议提供近十亿美元的用户Restaking ETH并面临风险?惩罚机制将在不到一年内启用,操作者是否意识到Restaking风险?或许会有其他平台蚕食Eigenlayer的市场份额。
详解 OP Stack Rollup 流程及对应代码
Optimism Bedrock是当前版本的OP Stack,提供了启动生产质量的Optimistic Rollup区块链的工具。它包括op-batcher和op-proposer两个服务,负责从sequencer读取交易内容并rollup到链上,以及将交易状态rollup到合约。文中介绍了如何使用recordL1Tip和l1Tip来获取最新的L1BlockRef,以及如何收集和提交交易数据。每个事务仅使用一帧,如果通道已满,则仅返回剩余帧,直到成功发送到L1。sendTransaction将交易发送到一层,并更新交易发送状态。FetchNextOutputInfo获取L2上的区块output,NextBlockNumber获取下一批次需要提交的区块区间,SyncStatus获取L2块的状态和块信息,OutputAtBlock根据块高获取output,sendTransaction使用output构建stateRoot提交交易到一层链。
如果我们表示:
- 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 采样。
免责声明:本文仅代表作者个人观点,不代表链观CHAINLOOK立场,不承担法律责任。文章及观点也不构成投资意见。请用户理性看待市场风险,以及遵守所在国家和地区的相关法律法规。
图文来源:@larry0x,如有侵权请联系删除。转载或引用请注明文章出处!