共识算法

所谓共识,简单理解就是指大家都达成一致的意思。其实在现实生活中,有很多需要达成共识的场景,比如开会讨论,双方或多方签订一份合作协议等,而在区块链系统中,每个节点必须要做的事情就是让自己的账本跟其他节点的账本保持一致。如果是在传统的软件结构中,这几乎就不是问题,因为有一个中心服务器存在,也就是所谓的主库,其他的从库向主库看齐就行了。
在现实生活中,很多事情人们也都是按照这种思路来的,比如企业老板发布一个通知,员工照着做。但是区块链是一个分布式的对等网络结构,在这个结构中没有哪个节点是“老大”,一切都要商量着来。
所以在区块链系统中,如何让每个节点通过一个规则将各自的数据保持一致是一个很核心的问题,这个问题的解决方案就是制定一套共识算法。
共识算法其实就是一个规则,每个节点都按照这个规则去确认各自的数据。我们暂且抛开算法的原理,先来想一想在生活中我们会如何解决这样一个问题:假设一群人开会,这群人中没有一个领导或者说老大,大家各抒己见,那么最后如何统一出一个决定出来呢?
一般,我们一般会在某一个时间段中选出一个人,那个人负责汇总大家的内容,然后发布完整的意见,其他人投票表决,每个人都有机会来做汇总发表,最后谁的支持者多就以谁的最终意见为准。
这种思路其实就算是一种共识算法了。然而在实际过程中,如果人数不多并且数量是确定的还好处理,如果人数很多且数量也不固定,那就很难通过这种方式投票决定了,效率太低。我们需要通过一
种机制筛选出最有代表性的人,在共识算法中就是筛选出具有代表性的节点。
这就需要设计出一组条件,而这组条件就是我们所谈的共识算法。目前主流的共识算法有很多,接下来,营长就为大家一一科普每种共识算法的机制、特性和优劣。

资料https://www.tuoniaox.com/news/p-287193.html

你可能感兴趣的:(共识算法)