区块链研习社《人生感悟ABC》黑猫C++手册

一文详解拜占庭容错

2019-09-27  本文已影响0人  黑猫编程

马云说过:未来30年数据将成为生产资料,计算会是生产力,互联网是一种生产关系。

如今,区块链技术在互联网协议信息转移的基础之上,实现了价值转移,作为一种新型的生产关系。

区块链作为一种分布式、不可篡改的账本,与传统分布式系统相比有什么优势?

传统的分布式网络具有数据冗余备份,单一节点故障不影响全局,但是无法解决节点作恶问题。

因此区块链网络可以解决节点作恶影响,即可以容忍拜占庭错误。

拜占庭的n个将军围攻敌人,忠诚的将军希望通过某种协议达成一致命令,比如约定好某个时间一起进攻,但是,其中被判的将军会发出错误信息误导忠诚将军达成命令上的一致,如果同时发起进攻的将军数量少于m个,就会被敌人歼没,如何保证至少n个将军同时进攻取得胜利的问题就是拜占庭将军问题。

拜占庭将军必须满足n >= 3f + 1,n为全部将军数量,f为叛变将军数量,fault节点。

我们以n = 4,f = 1的情况为例:

将军3收到将军1的1:00攻城

收到将军2的0:00攻城

收到将军3的1:00攻城 决定1:00攻城

将军4收到将军1的1:00攻城

收到将军2的0:00攻城

收到将军3的1:00攻城 决定1:00攻城

将军2的错误信息并没有得逞,忠诚将军们依然全歼敌人取得胜利!

拜占庭共识算法,节点之间相互通信,相互校验,少数服从多数,但是任何时候系统中都会出现多个提案,并且提案的成本很低,完成一致性确认容易受到干扰,因此,公链不会采用拜占庭共识,而是Pow、Pos、DPos等共识机制。

系列文章

一文近距离了解区块链
一文详解区块链挖矿机制
一文详解零知识证明

上一篇 下一篇

猜你喜欢

热点阅读