從零開始學區塊鏈(4)


轉自:區塊鏈大師

1. 傳統分布式一致性算法和區塊鏈共識過程的異同點

相同點:

  • Append only(只能增加)

  • 強調序列化

  • 少數服從多數原則

  • 分離覆蓋的問題:即長鏈覆蓋短鏈區塊,多節點覆蓋少數節點日志



不同點:

    • 傳統分布式一致性算法大多不考慮拜占庭容錯(Byzanetine Paxos除外),即假設所有節點只發生宕機、網絡故障等非人為問題,並不考慮惡意節點篡改數據的問題;

    • 傳統分布式一致性算法是面向日志(數據庫)的,即更通用的情況,而區塊鏈共識模型面向交易的,所以嚴格來說,傳統分布式一致性算法應該處於區塊鏈共識模型的下面一層。

 

2. 區塊鏈共識模型與傳統一致性算法的關系


考慮上面的不同點,結合私有鏈和行業鏈的性質,我們有:

  • 私有鏈:封閉生態的存儲網絡,所有節點都是可信任的,如某大型集團內部多數公司。

  • 行業鏈:半封閉生態的交易網絡,存在對等的不信任節點,如房地產行業A、B、C、D公司。

  • 公有鏈:開放生態的交易網絡,這層主要是為行業鏈和私有鏈提供全球交易網絡。

由於私有鏈是封閉生態的存儲網絡,也就是說使用傳統分布式一致性模型應該是最優的;

由於聯盟行業鏈其半封閉半開放特性,使用Delegated Proof of XXX 是最優的,可以考慮以傳統一致性算法作為基礎加入拜占庭容錯/安全防護機制進行改進。

公有鏈PoW應該仍然是最優的選擇。

 

傳統分布式一致性算法介紹 

本文主要討論主流的Paxos算法家族和Raft算法,這里拋磚引玉,網絡上有關兩者的資料非常豐富,大家可自行搜索查閱。

1. Paxos 算法家族

1998年Lamport提出Paxos算法,后續又增添多個改進版本的Paxos形成Paxos協議家族,且Paxos都有共同點是不容易工程實現。

 

  • Classic Paxos :LeaderLess,又名Basic Paxos,以下均為Paxos的變種,基於CAP定律,側重了不同方向。

  • Cheap Paxos

  • Egalitarian Paxos : conflicts rare

  • Fast Paxos : Leader only when needed ,conflicts common

  • Multi-Paxos :Leader driven

  • Byzanetine Paxos



"Byzantine Paxos adds an extra message (Verify) which acts to distribute knowledge and verify the actions of the other processors".Lamport 在2011年的論文《Leaderless Byzanetine Paxos》中表示不清楚實踐中是否有效,考慮Paxos本身實現的難度,此方案工程角度不是最優,但是系統角度應該是最好的。

本小節Ref:

Wikipedia_Paxos

Leaderless Byzanetine Paxos



2 Raft 算法

這是一個非常友好的算法,容易理解、實現,不過它是Strong Leadership的,也就是說,

任意包含Leader的時刻,Leader擁有完全記賬權,如果此Leader節點是惡意的,后果不堪設想。

且leadership的一致性算法都有個通病,吞吐量受單個節點的限制,這點在Raft身上體現尤甚。

Raft算法簡介:https://raft.github.io/

Raft算法動態演示:http://thesecretlivesofdata.com/raft/


3. 其他

VRR(Viewstamped Replication Revisited)
這也是一個基於leadership的一致性算法,相比上述其他算法,它的優點是延遲最小。



三、常見區塊鏈共識模型介紹

轉載自這里:https://bitsharestalk.org/index.php?topic=4031.0

這是DPoS的白皮書,主要介紹了DPos,但也囊括了其他共識模型的介紹。

 

 



 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM