跨链通信协议 ibc:区块链的 tcp/ip 协议,跨链桥和趋势

本文由社区爱好者 Johnnie Red 于 11 月 29 日发表,旨在探讨跨链通信协议(Inter-Blockchain Communication, 下称 IBC)。

跨链通信协议(IBC)是即将发布的 Stargate 测试网升级版本中, 针对整个 Cosmos 生态系统以及分布式账本的突破性技术创新。同时,由于跨链桥在 Cosmos 后 IBC 时期中的作用尤为重要,本文也将展开对跨链桥的解释。在文章的最后,我们将给出针对 Stargate 测试网顺利启动, IBC 协议被实现后的一些建议和发展解决方案。这些建议和解决方案会使我们的 IBC 协议变得更有价值,同时也会提升其被使用率。

Stargate 测试网升级

温馨提示:如同口语中我们所习惯的,「分布式账本」,「链」和「区块链」等术语在本文中经常混合使用。

Stargate 测试网升级是一次非常重要的升级,因为它将一系列 Cosmos 白皮书中曾经展望和描绘过的蓝图真正实现了出来。Cosmos 是首个能够使用标准化 IBC 协议的网络,从这个意义上来说,它也是有史以来第一个能使各个区块链进行互联互通的网络。事实上,Stargate 测试网的成功升级也恰好标志着 IBC 的实现!

目前的升级进度:已完成 97%

Stargate 测试网升级后的网络功能

几周之内,Cosmos Hub 的治理机制将被引入,以便委托人和验证者投票通过迄今为止最大的 Cosmos 升级方案。以下是最近的测试网升级后的网络应该具备的功能:

  1. 跨链通信协议 IBC: 可兼容的区块链之间可以跨链共享交易数据和信息;

  2. Protobuf 迁移: 可以加速前端开发,可以使区块链的性能提升 10 倍至 100 倍;

  3. 节点高速率同步: 一个新节点可以以近乎 200 倍的速率更快速地被同步,从而在几分钟之内就参与共识;

  4. 区块链升级模块: 验证人能够在几分钟内异步地将区块链软件升级;

  5. Tendermint 轻客户端安全模型 允许全节点同步全部状态而不需要等待数日。

下文旨在探究跨链通信协议 IBC 的优点和功能,并讨论其效用:

  1. 同构链(在 Cosmos 生态系统中共存的链);

  2. 不基于 Tendermint 的异构链。

在文章的结尾,我们将尝试清晰地区分跨链桥和支付通道的概念,并且给出一些在「后 IBC」阶段可更广泛采用的方式和工具。

有许多的文章和信息资源在技术层面上的探讨都比本文更具深度和广度。本文仅为了提供一个在 Cosmos 网络上,关于 IBC 协议以及区块链互联互通的技术梗概和信息整合。

IBC 介绍

有很多公链称自己具有治理主权,具备去中心化、可扩展性及可持续发展能力,但在众多链中,只有一条链声称自己可以在具备以上特性的同时,还能够解决区块链之间的互联互通的难题。Cosmos 网络即将实现其最初路线图中所描述的这一愿景。而促进这一愿景实现的正是跨链通信协议 IBC。

此外,即将发布的 IBC 与 Stargate 升级版将标志着完成了 Cosmos 技术栈中重要的三层实现:Tendermint 内核、Cosmos SDK 和跨链通信协议 IBC。


跨链通信协议 IBC 是一个可靠且安全的模块间通信(互操作性)协议,可以实现数据的跨链可靠传输、验证和排序。

IBC 可以被用在任何基于可靠和安全模块间通信的应用程序上。应用场景包括跨链资产转移,原子交易,多链智能合约(基于或无需互通虚拟机)以及数据和代码多种形式的分片。

这就是 IBC 协议被称作区块链 TCP/IP 协议的原因。

Josh Lee 在其曾发布的文章中提供了一个关于 IBC 协议工作原理的解释,值得在这里分享:

