區塊鏈的核心是去中心化網絡的信任機制,而共識機制是實現這一目標的關鍵。共識機制可分為兩個階段:(1)提出共識內容(2)對內容達成共識(遵循最長鏈原則)。三種主流的共識機制主要有工作量證明PoW(Proof of Work),權益證明PoS(Proof of Stake),委托權益證明機制DPoS(Delegate Proof of Work),除了了解其基本內容,還需要學習其技術實現。
一、工作量證明(PoW)
PoW這個概念是1993年提出的,最早的用途不是用來實現加密貨幣的,而是用來防止垃圾郵件的。人們開始在使用電子郵件的時候會收到垃圾郵件的騷擾,如果發送垃圾郵件沒有成本,那么發送一百萬封電子郵件是很輕松的。所以人們想到了如果讓每一封郵件發送時都有一個微小的成本,那么鑒于成本,垃圾郵件就會被很大程度遏制了。而PoW就是為了服務這個目的而產生的。基本過程就是郵件接收方先廣播一道題出去,郵件發送方在發郵件時必須附帶上這道題的答案,這樣郵件才會被接受,否則就會被認為是垃圾郵件。
同理我們引入PoW機制下的哈希函數,實際上就是如何用哈希函數給計算機出題,由于計算機的解題速度很快,因此出的題目對于計算機“有挑戰性”,我們知道哈希函數最大的特點是如果輸入的數據哪怕有微小的區別,輸出的結果也會完全不同,這點保證了無法通過輸出結果去反向運算輸入,也沒有辦法縮小輸入的可能性范圍,另一方面,如果輸入相同則運算得到的輸出哈希一定相同。這一點保證了任何人都可以在一瞬間內驗證最終的哈希值是否正確。
比特幣系統的一個眾所周知的特點,就是很多礦工參與挖礦,但是每十分鐘網絡上產生的比特幣卻不是所有礦工均分的,而是誰先搶到記賬權,就把所有的比特幣獎勵給誰。記賬權的搶奪就是計算能力的比拼。比特幣的PoW機制,宏觀上就是要達成的就是判定哪個礦工的運算能力最強。這道題用到了哈希函數,但是系統要的答題結果也就是所謂的PoW,不是哈希函數的輸出,而是輸入。
為什么會這樣設置呢?因為從輸入計算哈希輸出,是一個非常直白的過程,計算機很擅長這樣的工作,不能明顯地體現出礦工之間計算能力的差異,而且系統必須要給全網廣播一個超級大的數,這樣才能比拼計算能力,涉及到網速等延遲問題,也不是很公平。所以比特幣系統的做法是反過來,給全網廣播一個哈希值,讓大家消耗自身算力嘗試不同的隨機數(nonce)找到它的輸入。因為前面提到的哈希函數獨特的特點,礦工們要想找到輸入,只能每次選一個數不斷嘗試瞎蒙,運算它的輸出和系統廣播的哈希值對比,如果不符合,換下一個數繼續,這顯然是一個概率問題,在相同的時間內誰能嘗試的次數多,大概率他會首先拿到正確的輸入,這就是PoW的基本原理了。
當然在實際中,比特幣系統是每十分鐘記賬一次,也就是需要所有礦工每十分鐘比一次,但是在十分鐘內想計算出一個精確哈希值的輸入是根本不可能的。所以系統每次給定的是一個哈希值范圍。具體規則就是,只要保證運算出的哈希值小于某個特定的數值,就認為提交的PoW是正確的,也就是說礦工們要盡力找到哈希值前幾位0越多越好(哈希值越小)對應的輸入。多年來礦工們的算力也有了很大提高,但是為什么比特幣系統還是能保證算出PoW的時間大致保證在十分鐘左右呢?答案就是系統可以通過調整0的個數來改變出題難度,雖然礦工們算力提高了,但是題也變得更難,所以需要花費的解題時間就會保持相對穩定。最快得到結果的礦工會把把自己的結果發送到全網(提交新創建的區塊),其他礦工都會驗證結果是否符合有效,如果有效,則每個節點都在自己的區塊鏈數據副本中添加這個有效區塊,開始新處理新的交易數據,努力創建新區塊。如果無效,則會被丟棄,礦工們繼續做手頭工作。
PoW共識的優點就是安全性高,隨著有效區塊的不斷積累,惡意節點需要極高的算力(超過總體的51%)來完成雙花攻擊,成本高昂。也存在著消耗算力和電力大的缺點。
二、權益證明(PoS)
在PoW中通過消耗大量的算力來爭奪記賬權,但是在每一輪共識中,只有一個節點得到了記賬權,其他節點的相當于是“陪跑”,算了被浪費了。而權益證明PoS于2013年首次提出被應用到了PeerCoin系統中,可以解決資源浪費的問題。
PoS?通過持有代幣的數量和時間(即“權益”)決定記賬權,??權益越高,被選中驗證交易的概率越大。
具體的技術實現是每個節點在每一輪共識中只需要計算一次Hash,當擁有的權益越多,滿足Hash目標的機會越大,獲得記賬權的機會越大。可以說,PoS是一個資源節省的共識協議。PeerCoin定義的權益除了與代幣數量有關,引入了幣齡(Coin Age),100個代幣持有兩天,幣齡為200,因此持有的代幣數量越多,時間越長,獲得記賬權的機會越大。
PoS的優點是??節能高效??:無需大量計算,能耗降低99%以上;缺點就是存在??“富人更富”問題??:代幣越多,收益越高,可能導致財富集中;
??改進方案??:以太坊2.0引入??Casper協議??,結合質押懲罰機制;Cardano采用分層PoS提升可擴展性。這里提到的一些前沿的技術先挖個坑,后面再補充。
三、委托權益證明機制(DPoS)
DPoS是由PoS演化而來的,持幣用戶通過抵押代幣獲得選票,以投票的方式選出若干的節點作為區塊生產者,代表持幣用戶履行產生區塊的義務。用戶投票最多的若干節點成為出塊節點,以EOX為代表是21個節點。在每一輪共識中,輪流選出一個出塊節點產生區塊,并廣播給其他的出塊節點進行驗證。若節點在規定時間內無完成出塊,或產生無效區塊,就會被取消資格,取而代之的事重新投票選取新的出塊節點。
?
值得一提的是,EOS初期的DPoS的共識方法才采用的是最長鏈共識,意味著與PoW一樣區塊沒有絕對的最終性,交易的不可逆需要等待多個區塊確認。在18年時,EOS使用拜占庭共識代替最長鏈共識,名為BFT-DPoS。?
優點是高吞吐量??:區塊生成速度快(EOS可達3000+ TPS);??低延遲??:適合高頻交易場景
缺點是??中心化爭議??:超級節點數量少,權力集中;賄選風險??:代幣大戶可能操控選舉。
四、三種共識對比
- ??公有鏈場景??:注重去中心化與安全性時,PoW或PoS更合適;
- ??聯盟鏈/高頻應用??:追求效率時,DPoS或PBFT更優;
- ??新興方向??:混合機制(如Hedera Hashgraph)或分片技術(如Zilliqa)正在探索更高性能的解決方案。
?
?
?
?
?
?
?