共识算法的简单理解(一)
在一个没有大家长的家庭会议中,每个人你一句我一句,这个会议势必乱糟糟的,连一个筷子的支出都无法达成一致。
所以分布式系统中,如何让多个节点达成一致是这个系统有效运行起来的关键。共识算法,就是多个节点之间对某个状态达成一致性结果的问题。
分布式系统由多个服务节点共同完成对事务的处理,分布式系统中多个副本对外呈现的数据状态需要保持一致性,就好像家里再乱,在跟其他家庭配合工作时,也总要尽量保持体面不是。
但总有意外,比如其他家庭也不靠谱,没有办法跟你们家完成配合。在分布式系统中,由于节点的不可靠性和节点间通讯的不稳定性,甚至节点故意作恶、伪造信息,都会使得节点之间出现数据状态不一致的问题。
通过共识算法,可以将多个不可靠的单独节点组建成一个可靠的分布式系统,实现数据状态的一致性,提高系统的可靠性。
区块链系统本身作为一个超大规模的分布式系统,但又与传统的分布式系统存在明显区别。由于它不依赖于任何一个中央权威,系统建立在去中心化的点对点网络基础之上,因此分散的节点需要就交易的有效与否达成一致,这就是共识算法发挥作用的地方,即确保所有节点都遵守协议规则并保证所有交易都以可靠的方式进行。
区块链系统中的共识算法还承担着区块链系统中激励模型和治理模型中的部分功能,为了解决在分布式网络中相互独立的节点如何达成一致状态的过程。
我们来看拜占庭将军共识算法的实际例子。
版权声明: 本文为 InfoQ 作者【石君】的原创文章。
原文链接:【http://xie.infoq.cn/article/a89f9b058b5eb8d84f3a68631】。文章转载请联系作者。
评论