《區塊鏈寶典》共識算法(二)

共識算法的目的

  1. 共識算法的目的
  • 利用區塊鏈構造去中心化的賬本,首先需要解決如何實現不同節點上賬本一致性和正確性
    • 這就需要借鑑傳統的分佈式系統中的一致性算法,確定網絡中選擇記賬節點的機制,以及如何保障賬本數據的一致性和正確性
  • 區塊鏈解決了在不可信信道上傳輸可信信息、價值轉移的問題,兒共識機制解決了區塊鏈如何在分佈式嚐盡夏大程一致性問題。
    • 區塊鏈的偉大之處就是它的共識機制在去中心化的思想上解決了節點間互相信任的問題
    • 區塊鏈能在衆多節點達到一種較爲平衡的狀態也是因爲共識機制。
    • 密碼學佔據了區塊鏈的半壁江山,屬於區塊鏈的骨骼,而共識機制是保障區塊鏈系統不斷運行下去的關鍵。
  1. 引入新的共識機制
  • 當分佈式思想被提出來時,人們就開始根據FLP定理和CAP定理設計共識算法
  • FLP定理規定:“在網絡可靠、存在節點失效的異步模型系統中,不存在解決一致性問題的確定性算法”
    • 吧FLP的設定放鬆一些,尋求有解的反感
    • 由社會與學和博弈論得到啓發,引入新機制
      • 激勵機制
        • 在拜占庭將軍問題中給忠誠將軍獎勵。背叛將軍發現背叛行爲沒有收益,人爲每一個節點的行爲是由吉利機制決定的;
        • 引入博弈論概念,人爲每一個節點的行爲時有激勵機制決定的;
        • 引入社會學概念,人爲理性的人都是逐利的,每個節點都有最大戶自己的利益傾向,如果激勵機制設置得當,大部分忽而短板都會遵守規則,成爲公正的節點。
      • 隨機性
        • 在傳統的中心化系統中,決定下一步行動由權威大的將軍做決定。在去中心化的系統中,提出在所有將軍冢,隨機指定一名將軍做決定。這就是決定誰有記賬權
        • 根據每個節點的計算力來決定。誰的算力強,誰可獲得記賬權,在拜占庭將軍問題中就是指揮權。這就是比特幣系統中用的PoW共識機制。
        • 根據每個節點具有的資源來決定。誰投入的資源多,誰就可以獲得記賬權。這就是POS共識機制。
  1. 共識算法的假設條件
  • 在實際情況下,根據不同的假設條件,有很多不同的共識算法被設計出來,這些算法各有優勢和侷限。算法的假設條件有以下幾種情況:
    - 故障模型:非拜占庭故障/拜占庭故障
    - 通信類型:同步/異步
    - 通信網絡連接:節點間直連數
    - 信息發送者身份:實名/匿名
    - 通信通道穩定新:通道可靠/不可靠
    - 消息認證性:認證消息/非認證消息
    • 在區塊鏈網絡中,由於應用場景的不同,所這幾的目標各異,不同的區塊鏈系統採用了不同的共識機制
  1. 共識算法及其代表作品(包括新的共識算法+傳統一致性算法)
  • PoW
    • 比特幣
    • 萊特幣
    • 以太坊(Frontier、Homestead、Metropolis)階段
  • PoS
    • 以點點幣PPC和以太坊(Serenity)階段
  • DPoS
    • BitShare比特股
  • PBFT
    • Hyperledger Fabric(聯盟鏈爲代表)
  • Paxos
    • ZooKeeper
    • Zookeeper是一個分佈式的,開放源碼的分佈式應用程序協調服務,是Google的Chubby一個開源的實現,是Hadoop和Hbase的重要組件。它是一個爲分佈式應用提供一致性服務的軟件,提供的功能包括:配置維護、域名服務、分佈式同步、組服務等。
    • Raft
      • ETCD
      • ETCD是一個高可用的兼職存儲系統,主要用於共享配置和服務發現。ETCD時有CoreOS開發並維護的,靈感來自於ZooKeeper,他是用Go語言表寫,並通過Raft一致性算法以保證強一致性。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章