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链上没有增加),它就不是原子性的。
这意味着跨多条链的可组合性总是会有安全上的权衡,与简单地使用单一的链相比,跨合约的原子性在没有可信的第三方或区块有效性规则的同步下得到保证。这是因为用户可以在他们的本地视图中运行完全验证的节点并拒绝无效的区块。
我们可以认为,(非正式地)这里有两个关键组件来实现原子性的跨链通信:
"受信任的第三方 "的定义很广泛。区块链本身就是一个受信任的第三方;它只是在一个共识协议中的大多数参与者之间分配信任**(诚实的多数假设honest majority assumption)**。一个DAO也可以是一个受信任的第三方。以标准侧链(standard sidechain)(或layer 1链)和母链( parent chain)之间的桥梁为例,侧链的共识可以锁定或窃取通过主链存入侧链的资金。这是因为为了进行状态验证,母链并不验证侧链本身的交易。相反,它相信侧链的操作者(即共识)只按照侧链的交易有效性规则在母链上移动存放的资金。像这样的桥是可信任的桥,因为它依靠诚实的多数假设来防止桥的操作者窃取资金,例如Ethereum-Polygon和Ethereum-Solana的桥。
然而,Rollups不必为了保证存款或取款的原子性而去需要诚实的多数假设来进行状态验证,因为主链使用ZK证明或欺诈证明等技术能间接检查rollup的交易有效性。然而,通过母链从rollup中取款确实需要一个可信的第三方,其形式是一个非常弱势的、诚实的少数假设(honest minority assumption)的活跃性:至少有一个中继器或聚合器必须在母链上发布rollup区块。在rollups的情况下,任何一方都可以成为中继器或聚合器,因此用户自己可以履行这个角色,这需要一个同步假设(即有一个同步的网络,当用户发送消息时,它将在一定的时间范围内被网络接收)1。
因此,我们可以将跨链通信分为两个主要类别:
应该注意的是,像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万笔交易。
限制集群规模的两个重要核心限制是:
在实践中,我们可以观察到,集群模型已经是现实世界中区块链生态系统的运作方式——一组layer 1的链和rollups,相互之间有集群内和集群间的桥梁(见上图)。然而,集群间的桥接伴随着严重的安全权衡——你必须相信一组验证者不会盗取你的资金。因此,区块链社区应该确保集群内的可扩展性(如使用rollups)得到最大限度的发挥,在启动依靠不太安全的集群间通信的新集群之前,从而达到每个集群的极限。
Celestia为区块链提供了一个可插拔的共识和数据可用性层,包括rollups。这是一个共识和执行解耦的区块链,因为它不提供像以太坊那样的链上智能合约环境,只提供共识和数据可用性。Celestia生态系统本身并不是一个集群,因为它没有在基于Celestia的链之间执行任何特定的跨链通信机制,但它提供了构建集群的核心成分。
如上节所述,集群内通信需要信任最小化的状态验证,这需要检查集群内所有链的数据可用性。这是因为:
因此,Celestia提供了构建链集群的核心要素:数据可用性层。集群本身就位于该层之上,在执行层中(如上图所示)。为了让集群支持集群内的通信,集群中的所有链需要检查彼此的区块是否被包含在Celestia数据可用性链中,因此可以使用上述三种技术之一对彼此进行信任最小化的状态验证。
为此,我们正在进行的一个重要项目是optimint,它是Tendermint的直接替代品,允许开发者将基于Cosmos的链作为rollup建立,可以使用其他链,如Celestia作为共识和数据可用性层。在未来,我们的目标是使基于rollup的Cosmos zones能够使用区块链间通信(IBC)协议相互形成一个集群成为可能。
最近,从事跨链桥的团队出现了寒武纪式的大爆发(Cambrian explosion)。随着这个领域的发展,我们认为生态系统必须为跨链桥达成一个共同的模型和语言。在这篇文章中,我们已经确定了跨链桥的自然分类:形成集群的信任最小化的桥( trust-minimized bridges),以及可信的桥(trusted bridges)。