该报告深入探讨了跨链互操作性解决方案,特别关注Optimism Superchain的跨rollup可能性,并以EVM链作为参考。
* Optimism Governance 委托了这份报告,旨在概述当前跨链互操作性解决方案,它们与 Optimism Superchain 的相关性,以及对未来发展的建议。这是完整版 “跨链互操作性报告” 的编辑版本。在此处阅读完整报告**。***
本报告的目标和范围是检查 Optimism Superchain 的跨链互操作性解决方案,重点关注跨rollup的可能性,并将 EVM 链作为参考。
桥接分类部分将桥接分为七种类型,包括嵌入式桥接、轻客户端桥接和验证器桥接。每种类型在安全性、活跃性、延迟、激励、成本和复杂性方面都具有独特的优势和挑战。
基于关键桥接属性,根据安全性、活跃性、延迟和实施复杂性对每个桥接进行评估。这些因素决定了桥接防止消息丢失、持续运行、快速传递消息和管理设计复杂性的能力。
本报告还分析了区块链系统中用于安全跨链消息传递的最终性。它还探讨了减轻最终性风险的机制,并检查原子性模型以确保跨链操作的完整执行。
在未来建议部分,我们强调为 Optimism Superchain 开发强大的跨链互操作性解决方案的重要性,强调需要继续探索和改进桥接模型和机制,以确保安全、高效和可扩展的跨rollup通信。
当我们谈论跨链互操作性时,我们谈论的是在区块链之间传输信息的能力,因此也允许在一个区块链中的操作触发另一个区块链上的操作。我们将经常使用术语 “消息” 来指代信息的通用片段。
在很大程度上,跨链互操作性关注于桥接消息和资产。我们偏离了 “桥接” 的一些含义,因为我们不局限于应用层,因为我们也考虑链级架构的可能性 - 例如,rollup排序。
虽然我们谈论 “跨链互操作性”,但本报告的真正目标是揭示 跨rollup互操作性 的可能性。在此过程中,我们将说很多适用于任何类型链的内容。类似地,我们将使用 EVM 链的经典架构作为对话和命名的基础,尽管很多讨论都是通用的。
我们注意到,本报告并非旨在比较现有解决方案,尽管其中提到了一些。相反,我们试图从特定实现中抽象出来,专注于通用解决方案及其属性。
在考虑两个 rollup 系统的互操作性时,重要的是要考虑它们的关系。例如,互操作性是无需许可的吗,还是需要一方或双方的协作(甚至软件更改)?
Optimism Superchain 是 “一个水平可扩展的链网络,它们共享安全性、通信层和开源开发栈。” OP Labs 公布了其跨rollup互操作性的一些计划,但未来仍有许多途径。
来源: Superchain Ecosystem | Chains
在我们的报告中,我们将考虑三种模型:
小型模型,其中将链包含在 Superchain 中是一个许可过程,需要候选链提供一些保证。这似乎是当前 “社交” 模型,由 链的法则 体现。
大型模型,其中任何链都可以加入 Superchain,只需最少的监督和开销。
图形模型,其中每个链独立决定可以接受来自哪个链的消息。对于新链,接受来自其他链的消息是无需许可的,而在另一个方向上,其他链需要选择接受来自新链的消息。这是当前的 “技术” 模型,反映在 Optimism 互操作规范 中。
重要的是要注意,没有哪个模型是优越的,它们只是有不同的权衡。小型模型可以实现这样的解决方案,即系统的某些组件(如排序器)更 “受信任”,因为存在去中心化或财务保证。大型模型的优势在于允许任何人以他们想要的方式运行其 rollup,但它排除了 rollup 的不当行为会对 Superchain 中的其他 rollup 产生负面影响的解决方案。图形模型是一种混合模型,允许每个链定义其自己的信任集。
这些解决方案也不是排他性的。事实上,在 Superchain 的上下文中,图形模型可以被视为统一了小型和大型模型:一组核心链将是完全可互操作的(彼此信任),而更广泛的一组卫星链将信任其他核心或卫星链,但不被核心集信任。也可能新技术将使大型模型更实用。
来源: Superchain Explainer | Optimism Docs
要启用从源链到目标链的任意消息桥接,唯一真正重要的硬性要求是一种对目标链上从源链发送的消息进行身份验证的机制。这个问题可以推广为对来自源链的区块哈希或状态根进行身份验证的问题。
我们在 “桥接分类” 部分讨论了这些机制,在该部分中,我们将桥接分为 7 种类型 - 包括嵌入式桥接、轻客户端桥接、验证器桥接等。
在 “桥接属性” 部分中,我们将定义桥接的一些关键属性(安全性、活跃性、延迟、激励和成本以及实施复杂性),并在这些属性的光照下评估分类法中的所有桥接。
此外,可以在身份验证机制中添加两个重要内容。
首先,一种从桥接中消除最终性风险的机制。只要源链没有最终确定,桥接就不可能是安全的。目前使用以太坊作为数据可用性 (DA) 层的 rollup 的最短最终确定时间为 15 分钟:在最佳情况下,以太坊最终确定为 14 分钟,rollup 将交易发布到以太坊的平均时间为 1 分钟。可以通过确保如果发送消息的源链区块回滚,则接收消息的目标链区块也必须回滚来解决此问题。我们将在 最终性 部分详细讨论此问题。
其次,一种确保跨链原子包含交易的机制,或原子执行交易及其发送的消息的机制。原子包含可以使用共享排序轻松实现,但提供的感兴趣的硬性保证很少(但是,对于 MEV 提取非常有趣)。原子执行是一个更强大的属性,但在实践中也更难实现。这是 原子性与同步性 部分的主题。
消息格式与接口 部分将讨论跨链交易如何在源链和目标链上表示,并高亮显示这些接口的一些设计权衡。
最后,结论与建议 部分将总结报告的发现,并给出对未来的意见和建议。
此分类法全面涵盖了所有现有和提议的桥接设计。虽然存在差异,但它们很少改变桥接的基本属性。
混合桥接是可能的,例如向其他桥接类型添加罚没,或将验证器集纳入零知识桥接,以防止证明系统利用。但是,这些添加通常不会显着改变桥接的核心特征。
我们将桥接分为七种类型:
嵌入式桥接
轻客户端桥接
验证器桥接
罚没桥接
乐观桥接
反向桥接
Rollup 桥接:执行证明桥接和故障证明桥接
我们将在此处简要定义每种类型,并在后面详细探讨其属性。
嵌入式桥接 是指目标链嵌入源链完整节点的系统 - 因此所有验证器都应跟踪并验证源链(或信任其他人这样做)。这是rollup桥接在 L1 到 L2 方向上使用的模型。
轻客户端桥接 是指目标链运行或验证源链轻客户端的系统。轻客户端 验证源链的共识但不验证交易执行 (1)。从一个角度来看 (2),这是同样安全的,因为链的共识通常有权升级链,从而有效地 “允许” 任何执行结果。此类别还包括使用共识零知识证明的桥接。
(1) 请注意,以太坊轻客户端协议(在 Altair 硬分叉中引入)不符合此定义。它依赖于一个证明委员会,其安全假设明显弱于以太坊共识。在此处阅读 了解更多详细信息。
(2) 轻客户端和完整客户端之间的关键区别在于完整客户端验证执行。这使其能够通过选择遵循其认为合法的规则集(状态转换函数)来参与 “社会共识”。
验证器桥接 是指委托一组验证器验证源链的系统,并且必须证明正在桥接的信息(无论是状态根、交易还是任何其他信息)的真实性,并且目标链验证这些证明。这与轻客户端桥接非常相似 - 验证器桥接验证验证器的共识 - 不同之处在于验证器不需要参与源链的实际共识,因此他们的证明不具有相同的保证。
罚没桥接 是指一组许可的中继器可以将消息从源链中继到目标链的系统。如果中继器在目标链上发布的消息并非来自源链,则任何人都可以将此(已签名!)消息的副本发布到源链,从而导致中继器被罚没。
此系统仅在经济上是安全的,并且必须以一种可以使用伪造消息的方式使用,并确保伪造消息造成的损失低于中继器的保证金。实际上,这可能意味着在经济价值方面限制中继器的速率。
还有一个问题是如何确保中继器实际传递消息。至少,我们可以允许用户挑战中继器,迫使他们在源链上发布已签名的中继消息,这样用户(或善意的第三方)至少可以在需要时手动中继消息。
我们不知道有任何纯粹的罚没桥接部署,但它在其约束范围内是一种合理的设计,并且通常将罚没机制添加到其他类型的桥接中。
乐观桥接 的工作方式类似于罚没桥接,但此外还增加了一段时间,在此期间可以在目标链上挑战消息,然后才将其视为有效。一组许可的参与者(这可能是中继器集本身)负责挑战,并且挑战会立即使中继的消息无效。无效的挑战本身可以在源链上以与无效消息相同的方式进行挑战。只要有一个诚实的参与者可以在挑战期内挑战伪造的消息,此系统就是安全的。需要对中继器和挑战者进行罚没,以避免恶意攻击。
反向桥接 是指依赖于另一个桥接存在的桥接(我们称之为“正向桥接”),反之亦然(从目标到源)。用户在源链上发布消息,中继器将其转发到目标链。然后,使用正向桥接,中继器证明他确实中继了消息并解锁了用户的付款。
反向桥接与其他桥接不同之处在于,它们不对中继消息的真实性提出任何要求。因此,这些消息仅限于那些可以发送的消息,而不管它们是否是从源链发起的。这些消息可以包含最终用户 (EOA) 签名以进行验证,但无法确定源链上的智能合约是否发出了消息。用例包括跨链资产转移、触发另一个链上的无许可操作以及操作由来自另一个链的 EOA 控制的智能钱包。
反向桥接从其正向桥接继承安全假设,尽管用户和中继器的风险会发生改变。
Rollup 桥接 是指启用 rollup 系统中 L2 到 L1 方向桥接的桥接(在 L1 到 L2 方向上,rollup 使用嵌入式桥接),以及共享相同架构和桥接机制的 rollup 之间的桥接。
Rollup 的特殊之处在于,它们不是通过验证器的大多数投票来达成对区块链状态的共识。相反,它们在 L1 链上证明状态(由状态根表示)是有效的,前提是对状态转换函数和包含的交易进行了承诺。如果 L2 链交易数据的真相来源(即 数据可用性层)不是 L1 链,则还需要将这些承诺桥接过来,并承担由此产生的额外信任假设。
一旦建立了 L2 链区块的状态根的有效性,就可以在 L1 链上中继在该区块内发送的消息(通过针对状态根证明消息)。因此,L2 到 L1 的桥接几乎是免费的,并具有状态共识机制。
Rollup 桥接也可用于在 rollup 之间进行桥接,此处的机制特定于 rollup 桥接的类型。Rollup 桥接有两种类型,特定于有效性/ZK rollup(执行证明桥接)或乐观 rollup(故障证明桥接)。
2.7.1 执行证明桥接
执行证明桥接 是指 L1 链验证 L2 链上转换的正确执行的零知识 (ZK) 证明的系统。这也称为有效性证明,因为密码证明机制主要用于其简洁性属性(验证证明比执行计算便宜得多)而不是其隐私属性。
使用执行证明的跨rollup桥接非常简单:目标rollup链可以简单地验证有效性证明。为此,它需要访问 L1 以及可能的 DA 区块哈希,它已经正在跟踪这些哈希,因为它本身就是一个 rollup。这些哈希承诺所有用于创建区块的输入(主要是交易),因此除了已证明的源链哈希或状态根之外,它们是有效性证明的唯一公共输入。输入(交易)本身可以是证明的私有输入,这些私有输入由证明针对公共输入哈希证明。
2.7.2 故障证明桥接
故障证明桥接 是指 L1 链在接受提议的 L2 链区块的状态根作为有效状态根之前等待挑战期的系统。如果提出挑战,则将在 L1 链上进行挑战游戏,以确定挑战的有效性。
解释挑战游戏超出了本文档的范围,但如果感兴趣,请参阅 此介绍性帖子 和 此视频 以了解一般思路,以及 本文 和 此视频 了解更详细的信息。
使用故障证明桥接的跨rollup桥接需要排序器来传送来自其他 rollup 的消息。共享故障证明系统可确保将传送未在源rollup上发送的消息的区块视为无效。
我们确定了 5 个关键的桥接属性:
安全性 定义了桥接可能发生故障的条件。这包括传送不存在的消息或未能传送已发送的消息。它还包括桥接故障可能造成的经济损失。
活跃性 指的是可能导致桥接停止运行的条件。这可能涉及停止接受新消息或暂时停止消息传送。
延迟 衡量的是消息包含在源链的区块中后到达目标链所花费的时间。
激励与成本 检查了桥接系统中各个参与者的支出和利润。此属性探讨了这些财务因素如何影响行为,尤其是在安全性、活跃性和延迟方面。
实施复杂性 评估了桥接系统设计的复杂程度。这包括代码库大小、独立组件和参与者的数量、高级技术(尤其是密码学)的使用以及对专业知识的依赖等因素。值得注意的是,大多数桥接黑客攻击源于实施问题,而不是基本的设计缺陷。
让我们探讨一下这些属性如何在我们的分类法中的各种桥接类型中体现出来。
我们根据防止两种类型的违规行为来定义桥接安全性:
丢失的消息:在源链上发送但从未传送到目标链的消息。
伪造的消息:传送到目标链上但从未从源链发送的消息。
大多数桥接都旨在防止这些违规行为,但允许但惩罚伪造消息的罚没桥接除外。但是,某些条件可能会使任何桥接系统中都可能发生这些安全违规行为。
桥接安全性存在于一个范围内,并且取决于超出源链和目标链的正确执行的其他假设。不同类型的桥接具有不同的安全级别和信任要求:
信任最小化桥接:这些桥接,包括嵌入式桥接、执行证明桥接和轻客户端桥接,除了其实现的正确性之外,不添加任何安全假设。
故障证明桥接:这些桥接用于乐观rollup中,假定至少存在一个诚实的挑战者,可以在挑战窗口(通常为 7 天)内对不正确的状态根提出异议。
嵌入式桥接:虽然是最安全的,但这些桥接的可扩展性最差,因为它们要求一个区块链嵌入另一个区块链。它们主要适用于rollup。
Rollup和轻客户端桥接:这些桥接需要更新机制,从而在更新过程中引入信任假设。更新延迟可以减轻风险,但可能会减慢对漏洞的响应。
罚没桥接:这些桥接允许伪造的消息,但旨在使伪造的经济惩罚大于任何潜在收益。它们需要仔细校准罚没金额并考虑源链的活跃性。
乐观桥接:这些桥接依赖于在较短的挑战期内(例如,30 分钟)出现的诚实挑战者,这使它们更容易受到对目标链的活跃性或抗审查性的攻击。
验证器桥接:它们的安全性取决于验证器集的去中心化,类似于区块链去中心化分析。
反向桥接依赖于底层正向桥接,因此提出了独特的安全考虑因素,尤其是在资产转移和中继器可能因价格风险而遭受损失方面。
有些桥接可能会优先考虑比源链的最终性周期更快的消息传送速度,从而引入延迟部分中讨论的额外风险。
有关桥接安全性的更全面信息,请参阅 跨链风险框架,了解操作安全见解;L2Bridge 风险框架,了解流动性网络的视角。
活跃性根据 “活跃性违规” 定义,这些违规是指以下情况:
延迟的消息:已发送的消息在很长一段时间内未传送。这是一个主观的评估,但我们通常认为当可以进行传送(例如,目标链处于活动状态且未拥塞)但未进行传送时,这是一个特别令人不希望出现的问题。
桥接关闭:无法发送新消息。
桥接的活跃性可能取决于以下因素:
源链和目标链的活跃性
源链和目标链的抗审查性
内置机制(例如,紧急暂停功能)
中继器的存在、激励和活跃性
验证器的活跃性(对于验证器桥接)
区块链桥接中的活跃性和抗审查性是密切相关的概念。活跃性失败(包括审查)可能发生在源链或目标链中,从而影响桥接的功能。无论桥接的设计如何,这些失败都可能导致消息延迟,甚至桥接完全关闭。
乐观桥接面临着一个独特的挑战,即源链活跃性长期失败可能会使恶意中继器能够挑战消息而不会产生任何后果。为了缓解这种情况,实施足够长的中继器保证金撤回延迟至关重要。此外,虽然桥接中的暂停机制可以帮助对抗黑客攻击,但应将其设计为避免潜在的滥用并允许用户取消待处理的消息。
中继器在桥接活跃性中起着至关重要的作用。桥接可以分为无许可(用户可以成为中继器)、许可(具有一组中继器)或需要中继器提供保证金的混合类型。嵌入式桥接是独一无二的,因为它们不需要单独的中继器。无许可中继器可以在各种桥接类型中实施,包括轻客户端、反向、验证器和一些rollup桥接。
为了提高桥接活跃性,必须通过在地域和司法管辖区多样性、消除共享控制以及客户端多样性来分散中继器和验证器集。允许用户取消消息请求也可以改进某些桥接设计。最后,适当的激励对于确保中继器积极参与消息中继至关重要,这将在 “激励与成本” 部分中进一步探讨。
区块链通信中的延迟是指在源链区块中包含消息后,消息到达其目标链所花费的时间。虽然从理论上讲,在原子可组合性或单个实体控制两个链的情况下,延迟可能为零,但这在实践中并不常见。
通常,最小延迟等于目标链的区块时间,因为中继器需要观察源链区块并在目标链上启动交易。但是,网络拥塞和技术问题等因素会不可预测地增加此时间。某些桥接类型(例如,乐观桥接和故障证明桥接)由于其挑战期而具有内置延迟。
执行证明桥接由于证明所需的时间而面临独特的延迟挑战。当前技术允许在几十分钟内证明一个以太坊区块,并且可以使用对证明者友好的哈希函数来加快时间。zkEVM 和通用 zkVM 在证明速度和成本效率方面都得到了快速改进,预计在不久的将来还会有进一步的进步。
桥接延迟的一个重要考虑因素是链重组(re-orgs)的可能性。为保持安全性,桥接必须在源链上等待最终性,然后才能传送消息,因为如果原始交易被重新编排掉,过早传送可能会导致安全违规。一种解决方案是确保目标链在源链回滚时也回滚,从而防止传送不存在的消息。
对于 rollup 来说,此问题尤其重要,rollup 的最终性时间可能长达 15 分钟。例如,Optimism 通常需要大约一分钟才能将区块发布到以太坊,但在某些情况下,这可能会延长到半小时。延迟和最终性之间的相互作用是跨链互操作性的主要挑战之一,尤其是对于Based Rollup 的系统。
各种类型的桥接都有不同类型的参与者,这些参与者可能需要出现才能使桥接工作,因此需要激励他们这样做。这些人是中继器、验证器、挑战者和证明者。
我们将首先解决中继器的问题,因为它们是最常见的参与者,并且一些讨论将推广到其他参与者。然后,我们将解决动态目标链 Gas 费的问题,这可能导致用户指定的费用不足以支付中继器的成本。然后,我们将讨论其余的参与者。
2.4.1 中继器
中继器是大多数桥接类型中的关键参与者,嵌入式桥接除外。某些设计允许用户中继自己的消息,尤其是在启用无许可中继的桥接中,例如验证器、轻客户端和 rollup 桥接。
在验证器桥接中,中继需要获得验证器签名。或者,验证器可能只中继状态根,要求中继的消息包括针对状态根的包含证明。此原则适用于 rollup 桥接,其中必须有人中继链的状态根。虽然对于某些 rollup(如基于 OP-stack 的 rollup)来说,此过程是无许可的,但其他过程则需要定序器。在状态根验证后 - 通过提交 zk 证明或等待挑战窗口 - 任何人都可以通过针对状态根证明消息来中继消息。
对于执行证明桥接,证明者必须发布状态根证明。这可以是无许可的,尽管不希望用户承担此责任。轻客户端桥接需要将共识相关信息(通常是聚合签名)中继到目标链。这也可以是无许可的,但通常不是。
尽管可以进行用户中继,但通常最好有专用的中继器来减轻用户的负担。对于罚没桥接和乐观桥接,中继器必须被绑定,从而排除了无许可的用户参与。
在许可的中继系统中,应采取措施确保及时的消息传送,以防止安全违规。这可能涉及一种挑战系统,其中发送者可以请求中继器在源链上发布已签名的消息以供手动中继,并对不合规行为处以罚款。
反向桥接提出了一个独特的案例。虽然从理论上讲,用户可以中继自己的消息,但这些桥接通常保证自动中继或涉及中继器执行代价高昂的操作(例如,在目标链上进行 Token 转移以换取源链 Token)。
中继器需要为其成本(主要是目标链上的交易费用)以及利润空间获得补偿。以下部分将解决目标链费用可变性引起的问题。
2.4.2 处理可变的目标链费用
必须向中继器支付费用。由于目标链上的交易费用不断变化,因此至关重要的是将费用设置得足够高,以支付成本并激励中继器。虽然在源链上收取费用似乎更容易,但在目标链上付款更实用,因为它允许在消息传送时解锁付款。桥接必须在目标链上保持足够的流动性,以用于中继器付款。
如果在源链上收取费用但在目标链上支付费用,则需要进行链外费用估算。如果由于目标链费用增加导致中继器付款过低,则应有一种在源链上增加费用的方法,同时防止重放 攻击。在 实践中,桥接运营商可能会使用几种费用策略:
收取已知有利可图的固定费用
如果目标链费用一直很低,则无需进行明确支付即可运营
使用协议 Token 激励中继器
使用第三方中继服务(例如,Chainlink、Gelato、Keep3r)
通常,对于无许可的中继器集,中心化中继器或第三方服务是安全的。但是,许可的中继器应避免依赖中心化实体以确保持续运营并防止安全问题。
嵌入式桥接(L1 到 L2 rollup 桥接)以不同的方式处理费用:
Optimism 会消耗 L1 Gas,并为 L1 到 L2 的消息实施单独的费用市场
Arbitrum 使用 “可重试票证” 系统,其中用户在 L1 上支付费用,并且可以重试失败的交易
这些方法在费用收取、合约功能兼容性和交易重放功能方面有所不同。
2.4.3 验证器、证明者和挑战者
验证器桥接中的验证器通过运行区块链节点来验证源链的状态来承担成本。可以以类似于中继器的方式激励他们,但成本更稳定,因为他们不面对可变的交易费用。执行证明桥接中的证明者生成昂贵的证明,其成本可能是原始计算的 10,000 倍。
由于成本很高,因此最好有一种证明者的选择方法,例如在链上对 “首选” 证明者进行循环。如果首选证明者未能交付,此方法不会排除无许可的证明。乐观桥接、罚没桥接和执行证明桥接需要挑战者,即监视器来质疑不正确的消息、状态根或其他挑战。在罚没桥接和故障证明桥接中,挑战是无许可的,因为它不会影响系统性能。
虽然 rollup 中的挑战激励机制尚未得到广泛讨论,但预计现有节点运营商(如交易所、RPC 提供商和区块浏览器)可以履行此角色。如前所述,我们不知道有任何纯粹的罚没桥接部署。
在乐观桥接中,挑战者可以防止目标链上伪造的消息。此角色必须是经过许可的,允许将挑战者绑定在源链上,并因无效的挑战而受到处罚。有效的挑战会导致中继器受到处罚,挑战者可以从中获得补偿。
由于中继器作弊的可能性不大,因此挑战者可能永远不会获利。一个巧妙的解决方案是将中继器和挑战者设置为同一组,从而使他们能够以最小的额外成本来验证彼此的行为。此方法与中继器的利益相符,因为桥接的安全性可确保他们的持续收入。
关于实施复杂性,我们将不会说太多,因为它是非常主观的。
让我们重申一下在查看实施复杂性时需要注意的一些关键领域:
代码库的大小和质量
独立软件组件和参与者的数量
高级技术和算法的使用(特别是密码学)
技术栈的成熟度(例如,编译器、库等)
但总的来说,简单是关键。更简单的系统更容易推理,允许的棘手情况也更少。
一个相关的因素是关注该系统是否有质量文档和规范。当这些文档和规范未公开时,通常不是一个好兆头。
本节简明扼要地概述了各种桥接类型的特征。有关更全面的理解,请参阅前面的问题。
关于延迟,我们的分析假设没有任何一方愿意接受最终性(重组)风险。但是,如果一方准备承担此风险,则可以根据其风险承受能力和当前的费用结构来降低延迟。
我们省略了对激励讨论的总结,因为它不是桥接设计中的主要因素,很难有效地总结,并且与活跃性和安全部分重叠,这两部分已经确定了需要激励的参与者。
(1) 信任最小化意味着除了源链和目标链以及实施的正确性之外,没有其他安全假设。
(2) Rollup 的最终性时间为:DA 提交延迟 + DA 最终性 + 当 DA != L1 时的 DA 桥接最终性。
*本节已被精简。有关更详细的分析,请查看完整报告。
区块链系统中的最终性是指区块不可逆地成为链的一部分的点。对于跨链桥接,此概念至关重要,因为它会影响消息传送的安全性和速度。桥接必须在源链上进行重组 (re-orgs) 的风险与快速消息传送的愿望之间取得平衡。等待最终性可确保安全性,但可能会导致重大延迟,尤其是对于最终确定时间较长的链(如以太坊)(大约 15 分钟)。
不同的区块链系统以各种方式处理最终性。有些,如使用 Tendermint 共识的 Cosmos 链,具有即时最终性。另一些,如工作量证明链,具有概率最终性,其中随着添加更多区块,重组的可能性会降低。对于 rollup,最终性时间包括将区块发布到数据可用性 (DA) 层的时间和 DA 层自身的最终确定时间。这在不同的 rollup 实施和 DA 解决方案之间可能会有很大差异。
为了解决最终性挑战,已经出现了两种主要方法:
第一种是跨链条件区块,其中目标链包括对源链区块的引用,并且如果该区块被重新编排,则会回滚。共享 DA 层的 rollup 的此想法的扩展允许通过提交到 DA 区块而不是源链区块来实现更通用和高效的跨链通信。
第二种方法是共享有效性排序,建议仅在链之间携带已发送消息的 Merkle 根,当与共享排序结合使用时,可以在相同的区块高度实现双向桥接。
虽然这些解决方案提供改进,但它们并非没有限制和潜在的攻击媒介。它们要求目标链了解源链,从而限制了它们的范围。此外,它们不保证源链区块的有效性,仅确保如果消息实际上未发送,则目标链会回滚。可以利用这些机制进行复杂的攻击,尽管不太可能。用户应该意识到,任何回滚都可能具有破坏性,可能会与交易最终性的预期相冲突。
在跨链通信中,存在两种主要方法。消息传递涉及在源链上启动消息以发送到目标链的交易。此方法很简单,但在其原子性保证方面可能会受到限制。另一方面,捆绑创建了一个原子包,其中包含多个链的交易。此方法提供了更强的原子性,但需要更复杂的协调机制。在简单性、安全性和跨链交互能力方面,每种方法都有自己的一系列权衡。
跨链消息传递中的原子性是指操作的全有或全无原则。它可以应用于跨多个链的交易包含或执行。原子交易包含确保交易同时包含在其各自的链中,而原子交易执行确保交易在不同的链上成功执行。
同步性借鉴自编程概念,区分了异步操作(其中结果不会立即可用)和同步操作(我们等待结果)。基于这些概念,我们可以识别跨链消息传递中的五种原子性模型:
非原子(异步)执行
原子包含
非原子即时异步执行
原子异步执行
原子同步执行
每个模型都有其独特的特征和权衡。例如,原子包含保证了交易包含,但不保证执行成功,而原子执行确保如果一个链上的操作失败,则不会在源链上执行。模型的选择取决于跨链应用程序的特定要求。让我们看看某些方法的具体情况。
5.2.1 原子包含
原子包含是指跨多个链 “同时” 包含交易的过程。虽然这不能保证成功执行或消除最终性风险,但它提供了显着的好处。它可以更快地在链之间进行桥接,从而减少了跨链操作所需的时间。此外,它允许更高效的跨链 MEV 提取,从而可能为验证器和用户带来更好的经济成果。但是,实施原子包含需要经过仔细的设计,以确保跨具有不同区块时间和共识机制的不同区块链网络进行同步。
5.2.2 原子包含和实施方法
实施原子包含的两种主要方法是共享排序和构建器提议者分离 (PBS)。共享排序利用公共定序器来为多个链排序交易。由于其较低的资源需求,此方法可以很好地扩展,因为它集中了排序过程。但是,它可能会引入某种程度的中心化风险。另一方面,PBS 分离了区块提议者和区块构建者的角色。提议者将构建区块的任务委托给专门的构建者,从而可以更高效地构建区块。当提议者同时为多个链构建时,原子包含成为可能。此方法可以潜在地提高区块效率和 MEV 提取,同时保持一定程度的去中心化。
5.2.3 原子执行 - 挑战和潜在解决方案 实现跨多个链的原子执行是一个复杂的挑战,有几种提议的解决方案。运行多个节点允许自定义,但由于增加的资源需求而限制了可扩展性。状态锁定通过临时锁定跨链的相关状态来确保一致性,但它需要多次网络往返,并且可能为频繁访问的(“热”)状态创建瓶颈。Chimera Chains 提供了一种实用的方法,通过将状态划分为基础分区和 chimera 分区,尽管此解决方案仅限于特定用例。
Crossbar System 共同定位了原子捆绑的执行,需要一种用于状态根的桥接机制——这种方法特别适用于 rollups 和强制包含机制,在原子性和可扩展性之间提供平衡。每种方法在性能、安全性和复杂性方面都存在独特的权衡。选择最终取决于正在开发的跨链系统的具体要求。
5.2.4 原子执行 - 跨链交易的特定领域解决方案
虽然原子跨链交易的通用解决方案存在权衡,但特定领域的方案可以更有效地实现原子性。一个有希望的用例是代币桥接和交换,可以使用仅在目标链上的同步状态锁定来实现。
此方法在源链上使用托管合约,并允许“求解器”(流动性提供者)履行订单。单方面锁定减少了争用问题,原子性保护求解器免受重复填写订单的影响。
虽然此解决方案仍然面临潜在的恶意攻击等挑战,但它为原子跨链代币操作提供了一个实用的框架。OneBalance 等项目正在探索类似的概念,但具有不同的安全假设。
到目前为止,我们的讨论主要停留在高层次上,但现在让我们深入探讨链之间消息传递的细节。
根据需要,任意消息传递需要在源链和目标链上都有智能合约,有时分别指定为“outbox”和“inbox”。为此目的,已经提出了一些标准,按时间顺序列出如下:
除了提议的标准之外,大多数桥、rollups 和其他互操作性项目都有自己的消息传递接口。数量太多,无法一一列出,但让我们提几个具有多元化性质的(即,不与任何特定提供商绑定)。此列表并非旨在详尽无遗。
让我们再提一下 Optimism 的桥接规范和互操作规范,作为 L1 和 L2 之间以及 L2 之间的消息传递标准示例(分别)。
最后,一些标准或提议的解决方案专门侧重于桥接代币,例如:
尽管标准和解决方案激增,但没有一个接近成为事实上的标准,甚至没有获得显着的吸引力,xERC20 可能是个例外(尽管它的成功仍然是适度的)。我们稍后会详细讨论它。
消息传递接口通常在源链上使用 outbox,在目标链上使用 inbox。outbox 中的消息需要三个关键组件:发送者(自动填充)、目标地址和数据(“calldata”)。此数据的存储方式可能会有所不同,从直接发布在 outbox 中到仅存储哈希,实际数据在事件中发出、存储在源链 calldata 中或通过链下通信。每种方法都有其权衡,在存储效率与数据可访问性和协调要求之间取得平衡。
除了这些组件之外,消息还必须指定目标链,可以是显式的,也可以是通过每个目标链的单独 outbox。通常包含一个 nonce 以防止重放攻击,但可以在更高级别实施此保护,如 Optimism 桥的双层接口方法所示。一些系统甚至允许通过省略较低级别的目标链来广播消息,并使用标准化的二级层来指定目标。
一旦消息进入 outbox,就必须将其转发到目标链的 inbox。虽然许多标准规定了应如何转发和验证消息,但有些标准(如 EIP-5164、EIP-6170、Hyperlane 和 xERC20)将这些方面留给实现或外部合约。这种方法虽然不太标准化,但提供了更大的灵活性,并且已被证明对采用有利,尤其是在涉及多个链或更换桥提供商的情况下。
在解决消息验证的标准中,证明消息与源链的状态根(或特定的“消息根”)的标准与期望直接消息中继的标准之间存在区别。一些系统(如 EIP-7533)允许批量传递消息,甚至可以来自多个源链。这种方法的多样性反映了跨链通信设计中标准化、灵活性和安全性之间复杂的平衡。
让我们再多谈谈代币桥接的特殊性。除了我们到目前为止所讨论的所有内容之外,代币还面临“路径依赖”形式的额外挑战:每当一个代币从源链桥接到目标链时,该代币通常会被锁定或烧毁在源链上,并在目标链上解锁或铸造,这通常称为“包装代币”合约。
当源链恰好是规范代币表示形式所在的链时,这种方法效果很好。但是,尝试在其他两条链之间进行桥接可能会导致相互之间不可互换的代币包装器激增,其中一些是“包装器的包装器”。
可以通过在每个链上采用单个代币合约来解决此问题,在源链上烧毁代币并在目标链上铸造代币,但是这种方法(大多数桥提供商不支持)并非没有权衡:每个链上的代币合约现在容易受到允许铸造到其中的所有桥的安全性风险的影响。
xERC20 通过使代币治理能够设置来自任何给定桥的代币流的速率限制来解决此风险。当然,解决“包装器的包装器”问题的经典解决方案是将每个代币都通过其规范链路由,尽管这种“解决方案”的 UX 非常糟糕。另一种非解决方案是在所有包装器之间引入流动性池。在承担重新平衡跨链代币流动性任务的流动性提供者存在的情况下,可以使其大致发挥作用。
铸造和烧毁到单个合约中的方法也不支持无需许可的桥部署。这几乎是一个根本性的权衡,但在像我们的小型 Superchain 模型这样非常同质的链和桥接环境中,可以减轻这种情况:如果已知所有链都具有相似的执行环境,并且任何这些链之间的桥都保证具有相同的安全属性,则可以允许在所有这些链上无需许可或自动部署镜像代币合约。请注意,这在 graph Superchain 模型中通常是不可能的。
本报告涵盖了很多内容:我们建立了一个专注于消息验证机制的桥分类法,并分析了它们的属性(安全性、活性、延迟、激励和成本以及实施复杂性)。
我们讨论了链最终性是快速且安全的桥接体验的主要障碍,并强调了一个关键属性:要比链最终性更快地进行桥接,目标链必须在源链重新组织时重新组织。然后,我们讨论了使之实现的机制(共享有效性排序、跨链应急区块)。
我们研究了如何将源链和目标链上的执行紧密耦合,主要目标是原子同步执行(又名通用同步可组合性)。我们回顾了解决该问题的最先进的解决方案(状态锁定、crossbar 系统、SVS + PBS),并探讨了不太通用的特定领域解决方案的可能性(如原子代币交换)。
最后,我们讨论了各种消息传递格式及其权衡。现在,我们提供一些关于未来的意见、建议和希望。
毫无疑问,对于跨 rollup 桥接,执行证明桥接(又名 ZK 桥接或有效性桥接)是最安全的解决方案——它是适用于 rollups 的唯一的无需信任的解决方案,并且比其他接近无需信任的解决方案(如故障证明桥接)具有更好的延迟特性。
然而,到目前为止,它们的采用受到了以下事实的阻碍:与不太安全的桥相比,生成证明仍然相对昂贵且缓慢。
正如我们在延迟部分(通过对证明时间和成本的分解)中讨论的那样,该技术发展迅速,并且有理由期望它在未来几年内与 DA 层的速度相匹配。
当证明时间降至几秒而不是几分钟时,我们可以预期零知识桥将开始蓬勃发展。在这一点上,对于雄心勃勃的互操作项目来说,关注其他机制感觉像是一个错误。令我们非常懊恼的是,我们的桥分类注定要成为历史记录。
话虽如此,零知识证明并不能解决互操作性中的所有问题。
使用 Poseidon 哈希进行 Merkle 化的链的证明时间已经低于大多数 rollups 的最终确定时间。但是,桥接速度快于源链的最终确定仍然不安全。在等待以太坊实现单Slot最终确定(可能需要数年时间)的同时,另一种选择是创建一个一起重新组织的 rollups 网络。
实现此目的的两种方法是跨链应急区块 (CCCB) 和共享有效性排序 (SVS)。这些方法类似,CCCB 提交到状态根,而 SVS 处理消息根。Optimism 互操作协议更进一步,仅要求包含交易本身。
所有这些解决方案都是可行的,尽管 CCCB 缺乏原子性。Optimism 的解决方案目前正在实施中,其周到的设计引人注目。它引入了跨链依赖关系的 graph 模型,以及通过共享故障证明进行共享重组的机制。下一步是扩展此机制以支持 zk/validity 证明。
另一种选择是采用像 Celestia 这样的快速最终性 DA 层,它消除了重组。然而,这并不是万能的:虽然 DA 层不会给使用它们的链增加安全风险,但当一条链从另一条使用不同 DA 层的链接收消息时,它们会自相矛盾地引入风险。如果源链的 DA 层在没有共享重组机制的情况下受到损害,目标链将面临桥安全违规的风险。
快速执行证明也可以在此处提供帮助。如果证明生成时间与 DA 区块时间匹配,则快速无需信任的桥接将变得可行。然而,执行证明的实施复杂性最高。虽然有些人认为故障证明同样复杂,但审核零知识协议所需的专业知识构成了一个特别具有挑战性的障碍。
鉴于这些挑战,建议将零知识桥与验证者桥结合使用。这种方法既需要有效的证明,也需要法定数量的签名。两种桥类型都很快,并且验证者桥可确保安全违规需要损害大多数验证者并利用故障证明错误,这是一种不太可能发生的情况。
原子性的必要性值得商榷。大多数用例都是金融方面的,涉及复杂的交易而没有冒资本风险(例如我们的交换-桥接-购买-NFT 例子)。虽然“流动性碎片化”通常被认为是原子性的原因,但快速的非原子消息传递可能会解决此问题,尽管不那么优雅。当资本可以以区块生产速度在链之间安全移动时,原子性就成为一个好功能。
也就是说,原子性很有趣。它实现了以太坊最初的承诺之一:创建一个具有统一计算层的世界计算机。这是一个值得追求的目标。但是如何实现呢?
我们已经研究了三种解决方案——状态锁定、crossbar 系统和 SVS + PBS——每种解决方案都有其自身的权衡。
状态锁定面临锁定争用问题:多个链访问同一状态需要广泛的同步网络通信,从而增加了延迟。更长的锁定租约会降低状态操作的活性。这种方法也容易受到恶意攻击的影响,恶意攻击者会为失败的交易请求锁定。
crossbar 系统通过不要求每个节点都在每个参与者上运行来帮助扩展。但是,它降低了总体 rollup 吞吐量,因为所有 rollup 都必须等待 crossbar rollup 完成其工作。
SVS + PBS(共享有效性排序 + 提议者构建者分离)(1) 依赖于经济动机的区块构建者进行原子执行。虽然可能有效,但这种方法将区块构建者变成了强大的互操作性网守,并可能引入中心化风险,从而影响审查抗性。
目前,对于通用的原子执行,没有完美的解决方案。特定领域的解决方案更有可能很快被采用,可能会解决通用架构中的问题。例如,某种形式的状态锁定可能非常适合跨链代币交换。
如果我必须推荐一种完全通用的原子执行方法,我建议:
适用于小型 Superchain 模型的 crossbar 系统,避免中心化参与者,但与 SVS + PBS 相比,吞吐量略有降低。
适用于 graph 或大型 Superchain 模型的 SVS + PBS,请注意,区块构建者成为参与链的网守。crossbar 系统不支持这些模型。
(由于锁定争用和恶意攻击漏洞,状态锁定作为一种通用方法似乎从根本上存在缺陷,除非另有证明。)
(1) Optimism 的互操作协议可以在此处替代 SVS,因为它启用了共享重组,并允许在相同的高度/时间并发跨链交易执行。
尽管对该主题进行了广泛的讨论,但本报告的结论很简单:
零知识证明支持无需信任的桥接,并且随着证明时间和成本的降低,将在中期成为首选的桥接方法。
最终确定时间仍然是快速桥接的挑战。采用具有快速最终确定的通用数据可用性 (DA) 层可以解决此问题。由于以太坊是大多数 rollups 的事实上的 DA,因此应优先实现单Slot最终确定。在没有快速最终性 DA 层的情况下,共享重组机制是必要的。共享有效性排序和 Optimism 互操作协议 都为此问题提供了有效的解决方案。
尽管所有已知的原子交易执行解决方案都涉及重大的权衡,但特定领域的解决方案(特别是对于代币交换)似乎是可行的,并且缺点最少。我们已经证明,这可以在通用的状态锁定机制之上实现,并且特定于领域的架构也可能是可行的。
如果你热衷于阅读特别是桥接提供商的比较,请参阅以下采用此方法的文章和报告:
- 原文链接: 4pillars.io/en/articles/...
- 登链社区 AI 助手,为大家转译优秀英文文章,如有翻译不通的地方,还请包涵~
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!