Cosmos是一个去中心化的区块链网络,使用Tendermint共识算法构建每个区块链,并使用IBC协议实现不同区块链之间的通信和价值转移。本研究旨在通过拆解 Cosmos 网络的构成细节,帮助读者更好地理解多链和相关多链生态。

比特币:区块链1.0, 去中心化的价值;以太坊:区块链2.0,应用的爆发;Cosmos :区块链3.0,可扩展的模块化区块链网络。Cosmos 被称为区块链3.0 的原因有以下几点:

  1. 互联网的基础态:Cosmos 的目标不是建立自己的区块链,而是建立一个可交换的网络生态系统。它通过提供降低开发门槛的工具,如 Tendermint 共识引擎和 Cosmos SDK 模块,实现了网络的交换。这使得不同的区块链可以互相连接和交换信息,类似于互联网的基础设施。
  2. 跨链互操作性:Cosmos 通过其核心协议 Inter-Blockchain Communication(IBC)实现了跨链互操作性。这意味着不同的区块链可以在 Cosmos 生态系统中相互通信和交互,实现资产和数据的跨链转移。这种跨链互操作性是区块链3.0 的重要特征之一。
  3. 多链生态系统:Cosmos 构建了一个多链生态系统,其中不同的区块链可以并行存在并相互协作。这种多链的架构使得各个区块链可以专注于特定的功能和用途,从而提高整个生态系统的灵活性和可扩展性。

一、Tendermint 共识机制

Tenermint 是一个能够在多机器上安全一致地复制应用的软件。 安全是指无论多达 1/3 的机器出现何种类型的故障,Tendermint 都可以正常工作;一致是指每个正确运行的机器都可以获取完全相同的交易日志并计算相同的状态。Tendermint 主要有两个组件构成:包含提供共识机制的共识引擎 Tendermint Core,和适应大多数编程语言的接口 ABCI。

Tendermint Core 作为一个通用引擎,包含了网络层和共识层,网络层使用的是 Gossip 协议,模仿流行病传播方式在 P2P 的节点网络中传播信息的网络协议,也是比特币网络层使用的协议;共识层使用的是 BFT+POS ,我们可以看看具体的算法。

1、共识引擎:基于BFT的POS共识算法

其实每一个人都遇到过共识的问题,那就是和朋友一起吃饭的时候商量吃什么。只不过在区块链里面变成了节点一起商量下一个区块上面写什么。 区块链允许节点随时加入或者离开,即使出现故障,网络里的节点依然能够正常工作。这是依靠提前制定的规则,这套规则就是共识机制。

中本聪首次在比特币的设计中融入了拜占庭容错(BFT),开始将学术界的容错机制引入到像区块链这种分布式计算,思考在不可靠的环境中建立一个可靠的系统的。Jae Kwon(Cosmos 创始人)是第一个真正提出将 BFT 研究应用到 PoS 的区块链中,并创造了 Tendermint 实现了他的想法。

1.1 BFT 拜占庭容错机制

https://img.learnblockchain.cn/2022/02/08/21.jpg

1982年,Lamport,Shostak和Pease首次提出拜占庭将军问题,一群拜占庭将军分别从不同的位置围困一座城市,需要决定进攻或撤退。但是处于不同位置的将军只能通过信使互相联系,如果这些将军中出现叛徒, 那么叛徒可以向不同的将军发送不同的消息,比如向倾向于撤退的将军发送其他将军也打算撤退的假消息,扰乱大家的决定。