分布式系统架构系列讲解八(分布式一致性 8):PBFT算法
Posted 吃透Java
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了分布式系统架构系列讲解八(分布式一致性 8):PBFT算法相关的知识,希望对你有一定的参考价值。
分布式系统架构系列讲解 - 总目录
Leslie Lamport在论文中提出的口信消息解决方案就属于BFT,需要考虑恶意节点的篡改、攻击等问题。但是,口信消息解决方案在现实场景中很难落地。比如,它并不关心这个共识的结果是什么,这会出现一种情况:现在适合进攻,但将军们达成的共识却是撤退。
另外,实际场景中,我们往往需要就提议的一系列值(而不是单值)在拜占庭错误发生的时候,也能被达成共识。那应该怎么做呢?一种方案就是本文要讲解的PBFT算法。PBFT算法,是一种能在实际场景中落地的BFT算法,它在区块链中应用广泛。
一、oral message的问题
要理解PBFT算法,首先必须要明白口信消息解决方案(A solution with oral message)到底存在哪些问题?这些问题都是后续众多BFT算法在努力改进和解决的,理解了这些问题,能帮助你更好地理解后来的拜占庭容错算法的思想(包括 PBFT 算法)。
oral message方案存在一个致命的缺陷:当将军总数为n,叛将数为f时,算法需要递归协商 f+1 轮,消息复杂度为 O(n^(f+1))
,消息数量指数级暴增。
你可以想象一下,如果叛将数为 64&
以上是关于分布式系统架构系列讲解八(分布式一致性 8):PBFT算法的主要内容,如果未能解决你的问题,请参考以下文章
分布式系统架构系列讲解六(分布式一致性 6):Gossip协议