分布式系统架构系列讲解八(分布式一致性 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&

你可能感兴趣的:(分布式系统架构系列讲解,PBFT,PBFT算法)