從零開始學區塊鏈(4)

轉自:區塊鏈大師php

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

相同點:github

  • Append only(只能增長)算法

  • 強調序列化數據庫

  • 少數服從多數原則安全

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



不一樣點:

less

    • 傳統分佈式一致性算法大多不考慮拜占庭容錯(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_PaxosLeaderless Byzanetine Paxos2 Raft 算法這是一個很是友好的算法,容易理解、實現,不過它是Strong Leadership的,也就是說,任意包含Leader的時刻,Leader擁有徹底記帳權,若是此Leader節點是惡意的,後果不堪設想。且leadership的一致性算法都有個通病,吞吐量受單個節點的限制,這點在Raft身上體現尤甚。Raft算法簡介:https://raft.github.io/Raft算法動態演示:http://thesecretlivesofdata.com/raft/3. 其餘VRR(Viewstamped Replication Revisited)這也是一個基於leadership的一致性算法,相比上述其餘算法,它的優勢是延遲最小。3、常見區塊鏈共識模型介紹轉載自這裏:https://bitsharestalk.org/index.php?topic=4031.0這是DPoS的白皮書,主要介紹了DPos,但也囊括了其餘共識模型的介紹。

相關文章
相關標籤/搜索