TCP/IP 协议之所以能作为标准互联网协议存在长达近50年之久,是由于它足够简洁和灵活。迄今为止,个人电脑,服务器,智能手机均采用这一协议。这一协议甚至也被用在小型物联网设备上并且经受住了多轮互联网技术更新和迭代的考验。

和 TCP/IP 协议类似,IBC 的特殊性在于它可以将应用层(application layer)从传输层和网络层(TAO, transport, authorization, organization)中剥离出来。这意味着 IBC 定义了数据是如何跨链被发送和接受的。不过它并没有明确具体的数据以及这些数据是如何组织结构的。这使得 IBC 从其他一些需要在应用层实现大量标准化的互联互通解决方案中脱引而出。然而也要注意的是,做过度的标准化可能会降低本属于互联互通网络中区块链架构的多样性。

IBC 最大的优势是它的简洁性。

IBC 不是什么?

IBC 不是一个应用层协议: 它主要负责处理数据传输,验证和保障可靠数据传输。

IBC 不是一个原子交换协议: IBC 支持任意的跨链数据迁移和计算。

IBC 不是一个通证转移协议: 转移功能是一个基于 IBC 协议的应用层协议的应用。

IBC 不是一个分片协议: 在 IBC 中没有被跨链分片的单状态机,但是有一系列位于不同主链上的不同状态机,这些状态机之间可以共享接口。

IBC 不是一个 Layer 2 扩展协议: 所有实现了 IBC 的公链都存在于协议概念上的同一层,尽管他们可能在网络拓扑结构中占据不同的位置。同时也不要求存在一个根链或验证人集合。

IBC 场景下的同构链(Cosmos 生态内的区块链)

那么 Cosmos 网络中的区块链是如何与基于 Tendermint 的区块链互联的呢?正是凭借跨链通信协议。此外请特别注意,Cosmos Hub 最重要的作用是将区块链的互联起来。如上所述,IBC 将能够让区块链彼此之间交换价值 (其通证所具有的价值) 和数据。

读者可能会想问:

如果两个链都是主链,那么通证将被如何从一条链上转移到另一条链上?

关于这个问题,Gavin Birch 曾针对基于 IBC 协议的资产转移原理做出了一个很好的阐述 (译者注:为便于解释:设链 A 上的原生通证为 a,链 B 上的原生通证为 b):

链 A 锁定通证 a 并且将这一锁定证明(凭证)传递给链 B。这一动作一旦完成并获得验证,链 B 就会铸造自己链上的替代通证 a’ (可以理解为一种等值票券),替代通证 a’ 之后可以被链 B 销毁,链 B 完成销毁后,链 A 会解锁原来被锁定的通证 a。因此,我们可以跨链转移通证的价值来实现跨链资产转移,但我们并不能转移通证本身。

IBC 和非 Tendermint /异构区块链

价值和数据可以通过 IBC 在 Cosmos 生态与非 Tendermint 的区块链(如比特币的主链)间转移吗?

IBC 可以直接实现具有快速最终性的链之间的价值转移(需具有最终确定性)。但是请注意,比特币的主链并不是具有快速最终性的链,因此需要特殊的应用专用链分区才能进行此类转移。

根据 Chjango Unchained 所写的关于锚定区的文章:

https://blog.cosmos.network/the-internet-of-blockchains-how-cosmos-does-interoperability-starting-with-the-ethereum-peg-zone-8744d4d2bc3f

锚定区是基于帐户的区块链,它将 Cosmos 中的区域桥接到比特币或以太坊等外部链。它充当适配器区域或「最终性的小工具」(在 Casper 中),它通过在任意数量的块上施加「最终阈值」来实现伪最终性,从而为概率确定的区块链转化了最终性。通常,此「转换器」区域设计可以归为双向锚定(2WP)。

