1.2.5 IBC协议
Tendermint Core和Cosmos-SDK解决了应用专属区块链系统的开发问题。短时间内Kava、Band、Peg Zone、Aragon等项目的涌现,证实了Tendermint团队所选择的策略的可行性。然而想要真正实现Cosmos网络的愿景,还缺少最后一块“拼图”:IBC协议。目前IBC协议1.0版本已在“星际之门”升级计划中正式发布,随着链间资产转移等跨链应用的蓬勃发展,这些目前暂时隔离的区块链将会互联互通,实现价值的进一步提升,如图1-6所示。
图1-6 基于IBC协议的Cosmos网络
IBC协议的完整协议规范文档参见GitHub仓库cosmos/ics。IBC协议是基于中继机制而逐步推演出的协议,其核心机制的原理是,任意两个希望跨链通信的区块链可以依赖密码学证明技术向对方链证明自身链上发生了特定的事件。两条链之间的网络通信通过中继者(relayer)完成。一个问题是,如果中继者恶意篡改网络消息,是否会危及IBC协议的安全性?答案是否定的。由于有密码学证明技术提供安全性保证,被中继者恶意篡改过的消息无法通过验证。
读者如果对于比特币轻客户端有所了解,可以注意到IBC协议与比特币轻客户端机制之间的相似性。轻客户端(light client)通常运行在移动电话等计算资源受限的环境中,通常仅存储少量的必要数据,因此其也不具备验证所有交易的能力。为了向轻客户端证明链上的一笔交易的真实性,通常需要提供这笔交易的密码学证明。借助自身存储的信息,轻客户端可以检验证明的合法性。通过IBC协议进行跨链通信的两条链,可以粗略地理解成,在链自身的应用逻辑之外,两条链分别在自己的链上构建了关于对方链的轻客户端,并据此验证跨链数据的真实性。
基于PoW机制和中本聪共识协议的理念,比特币轻客户端仅需要存储区块头信息即可。比特币的PoW机制、中本聪共识协议以及80字节的区块头,使得存储和验证区块头无须耗费太多的资源。但是PoS机制、Tendermint共识协议以及分层设计带来的Tendermint Core中区块头复杂度的增大,导致验证所有区块头需要耗费可观的计算资源,也为构建轻客户端带来不可小觑的技术挑战。然而对PoS机制和Tendermint共识协议的深入研究发现,看似更难以驾驭的轻客户端,实际上可以通过简洁、高效的方式构建,这使得在链上构建其他区块链的轻客户端成为现实,也为IBC协议的构建奠定了坚实的基础。