區塊鏈共識算法的理解

關於CAP理論:
C(Consistency)一致性:分佈式系統的所有(節點)數據備份,同一時刻是否保持同樣的值。
A(Availability)可用性:分佈式系統的一部分節點故障後,其他節點是否還能正確響應客戶端的請求。
P(Partition)分區容忍性:如果集羣中的機器被分成了兩部分,這兩部分不能互相通信,系統是否能繼續正常工作
既然是分佈式系統,那麼分區容忍性是不可避免的。也就是說我們不能百分百保證兩臺服務器節點之間不會因爲網絡等原因導致通信中斷。假設分佈式系統A、B,對應的數據爲DBA、DBB,如果A、B之間出現分區(網絡中斷),這時候首先需要滿足分區容忍性。在滿足分區容忍性的情況下,如果A、B分別接受客戶端的請求,由於AB連接中斷,這時候就必須在數據一致性和可用性之間做出選擇,要麼阻塞等待AB重新連接,保證數據一致性(CP)。要麼拋開一致性,保證AB能正常響應請求(AP)。
理解了CAP理論,我們再來了解下常用的一致性算法:
1、Paxos 算法解決的問題是一個分佈式系統如何就某個值(決議)達成一致。Paxos是分佈式一致性算法,如果不能達成一致,則用戶的請求不能正常響應,這種算法多適用對一致性敏感性較高的應用,如銀卡櫃檯取款機,車票系統等。
2、Raft算法,Raft算法包括三種角色:Leader(領導者)、Candidate(候選領導者)和Follower(跟隨者),決策前通過選舉一個全局的leader來簡化後續的決策過程。Raft算法面向對多個決策達成一致的問題,分解了Leader選舉、日誌複製和安全方面的考慮,並通過約束減少了不確定性的狀態空間。Raft是對Paxos的重新設計和實現,重點解決一致性問題。
區塊鏈中的共識算法:
1、Pow工作量證明:工作量證明最初提出是爲了防止垃圾郵件,後來由中本聰在比特幣區塊鏈設計共識機制中引入。工作量證明是通過解決是一個不容易解答但是容易驗證的問題來爭取記賬權以達到共識目的。
2、Pos權益證明:權益證明是讓網絡中擁有越多權益的節點有機會做更多的決定,這種機制的假設前提是權益持有人更傾向於維護網絡利益且擔心作惡後遭受懲罰。權益證明的實現方式很多,比較典型的是引入“幣齡”概念的方式,即用幣齡來計算權益。
3、DPos股份授權證明:股份授權證明是基於權益證明發展而來的。股份授權證明能夠讓每個節點首先通過權益選舉出n個記賬節點,類似於公司中的董事會制度,後續提案由這些被選中的節點輪流處理。股份授權證明理論上不要求選出的代表個體本身是權益所有人,看起來更民主、更開放。如果選出的代表不作爲(輪到自己記賬時不記賬),或者作惡,可以把他們踢掉,如有必要則進行懲罰(選民們也有可能被懲罰)。股份授權證明機制大大提高了效率,但是減少了記賬節點的規模,屬於弱中心化。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章