1. 程式人生 > >PBFT算法的相關問題

PBFT算法的相關問題

錯誤 相關 gpo safety 都是 可能 prepare chang body

PBFT(99、02年發了兩篇論文)-從開始的口頭算法(指數級)到多項式級

要求 n>3f

why:

  個人簡單理解:註意主節點是可以拜占庭的,從節點對於(n,v,m)的投票最開始也是基於主節點給的(n,v,m)。那麽N個中其實有f個拜占庭,以及f個可能被拜占庭節點影響的好節點(好節點可能沒收到所有應答或者收到了來自拜占庭的錯誤應答,為什麽不能超過f?因為超過f+1可以觸發視圖更改),所以最後只剩下N-2f,必須大於f(f個可能的來自拜占庭節點的決策)

  prepare階段保障的是safety,確保至少有f+1個好節點收到了同樣的(n,v,m)的投票,commit階段其實為了保障liveness,保證至少f+1個好節點對於同樣的(n,v,m)已經達到了確認提交,提交意味著執行,所以視圖變更時,這些已經提交的操作必須傳遞到下一個視圖,不然就得回滾(回滾是復雜的)。所以viewchange的quorum也是2f+1,保證了f+1個好節點與之相交至少存在1個好節點會正確傳遞上一視圖的所有已提交信息,保證了liveness。

  所以quorum都是2f+1是因為這裏面f個應答可能是來自拜占庭節點的

PBFT算法的相關問題