实用拜占庭容错算法(PBFT)是由 Barbara Liskov 和 Miguel Castro 于 90 年代末提出的一种共识算法。原论文链接如下:
http://pmg.csail.mit.edu/papers/osdi99.pdf
pBFT 被设计为在异步(响应请求的时间没有上限)系统中高效运行。它针对低开销时间进行了优化。其目标是解决现有拜占庭容错解决方案中存在的许多问题。应用领域包括分布式计算和区块链。
PBFT在保证可用性和安全性(liveness & safety)的前提下,提供了(n-1)/3的容错性,意思就是如果系统内有n台机子,那么系统最多能容忍的作恶/故障节点为(n-1)/3个。(作恶节点可以不响应或者回应错误的信息)。
也就是说为了保证pbft算法的正确性,节点总数量n和作恶节点数量f必须满足n > 3f,如何证明呢?
我们在设计异步通信算法的时候,我们不知道那f个节点是恶意节点还是故障节点,这f个节点可以不发送消息,也可以发送错误的消息,所以在设计阈值的时候,我们要保证必须在n-f个状态复制机的沟通内,就要做出决定;而且我们并不知道,这n-f个里面有几个是作恶节点,我们必须保证正常的节点大于作恶节点数。所以有 n-f-f > f,从而得出了n > 3f。
一、拜占庭将军问题
Byzantine Generals' Problem 拜占庭将军问题在 1982 年微软研究院由 LESLEY LAMPORT、ROBERT SHOSTAK 和 MARSHALL PEASE 撰写的论文中得到了恰当的解释:
想象一下,拜占庭军队的几个分队在敌对城市外扎营,每个分队由各自的将军指挥。将军们只能通过信使互相通信。在观察了敌人之后,他们必须制定一个共同的行动计划。然而,一些将军可能是叛徒

最低0.47元/天 解锁文章
1516

被折叠的 条评论
为什么被折叠?



