pbft演算法是根據拜占庭問題演變而來的拜占庭共識演算法。在拜占庭問題被提出後一直有各種共識演算法來解決拜占庭問題,但是無論從執行流程的複雜度還是演算法效率來說,pbft是目前公認效率最好的演算法。該演算法是miguel castro(卡斯楚)和barbara liskov(利斯科夫)在2023年提出來的。pbft演算法有效地解決了原始拜占庭容錯演算法效率不高的問題,該演算法複雜度由指數級降低到多項式級,使得拜占庭容錯演算法在實際系統應用中變得可行。
關於拜占庭將軍問題,乙個簡易的非正式的描述如下:
拜占庭帝國想要進攻乙個強大的敵人,為此派出了10支軍隊去包圍這個敵人。這個敵人雖不比拜占庭帝國,但也足以抵禦5支常規拜占庭軍隊的同時襲擊。基於一些原因,這10支軍隊不能集合在一起單點突破,必須在分開的包圍狀態下同時攻擊。他們任一支軍隊單獨進攻都毫無勝算,除非有至少6支軍隊同時襲擊才能攻下敵國。他們分散在敵國的四周,依靠通訊兵相互通訊來協商進攻的意向及進攻時間。困擾這些將軍的問題是,他們不確定隊伍中是否有叛徒,叛徒可能擅自變更進攻意向或者進攻時間。在這種狀態下,拜占庭將軍們能否找到一種分布式的協議來讓他們能夠遠端協商,從而贏得戰鬥?這就是著名的拜占庭將軍問題。
應該明確的是,拜占庭將軍問題中並不去考慮通訊兵是否被截獲或者無法傳達資訊等問題,即訊息傳遞的通道絕對可靠。lamport已經證明了在訊息可能丟失的不可靠通道上試圖通過訊息傳遞的方式達到一致性是不可能的。所以,在研究拜占庭將軍問題的時候,我們已經假定了通道是沒有問題的,並在這個前提下,去做一致性和容錯性的相關研究。
拜占庭將軍問題與區塊鏈共識演算法PBFT
兩軍問題中通道是不可靠的,並且其中沒有叛徒之說。解決方式 tcp的三次握手可以提供相對可靠地通道通訊。目前,區塊鏈採用的共識機制主要基於工作量證明 pow 權益證明 pos 拜占庭協議 ba 等。各類共識機制在效率 安全性等方面有利有弊,目前區塊鏈協議的效率,特別是高速處理海量資料的能力是阻礙區塊鏈...
PBFT 拜占庭容錯演算法
根據 practical byzantine fault tolerance and proactive recovery 整理 practical byzantine fault tolerance and proactive recoverym.castro and b.liskov.2002....
PBFT(拜占庭容錯)簡述
區塊鏈中最重要的便是共識演算法,位元幣使用的是pow proof of work,工作量證明 以太幣使用的是pos proof of stake,股權證明 使得算力變的不怎麼重要了,而今pos的變體dpos delegated proof of stake,股份授權證明 進一步削減算力的浪費,同時也...