分散式技術原理與演算法解析之分散式共識 學習筆記 (4)
定義:分散式共識就是在多個節點均可獨立操作或記錄的情況下,使得所有節點針對某個狀態達成一致的過程。注意:共識是過程,一致性是結果。
case study:分散式記賬
關鍵問題:如何獲得記賬權 以及 如何使得所有節點或伺服器達成一致
具體演算法:
- PoW(Proof of Work, 工作量證明):
- 具體步驟
- Step1: 客戶端A產生新的交易,向全網進行廣播,要求記賬;
- Step2: 每個記賬節點收到請求後,將交易資訊放入一個區塊中;
- Step3: 每個節點通過PoW演算法,計算本地區快的哈希值,嘗試找到一個具有足夠工作難度的工作量證明。
- Step4: 節點D找到了一個工作量證明向全網廣播,當且僅當包含在該區塊中的交易都是有效且之前未存在過的,其他節點才會認同該區塊的有效性
- Step5: 其他節點接收到廣播資訊後,若該區塊有效,接受該區塊,並跟隨在該區塊的末尾,製造新區塊延長該鏈條,將被接受的區塊的隨機哈希值視為新區塊的隨機哈希值。
- 具體步驟
- 優點:相對公平,完全去中心化,有容錯機制
- 缺點:共識達成周期長,效率低,資源消耗大
- PoS (Proof of Stake,權益證明):由系統權益代替算力來決定區塊記賬權。(權益:每個節點佔有貨幣的數量和時間。貨幣就是節點所獲得的獎勵)
在股權證明 PoS 模式下,根據你持有貨幣的數量和時間,給你發利息。每個幣每天產生 1幣齡,比如你持有 100 個幣,總共持有了 50 天,那麼,你的幣齡就為 5000。這個時候,如果你發現了一個 PoS 區塊,你的幣齡就會被減少 365。每被減少 365 幣齡,你就可以從區塊中獲得 0.05 個幣的利息 (可理解為年利率 5%)。
-
具體步驟
- 每個節點計算自己的權益,權益最大者廣播自己的區塊
- 每個節點計算自己的權益,權益最大者廣播自己的區塊
-
**優點:**資源消耗低,達成共識周期短,交易服務費低
-
**缺點:**易被壟斷,無法處理分叉鏈的情況
-
DPoS (Delegated Proof of Stake, 委託權益證明)
- 原理:持幣節點投票選舉,選舉出一些節點作為代表來記賬
- 具體步驟;
- 受託節點去社區拉票,獲取信任
- 節點按照自己的 持幣量/總幣量 加權投票,選出自己的受託節點
- 通常選出K個受託節點,權力相等,彼此根據算力進行競爭
-
優點:能耗更低,交易速度更快,每隔一段時間調整受託人,避免受託人造假和獨權
-
缺點: 普通節點參與投票積極性不高;一旦出現故障節點,無法及時應對