当前位置:比特币价格 > 头条 > 一文读懂互操性协议 IBC 与 XCMP 的区别

一文读懂互操性协议 IBC 与 XCMP 的区别

小欧2022-06-15 09:38:13头条104

我们正在迎接必将到来的多链生态。根据定义,多链生态催生了对跨链通信的需求。虽然跨链桥在更广泛的互操作性方案中发挥着一种资产转移的特定功能,但这些桥接不足以满足跨链生态对于细微用例的要求。过去几年间发生的一系列针对桥接的攻击事件一致表明,具有托管性质的第三方桥接无法提供安全可靠的桥接转移服务。


目前,我们需要一种通用、无需许可、安全且可扩展的技术,在保持容错性的同时充当区块链之间的连接组织。跨链通信协议(IBC)和跨链消息传递协议(XCMP)是旨在体现这一跨链世界愿景的两种协议。


本文旨在对上述两种跨链通信协议进行全面概述。对于不熟悉 IBC 和 XCMP 的读者,下一节内容将对这两者进行简要介绍。在此基础上,本文将这两种协议进行并列对比,以剖析两者的异同以及各自的优缺点。


对比将基于安全性、通用性、可扩展性、用户体验和开发人员工具的水平。在最后,我们总结了本文的一些亮点。


什么是 IBC? 


IBC 是一种允许异构区块链以可靠、有序和信任最小化的方式传递任何数据的协议。


IBC 协议的基础是轻客户端(light clients)和中继器(relayers)。通过 IBC 进行通信的链 A 和链 B 互相具有对方账本的轻客户端。链 A 无需信任第三方,只需通过验证区块头就可以对 链 B 的状态达成共识。通过 IBC(尤其是模块)进行交互的链彼此间不会直接传送消息。相反,链 A 将数据包中的一些消息同步至其状态。随后,被称为「中继器」的无需许可的账外进程对这些数据包进行检测,并将它们传送给目标链。





一文读懂互操性协议 IBC 与 XCMP 的区别-第1张图片




图 1:IBC 数据包流程图,来源:ibcprotocol.org


总的来说,IBC 协议可分为两层,分别是 IBC TAO(传输、排序与验证)和应用层。


IBC TAO 对通过其发送的数据包所包含的信息不做任何假设,并且对这些数据包的结构不设限制,它只负责确保可靠、有序和经过验证的通信。而应用层(即模块)则负责决定如何解释数据包。


通过 Tendermint 和 Cosmos SDK 堆栈搭建的区块链可以快速实现 IBC 功能。IBC 还可以与其他基于 UTXO 或 Account 模型,并具有概率最终性的区块链进行集成,例如 Bitcoin 或 ethereum。


IBC 集成文档:


https://ibc.cosmos.network/main/ibc/integration.html


IBC 协议是 Cosmos 坚持的「区块链互联网(Internet of Blockchains)」愿景的支柱。从这个意义上说,IBC 的设计选择受到了 TCP/IP 规范的影响。与 TCP/IP 为计算机通信制定标准的方式类似,IBC 也指定了一组通用抽象,通过将其实现可以允许区块链进行通信。TCP/IP 对通过网络中继的数据包的内容不设限制,IBC 也是如此。此外,与 HTTP 和 SMTP 等应用协议在 TCP/IP 上搭建的方式类似,FT(同质化资产)/NFT(非同质化资产)传输或跨链智能合约调用等应用实例也将 IBC 协议作为基础层。


什么是 XCMP? 


XCMP 是 Polkadot 生态的跨链通信协议版本。它基于简单排队机制,允许一条平行链(parachain)与另一条平行链进行通信。XCMP 的特点是有可担保、信任最小化和有序的消息传递,是使用跨共识消息格式(XCM)的传输层。顾名思义,XCM 为 XCMP 在任意系统之间传输的任意数据提供了一种可用格式。换句话说,XCM 是在链之间传递的消息,而 XCMP 是传递该消息的方式。




希望与平行链 B 通信的平行链 A 开放一个可以唯一标识对方链的双向通道(或两个单向通道)。平行链 A 发起一条跨链消息,链 A 的收集人(collator)节点拾取该消息,并将其放入链 A 的传出消息队列中。收集人节点本质上负责维护中继链及其对应的平行链的全节点。平行链 B 上的收集人节点负责扫描所有传入该链的消息。当它侦测到来自链 A 的消息时,会将该消息放入传入队列中。随后,该收集人节点处理该消息,将其加入一个新提议的区块(block)中,并发送到中继链进行验证。一旦平行链上的区块被验证人成功验证,该区块的哈希值就会包含在中继链中。


