原文作者:Glaze, Fundamental Labs
原文作者:Glaze, Fundamental Labs
原文編譯:Aididiao
以太坊合併正在進行,但權益證明(PoS)機制的啟動時間已經被一次又一次的推遲。
圖片描述
來源:
來源:Etherscan
來源:
長期以來,以太坊高昂的Gas 費和緩慢的網絡交易速度被用戶所詬病,而PoW 共識機制可以幫助以太坊解決這些問題。
本文將解釋PoS 共識機制的歷史以及以太坊合併中遇到的困難。
快速了解新的共識機制
每一個區塊鍊網絡上存在很多節點,共識機製作用協調這些節點,讓不同的節點之間對產生的新區塊達成共識。共識機制是分佈式網絡能夠順利自運轉的關鍵所在。
共識機制通常很複雜,要想快速了解一種新的共識機制,只需要回答:
新的區塊由誰提出?
區塊鏈如果出現分叉,決定誰是主鏈的要素是什麼?
PoW 共識機制概述
在PoW 共識機制中,礦工反复嘗試求解一種基於哈希算法的數學難題。首先解出的礦工就會獲得記賬權,從而提出新的區塊。如果區塊鏈出現分叉,最長的分叉鏈將成為主鏈。如果有人想要操縱區塊鏈,攻擊者至少要達到51% 的算力。 PoW 網絡挖礦需要電力資源,同時對硬件的要求很高,有一定的成本門檻。挖礦所獲得的獎勵與其計算能力成正比。
與PoS 相比,PoW 相對簡單。因為PoW 不需要涉及隨機數等問題,而PoS 需要使用隨機數來隨機選擇區塊提議者。
PoS 共識機制詳解
以太坊合併過程中,以去中心化的方式鼓勵更多的節點加入網絡,因此需要更加複雜的協議來支持數千個節點的點對點通信,保障網絡的正常運行。
PoS 共識機制即權益證明機制,節點需要在網絡上質押原生代幣。質押代幣越多,節點越有可能產生區塊。 PoS 共識機制對硬件要求不高,但是需要資金完成質押。如果節點出現作弊情況,網絡將立即削減節點所質押的代幣。由於節點不需要花費電力資源和使用高端硬件設備,PoS 網絡具有可持續性、更高效的反應機制、更高的TPS 和安全性,因此大多數網絡都會採用PoS 共識機制。
PoS 的兩個階段
PoS 經歷了兩個階段的發展,PoS 1.0 是基於區塊鏈的共識機制,而PoS 2.0 是基於BFT(拜占庭錯容)的共識機制。
PoS 1.0 共識機制: PeerCoin、NextCoin、BlackCoin 和Ethereum Serenity。
PoS 1.0
PoS 2.0 共識機制:Ethereum 2.0、Tendermint 和Cosmos 等項目。
在PoS 1.0 階段,大多數PoS 機制:
節點質押代幣
隨機選擇一個節點產生新的區塊,節點產生新區塊的概率與質押代幣的數量成正比
在這個過程最重要的是隨機數的生產,如果隨機數的生成是基於時間戳和哈希算法,那麼節點有可能會通過影響隨機數生產的方式來增加自己再次被選為區塊提議者的概率,從而產生新的區塊。
攻擊向量
黑客可以通過攻擊向量訪問計算機或網絡服務器,以傳遞有效負載或惡意結果。攻擊向量使黑客能夠利用系統漏洞,可能導致資產被盜。常見的攻擊向量有:
Staking grinding:區塊提議者執行一些計算或採用其他步驟來試圖將隨機性偏向於他們自己,以此來獲得更多生成區塊的機會。
Nothing at stake:在PoS 網路中,節點不需要額外的機會成本進行挖礦,所以會在每一個競爭分支上進行挖礦以最大化他們的獎勵。但這對網絡的穩定性是有害的。
PoS 2.0
Long-range attack:早期礦工可能追溯早期版本的區塊鏈,容易造成分叉。
PoS 2.0 採用的是BFT,其目標是在不同節點之間達成共識。
在所有節點中,通過隨機算法選出主節點,可以提出提案和通訊。其他節點中存在惡意節點,即拜占庭節點。拜占庭節點為了阻撓真實信息的傳遞及共識的達成,會向各個節點發送前後不一致的信息,通常以這種方式作弊:
未返回結果
以錯誤的結果回應
以故意誤導的結果回應
以不一致的信息回應
除了拜占庭節點外其餘節點均為誠實節點,還有一種最困難的場景主節點是拜占庭節點。
BFT 還有其他限制:
節點只能對等通信
節點保存已發送信息的日誌
點對點通信導致不同的節點會有不同的視圖,節點沒有在全局同步狀態,例如節點A 找到3 個新區塊的同時,節點B 只能看見1 個新區塊。
BFT 的主要目的是主節點提案之後,除了拜占庭節點之外的每一個節點都可以達成協議,次要目標是發現拜占庭節點。
BFT 算法介紹
現在BFT 算法通常採用多輪投票來確保每個節點都知道提案是否被超過三分之二的節點批准。
每一輪投票都有四個步驟:
客戶端向主節點發送請求
主節點向所有節點傳遞請求
節點返回執行結果回應主節點
得到超過三分之二節點相同的結果後,主節點再把結果反饋到客戶端
下圖顯示了執行過程的5 個節點。其中C 是客戶端,0 是主節點,3 是拜占庭節點。
在準備和提交階段,需要確保不同節點之間的同步進行。
Tendermint 有一下幾個限制:
點對點通信時網絡節點不能超過100 個
點對點通信需要復雜設計
執行延遲。節點首先決定新區塊,然後再執行新區塊的所有信息。雖然單個交易執行可以正常工作,但一次執行所有交易可能會導致雙花問題。
編者註:Tendermint 是用於在多個節點上安全且一直地複制應用程序的軟件。即使多大三分之一的節點以任意方式發生故障,Tendermint 也能正常工作。 Tendermint 被設計為易於使用、易於理解、高性能且適用於各種分佈式應用程序。
目前的BFT 算法可以在以下條件中達成一致:
4 個節點中最多有1 個是拜占庭節點
25 個節點中最多有8 個是拜占庭節點
100 個節點中最多有33 個拜占庭節點
網絡運行狀態可分為一下集中情況。假設f 是拜占庭節點的個數,網絡匯總共有3k+1 個節點,k 是隨機整數。
f ≤ k,網絡穩定
k < f < 2k+1,部分節點可能無法達成共識。區塊鏈暫停
f ≥ 2k+1,存在安全隱患
Ouroboros 算法機制
展望未來
展望未來
展望未來
展望未來
原文鏈接
原文鏈接
參考文獻
https://www.geeksforgeeks.org/practical-byzantine-fault-tolerancepbft/
http://muratbuffalo.blogspot.com/2020/01/practical-byzantine-fault-tolerance.html
https://minaprotocol.com/blog/how-ouroboros-samasika-upholds-minas-goals-of-decentralization
https://arxiv.org/pdf/1807.04938.pdfhttp://www.cs.cmu.edu/~dga/15-712/F13/papers//castro99.pdf
http://muratbuffalo.blogspot.com/2020/01/practical-byzantine-fault-tolerance.html