区块链共识算法之BFT(4)
生活随笔
收集整理的這篇文章主要介紹了
区块链共识算法之BFT(4)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
?(1)PBFT
?? ?最常用的BFT共識機制是實用拜占庭容錯算法PBFT(Practical Byzantine Fault Tolerance)。該算法是Miguel Castro和Barbara Liskov在1999年提出 來的,解決了原始拜占庭容錯算法效率不高的問題,將算法復雜度由節點數的指 數級降低到節點數的平方級,使得拜占庭容錯算法在實際系統應用中變得可行。 ?? ?PBFT是針對狀態機副本復制為主的分布式系統執行環境開發的算法,旨在 讓系統中大部分的誠實節點來覆蓋惡意節點或無效節點的行為。PBFT算法的節 點數量是固定的,節點身份提前確定,無法動態添加或刪除,只能適用于節點數 目固定的聯盟鏈或私有鏈場景中。 ?? ?PBFT算法存在的問題: ? ? ? ???計算效率依賴于參與協議的節點數量,不適用于節點數量過大的區塊鏈(2)DBFT
?? ?考慮到BFT算法存在的擴容性問題,NEO采用了一種代理拜占庭容錯算法— —DBFT(Delegated Byzantine Fault Tolerant)。它與EOS的DPOS共識機制 一樣,由權益持有者投票選舉產生代理記賬人,由代理人驗證和生成區塊,以此 大幅度降低共識過程中的節點數量,解決了BFT算法固有的擴容性問題。 ?? ?為了便于在區塊鏈開放系統中應用,NEO的DBFT將PBFT中的將C/S(客戶 機/服務器)架構的請求響應模式,改進為適合P2P網絡的對等節點模式,并將靜 態的共識參與節點改進為可動態進入、退出的動態共識參與節點,使其適用于區 塊鏈的開放節點環境。 ? ? DBFT的算法中,參與記賬的是超級節點,普通節點可以看到共識過程,并 同步賬本信息,但不參與記賬。總共 n 個超級節點分為一個議長和 n-1 個議員, 議長會輪流當選。每次記賬時,先有議長發起區塊提案(擬記賬的區塊內容), 一旦有至少(2n+1)/3 個記賬節點(議長加議員)同意了這個提案,那么這個 提案就成為最終發布的區塊,并且該區塊是不可逆的,所有里面的交易都是百分 之百確認的,區塊不會分叉。 ?? ?NEO 的 DBFT 共識機制下只設置了 7 個超級節點,以一種弱中心化的模式 實現較高的共識效率。目前,這些代理節點是靜態選出的,并完全由項目方部署, NEO 由此被外界質疑為過于中心化。 ?? ?DBFT 的優點一方面是效率高,NEO 每 15~20 秒生成一個區塊,交易吞吐 量可達到約 1000TPS,通過適當優化,性能可達 10000TPS;另一方面是其良 好的最終性,區塊不會分叉,以此來驗證參與者的身份,保護網絡安全,使區塊 鏈能夠適用于對交易確認實時性要求高的真實金融場景。 ?? ?DBFT 的缺點也不容忽視,一方面體現在較低的容錯率,當有 1/3 或以上超 級節點為惡意節點或宕機后,系統將無法提供服務;另一方面體現在超級節點數 量過少,中心化程度高。 區塊鏈、后端技術 交流!總結
以上是生活随笔為你收集整理的区块链共识算法之BFT(4)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Ajax请求接口并将数据返回到页面
- 下一篇: 森林防火巡查app功能说明