与 IBC 协议类似,XCMP 协议能够保证信任最小化的消息传递,而无需规定接受链如何解释这些消息。执行代码/解释逻辑的角色由 SPREE 模块执行。SPREE(Shared Protected Runtime Execution Enclaves,共享安全区)是 WebAssembly 代码的二进制大对象(blob),通过治理提案上传至中继链。平行链可以决定选择加入 SPREE 模块所执行的逻辑。SPREE 在补充 XCMP 协议方面发挥着重要作用,因为 XCMP 确保消息的传递,而 SPREE 则确保消息的执行。



除了 XCMP,Polkadot 还具有两种使用 XCM 格式的不同传输机制。即向上消息传递(UMP)和向下消息传递(DMP)。前者负责将消息从平行链传递到中继链,后者负责将消息从中继链传递到平行链。UMP 和 DMP 均属于垂直消息传递(VMP)的范畴。


需要注意的是,XCMP 目前正在开发中(尽管 XCM 已上线)。目前已作为替代部署的是一种称为水平中继路由信息传递(HRMP)的协议。HRMP 从根本上说是不可持续的,因为所有跨链消息都必须存储在中继链上,这使它在存储和成本方面的资源密集程度很高。Polkadot 计划在 XCMP 经过实战测试并准备好交付后逐步淘汰 HRMP。




相比之下,IBC 自 2021 年 4 月发布以来一直投入使用。在此期间,IBC 被大量区块链所采用。截至本文撰写时,已有 46 条链通过 IBC 协议互连,其在 30 天内处理的事务量价值达到了 50 亿美元。




IBC 的先发优势和 XCMP 正在开发中的事实并不会影响对这两种协议进行比较的范围。这主要是因为 XCMP 的架构和设计(尽管尚未上线)已经确定。


对比 IBC 与 XCMP


本节讨论的是 IBC 和 XCMP 的优缺点以及两者之间的异同。在比较这两个标准时,需要考虑以下属性:


安全性


通用性


可扩展性


用户体验(UI)


开发者工具


鉴于这两种协议旨在实现相同的互操作性目标,因此两者之间存在一些共同点。但由于 Cosmos 和 Polkadot 生态的底层架构不同,且 IBC 和 XCMP 的某些属性来自其本身的协议架构,因此两者之间存在许多关键差异。


请注意,由于 Polkadot 的互操作性设计,上述一些属性将更适用于 XCM 而不是 XCMP。在这种情况下,我们将对两者区别进行明确定义。从某种意义上说,IBC TAO 层映射到 XCMP,而 IBC 的应用层映射到 XCM。因此,如果不讨论 XCM,IBC 与 XCMP 的对比就是不完整的。


01


安全性


1.1 IBC


在分布式系统中,安全属性本质上与信任最小化属性相关联。因此,了解区块链的安全程度意味着要了解其信任最小化的程度。


在 Cosmos 应用专有链生态中,网络的安全性是由其自身提供的。每条链都有自己的验证人集,因此也有自己的安全模型。上一节中提到,IBC 协议中数据包的验证与排序是由轻客户端完成的。从 IBC 的角度来看,两个账本通过协议进行通信的过程,其实就是双方链上的轻客户端维护和更新另一条链状态的过程。因此,IBC 的安全属性归根结底是轻客户端的安全属性。简而言之,IBC 通过轻客户端描绘了不同区块链的共识算法之间的交互。


Cosmos 生态:


https://cosmos.network/ecosystem/apps/


也就是说,如果您信任两条特定的链来使用它们提供的功能(以及默认情况下使用它们的共识算法),那么在通过 IBC 在这两条链之间进行交互时,就不需要作额外的信任假设。这就是「信任最小化」这一术语的含义。


值得注意的是,IBC 将在实现「跨链安全」(也就是 Cosmos 生态版本的「共享安全」)方面发挥重要作用。跨链安全功能一旦推出,生态内的区块链将可以选择自己维护网络安全、从 Cosmos Hub 租用安全性,或同时采用两种方法(即「分层安全性」)。



1.2 XCMP


通过使用 Polkadot 的共享安全模型,所有平行链都能获得中继链的经济安全性。一旦平行链在 Polkadot 中获得一个插槽(Slot)并经由其连接到中继链,负责维护中继链安全性的验证人集也会同时维护平行链的安全性。这意味着攻击平行链的成本等同于攻击生态中任何其他链的成本,包括中继链。从操作的角度来看,平行链只需要维护将状态转移证明传送给验证人的收集人节点。




