1. 什么是 IBC?
正在开发 区块链跨链通信 (Inter-Blockchain Communication, IBC)协议,以标准化区块链之间的数据传输。如果单个区块链是一颗行星,那么 IBC 就是航天飞机,它通过一条旨在最大程度地减少所有相关利益的相关者(网络管理者、区块生产者、区块链开发人员和最终用户)工作的路径来传送信息包。由于互联网连接了位于世界其它地方的不同类别的计算机,IBC 希望创建一条高速公路,通过这条高速公路,可靠、有序和经过身份验证的信息可以安全地从一个区块链传输到另一个区块链,而不会被窃取。
2. AntelopeIO IBC
AntelopeIO IBC协议承诺会即刻证明事件将发生在另一个启用 AntelopeIO IBC 的网络中。如图 1 所示,AntelopeIO IBC 包括两种类型的证明,即区块证明(block proof)和操作证明(action proof)。区块证明又可以分为两部分,即。重证明和轻证明。
图 1:AntelopeIO IBC 协议
当区块链执行 AntelopeIO IBC 协议时,智能合约被实例化。Antelope IBC 之上可以构建任何类型的应用程序(同质化代币的转移(fungible tokens, FTs)、非同质化代币的转移(non-fungible tokens, NFTs)、跨链账户创建和维护、跨链查询等)。一旦设置调用了智能合约,用户就可以使用单一证明方案或多种方案的组合通过 IBC 进行通信。
注:Fungible tokens, FTs 也译作 可替代代币,Non-fungible tokens, NFTs 也译作 不可替代代币。
采用 AntelopeIO IBC 协议的区块链网络有:
3. Cosmos IBC
Cosmos IBC主要分为两层,即传输层和应用层,如图2所示。
图 2:Cosmos IBC 的主要层
通过 Cosmos IBC 传输的消息在数据包中被加密,这些数据包通过传输层进行排序、验证和传输。传输层的关键组件如图 3 所示。
图 3:Cosmos IBC 协议传输层的关键组件
Cosmos IBC 的轻客户端不会存储区块链中已存在的所有消息完整历史记录。相反,它们连接到一个节点并验证块头。图 4 显示了可用的不同类型的客户端。
图 4:Cosmos IBC 的轻客户端
单机(手机、笔记本电脑、浏览器等)可以使用 Solo Machine Client 连接到支持 IBC 的机器设备。
使用 Tendermint 共识算法复制的状态机可以与其它复制的状态机或使用 Tendermint Client 的单机连接。
Wasm clients 是可动态升级的客户端。
基于GHOST的递归祖先派生前缀协议(GHOST-based Recursive Ancestor Deriving Prefix Agreement, GRANDPA) 客户端可以由区块链使用 GRANDPA 终结性工具 实现,以与其它状态机或单机通信。
中继器(Relayer)是一个链下过程,它可以检索状态并将交易发布到其他在 IBC 协议上通信的分类账。中继器必须与每条链上的资金账户连接。如果要连接多条链,则必须为每对链使用一个中继器。
连接(Connection)语义是一种在具有另一条链的轻客户端的两条链之间建立安全连接的协议。
通道(Channel) 和 数据包(Packet) 语义为 IBC 协议提供了消息传递机制。每个通道都与一个特定的连接相关联,并且一个连接可以附加任意数量的通道。
不同类型模块之间的端口分配(Port allocation)由端口分配算法决定。一个 IBC 模块可以分配任意数量的端口。
区块链的状态机充当向量承诺(vector commitment)的管理者。它有能力和责任在承诺中添加或删除项目。
主状态机要求(Host State Machine Requirements)定义了状态机必须实现的最小接口集和属性。
IBC 处理程序接口(IBC handler interface)包括处理 IBC 客户端、连接、通道和数据包中继的方法。
路由模块(routing module)接受外部数据报告并调用 IBC 处理程序来处理握手和数据包中继。
应用层(Application layer)描述数据包编码和处理语义。图 5 展示了 IBC 的不同应用。
图 5:Cosmos IBC 协议的应用层
IBC 的首要应用场景是跨链的同质化代币转移。使用此标准,用户无需额外许可即可将资产从一条启用 IBC 的链转移到另一条启用 IBC 的链。
跨链账户(Interchain account)是一种跨链账户管理协议,使用它,一个启用 IBC 的链的用户可以像本地系统一样创建和控制其他启用 IBC 的链的账户。
使用跨链验证(cross-chain validation)维护跨链安全。它使供应商链(provider chain)能够为多个消费者链(consumer chain)提供安全性。
通用中继激励机制(Relayer Incentivisation Mechanism)用于在 IBC 之上处理费用支付。
IBC 中间件包含模块必须实现的接口和状态机逻辑,以便作为核心 IBC 和重点应用程序之间的中间件正常运行。
跨链查询模块包含允许在启用 IBC 的链之间执行跨链查询的数据结构和状态机逻辑。
非同质化代币转移模块包括数据结构、状态机处理逻辑和编码过程,用于将非同质化代币从一个支持 IBC 的链转移到另一个支持 IBC 的链。
以下区块链已经实现了 Cosmos IBC:
4. AntelopeIO IBC 与 Cosmos IBC 对比
标准 | AntelopeIO IBC | Cosmos IBC |
跨链确认 | 瞬间 | 即刻 |
谁可以采用? | 任何区块链 | 任何区块链 |
可以开发什么应用? | 任意类型的 dApp,如同质化代币的转移、非同质化代币的转移、跨链账户创建和维护、跨链查询、代币效用分片等。 | 任意类型的 dApp,如同质化代币的转移、非同质化代币的转移、跨链账户创建和维护、跨链查询等。 |
Gas 费 | 非常低 | 低 |
可扩展性 | 可以连接任意数量的区块链。 | 可以连接任意数量的区块链。 |
5. 结论
在孤岛区块链之间创建“超级高速公路”的区块链跨链通信是区块链发展的下一波浪潮。除了 AntelopeIO IBC 和 Cosmos IBC,还有许多其他跨链通信协议(如,MAP、Layerzero 和 celer 等)。Antelope 联盟未来将只接受那些具备基础设施的区块链建立 IBC。
作者: Sukanta Manna
编辑: Markus Hinrichs; Randall Roland; Thian
译者: SHE
校对:Gracie Lau
参考资源: