PBFT-拜占庭共識算法

       PBFT算法是根據拜占庭問題演變而來的拜占庭共識算法。在拜占庭問題被提出後一直有各種共識算法來解決拜占庭問題,但是無論從執行流程的複雜度還是算法效率來說,PBFT是目前公認效率最好的算法。該算法是Miguel Castro(卡斯特羅)和Barbara Liskov(利斯科夫)在1999年提出來的。PBFT算法有效地解決了原始拜占庭容錯算法效率不高的問題,該算法複雜度由指數級降低到多項式級,使得拜占庭容錯算法在實際系統應用中變得可行。

       關於拜占庭將軍問題,一個簡易的非正式的描述如下:

              拜占庭帝國想要進攻一個強大的敵人,爲此派出了10支軍隊去包圍這個敵人。這個敵人雖不比拜占庭帝國,但也足以抵禦5支常規拜占庭軍隊的同時襲擊。基於一些原因,這10支軍隊不能集合在一起單點突破,必須在分開的包圍狀態下同時攻擊。他們任一支軍隊單獨進攻都毫無勝算,除非有至少6支軍隊同時襲擊才能攻下敵國。他們分散在敵國的四周,依靠通信兵相互通信來協商進攻的意向及進攻時間。困擾這些將軍的問題是,他們不確定隊伍中是否有叛徒,叛徒可能擅自變更進攻意向或者進攻時間。在這種狀態下,拜占庭將軍們能否找到一種分佈式的協議來讓他們能夠遠程協商,從而贏得戰鬥?這就是著名的拜占庭將軍問題。

        應該明確的是,拜占庭將軍問題中並不去考慮通信兵是否被截獲或者無法傳達信息等問題,即消息傳遞的信道絕對可靠。Lamport已經證明了在消息可能丟失的不可靠信道上試圖通過消息傳遞的方式達到一致性是不可能的。所以,在研究拜占庭將軍問題的時候,我們已經假定了信道是沒有問題的,並在這個前提下,去做一致性和容錯性的相關研究。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章