对 Rollup 最常见的批判之一是它们「破坏了可组合性」,这是大多数单链最大化主义者的主要论点。然而,「一条链统治世界」是不切实际的,多链生态共存是唯一的前进方向。那么可组合性在 Rollup 生态系统中意味着什么?
虽然可组合性的概念看起来很简单,但在多链环境中,需要更细微的区分。
可组合性:智能合约读取和写入另一个智能合约状态的能力。
简单地说,当应用程序可以与其他应用程序交互时,它们是可组合的。例如,一个 Uniswap V3 流动性头寸管理工具可以与 Uniswap 组合,它可以读取 Uniswap 流动性池的当前数据,并为其用户执行流动性头寸的添加或删除。如果 Uniswap 和流动性工具位于同一条链上,它们可以轻松实现组合。
同步可组合性:智能合约之间的交互发生在已知和有限的时间内。
同步可组合性只是在单个区块的时间跨度内发生的应用程序之间的交互。例如,闪电贷要求借款人在一次交易中同时完成借入和偿还贷款操作。但单个交易不能跨越多个区块,它必须发生在单个区块内。通常,在同一链上相互组合的应用程序是同步的,以太坊上的所有 DeFi 应用程序彼此同步组合。但是,同步可组合性并不是唯一的可组合性类型。
异步可组合性:智能合约之间的交互发生在未知且不受限制的时间内。
与同步可组合性 (应用程序之间的交互必须发生在一个区块中) 不同,异步可组合性允许应用程序跨多个区块发生交互。虽然异步交互可能需要避免时间限制,但实际上没有人愿意永远等待,可以通过在预定时间后停止交互来缓解超时的情况。 重要的是,异步可组合性使不同链上的应用程序能够进行交互,那么如果应用程序位于不同的链上,交互是如何发生的呢?
在不同的区块链之间传递数据需要一个桥。虽然许多桥的存在只是为了在不同链之间转移代币,但异步可组合性使用户能够与不同链上的应用程序进行交互。例如,假设 Uniswap v3 和我们第一个示例中的流动性应用程序位于不同链上。当用户在链 A 上与流动性应用程序进行交易时,流动性应用程序将通过桥来与链 B 进行交互。流动性应用程序将向桥发出指令,表明它想要与链 B 上的哪个应用程序交互以及进行什么类型的交互。在这种情况下,我们会说它在 Uniswap 上创造了流动性头寸。然后,桥将数据传递到链 B,以在 Uniswap 上创建流动性头寸,并将结果返回给链 A,同时包括来自 Uniswap 的 LP NFT。
要使桥启用异步可组合性,它需要具有通用数据传递功能。通用数据包括区块链可以传递的任意类型的数据,例如应用程序状态、有效性证明或区块头。
存在于同一个 Rollup 上的应用程序可以彼此同步组合。但是,不同 Rollup 上的应用程序需要一个桥来异步组合,这与不同链上的应用程序的交互要求相同。由于不可能使用单个区块链来扩展所有 Web3 活动,因此具有异步可组合性的多链生态系统是唯一的解决方案。
Rollup「破坏」可组合性的论点是短视的,因为:
应用程序不可能天生都存在于单个区块链上,它们必须跨多个区块链进行交互。
尽管存在于不同的链上,应用程序依然可以组合。
然而,多链生态系统有其自身的基本问题:
每个区块链都需要部署自己的安全验证器。
区块链需要安全的桥。
除了可以拥有扩展性外,Rollups 还解决了以上两个基本问题。Rollups 不需要自己的验证器,只需要一组序列器来生成区块。L1 提供安全验证器集,共享结算层的 Rollup 可以彼此之间建立信任最小化的桥,因为它们的状态转换可以通过结算层轻松验证。
最后,异步可组合性部分缓解了多链生态系统的另一个基本问题,即碎片化。应用程序可以从不同的链获取流动性,因为增加了流动性,跨链聚合和路由交易的 DEX 将减少大额交易的价格影响,对稳定币和质押衍生品更是如此。