傳統上,解決“拜占庭將軍問題”的算法是BFT(Byzantine Fault Tolerant)算法,其中最著名的是PBFT,該算法是基于消息傳遞的一致性算法,在弱同步網絡下,算法經過三個階段可以達成一致性。在無法達成一致時,這些階段會重復進行,直到超時。
PBFT算法的優點是收斂速度快、節省資源、具有理論上的安全界(理論上允許不超過1/3的惡意節點存在,即總節點數為3k + 1,其中正常節點超過2k + 1個時,算法可以正常工作)。
缺點是隨著參與共識節點的增加,通信開銷會急劇上升,達成共識的速度則快速下降,難以支撐上萬節點規模的分布式系統。尤其是,PBFT假設系統的所有節點是已知的,且節點參與共識首先要獲得投票權,因此需要為節點的加入和退出過程設計額外的機制,這不僅增加了協議復雜度和實現難度,還不允許節點自由加入和退出,不符合加密經濟的開放性要求。
而
區塊鏈技術與BFT算法不同,它通過引入經濟激勵和懲罰機制,來解決“拜占庭將軍問題”。下面通過簡單的博弈例子來闡述其中的邏輯。
對于參與共識驗證的參與者,存在兩種策略是“協作”與“攻擊”,選擇“協作”即成為誠實者,選擇“攻擊”即成為攻擊者。參與者權衡利弊后選擇博弈策略。當參與者發現攻擊的收益要高于協作時,參與者選擇攻擊,否則選擇協作。
假定攻擊沒有成本,那么,如果大家都是攻擊者,相當于“一拍而散”,雙方收益均為負;如果有一方攻擊,一方協作,則攻擊者獲利,協作者受損;如果大家都是協作者,則共贏,收益均為正。假定相應的收益矩陣為表1。對其求解,可以得到納什均衡解:(協作,協作)和(攻擊,攻擊)。換言之,參與者可能協作,也可能攻擊,因此系統存在安全隱患。
若在此基礎上引入激勵和懲罰,結果則會發生改變。激勵機制是,系統給予協作者一個正向的激勵,比如在表1,給予協作者三個單位的正向收益,那么表1的收益矩陣變為表2。此時求解得到的納什均衡為(協作,協作),即參與者的最優策略均是協作,而不是選擇攻擊,從而消除了系統的攻擊行為。
懲罰機制是,系統給予供給者一個負向的懲罰,即攻擊須付出一定的成本,比如在表1,對攻擊者施予三個單位的懲罰,那么表1的收益矩陣變為表3,得到的納什均衡解為(協作,協作)。
可見,同激勵機制一樣,懲罰機制也消除了系統的攻擊行為。毋庸置疑,若同時施加恰當的激勵和懲罰機制,系統的安全性更能得到保障。
版權申明:本內容來自于互聯網,屬第三方匯集推薦平臺。本文的版權歸原作者所有,文章言論不代表鏈門戶的觀點,鏈門戶不承擔任何法律責任。如有侵權請聯系QQ:3341927519進行反饋。