可组合性是一个智能合约读写另一个智能合约状态的能力。
作者:Alex Beckett 译者:Evelyn|W3.hitchhiker 来源:bress_xyz
Rollup中最常见的评论之一是,它们 "破坏了可组合性"。这一直是大多数单体链多数派成员的主要争论点。然而,"一链治百病 "是不可能的。因此,一个多链的生态系统是唯一的出路。考虑到这一点,在一个主要基于rollup的生态系统中,可组合性会有什么样的影响呢?
虽然可组合性的概念看起来很简单,但若要在多链环境中探讨它,则需要更多的细微差别才行。
可组合性:一个智能合约读写另一个智能合约状态的能力。
简单地说,当应用可以与其他应用交互时,它们就是可组合的。例如,一个自动处理Uniswap v3流动性头寸的应用可以与Uniswap相组合,因为它可以读取Uniswap流动性池的当前数据并为其用户执行增加或删除流动性头寸。如果Uniswap和流动性应用运行在同一条链上,它们就可以同步合成。
同步可组合性:智能合约之间的可组合性,在已知的有限时间内发生交互。
**同步可组合性只是在单个块的时间范围内发生的应用之间的简单互动。**例如,闪电贷要求借款人在一个单一的交易中借款和还款。由于一个交易不能跨越多个区块,因此它必须发生在一个区块内。一般来说,在同一链上相互组合的应用程序是同步进行的。以太坊上的所有DeFi应用相互之间的组合都是同步的。然而,同步可组合性并不是唯一的合成性类型。
*异步的可组合性:*智能合约之间的可组合性,在一个未知的和无约束的时间内发生交互。
与同步可组合性不同的是,应用之间的交互必须发生在一个区块内,而异步可组合性使应用之间的交互可以跨多个区块发生。虽然异步交互可以花费无限的时间,但实际上没有人愿意永远等待。超时问题可以通过在预定的时间内停止交互来缓解。重要的是,异步可组合性使不同链上的应用可以相互交互。但是,如果应用在不同的链上,它们如何进行组合?
在不同的区块链之间传递数据需要一个桥梁。虽然许多桥仅仅是为了在链之间桥接代币,但异步组合性的魅力使用户能够与不同链上的应用互动,而不需要任何代币桥接。例如,让我们假设Uniswap v3和我们第一个例子中的流动性资金应用运行在不同的链上。当用户在A链上与流动性应用进行交易时,它将与链接到B链的桥进行交互。流动性应用将向桥指定它想与B链上的什么应用互动,以及它想进行什么类型的互动。在这种情况下,我们会说它在Uniswap上创建了一个流动性头寸。然后桥将数据传递给B链,在Uniswap上创建流动性头寸,并将结果返回给A链,包括来自Uniswap的LP NFT。
为了使桥能够实现异步可组合性,它需要一般的数据传递能力。一般数据包括区块链可以传递的任何任意类型的数据,如应用状态、有效性证明或区块头。
生活在同一rollup上的应用可以相互同步组合。然而,不同rollup的应用需要一个桥来进行异步组合,这与不同单体链上的应用程序的要求相同。**由于不可能用一个区块链来扩展所有的web3活动,因此具有异步可组合性的多链生态系统是唯一的解决方案。**Rollups "破坏 "可合成性的说法是目光短浅的,这是因为:
因此,多链生态系统伴随着它自己的一系列基本问题。
除了rollups可以拥有的可扩展性这一属性外,它们还解决了两个基本问题。Rollups不需要自己的验证者集,只需要一组排序器来生产区块。基层提供安全的验证者集。共享结算层的rollup可以在它们之间建立信任最小化的桥,因为它们的状态转换可以通过结算层轻松验证。
最后,异步可组合性部分缓解了多链生态系统的另一个基本问题,即碎片化,因为应用可以从不同的链上获取流动性。例如,在多个链上聚合和路由交易的DEXs将减少对大型交易的价格影响,因为增加了对流动性的访问——甚至对稳定币和赌注衍生品来说也更好。