香港财政司司长陈茂波:
深入解读任意消息传递协议如何破解互操作性信任难题?
原文作者:Shi Khai Wei,Raghav Agarwal
原文编译:Kxp,BlockBeats
引言
多链是未来的发展趋势,可扩展性的追求将 Ethereum 引向了 Rollup 技术的搭建。在转向模块化区块链的过程中,人们再次关注到了应用链。而在不远的未来,我们听到了关于特定应用 Rollup、L3 和主权链的传闻。但这一切都将以碎片化为代价,而目前的跨链桥通常在功能上存在限制,并依赖于可信的签名者来确保安全性。
那么,互联的 Web3 最终将呈现出怎样的局面呢?我们认为,跨链桥最终将演变为跨链消息传递或「任意消息传递」(AMP)协议,以解锁新的应用场景,让应用能够在源链和目标链之间传递任意消息。我们还将见证「信任机制格局」的出现,其中构建者将在可用性、复杂性和安全性之间做出各种权衡。
每个 AMP 解决方案都需要实现两个关键功能:
验证:能够在目标链上验证来自源链消息的有效性
活跃性:能够将信息从源链传递到目标链
很遗憾,百分之百的无信任验证并不现实,用户必须根据验证是在链上还是链下,选择相信代码、博弈理论、人类(或实体),或者这些的组合。
在本文中,我们将整体互操作性领域垂直划分为基于信任机制和基于集成架构两个方面。
信任机制:
1. 信任代码和数学:对于这些解决方案,存在着链上的证明,任何人都可以验证。这些解决方案通常依赖于轻客户端,用于验证源链在目标链上的共识或验证源链在目标链上状态转换的有效性。通过轻客户端进行的验证可以通过零知识证明来提高效率,将任意长的计算压缩为离线进行,同时提供简单的链上验证来证明计算结果。
2. 信任博弈论:当用户/应用程序需要相信第三方或第三方网络来保证交易的真实性时,就会涉及到额外的信任假设。通过采用无权限网络和经济激励以及乐观安全等博弈理论,可以提高这些机制的安全性。
3. 信任人类:这些解决方案依赖于大多数验证者的诚实性或独立性,这些验证者传递不同的信息。除了相信两个交互链的共识外,还需要相信第三方。这种情况下,唯一的风险在于参与实体的声誉。如果足够多的参与实体同意一笔交易是有效的,那么它就被视为有效。
值得注意的是,所有解决方案在一定程度上都需要对代码和人类的信任。任何具有错误代码的解决方案都可能被黑客利用,每个解决方案在设置、升级或代码库的维护方面都有一定的人为因素。
集成架构:
1. 点对点模型:需要在每条源链和目标链之间建立专用的通信通道。
2. 中心式枢纽模型:需要建立一个与中央枢纽的通信渠道,以实现与连接到该枢纽的所有其他区块链的互联互通。
点对点模型相对难以扩展,因为每个连接的区块链都需要一个成对的通信渠道。对于具有不同共识和框架的区块链来说,开发这些通道可能是具有挑战性的。然而,如果需要,成对的桥梁提供了更多灵活性来定制配置。还可以采用混合方法,例如使用 Inter-Blockchain Communication(IBC)协议通过中继进行多跳路由,从而消除了直接点对点通信的需求,但在安全性、延迟和成本等方面引入了更多复杂性。
信任代码和数学
为了只依赖代码/数学进行信任假设,可以使用轻客户端来验证源链在目标链上的共识。轻客户端/节点是连接到全节点以与区块链交互的软件。目标链上的轻客户端通常存储源链块头的历史记录(按顺序),这足以验证交易。离线代理(如中继)监视源链上的事件,生成密码学包含证明,并将它们与块头一起转发到目标链上的轻客户端。由于轻客户端按顺序存储块头,每个块头都包含可用于证明状态的 Merkle 根哈希,因此它们能够验证交易。以下是这种方法的主要特点概述:
安全性
在轻客户端的初始化过程中引入了信任假设。在创建新的轻客户端时,它会初始化为来自对方链上特定高度的一个块头。然而,存在一个可能性,即提供的块头可能是不正确的,从而可能通过伪造的块头欺骗轻客户端。一旦轻客户端被初始化,就不会再引入进一步的信任假设。然而,值得注意的是,该初始化过程依赖于较弱的信任假设,因为任何人都可以验证它。此外,对于中继器的连续传输信息,存在活跃性假设。
实施
轻客户端的实施取决于验证所需的密码原语的可用性。如果连接的是同一类型的链,意味着它们共享相同的应用程序框架和共识算法,则两端的轻客户端实施将相同。例如,所有 Cosmos SDK-based 链都使用 Inter-Blockchain Communication (IBC) 协议。另一方面,如轻客户端的实现取决于对验证所需的密码学原语的支持情况。如果连接的是相同类型的链,即它们共享相同的应用框架和共识算法,那么两侧的轻客户端实现将相同。例如,Inter-Blockchain Communication(IBC)协议用于所有基于 Cosmos SDK 的链。另一方面,如果连接的是两种不同类型的链,例如不同的应用框架或共识类型,则轻客户端的实现将不同。一个例子是 Composable Finance,他们正在努力通过 IBC 将 Cosmos SDK 链连接到 Polkadot 生态系统的 Substrate 应用框架。这就需要在 Substrate 链上使用 Tendermint 轻客户端,并在 Cosmos SDK 链上添加一个"beefy"轻客户端。最近,他们通过 IBC 在 Polkadot 和 Kusama 之间建立了第一个连接。
挑战