算法|巨鲸数字-区块链技术-区块链为什么需要共识?

算法|巨鲸数字-区块链技术-区块链为什么需要共识?

区块链中节点都参与记录数据 , 那么最终以谁的记录为准?或者说 , 怎么保证所有节点最终都记录一份相同的正确数据 , 即达成共识?
在传统的中心化系统中 , 因为有权威的中心节点背书 , 因此可以以中心节点记录的数据为准 , 其他节点仅简单复制中心节点的数据即可 , 很容易达成共识 。 比如现实生活中的行业老大哥和政府部门都具有权威话语权 , 他们的数据大家都认可 , 具有一言九鼎之功效 。
然而在区块链这样的去中心化系统中 , 并不存在中心权威节点 , 所有节点对等地参与到共识过程之中 。 大家都一样 , 我凭啥听你的?有可能谁也不服谁 。
由于参与的各个节点的自身状态和所处网络环境不尽相同 , 而交易信息的传递又需要时间 , 并且消息传递本身不可靠 , 因此 , 每个节点接收到的需要记录的交易内容和顺序也难以保持一致 。

就如同大家都在一个场地开会 , 但大家的身份、想法、使用的手机型号都不一样 , 全部达成统一的概率很小 , 但区块链每一次记账必须达成共识 。 更不用说 , 由于区块链中参与的节点的身份难以控制 , 还可能会出现恶意节点故意阻碍消息传递或者发送不一致的信息给不同节点 , 以干扰整个区块链系统的记账一致性 , 从而从中获利的情况 。
因此 , 区块链系统的记账一致性问题 , 或者说共识问题 , 是一个十分关键的问题 , 它关系着整个区块链系统的正确性和安全性 。
既然区块链需要共识算法作为统一大家意见的灵魂歌手 , 那么共识算法都有哪些呢?当前区块链系统的共识算法有许多种 , 主要可以归类为如下四大类:
1.工作量证明(Proof of Work , PoW)类的共识算法;
2.Po*的凭证类共识算法;
【算法|巨鲸数字-区块链技术-区块链为什么需要共识?】3.拜占庭容错(ByzantineFault ToleranceBFT)类算法;
4.结合可信执行环境的共识算法 。