XCMP 从这种共享安全模型中获得了信任最小化的特性,其中,中继链的安全属性保证了消息传递的正确性和真实性,而无需信任第三方。由于同一个验证人集可以保护所有平行链,因此 XCMP 上的跨链通信只需信任一个验证人集。


但这并不完全代表 XCMP 不会强加额外的信任假设。由于收集人节点负责在平行链之间发送和接收消息,因此理论上他们也可以对消息进行审查。比如,收集人可以选择只接收消息但不传递。因此,XCMP 增加了额外的信任假设,即至少有一个诚实的收集人节点。


02


通用性


2.1 IBC


IBC 被设计为一种通用的消息传递协议。这意味着任何形式的数据(FT 和 NFT 转移、治理投票、智能合约调用等)都可以通过 IBC 进行通信。


通过 IBC 中继的数据包可能包含不同的信息,具体取决于它所服务的应用场景。对于资产转移场景,数据包包含有关其类型、数量、发送方和接收方地址的信息。对于跨链治理场景——链 A 上的账户可以为链 B 上的提案投票——数据包包含投票信息。对于「跨链帐户」管理场景,数据包包含所传递消息类型的相关信息。通过 IBC 发送的数据包还可以包含有关某个验证人集的构成及其投票权重(voting power)的信息。这是 IBC 为跨链安全执行的功能之一(用于实现跨链安全的特定 IBC 级协议称为「跨链验证」)。


了解「跨链账户」功能:


https://interchain-io.medium.com/welcome-to-the-ibc-gang-lets-talk-f469883e0ffe


几乎所有上述 IBC 的应用都由使用 IBC 网关服务的各种跨链原生产品实现。例如,Osmosis 和 Crescent 网络都拥有利用 IBC 进行跨链资产转移的去中心化应用平台。Quicksilver 协议是 Cosmos 链通过跨链账户功能实现在单一平台内为不同链上的提案进行投票的实例之一。Osmosis 和 Quicksilver 也准备成为首批应用「跨链安全」功能的链。


2.2 XCM 和 XCMP


鉴于 XCMP 充当传递 XCM 格式消息的传输层(尽管它也可以使用任何其他建议的格式),XCMP 的通用性与 XCM 的通用性密切相关。


XCM 旨在促进不同共识系统之间任意信息的传输。XCM 的主要目标之一是抽象跨共识通信的低层次细节。这带来了一些用例,例如不同区块链上的两个智能合约之间的交互、通过桥接进行的跨链通信,或分片之间的通信。


截至目前,XCM 的用例包括:


传输:以在一条链上销毁资产并在另一条链上铸造等量资产的形式进行资产转移。基于相反逻辑的传输也使用了资产转移应用。


远程转移:类似于「本地链」上的账户可以控制「远程链」上的账户的跨链账户功能。此时,XCM 消息将包含本地和远程帐户信息以及本地链对远程链执行的操作。


平台专有功能:XCM 还旨在允许平行链(或任何基于 Substrate 的链)向其众多 Pallet 模块之一发送远程调用请求,以使用特定特性或功能。


Pallet 模块:




03


可扩展性


3.1 IBC


对于互操作性协议,可扩展性意味着它是否可以在不同的域(不限于区块链)中部署。


虽然 Tendermint 的即时最终性和 Cosmos SDK 提供的模块化特性对于实现 IBC 的账本来说无疑是可取的,但这些特性绝不是必要的要求。IBC 的设计逻辑决定了它与共识无关,并且可以拓展至任何现有共识算法,甚至未来可能发明的共识算法的任意迭代版本。为了连接以太坊等具有概率最终性的区块链,使用了一个称为 peg-zone 的独特代理链(proxy-chain)。Peg zone 支持 IBC 功能,因为它们具有即时最终性,并能够为与其连接的链(在此案例下即为以太坊)建立最终性保证。Gravity Bridge 便是使用这类 peg-zone 来实现以太坊和 Cosmos 生态互操作的区块链之一。


Gravity Bridge:


https://www.gravitybridge.net/


基于 Substrate 的链通过 IBC 进行互连的功能目前正在开发中。这一功能将允许 Polkadot 和 Kusama(Polkadot 的金丝雀网络)上的平行链与通过 IBC 连接的其他链进行通信。Composable Finance 团队为 Substrate IBC pallet 模块的开发做出了贡献,他们也在积极努力将 IBC 引入 NEAR 协议。在 Composable Finance 提供的一系列互操作性工具中,跨链虚拟机(XCVM)是不可或缺的一部分。XCVM 是一个可供开发者部署智能合约的平台,能够与不同平台上的其他智能合约进行通信。XCVM 使用 IBC 和 XCM 作为传输层,以促进去中心化应用(dapp)之间的原生互操作性。


