PBFT-拜占庭共识算法

PBFT算法是根据拜占庭问题演变而来的拜占庭共识算法。在拜占庭问题被提出后一直有各种共识算法来解决拜占庭问题,但是无论从执行流程的复杂度还是算法效率来说,PBFT是目前公认效率最好的算法。该算法是Miguel Castro(卡斯特罗)和Barbara Liskov(利斯科夫)在1999年提出来的。PBFT算法有效地解决了原始拜占庭容错算法效率不高的问题,该算法复杂度由指数级降低到多项式级,使得拜占庭容错算法在实际系统应用中变得可行。
关于拜占庭将军问题,一个简易的非正式的描述如下:
拜占庭帝国想要进攻一个强大的敌人,为此派出了10支军队去包围这个敌人。这个敌人虽不比拜占庭帝国,但也足以抵御5支常规拜占庭军队的同时袭击。基于一些原因,这10支军队不能集合在一起单点突破,必须在分开的包围状态下同时攻击。他们任一支军队单独进攻都毫无胜算,除非有至少6支军队同时袭击才能攻下敌国。他们分散在敌国的四周,依靠通信兵相互通信来协商进攻的意向及进攻时间。困扰这些将军的问题是,他们不确定队伍中是否有叛徒,叛徒可能擅自变更进攻意向或者进攻时间。在这种状态下,拜占庭将军们能否找到一种分布式的协议来让他们能够远程协商,从而赢得战斗?这就是著名的拜占庭将军问题。
【PBFT-拜占庭共识算法】应该明确的是,拜占庭将军问题中并不去考虑通信兵是否被截获或者无法传达信息等问题,即消息传递的信道绝对可靠。Lamport已经证明了在消息可能丢失的不可靠信道上试图通过消息传递的方式达到一致性是不可能的。所以,在研究拜占庭将军问题的时候,我们已经假定了信道是没有问题的,并在这个前提下,去做一致性和容错性的相关研究。

    推荐阅读