为什么 Based Rollup 需要预确认(Preconfs)技术?
面对当前 Rollup 生态中的流动性割裂问题,Based Rollup 被广泛视为一种有效的潜在解决方案,而预确认则在提升 Based Rollup 用户体验方面起着至关重要的作用。
2020 年 10 月,以太坊联创 Vitalik 发布了「以 Rollup 为中心的以太坊路线图」。截止目前,我们已经处于一个多 Rollup 生态系统中。虽然以太坊 Rollup 路线图带来了改善用户体验等显著优势,但其也引发了一系列新挑战。例如,开发者在面对多样化 Rollup 生态时,常常需要应对碎片化和决策困境。此外,中心化的排序器还带来了交易审查和 MEV 利用等问题,导致部分用户面临不公平的成本或操作体验。
为了解决中心化排序器的问题,目前的主流方案包括共享排序器和 Based Rollup。共享排序器虽然能为多个Layer2 提供统一排序服务,但作为第三方,存在信任和激励机制问题。Based Rollup 通过依赖以太坊 L1 的提议者排序,提升了去中心化程度,但其交易确认时间依赖于以太坊 L1 的区块时间(约 12 秒),无法实现快速确认。
预确认的历史渊源
预确认(Preconfirmations,或称「Preconfs」)可以被理解为「在正式确认前提供可信的预告」。举个简单的例子,当你打电话预约餐厅时,餐厅确认了你的预约。这其实就是一种预确认行为:你还没到餐厅,但是你已经得到了一个可信的承诺,确保在指定时间有位置吃饭,从而可以省去排队的时间去做别的事情。
其实预确认并不是一个新概念。早在比特币发展初期,为了让比特币更易于使用,比特币社区就提出了「0conf」的概念,指的是在比特币网络完全确认交易之前,该交易就可以被视为有效,从而减少交易最终确认的等待时间。2023 年,Uri Klarman 将这一思路引入以太坊,提出了「链式预确认(Chained Preconfirmations)」概念。其核心思想是,未来的预确认者不仅可以预先确认当前的交易,还可以继承之前所有预确认者已经做出的预确认。随后 Primev 进一步探索了这一概念,提出了一种新型的竞价机制「预确认(pre-conf)」,让区块构建者联盟承诺在特定时段内包含某笔交易的最有效方式,允许用户参与预确认竞价。
(Primev 正在构建 mev-commit。mev-commit 是一个专门用于协调 MEV 交易的去中心化平台,通过实时加密承诺和高效的执行出价机制,帮助用户和提供商确保交易的可靠性和速度,适用于需要快速确认和执行的复杂交易场景,如预确认和其他高频交易策略。)
Justin Drake 则进一步推动了这一概念的发展,提出了「Based preconfirmations」的理念。当前 L2 多采用中心化排序器,其最大的优势是可以为用户提供预确认,这个确认表示排序器已经承诺将用户交易包含在未来区块中。不过,该确认并非是一种最终性确认,用户仍可能会遇到交易被重新排序或取消的情况。而 Justin Drake 提出的「Based preconfirmations」机制,目标是提供即时的预确认的同时让 L1 完成去中心化排序(Based Rollup)。
Based preconfirmations 机制的提出与优化
Based Rollup 概念最早由 Vitalik 在 2021 年发布的文章「An Incomplete Guide to Rollups」中提出。在这篇文章中,Vitalik 引入了「Total Anarchy」的概念,描述了一种完全去中心化的环境,在这种环境中,任何人都可以随时提交交易批次(batch),没有任何限制。
2023 年 3 月,Justin Drake 发布了文章「Based rollups—superpowers from L1 sequencing」,进一步明确了 Based Rollup 的概念。当 Rollup 的排序由 L1 驱动时,称其为 Based Rollup 或 L1 排序的 Rollup。在这种架构下,Rollup 区块的生成和排序是通过 L1 上的提议者进行的,L1 的提议者可以与搜索者和构建者合作,将 Rollup 区块直接包含在 L1 区块中。值得注意的是,默认情况下,Based Rollup 区块由 L2 构建者构建。因此,Based Rollup 并不会增加 L1 验证者的负担。
更多关于 Based Rollup 的细节,可以查看
通过将交易排序的责任转移到 L1,Based Rollup 继承了 L1 的安全性和活性,同时优化了 L2 的性能。这种机制带来了许多优势,例如可以减少 L2 的基础设施和运维成本。不过,也存在一些挑战,比如大部分 Based Rollup 的 MEV 收益会流向 L1。但这实际上并不构成问题,因为中心化 Rollup 的主要收入来源于 L2 交易费用和 MEV 机会,前者是主要收入来源,后者则需要大量的基础设施和高昂的维护成本。Based Rollup 保留了 L2 交易费用这一主要收入来源,同时将提议者的角色外包给 L1 构建者,从而减少了基础设施和运维成本。另一个挑战是 Based Rollup 无法实现交易的快速确认。由于 Based Rollup 的交易确认时间完全依赖于以太坊 L1 的区块时间(目前约为 12 秒),这与中心化排序器提供的快速软确认形成了鲜明对比。
为了解决 Based Rollup 中交易确认速度的问题,Justin Drake 在 2023 年 11 月提出了「Based preconfirmations」,通过 Slash 执行的方式为 Based Rollup 提供预确认。在最初的设想中,Justin Drake 提出了两个关键前提,一个是 L1 提议者必须选择加入额外的惩罚条件才能成为预确认者(重质押机制),另一个是 L1 提议者必须能够强制将交易包含在链上(inclusion lists )。
随后,Justin Drake 对该设想进行了优化,允许 Rollup 使用以太坊 L1 进行共享排序和预确认,更简单而无需硬分叉。在新的提案中,一部分验证者自愿成为排序者,不愿进行排序的验证者则成为了「includers」,他们可以包含交易但不对其排序。而排序者可以重新排序 includers 的交易,甚至在其中插入更多的交易。用户可以选择两种方式来提交交易:一是将交易发送至备用内存池,支付少量费用让 includers 包含其交易;二是与下一个排序者沟通,支付更高的预确认费用以请求预确认。如果排序者未能在指定的 slots 内结算交易,includers 仍然能够处理这些交易。
与最初的提案相比,优化方案直接利用以太坊 L1 的经济安全性,允许 L1 提议者自愿成为排序者,而无需额外的惩罚措施,减少了对额外的基础设施的依赖。
从概念到实践:Based preconfirmations 的应用
Taiko:开发及推广 Based Rollup 的先驱
自 2023 年下半年以来,Taiko 一直朝着成为 Based Rollup 的方向发展。作为 Based Rollup,Taiko 依赖于一个去中心化的提议者系统,这些提议者运行特定的客户端(taiko-geth),并与 L2 内存池保持同步。当提议者发现一批交易可以形成一个有利可图的区块时,提议者会将已经打包好的区块提交至以太坊 L1 上。
在交易处理过程中,用户在 Taiko 上发起的交易首先会进入 L2 内存池。L2 搜索者在 L2 内存池中寻找有利可图的交易,并打包成为 L2 交易包。随后,L1 的搜索者作为 L2 区块提议者,将 L2 搜索者打包完成的交易排序组成 L2 区块,然后将该区块包含在其 L1 交易包中并整合成 L1 区块。最终由 L1 验证者进行验证并提交至以太坊主链,确保交易的最终性。
为了提升效率,Taiko 引入了预确认机制。提议者可以在正式提交区块之前向网络中的其他参与者发布预确认信息,告知哪些交易将包含在即将生成的区块中。此外,提议者还可以定期向区块构建者发布按顺序排列的小批次预确认,而构建者可以选择将这些已经获得预确认的交易分批次发布至 L1,而不是一次性发布一个大的数据块,从而降低数据发布的成本。
此外,在去中心化提议者系统中,可能会出现多个提议者同时尝试提交包含相同交易的区块的情况。如果遇到这种情况,其中只有一个区块会被 L1 接受,而其他区块会被回滚,而失败的提议者则会损失区块费用。为了避免这种潜在的冲突,Taiko 引入了领导者选举机制。在任何给定时间内,只有一个提议者被推举为领导者,拥有最终确认区块的独占权。这样可以确保由领导者创建的区块被添加到区块链中,而其他提议者的区块则会被弃用,从而防止多个冲突区块的出现,并避免失败的提议者损失提交区块的费用。
Puffer UniFi:致力于重塑去中心化应用链生态
Puffer Finance 也推出了基于预确认机制的 Puffer UniFi 解决方案。作为 Based Rollup,UniFi 上的交易排序外包给了以太坊 L1 ,而 Puffer UniFi 的预确认机制则是通过 Puffer 的原生重质押验证者来实现的。
具体流程上,用户提交的交易首先由 Puffer 验证者处理,而这些验证者已经在以太坊上注册为「Native Restaking」节点。验证者会在约 100 毫秒内向用户提供预确认承诺,让用户快速知道其交易已经被接收并将包含在未来区块内。而为了确保验证者会遵守其预确认承诺,Puffer 还在部署 UniFi AVS 机制,以对验证者施加额外的惩罚条件。提供预确认后,Puffer 验证者验证者会将这些交易与其他交易一起打包,并向以太坊 L1 提交区块。最后,Puffer UniFi 智能合约 Puffer Sequencer Contract 接受批量交易,确保交易状态已经被确认并且无法回滚。
根据最新的路线图,Puffer 的 UniFi 测试网将在 2024 年 9 月 启动,而 UniFi AVS 机制预计在 2024 年第四季度与 UniFi 主网一起上线。
Puffer UniFi 的愿景是为了解决目前链间流动性割裂的问题。未来,基于 Puffer UniFi 构建的应用将被视为独立的应用链,这些应用链依赖 UniFi 提供的 L1 排序和预确认机制,既能降低开发成本,又能与其他基于 L1 排序的 Rollup 或应用链实现无缝互操作。例如,用户 Alice 想把她在 Rollup A 上的代币用作抵押来借贷 Rollup B 上的资产,由于 Rollup A 和 Rollup B 都依赖于同一个以太坊 L1 验证者来进行交易排序,这个验证者可以在同一个以太坊区块中同时处理 Alice 在两个 Rollup 上的交易。这样,Alice 无需通过跨链桥进行复杂的资产转移,即可在不同的 Rollup 之间进行操作。
还有什么值得关注?
除了上面提到的两个项目之外,还有一些预确认相关的内容值得关注。例如,Primev 推出了 mev-commit 平台。Primev 可以通过 mev-commit 为任何 Based Rollup 提供预确认服务,并提出了一种结合 mev-commit 和包含列表(IL)的 blob 预确认解决方案;Espresso 则提出了 Proposer-promised 预确认方案,每个 Rollup 可以自定义 Proposer-promised 预确认的排序顺序和罚没条件;Spire 推出了 Preconfirmation Registry,这是一个供提议者(如大型运营商和独立质押者)以 ETH 发布抵押品的系统;Chainbound 则宣布了 Bolt,这是一种协议,允许以太坊提议者就其区块内容做出承诺。
此外,为了简化用户体验,及更好的协调预确认请求,研究人员还在探索引入预确认网关,以将预确认的复杂性从用户中抽象出来。通过网关,提议者可以将他们的预确认权利委托给网关。网关负责执行更复杂的任务,如与用户通信、保持完整节点的正常运行时间等。值得关注的预确认 Gateway 项目包括 Aestus、Titan 和 Ultra Sound。
面对当前 Rollup 生态中的流动性割裂问题,Based Rollup 被广泛视为一种有效的潜在解决方案。例如,Cinneamhain Ventures 合伙人 Adam Cochran 就曾发布推特称,Based Rollups 是解决以太坊 Layer 2 经济问题的潜在方案。而预确认则在提升 Based Rollup 的用户体验方面起着至关重要的作用。随着一些主要协议逐步取得积极进展,我们也将持续关注这一领域的最新进展。