基于 Substrate 的链的 IBC 通信功能开发进展:




IBC 不仅可以连接具有不同共识算法的区块链,还可以连接单机网络(SOLo machine,即没有共识算法的系统)。例如,使用 IBC 单机网络可以在 Crypto.org 链上推出支持 IBC 的原生资产,而无需搭建与 IBC 连接的区块链。


3.2 XCM 和 XCMP


与通用性类似,XCMP 的可扩展性与 XCM 的可扩展性程度息息相关。XCM 旨在创建可跨任意共识系统的通用消息格式。它的设计目标之一是面向未来产品和向前兼容(forward compatible)。共识不可知性是 XCM 的另一个关键属性。这意味着它的适用范围大于平行链与中继链间,或与平行链间的通信。从理论上讲,XCM 还可以促进采用这种消息传递格式的完全异构区块链之间的交互。


如前所述,现存架构中存在三种使用 XCM 格式的主要传输协议,分别是 XCMP、UMP 和 DMP。这三种协议目前都无法实现 Polkadot 和另一个独立区块链之间的互操作性。目前,只有平行链可以使用 XCMP、UMP 或 DMP 协议实现可互操作性。尽管如此,我们可以想象未来可能会出现一种使用 XCM 格式的传输协议,可以实现 Polkadot 和其他独立区块链之间的通信。


“一文读懂互操性协议 IBC 与 XCMP 的区别” 的相关文章

由于以太坊表现不佳,比特币的主导地位飙升

由于以太坊表现不佳,比特币的主导地位飙升

以太坊度过了非常艰难的一天,表现远逊于比特币第二大加密货币以太坊在过去 24 小时内下跌了 11% 以上,表现远逊于比特币.ETH/BTC 对在短短一天内下跌了 7.85%。它已暴跌至仅 0.059 BTC,为 10 月 20 日以来的最低水平。图片来自tradingview.com自今年年初以来,...

Solana 的区块链时钟丢失时间,现在落后 30 分钟

较慢的时隙时间导致 Solana 区块链时钟显着漂移,链上时间比现实世界时间落后半小时。虽然该问题不会影响网络运营,但它可能会导致质押奖励收益减少。该项目周四通过其状态页面报告称,由于网络上的时间段比理想时间长,Solana (SOL) 的区块链时钟目前与现实世界的时间相差约 30 分钟。根据 UT...

Tron TVL 飙升 45%,仅次于 ETH 和 BNB 链排名第三

Tron链上锁仓的资金量已经超过了除以太坊和BNB链外的其他区块链;这就是为什么Colin Wu 宣传了 Tron 链上总价值锁定(TVL)的新里程碑;它飙升了 45%。与此同时,Whale Alert 发现了近 12 笔大规模交易,移动了 TRX——近 100 亿枚硬币。Tron TVL 飙升 4...

Elon Musk 抨击 Dogecoin 创造者对 Twitter Bot 解决方案的声称

埃隆马斯克在最近的一条推文中讽刺地回应了帕尔默的断言,称它们是“错误的”特斯拉首席执行官兼 SpaceX 创始人埃隆·马斯克(Elon Musk)回击了狗狗币联合创始人杰克逊·帕尔默(Jackson Palmer)声称编写了一个可以对抗 Twitter 垃圾邮件机器人的 Python 脚本。帕尔默在...

Ice Cube:BIG3 重新启动其以太坊 NFT 团队股权以使他们“足够多汁”

唱歌手兼演员 Ice Cube 的 BIG3 篮球联盟正在使用以太坊 NFT 来分散球队所有权,该计划已经吸引了Snoop Dogg 和 Gary Vaynerchuk 等主要投资者,以及Moonbirds和DeGods等 NFT 社区。然而,由于技术问题,5 月 8 日数千支球队NFT的公开铸币过...

Solana (SOL) Bullrun 的收益在跌至 2021 年水平时蒸发

Solana (SOL) Bullrun 的收益在跌至 2021 年水平时蒸发

尽管失去了 2021 年的所有收益,但 SOL 自首次公开募股以来仍大幅上涨此前,随着 NFT 和 DeFi 行业的衰落,市场领先的Solana ——本应成为下一个“以太坊杀手”——未能辜负它的绰号,并失去了自 2021 年夏季以来的所有收益。正如该代币的日线图所示,Solana 目前的交...