IBC 协议在 Tendermint 和非 Tendermint 链之间进行资产转移的操作机制,Gavin Birch 也有相关说明:

还记得链 A 向链 B 证明它已锁定通证的时候吗?如果该交易不是永久性的,则链 B可以发行凭证,以支持实际上并未锁定在链A上的通证。重要的是,要确保区块是永久性的,以便对帐户余额的更改具有永久性。锚定区可以设置假定的块数(最终阈值),以便更安全地启用价值…的传输(如 BTC )到 Cosmos 生态系统。

因此,当通证被锁定在链 A 上时,跨链桥通过在链 B 上铸造通证来工作。例如,对于 Peggy(以太坊桥)(链 A ),您将 ERC-20 通证(例如 1 Dai(稳定币))发送到特殊的以太坊地址,并指定宇宙(链B)上的哪个地址应该接收它。然后,您的通证被锁定在以太坊上。然后,Peggy 在 Cosmos 方面为您铸造了等价的通证。这与您在以太坊上锁定的通证并不完全相同,但可以被认为是等效的通证(例如 1 个 CosmosDAI 或 cDAI = 1 Dai)。

您可以在 Cosmos 上发送 cDAI 通证,并将其用于分布式的应用程序中。通过将 cDAI 发送到跨链桥的 Cosmos 一侧,可以将其发送回以太坊上的地址。然后将 cDAI 烧掉,并解锁以太坊上相同数量的 Dai(在我们的示例中为 1 Dai)。由于这种能力可以在以太坊上将合成 Dai(cDAI)交换为真实 Dai,因此它们应该以相同的价格交易,并且基本上是等效的。


Secret Network 的独立以太坊桥

除 Peggy 之外,Secret Network(Cosmos SDK/Tendermint 链)目前还在开发托管的以太坊桥。它在测试网上运行,将于 12 月启用。

为了说明它是如何工作的,下面是一个用户与跨链桥进行交互的示例:

1)Alice 向以太坊锁定合同发送 10 ETH,并提供她的 Secret Network 地址。

2)多签委员会监视此事件,并向步骤 1 中提供的地址 Alice 发送 10 个 secretETH 的铸造请求。然后, Secret Network 相应地铸造这些包装的通证。

3)Alice 现在可以在 Secret Network 上与 secretETH 进行交易,并在本地 Secret DeFi 生态系统中利用她的 secretETH。

4)当 Alice 想回到以太坊时,她会烧掉她的 secretETH,并提供一个 ETH 地址以收回她的 ETH。

5)多签委员会在以太坊上创建交易,以指示以太坊桥智能合约在步骤 4 中将 ETH 移至 Alice 的地址。

这一过程可以在任何数量和任何 ERC-20 通证的情况下被复现。

值得注意的是,Secret Network 解决方案的缺点在于它依赖于多签委员会(因此称为拘管跨链桥),这又需要对委员会成员的诚实性进行背景检查,并澄清如果委员会采取何种措施应对成员行为不端。例如,他们恶意签署交易并拥有通证。

不过,Secret Network 的跨链桥运营合作伙伴是该领域领先的专业团队(B-Harvest,Figment,Staked)。

Althea 的 Peggy 以太坊桥:为什么如此优越?

Althea 的 Peggy 是一个高级跨链桥,因为它在验证者集和锚定签名者之间具有1:1映射,因此当前的验证者是那些可以签署以太坊多签的人,而不是像 Secret Network 的跨链桥那样由几个成员组成的多签委员会以上。这是一个更安全的解决方案,因为:

a. 没有委员会可以恶意签署交易(例如对自己);然而,网络的验证人却可以。

b. 在 Cosmos 生态系统中,存在一种非常有效的针对验证人的遏制因素,验证人会因为任何已证实的不当行为而被惩罚(slash)。因此,如果使用 Althea 的 Peggy 桥,则需要将网络验证者的 ⅔ 用于恶意签署交易,这种情况极不可能发生。

