1999年,Miguel Castro和Barbara Liskov提出了實用拜占庭容錯算法(Practical Byzantine Fault Tolerance,PBFT),可以保證系統中的惡意節點不超過1/3,即可達成共識。其基本思想為各節點收到其他節點發送來的信息后,并不立即根據多數做出判斷,而是將收到的信息再傳給其他節點,通過信息交換做出一致決定。在這種情況下,只要系統中惡意節點不超過1/3,則能解決拜占庭將軍問題,即當超過2/3的節點宣布儲存的信息一致時,即可實現共識。
為什么惡意節點不能超過三分之一?原因如下:假設系統中共有n個節點,其中惡意節點有f個,則忠誠節點有n-f個,忠誠節點發出n-f個真實信息。若通信網絡中不存在信息傳遞延遲現象(各節點能立即收到其他節點發來的信息),要求真實信息的數量要大于錯誤信息時n-f>;f(即f<;1/2n),才能達成一致,也就是當收到一半以上的一致信息時,即可達成共識。但現實情況下,信息傳遞會出現延遲現象,在收到的n-f個信息里,可能最多有f個惡意節點發的錯誤信息,因此至少有n-f-f條真實信息大于錯誤信息時,才可以達成共識,即n-2f>;f,可得出f<;1/3n。
版權申明:本內容來自于互聯網,屬第三方匯集推薦平臺。本文的版權歸原作者所有,文章言論不代表鏈門戶的觀點,鏈門戶不承擔任何法律責任。如有侵權請聯系QQ:3341927519進行反饋。