Clusters:受信任和信任最小化的桥如何塑造多链景观
0xE43a
April 24th, 2022

2021-10-4

原文链接:

原文作者:Mustafa Al-Bassam

译者:Evelyn|W3.Hitchhiker

我们生活在一个多链的世界。去中心化的应用程序将全部使用相同的共享智能合约区块链的这一想法已经在实践中死亡了。以太坊正在转向一个路线图,其中应用程序拥有自己的rollup链,多链生态系统,如正在崛起的Cosmos和Polkadot,以及像可替代的layer 1链,如Solana和Polygon。而到了现在,去中心化的应用程序都分散在不同的区块链上。

然而,应用程序所在的链需要一种能跨链交换数据的方式(跨链互操作性cross-chain interoperability),以使这些链中的应用程序能够相互读写状态(可组合性composability)。总的来说,这种方式通常被称为跨链通信(cross-chain communication)

在这篇文章中,基于链集群(clusters)的想法,我们阐述了一些我们在Celestia中是如何思考整个跨链通信设计空间的理论和实践。简而言之,我们设想了一个区块链生态系统的模型,其中共享同一集群的链可以以信任最小化(trust-minimized)的方式相互组合(集群内通信intra-cluster communication)。而跨集群的链以一种需要不太安全的,基于信任的假设的方式来相互组合(集群间通信inter-cluster communication)。

跨链通信需要安全权衡

正如Zamyatin et al. 所表明的那样,没有可信的第三方或同步假设,跨区块链的安全通信是不可能的。在此背景下,安全意味着原子性(atomic)。例如,如果Alice将A链上的5个币转移到B链上,那么这涉及两个交易:(1)在A链上将Alice的余额减去5个币,(2)在B链上将其增加5个币。对于跨链通信来说这是原子性的,这些交易必须同时发生或者都不发生。如果这些交易中只有一个发生(例如,Alice的余额在A链上被减去,但在B链上没有增加),它就不是原子性的。

这意味着跨多条链的可组合性总是会有安全上的权衡,与简单地使用单一的链相比,跨合约的原子性在没有可信的第三方或区块有效性规则的同步下得到保证。这是因为用户可以在他们的本地视图中运行完全验证的节点并拒绝无效的区块。

我们可以认为,(非正式地)这里有两个关键组件来实现原子性的跨链通信:

  • 中继器活跃性(Relay liveness):如果一个交易的发生改变了A链的状态,并且也影响了B链的状态,那么最终需要在B链上提交一些交易(无论是由用户、中继器还是其他方)来完成该交易。例如,如果Alice锁定了A链上的一些币,将它们转移到B链上,最终应该有一个相应的交易提交,以增加Alice在B链上的余额。
  • 状态验证(State verification):当A链和 B链根据对方的状态采取行动时,他们需要确定他们收到的状态信息实际上与根据链的交易有效性规则商定的和有效状态相对应。请注意,活跃性需要状态验证。关于跨链状态验证的更深入研究,见Zamyatin et al.

"受信任的第三方 "的定义很广泛。区块链本身就是一个受信任的第三方;它只是在一个共识协议中的大多数参与者之间分配信任**(诚实的多数假设honest majority assumption)**。一个DAO也可以是一个受信任的第三方。以标准侧链(standard sidechain)(或layer 1链)和母链( parent chain)之间的桥梁为例,侧链的共识可以锁定或窃取通过主链存入侧链的资金。这是因为为了进行状态验证,母链并不验证侧链本身的交易。相反,它相信侧链的操作者(即共识)只按照侧链的交易有效性规则在母链上移动存放的资金。像这样的桥是可信任的桥,因为它依靠诚实的多数假设来防止桥的操作者窃取资金,例如Ethereum-Polygon和Ethereum-Solana的桥。

