PBFT(Practical Byzantine Fault Tolerance)是一种应用于分布式系统的容错算法。
它由吉米·米勒(J.M.Miller),罗伯特·鲍曼(R.P.Berman)和约翰·罗斯博士(Dr.JohnRossom)在1999年提出,它允许复制服务器在存在恶意(Byzantine)节点的情况下,仍能正确地计算和执行共识指令
PBFT 能够用于解决分布式系统中出现的 Byzantine Generals 问题。
Byzantine Generals 问题指的是,有一大群将军围攻一个城市,而将军之间只能通过书信而不能直接交流,如何让所有将军的行动一致达成统一的决定?
PBFT算法被广泛用于区块链系统,其目的是确保节点之间同步更新状态,但在存在恶意审计员的情况下仍能够确保结果的正确性和一致性。
与其他加密货币及区块链系统不同,PBFT 算法采用基于投票的共识机制,从而确保网络的安全性和可靠性。
PBFT算法的基本步骤有三个:预言阶段、投票阶段和 根据投票决定阶段。在预言阶段,N 个节点中的其中一个节点(usually被称为Primary)将发布一个报文,向其他节点广播它的预言。
然后,其他节点以对该预言的投票出来表达自己的意见。在投票阶段,每一个节点都会根据其自己的算法发送出一个 投票消息,表达他对该预言的意见。
最后,在最后的 entitle 阶段,所有的节点都会选择一个过半的决议,最终得到预言成功被接受的结果。
PBFT算法具有较高的安全性和性能,并可以减少负载和网络传输的开销,但有一定的限制。
由于 PBFT 算法只是一种试验性的算法,它暂时不能应用于大型分布式系统中。
此外,它还受到节点数量和投票阶段的限制,因此不能实现完整的共识性。