Cosmos是一个去中心化的区块链网络,使用Tendermint共识算法构建每个区块链,并使用IBC协议实现不同区块链之间的通信和价值转移。本研究旨在通过拆解 Cosmos 网络的构成细节,帮助读者更好地理解多链和相关多链生态。
比特币:区块链1.0, 去中心化的价值;以太坊:区块链2.0,应用的爆发;Cosmos :区块链3.0,可扩展的模块化区块链网络。Cosmos 被称为区块链3.0 的原因有以下几点:
Tenermint 是一个能够在多机器上安全一致地复制应用的软件。 安全是指无论多达 1/3 的机器出现何种类型的故障,Tendermint 都可以正常工作;一致是指每个正确运行的机器都可以获取完全相同的交易日志并计算相同的状态。Tendermint 主要有两个组件构成:包含提供共识机制的共识引擎 Tendermint Core,和适应大多数编程语言的接口 ABCI。
Tendermint Core 作为一个通用引擎,包含了网络层和共识层,网络层使用的是 Gossip 协议,模仿流行病传播方式在 P2P 的节点网络中传播信息的网络协议,也是比特币网络层使用的协议;共识层使用的是 BFT+POS ,我们可以看看具体的算法。
其实每一个人都遇到过共识的问题,那就是和朋友一起吃饭的时候商量吃什么。只不过在区块链里面变成了节点一起商量下一个区块上面写什么。 区块链允许节点随时加入或者离开,即使出现故障,网络里的节点依然能够正常工作。这是依靠提前制定的规则,这套规则就是共识机制。
中本聪首次在比特币的设计中融入了拜占庭容错(BFT),开始将学术界的容错机制引入到像区块链这种分布式计算,思考在不可靠的环境中建立一个可靠的系统的。Jae Kwon(Cosmos 创始人)是第一个真正提出将 BFT 研究应用到 PoS 的区块链中,并创造了 Tendermint 实现了他的想法。
1982年,Lamport,Shostak和Pease首次提出拜占庭将军问题,一群拜占庭将军分别从不同的位置围困一座城市,需要决定进攻或撤退。但是处于不同位置的将军只能通过信使互相联系,如果这些将军中出现叛徒, 那么叛徒可以向不同的将军发送不同的消息,比如向倾向于撤退的将军发送其他将军也打算撤退的假消息,扰乱大家的决定。