然而,Rollups不必为了保证存款或取款的原子性而去需要诚实的多数假设来进行状态验证,因为主链使用ZK证明或欺诈证明等技术能间接检查rollup的交易有效性。然而,通过母链从rollup中取款确实需要一个可信的第三方,其形式是一个非常弱势的、诚实的少数假设(honest minority assumption)的活跃性:至少有一个中继器或聚合器必须在母链上发布rollup区块。在rollups的情况下,任何一方都可以成为中继器或聚合器,因此用户自己可以履行这个角色,这需要一个同步假设(即有一个同步的网络,当用户发送消息时,它将在一定的时间范围内被网络接收)1。

集群(Clusters)

因此,我们可以将跨链通信分为两个主要类别:

  • **信任最小化的(Trust-minimized)**跨链通信,它依赖于诚实的少数体或同步假设的活跃性和状态验证。许多协议都有一个 "混合 "模型,默认情况下,用户依赖于诚实的少数假设,但如果诚实的少数假设失败的话,可以切换到同步假设。
  • **可信任的(Trusted)**跨链通信,它依靠诚实的多数假设来进行活跃性和状态验证。

应该注意的是,像Nxtp这样需要客户端同步假设的桥被认为是需要诚实的多数假设来进行状态验证的。这是因为即使桥两边的链是活跃的,如果链没有数据可用性,客户端也不能根据链的状态采取行动。验证数据可用性是状态验证的一部分。2

我们可以将集群定义为一组相互通信的链**(集群内通信intra-cluster communication)**,信任最小化的跨链通信包括使用信任最小化的状态验证,如欺诈证明,有效性证明,或直接验证交易。例如,一个集群可以是一组连接到母链的rollups(如以太坊rollups的情况),或独立的layer 1链,如Polygon或Solana。

集群的一个关键属性是,集群中的每个链都可以验证集群中其他每个链的状态机。例如,所有以太坊的rollups都与EVM兼容,因此有可能在EVM内验证rollup的欺诈或ZK证明。然而,在EVM内验证Solana的状态机实际上是不可能的,所以Solana不能与Ethereum共享一个集群。

集群还可以与其他集群进行通信**(集群间通信inter-cluster communication)**,使用非信任最小化的状态验证技术进行可信的跨链通信,例如依靠2/3的验证者组成的委员会对区块进行签字。Ethereum-Polygon桥就是这方面的一个例子。

需要注意的是,集群是有主权的,也就是说,如果不对集群A或B进行硬分叉,集群A的一条链就不能把集群B的一条链带入集群A的圈子内。例如,如果不改变Polygon,使其作为一个rollup来执行(即使其具有欺诈或零知识证明),就不可能创建一个以太坊rollup,并在该rollup和Polygon之间创建一个信任最小化的桥,以使其进入以太坊集群内,以此类推。(同样,一个国家在没有国际协议的情况下不能把它的法律强加给另一个国家,除非它入侵那个国家或发生革命。3)

安全可组合性和可扩展性之间的权衡

我们在上面确定,与在单个链上的智能合约之间的通信相比,跨多个链的通信总是需要进行安全权衡。

那么,为什么要做这种权衡呢?为什么不简单地将所有交易托管在同一条链上,并为所有人提供方便和安全的组合呢?不幸的是,即使使用当今最知名的可扩展性技术,扩展单条链在理论上也是有限的。因此,扩大到多条链是一种必然。

同样,单个链集群的规模也有限制,包括主链上的一组rollup。即使有rollup,据预测,以太坊2.0目前每秒将处理约10万笔交易。

限制集群规模的两个重要核心限制是:

  • 集群内的所有链需要了解彼此的执行环境。例如,如果你有一组基于EVM的optimistic rollups,它们相互之间进行交流,它们需要能够理解EVM,以便理解对方的欺诈证明。同样,对于ZK rollups,它们也需要理解对方的ZK证明系统。如果你想使用一个新的执行环境来创建一个rollup,你必须创建自己的集群或硬分叉一个现有的集群。
  • 集群的数据可用性能力。为了维持集群内所有链之间的信任最小化状态验证,每个链必须以信任最小化的方式来验证该集群内每个其他链的数据可用性,可以直接下载数据或使用数据可用性证明等技术。即使有理论上的最佳数据可用性证明,由于区块生产者的资源限制(即运行验证器的目标资源要求),单个集群的规模也是有限制的。4

