PBFT是全称Practical Byzantine Fault Tolerance,是一种用于分布式系统容错的算法,该算法可有效地保证在恶意节点存在的情况下分布式系统的一致性和正确性。其命名源自此算法被开创者Lamport提出时,在古典文艺复兴时期由世纪之争造就的拜占庭帝国,其在共识过程中做出的贡献。
PBFT用于解决分布式系统中出现的恶意节点问题,恶意节点就是有意做出不延续系统一致性原则或误操作的结点,而PBFT通过共识算法来产生一致的结论,同时也保证多节点之间交流消息的有效性,并减少拜占庭将军问题,在多节点系统中构建可靠性传输网络模型,从而可以达到共识的有效性与可靠性。
PBFT算法的运行如下:1)主节点发出消息,传递准备承担角色的其他节点;2)然后,每个节点根据事件的叙述对消息进行签名,签名完成后即可确定了事件的发生;3)每个节点根据事件叙述决定是否接受或继续处理,如果大多数节点决定继续处理,则发生的事件就被视为有效了;4)事件有效后,每个节点就把该事件当作数据保持到数据库中,以便以后查看,完成这次共识。
PBFT在保留了节点状态的同时,可以有效地保证在节点存在恶意行为时,系统的一致性和正确性仍然得到有效地保障。此外,PBFT可以有效降低节点之间的通信开销、减少共识时间,并能够支持大规模的节点。
在区块链领域,PBFT作为一种较为成熟的共识算法,被广泛应用在多个区块链平台上,从而保证了区块链上的交易是安全可靠的,区块链网络中的交易与资产也会被有效地守护。