區塊鏈共識分析的簡單框架
一級標題

一級標題
一級標題
區塊鏈共識對比
一級標題
一級標題
框架思路
一級標題
基本要求
基本要求
基本要求
活性(Liveness) - 請求/交易總會在有限時間內被處理
性能包括:吞吐量(Throughput)
性能包括:吞吐量(Throughput)- 單位時間內系統可以處理的請求數量延遲(Latency)
,因此共識設計通常會選擇保證一點而在一些特定情況下放棄另外一點,例如Bitcoin使用的Nakamoto共識選擇優先保證活性,而BFT共識則優先保證一致性。
- 一個請求/交易從發起到處理完畢/
完全確定所需要的時間:給定相同的帶寬,共識對帶寬的佔用越低,共識的吞吐量越高。

一級標題
一級標題
一級標題區塊鏈共識的特點動態的參與者集合
無論是permissionless(翻譯成“無需許可”太繞口了,
用“公有鏈”又不是很準確
,這裡還是用單詞)還是permissioned blockchain,最重要的一個特徵是它是一個長期運行的開放系統。長期運行和開放疊加的結果是,共識的參與者會一直變化,每隔一段時間,總會有老的共識節點離開,新的共識節點加入,共識參與者是一個動態集合。如何處理共識參與者的動態變化,是區塊鏈共識的一個核心問題。
數量眾多的參與者
最小的信任模型

去中心化是permissionless blockchain共識協議的一個獨特目標。我們通常用參與共識的門檻來度量去中心化程度(為什麼這是一個好的度量?),參與門檻越低,去中心化程度越高。低參與門檻的自然結果是共識參與者的集合可以非常的大,因此共識協議的設計必須考慮到這一點,保證共識效率不會因為參與者的增多而下降。
最小的信任模型
執行共識算法的目的是為了能對一個計算請求產生一致的計算結果,在這個過程中一定會有發起請求的節點和處理請求的節點。在傳統共識模型中,有的完全在請求處理節點集合內部執行共識算法,有的是由請求發起節點和處理節點一起執行共識算法,無論何種情況,信任邊界一般是在請求發起節點和請求執行節點之間,發起節點將計算請求發送給執行節點,執行節點計算出結果後返回給發起節點,發起節點信任執行節點的計算結果(反過來,執行節點不一定信任發起節點的消息,如果發起節點參與共識過程的話)。
區塊鏈共識的信任模型則大為不同,對信任的要求往往要小的多。在permissionless blockchain網絡中,同一個節點即發起交易又參與共識,節點對於共識結果要進行驗證,並不是簡單的信任其他節點的共識結果。以Bitcoin為例,如果一個全節點參與挖礦,它就同時是一個發起請求(交易)的節點和處理請求(交易)的節點。即使它只想做一個安靜的全節點,不參與挖礦,它也會自行驗證收到的請求處理結果(區塊),並不信任其他共識節點提供的結果。這樣的全節點只是選擇跟隨多數算力選擇的交易排序,不相信多數算力給出的交易結果。這是一個最小的信任模型。
SPV/輕節點使用一個比全節點更強的信任模型(更強意味著對信任的假設更多),並不驗證交易的執行,只驗證區塊頭的有效性。如何驗證區塊頭的有效性則是區塊鏈共識設計的另一個核心問題。如果只是通過對區塊頭附帶的非對稱簽名來驗證有效性,這個信任模型基本上和傳統共識的信任模型是等價的,因為傳統共識中的請求處理節點也可以對結果附加簽名,這個模型在結合動態參與者集合時會遇到一系列的問題,例如大家熟知的長程攻擊。如果是通過PoW來驗證區塊頭有效性則天然沒有這些麻煩,主流的研究方向是在於如何進一步提高區塊頭的驗證效率。
一個簡單的分析框架
根據以上的分析,我們可以整理出一個簡單的區塊鏈共識分析框架,用於比較各種區塊鏈共識:
進入方式* - 購買算力/ 抵押代幣/ …
出塊方式* - 輪流出塊/ PoW隨機選擇/ 鏈上偽隨機/ VRF隨機選擇/ …
共識方式* - Nakamoto Consensus / BFT / …
退出方式* - 停止挖礦/ 解除抵押/ ...
一致性- 可以容忍多少惡意節點/算力/Stake/…
活性- 可以容忍多少惡意節點/算力/Stake/…
延遲- 交易被完全確認(被推翻的概率小於x)所需要的時間

[1] 帶寬效率- 共識對帶寬的利用率,越高越好
節點數量- 共識節點的數量上限是高還是低舉例說明:
[3] 99%的確定性[2] 考慮
[4] https://github.com/tendermint...
[5] https://medium.com/nervosnetw...
對於一個區塊鏈共識協議來說,前四點(帶*)基本上決定了後面的特徵。通過這個框架也容易看到,我們通常所說的“PoW共識”或者“PoS共識”是非常模糊的描述,PoW/PoS僅僅是選擇出塊節點的方式,不能表達具體的共識過程是什麼樣子。我們甚至可以設計一些非常混搭的共識協議,例如設計一個需要通過抵押代幣來參與,通過PoW來選擇出塊節點,通過Nakamoto Consensus形成最長(重)鏈的協議(可以給它取名叫StakingPoW ,完美結合Staking熱點),或者是設計一個需要通過PoW來參與(必須提供滿足一定難度的PoW才能參與共識),通過VRF來選擇出塊節點,通過BFT來達成共識的協議(這個可以起名叫PoW + VRF/BFT,讓人一看就從心底油然升起專業的感覺)。
一級標題
一級標題
激勵分析
更多…Jan、在上面的框架之上,我們還可以疊加一個在傳統共識中沒有的維度:共識激勵。區塊鏈在共識中引入了經濟激勵,通過機制設計將納什均衡與系統目標融合在一起,引導參與者遵守協議,共識參與者的效用函數可以方便的以其經濟收益(即獲得的獎勵減去參與共識的成本)來衡量。共識獎勵往往通過系統內原生代幣實現,獎勵價值由代幣價值決定,在一個正確設計的共識協議中參與者應該按照付出的多少獲得相應的回報。共識成本的組成比較複雜,對應上面的框架,我們需要分析共識的進入成本,出塊成本,共識成本,退出成本,這些成本共同構成了節點參與共識的成本。正確的共識激勵對網絡的安全性和去中心化程度都有影響,因此激勵分析是共識分析的一個重要部分。、你是不是覺得這個分析框架有道理呢?歡迎給我們提出意見!本文感謝高亦民
萬涔涔Nervos Talk高亦民