在实践中,我们可以观察到,集群模型已经是现实世界中区块链生态系统的运作方式——一组layer 1的链和rollups,相互之间有集群内和集群间的桥梁(见上图)。然而,集群间的桥接伴随着严重的安全权衡——你必须相信一组验证者不会盗取你的资金。因此,区块链社区应该确保集群内的可扩展性(如使用rollups)得到最大限度的发挥,在启动依靠不太安全的集群间通信的新集群之前,从而达到每个集群的极限。

Celestia中的集群

Celestia为区块链提供了一个可插拔的共识和数据可用性层,包括rollups。这是一个共识和执行解耦的区块链,因为它不提供像以太坊那样的链上智能合约环境,只提供共识和数据可用性。Celestia生态系统本身并不是一个集群,因为它没有在基于Celestia的链之间执行任何特定的跨链通信机制,但它提供了构建集群的核心成分。

(Layers of the blockchain stack. Celestia provides the bottom layer.)
(Layers of the blockchain stack. Celestia provides the bottom layer.)

如上节所述,集群内通信需要信任最小化的状态验证,这需要检查集群内所有链的数据可用性。这是因为:

  1. 在optimistic rollup的情况下,客户需要检查rollup区块是否已经发布,以确保全节点有数据来生成状态转换欺诈证明。
  2. 在ZK rollup的情况下,客户需要检查rollup 区块是否已经发布,以确保节点能够知道链的状态(例如账户余额);以及
  3. 在其他情况下,链直接完全验证对方的交易,你显然需要知道交易是什么,以便验证它们。

因此,Celestia提供了构建链集群的核心要素:数据可用性层。集群本身就位于该层之上,在执行层中(如上图所示)。为了让集群支持集群内的通信,集群中的所有链需要检查彼此的区块是否被包含在Celestia数据可用性链中,因此可以使用上述三种技术之一对彼此进行信任最小化的状态验证。

为此,我们正在进行的一个重要项目是optimint,它是Tendermint的直接替代品,允许开发者将基于Cosmos的链作为rollup建立,可以使用其他链,如Celestia作为共识和数据可用性层。在未来,我们的目标是使基于rollup的Cosmos zones能够使用区块链间通信(IBC)协议相互形成一个集群成为可能。

结论

最近,从事跨链桥的团队出现了寒武纪式的大爆发(Cambrian explosion)。随着这个领域的发展,我们认为生态系统必须为跨链桥达成一个共同的模型和语言。在这篇文章中,我们已经确定了跨链桥的自然分类:形成集群的信任最小化的桥( trust-minimized bridges),以及可信的桥(trusted bridges)

脚注

  1. 应该注意的是,母链要求诚实的多数假设,以使从rollup中提取的交易被纳入链上。然而,在这个模型中,我们假设两个链都有持久性和活跃性(见Zamyatin et ai. 的定义1和2),因此,如果一个交易被发送到一个链上,它最终会被包含在链上。
  2. 像在Nxtp等原子互换协议中,如果两个对手方是自己验证链的用户,那么诚实的多数假设对于状态验证来说并不一定重要。然而,在 "锁定和铸造 "协议("lock-and-mint" protocols)的情况下,当资产从一个链上提取并存入另一个链上,而对手方是两个链时,这确实很重要
  3. 请参阅这篇文章,了解作为互联网原生宪法的DAO
  4. 即使你有数据分片也是如此,因为每个分片下载一个额外的区块头的开销成本意味着分片并不是线性扩展的。
Arweave TX
cSeSWTfEnn2WGlDrhZRHFOJNtz3XosZpwGw_OLDMsWo
Ethereum Address
0xE43a21Ee76b591fe6E479da8a8a388FCfea6F77F
Content Digest
kTKToXj_HE2_oAggjoVoqNXSkKy-M_eTH57JvHpRxFY