非常感谢 Ethan Frey 对 Peggy 的体系结构的深刻见解和解释。

要深入了解 Althea 的 Peggy 的体系结构和操作方法,请参阅:

跨链桥并非支付通道

为了了解什么是支付通道,让我们假设您想将 1 Dai(以太坊上的美元挂钩稳定币)转换成例如 1 cosmosUSD(cUSD)(Cosmos 上与美元挂钩的稳定币)。为此,您首先需要一个交易方与您进行反向交易。在实践中,该角色主要是由做市商类型的实体(例如 AMM)扮演,该实体提供流动性并收取相应费用。该交易方的 cUSD 金额必须与您要交易/移动的 Dai 的金额相等。在此示例中,由于它们都是稳定币,因此通证的数量通常几乎相同(即接近 1:1)。

为此,需要将您的 Dai 通证锁定在以太坊上的哈希锁中,一旦您揭示了某个哈希的原像,该通证将被释放给对方。对方也必须在 Cosmos 上对 cUSD 进行哈希锁定,然后使用相同的哈希值将其释放给您。

该示例突出了这两种跨链价值交换方法之间的根本区别之一。请注意,您正在用 Dai 交易 cUSD,这与上一节中的示例不同,在上例中,您在 Cosmos 上交易了实际 Dai 通证的象征。当然,如果 Cosmos 没有本地稳定币,那么使用支付通道的整个过程是不可能的。这是因为付款通道交换不发行通证,而桥接会发行。

关于星际之门之后广泛采用 IBC 的建议

跨链帐户

有关 IBC 的重要概述以及在 Stargate 之后发挥其全部潜力的可能性,请阅读 Josh Lee 的文章:

Josh 提出了一个有趣的建议,即利用跨链帐户,实际上可以允许一个区块链使用 IBC 安全地控制另一个区块链上的帐户。它的工作原理如下:


通过实现上述模型,无需在 IBC TAO 层之上和作为应用程序层分别构建许多特定于应用程序的功能(例如通证传输,通证交换,抵押等)。

根据 Josh 所述:

简而言之,跨链帐户允许区块链使用 IBC 安全地控制另一个区块链上的帐户。

这样做的目的是,跨链帐户不必为每个模块的功能创建应用程序级 IBC,而应允许某人利用帐户的功能来访问区块链的特定于应用程序的功能。

跨链帐户的两个最重要的特征如下:

1. 在 IBC 上 确定性地 创建一个新的跨链帐户。

2. 将交易中继到跨链帐户并将其提交给目标区块链。

AMM DEX 流动性模块

流动性模块(从体系结构的角度来看)旨在允许在 Tendermint PoS 共识环境中对流动性进行连续管理。B-Harvest 和 Tendermint 一直在开发基于可扩展共识机制的快速最终性 DEX,以允许跨区块链交换资产。该路线图包括:

  • IBC 集成可实现 Cosmos 区域之间的跨链连接和交换
  • 使用我们的双向锚定技术与基于以太坊的通证实现互操作性
  • 利用 Ethermint 启用基于以太坊智能合约的系统

IBC 使用案例

想要尽可能了解 IBC 使用案例,请参见:

一些使用案例:

  • 资产转移 (同质化通证,非同质化通证 NFT,普通支付 & 加密支付)
  • 多链合约 (跨链合约调用,跨链付费,跨链抵押)
  • 分片(代码迁移,数据迁移)

小结

从以上分析可以得出,IBC 并不是 Cosmos 发展的终点,而是开始。随着 Stargate 升级提案的通过,我们拥有的是一套虽然基础但非常完整的工具,通过这些工具,我们可以在可互操作(不再孤立)的区块链环境中建立和创造价值。可能性是无止境。价值层可以建立在 IBC 协议之上。IBC 标志着区块链革命的第二个时代的开始,在互联、可互操作的区块链时代里 Cosmos 注定要在其中发挥核心作用。