风险提示:请理性看待区块链,树立正确的货币观念和投资理念,不要盲目跟风投资,本站内容不构成投资建议,请谨慎对待。 免责声明:本站所发布文章仅代表个人观点,与CoinVoice官方立场无关

什么是实用拜占庭容错机制?

白话区块链
2020年12月05日

 
 

作者 | 杜小娜
出品|白话区块链

 

实用拜占庭容错机制( Practical Byzantine Fault Tolerance),简称 PBFT, 在前文《号称“区块链的灵魂”的共识机制是什么》一文中,我们已经了解过了 PoW、PoS、DPoS 等几种共识机制,今天我们就来了解下实用拜占庭容错机制,要想了解实用拜占庭容错机制,我们先从拜占庭将军问题说起。

 

 

 

 01 
拜占庭将军问题

 
得得号
 

故事是这样的,拜占庭帝国是 5-15 世纪的东罗马帝国,也就是现在的土耳其。拜占庭帝国拥有巨大的财富,它的十个邻邦国家都垂涎已久。但拜占庭城墙高耸,没有一个单独的邻邦能够成功入侵。任何单个的城邦的入侵行动都会失败,而且入侵的军队也会被歼灭,使得自身反而容易受到其他九个城邦的入侵。

 

这十个邻邦之间也相互觊觎对方的财富而时常爆发战争,拜占庭的防御能力很强,如果有六个或者更多的邻邦一起进攻才会成功。然而,其中一个或者几个邻邦发生背叛,答应一起进攻,但在其他人进攻的时候反悔了,就会导致只有五支或者更少的军队同时进攻,所有的进攻军队都会被歼灭。

 

因此,每个邻邦都小心翼翼,不敢轻易相信邻邦,因为稍有不慎,就会给自己带来灾难。这就是拜占庭将军问题。

 


 02 
拜占庭容错机制

 
得得号
 

在前文中我们已经了解过了什么是区块链的共识机制,通俗的解释就是大家共同商定好的一种规则,大家为了一个共同的目的共同达成的一个认知。区块链网络节点达成的记账共识与拜占庭将军问题的攻城是相似的,可以将区块链中的节点比作将军,不会背叛的将军比作正常节点,会背叛的将军比作恶意节点。

 

为了方便理解,我们假设有甲、乙、丙、丁 4 位将军攻城。同时有 3 位将军进攻视为进攻成功。我们假设将军乙为叛徒,将军甲派出通信兵告诉其他 3 位将军子时进攻,因为将军乙是叛徒,他收到将军甲的消息后,派出通信兵告诉将军丙和将军丁丑时进攻。将军丙收到将军甲的消息派出通信兵告诉将军乙和将军丁子时进攻。将军丁收到将军甲的消息派出通信兵告诉将军乙和将军丙子时进攻。于是:

 
     
  •  

    将军乙收到:子时、子时、子时;

     
  •  
  •  

    将军丙收到:子时、丑时、子时;

     
  •  
  •  

    将军丁收到:子时、丑时、子时;

     
  •  
 

这样每个将军执行自己收到的最多的消息。将军丙和将军丁收到的子时进攻消息最多,将军甲、将军丙、将军丁 3 位将军于子时进攻,进攻成功。这就是 PBFT 算法,在研究拜占庭将军问题时,分布式节点总数必须大于或等于4,且恶意节点不能超过三分之一时,就可以保障节点达成一致性结果,区块链的中的各个节点按照这种算法即可达成共识。

 

 

 

 03 
小结

 

通过上述描述,你是否对拜占庭容错机制有了深入的了解呢?欢迎在评论区留言。

 

——End——

 

 

 

『声明:本系列内容仅供区块链科普入门学习,不构成任何投资意见或建议。如有任何错漏,敬请留言指出。

 

得得号

 

 

 

 

 

作者:白话区块链;来自链得得内容开放平台“得得号”,本文仅代表作者观点,不代表链得得官方立场凡“得得号”文章,原创性和内容的真实性由投稿人保证,如果稿件因抄袭、作假等行为导致的法律后果,由投稿人本人负责得得号平台发布文章,如有侵权、违规及其他不当言论内容,请广大读者监督,一经证实,平台会立即下线。如遇文章内容问题,请发送至邮箱:linggeqi@chaindd.com

   

声明:本内容为作者独立观点,不代表 CoinVoice 立场,且不构成投资建议,请谨慎对待,如需报道或加入交流群,请联系微信:VOICE-V。

#得得号

评论0条