# IBC 跨链传输

By [un.Block](https://paragraph.com/@un-block) · 2021-10-09

---

### **❓ 为什么需要 IBC ( Inter-Blockchain Communication )**

每个区块链都是一个独立，自治的系统。它们不依赖外部信息，独立地生产区块，验证区块。起初开发者们都在以太坊上用智能合约创造自己的 DApp。这些 DApp 可以互相调用。随着需求的扩展，以太坊逐渐不能满足这些复杂的需求。常见的问题有性能瓶颈， EVM 无法满足需求，无法完全自治。因此开发者开始尝试为自己的 DApp 定制一条区块链。当这些 DApp 都建立在各自定制化的链上时，互相交流便困难了起来。区块链自治的特性成了最大的绊脚石。如何安全有效区去中心化的让消息跨链传输困扰了开发者很久。

### **IBC 是什么**

![](https://storage.googleapis.com/papyrus_images/98377518d922e1be21b7d2663df5ebe644d4807cd823a9fac56a50717a0b08cc.jpg)

[_IBC (Inter-Blockchain Communication Protocol_](https://link.zhihu.com/?target=https%3A//ibcprotocol.org/)) 是 [_Cosmos_](https://link.zhihu.com/?target=https%3A//cosmos.network/) 推出的通用跨链信息传输协议。在保证各个链自治，处理交易速度的同时，IBC 让信息和资产跨链更加的去中心化，安全和便捷。200+ 的服务和应用，超过 800 亿美金的资产采用了 IBC。IBC 就像区块链世界的 TCP/IP 协议，让区块链网络变得可能。

在 IBC 的帮助下，采用不同共识机制，网络的区块链得以互相交流，只要他们的共识机制满足 Fast Finality，即所有交易都会被快速打包，并且无法撤销，更改。

比特币和以太坊并不满足 Fast Finality，因此 Cosmos 为他们定制化了跨链方案：两条支持 Fast Finality 的定制区块链和 IBC。这两条定制链分别跟踪比特币和以太坊的状态。由于这两条定制链兼容 IBC，并且拥有比特币，以太坊的最新状态，跨链问题就此解决。

### **IBC：举个栗子**

接下来我们用 [_一个例子_](https://link.zhihu.com/?target=https%3A//www.youtube.com/watch%3Fv%3DNmytpuD33lY%26ab_channel%3DCosmos) 来解释一下 IBC 是如何运行的。假设我们有两个使用 IBC 的区块链，地球和 火星。我们希望从地球向火星发送一条 ”Hello World“。我们首先需要运行一个 Relayer 来进行消息的传递。Relayer 会持续检查链的状态，并在另一条链上创建包含对应消息的交易。在使用 IBC 的情况下，地球上会跑一个火星的轻量化客户端，这样地球就可以验证火星的状态，确保 Relayer 传递的信息是具有有效性和准确性。同样，火星也会跑一个地球的客户端。

与 TCP/IP 相同，两条链会先进行握手来进行身份认证，为安全的传输消息做准备。接下来我们只要在地球创建对应的 “Hello World” 消息，Relayer 会将其传输到火星上。IBC 确保数据传输的安全性。接下来便是 onAck，onTimedout 等事件的触发。

![](https://storage.googleapis.com/papyrus_images/6205509467863cde72a29b30b3cb308c2ad1a9ab96e374b02caaf0f09a76ad4c.jpg)

需要注意的是 IBC 只负责数据安全的传输。对于数据的序列化则需要建立在区块链上的应用进行处理

### **Cosmos IBC**

![](https://storage.googleapis.com/papyrus_images/6f478030e35a124ffb27ea7d1cfe94093f6247adfc7e858a48ce77f90f8bba76.jpg)

IBC 是一种协议，目前 IBC 已经在 Cosmos SDK 中实现，未来将支持 Kepler，Substrate，Tendermint，Codechain。

Cosmos 通过 IBC 进一步壮大了 Cosmos SDK 的影响力。跨链，定制区块链开发的玩家可不止 Cosmos 一家，[_Polkadot_](https://link.zhihu.com/?target=https%3A//polkadot.network/) 也有着自己的解决方案。有机会的话我们会向你们介绍 [_Polkadot_](https://link.zhihu.com/?target=https%3A//polkadot.network/) 的奇妙之处。

---

*Originally published on [un.Block](https://paragraph.com/@un-block/ibc)*
