我們的大多數讀者可能已經聽說過共識機制及其總體目的。因此,我們想在今天的博客文章中恢復您對此主題的記憶,并討論各種替代方法。
### 工作證明
最廣為人知的共識機制是比特幣正在使用的一種,稱為“工作量證明”(PoW)。用比特幣對PoW進行簡短的簡化解釋如下:通過PoW,計算能力可用于保護區塊鏈并創建新塊。所謂的“礦工”(礦工)正試圖計算下一個區塊的哈希值。哈希是用于密碼算法的單詞,它重復不可逆,可重復的數字和字母字符串。每個塊都包含塊頭數據和事務。當礦工的節點在網絡內部接收到新交易時,它們會將它們包含在實際的塊中并繼續進行哈希處理。第一個找到正確解決方案(目標哈希)的礦工將獲得以比特幣為單位的區塊獎勵(實際獎勵為12.5 BTC /區塊)。大約每10分鐘生成一個新塊。由于隨著時間的推移,難度越來越高,礦工需要大量的處理能力,而如今的采礦業實際上已成為一種高耗電活動。當然,近來比特幣的這種能源消耗現象引起了很多批評,但PoW的替代品已經消耗了更少的能源,盡管其他共識機制能否滿足與PoW相同的安全標準有時仍存在爭議。
### 權益證明
PoW之后的另一個眾所周知的共識機制是“權益證明”(PoS)。PoS是區塊鏈網絡旨在達成分布式共識的另一種方法。使用PoS時,通常借助兩個最常見的塊選擇變量之一“隨機塊選擇”和“基于年齡的選擇”來選擇下一個塊的“偽造”。顧名思義,使用“隨機區塊選擇”時,下一個區塊的偽造者將通過一個公式來隨機選擇,該公式將查看最低哈希值+用戶權益大小的組合,例如NXT。對于“基于年齡的選擇”,必須將未花費一些硬幣的時間跨度乘以賭注的大小,以確定誰將偽造下一個區塊。[Peercoin](https://peercoin.net/)是第一個實施“基于年齡的選擇”的加密貨幣。僅根據帳戶余額選擇下一個偽造者并不是一個好主意,因為在這種情況下,余額最高的人會一直簽名,這將導致系統相當集中。與PoW相比,PoS中沒有區塊獎勵,偽造者僅賺取已簽署區塊的交易費。好消息是PoS的能源消耗遠少于PoW,因此偽造者沒有PoW礦工那樣的能源消耗大。參與并運行節點的人越多,系統的分散程度就越高。在PoS中實際上可以發現的一個主要(安全)缺陷被稱為“無風險”問題: *“沒有風險”問題的根源在于,對特定版本的股權證明區塊鏈進行投票不需要資源,因此也 **沒有機會成本**。由于在特定的鏈上進行開采沒有機會成本,因此礦工沒有任何風險。因此,理性的礦工應該簡單地在他們看到的每個競爭分支上進行開采,以最大程度地獲得他們所獲得的采礦收益。” –([中等– @abhisharm](https://medium.com/@abhisharm/understanding-proof-of-stake-through-its-flaws-part-2-nothing-s-at-stake-8d12d826956c))*
### 股權證明– Casper(以太坊)
正如您大多數人可能已經聽說的那樣,以太坊正計劃將名為“ Casper”的新PoS協議納入其區塊鏈的新共識系統。目標是從能源密集型PoW采礦中轉移出去。當然,必須謹慎執行此開關,以免使以太坊面臨風險。為了能夠實施PoS,必須考慮其他安全措施,例如,通過解決我們上面已經提到的“無風險”問題。使用Casper,驗證者將其ETH的一部分作為抵押品,并開始驗證區塊。然后將根據他們的股份按比例獎勵他們,但如果他們以惡意的方式行事,他們將失去以太坊作為懲罰。
### 委托權益證明
PoS的一種非常有趣的替代形式稱為“委托權益證明”(DPoS)。借助DPoS,并非所有人都能直接參與新區塊的創建/偽造,除非得到社區的投票。讓我們看一下Lisk的示例,以更好地理解DPoS的工作原理:使用Lisk,每個人都可以注冊以換取一些代表費用。但這并不意味著您將能夠參與新塊的創建過程。要成為活躍的偽造者,您需要得到社區的投票(所有Lisk用戶可以投票給他們的信任代表,并根據他們的帳戶余額具有一定的投票權)。然后,只有前101名投票最多的代表才能偽造新的代表。每個積極鍛造的代表都可以選擇自己將與選民分享的偽造Lisk的百分比,這當然激勵了人們投票。DPoS的優勢是實現共識的更加民主和高效的系統。與比特幣的平均區塊時間為10分鐘相比,Lisk的當前區塊時間只有10秒左右,可以通過交易驗證新區塊。此系統中可能需要考慮的缺點之一是,大多數高級代表共同組成大集團,并迫使選民投票給整個集團,以便獲得充分的回報。如果選民不這樣做,他將因未對整個小組投票而獲得較少的回報。該程序的結果只會導致經濟誘因,而并不能真正支持民主制度。
### 重要性證明
“重要性證明”(PoI)與PoS非常相似,并且由NEM引入。通過PoI,“鍛造”新區塊被稱為“收獲”。與PoS相比,其主要優點是“重要性得分”和可防止“無風險”問題的安全系統。“重要性分數”不僅考慮了一些用戶的余額,而且還考慮了他的交易頻率/行為,這導致了最終結果,該結果確定了收獲新區塊的機會。通過這種方法,鼓勵用戶使用和散布其硬幣,而不是拿著它們,而只是集中財富。
### 燒傷證明
“燒錢證明”(PoB)是PoW&PoS的一種替代方式,它通過將硬幣發送到不可花費的(不可恢復的)地址來“燃燒”某些PoW開采的貨幣。這些交易記錄在區塊鏈上,用戶因此而獲得獎勵。這種方法的激勵機制是激勵用戶在短期內犧牲一些貨幣,并在以后通過PoB獎勵機制從長期收益中獲利。用戶一開始愿意損失的貨幣越多,他開采新區塊并獲得獎勵的機會就越大。一方面,PoB的優勢可以體現在對用戶參與PoB活動時可能接受的項目的長期承諾中。另一方面,不利條件是,例如,您能夠燃燒的錢越多,您獲得的錢就越多,盡管不能保證取得積極的結果,但這只會使富人變得更富有。此外,某些PoW硬幣的燃燒過程可被視為某種能源浪費(首先,您要用電來開采它們,然后燃燒并使其無法使用)。實施PoB作為共識機制的代幣的一個例子是Slimcoin。
### 授權證明
“授權證明”(PoA)是PoS的另一種形式,其中身份和聲譽被視為權益而不是金錢價值。使用PoA,驗證者必須在平臺內進行個人識別,并且其身份必須真實。通過這種形式的共識機制,驗證者可以公開其身份,以換取偽造新區塊的權利,這意味著驗證者從其活動中獲得的所有收益都是公開可見的,但惡意行為也可見。可以將其視為驗證者長期保護和維護網絡的良好激勵機制,因為其所有行為和活動都與聲譽息息相關。
### 經過時間證明
“經過時間證明”(PoET)是英特爾引入的一種共識機制。 *“ PoET依賴于稱為Intel Software Guard Extensions(SGX)的特殊CPU指令集。SGX允許應用程序在受保護的環境中運行受信任的代碼。” –([中– @ kynan.rilee](https://medium.com/kokster/understanding-hyperledger-sawtooth-proof-of-elapsed-time-e0c303577ec1))* 與PoW相比,這種共識機制試圖在不實施耗能的采礦部分的情況下達到分布式共識的相同結果。PoET以下列方式工作:首先,區塊鏈網絡中有許多節點會創建一個隨機的等待時間并開始等待。隨機等待時間最短的節點將被允許向區塊鏈提交新塊,并且“回合”結束。然后,此過程一遍又一遍地重復,并且在每一輪中,另一個節點創建一個新塊。這與PoW類似,但沒有采礦活動,因此耗電量少得多。
### 容量證明
“容量證明”(PoC)通過允許挖掘設備使用可用的可用硬盤空間來挖掘并將新塊提交到區塊鏈來工作。采礦設備甚至可以在實際采礦過程開始之前將潛在解決方案的列表存儲在硬盤上。可用空間越多,可以節省的解決方案就越多,因此找到目標哈希并挖掘新塊的機會就越高。取決于節點為網絡提供多少可用硬盤空間,以本機貨幣的形式按比例授予獎勵。使用PoC作為共識機制的區塊鏈項目有Filecoin,Storj和Burstcoin。
### 嫩薄荷(PoS)
Tendermint可以被視為構建[拜占庭容錯(BFT)的](https://en.wikipedia.org/wiki/Byzantine_fault_tolerance)區塊鏈的協議 。它包含兩個主要技術組件: *“區塊鏈共識引擎和通用應用程序接口。共識引擎稱為Tendermint Core,可確保將相同的事務以相同的順序記錄在每臺計算機上。稱為應用程序區塊鏈接口(ABCI)的應用程序接口使事務能夠以任何編程語言進行處理。與其他預包裝有內置狀態機(例如精美的鍵值存儲或古怪的腳本語言)的其他區塊鏈和共識解決方案不同,開發人員可以使用Tendermint進行BFT狀態機復制,以任何編程語言和開發環境非常適合他們。” –([Tendermint Docs –簡介](http://tendermint.readthedocs.io/projects/tools/en/master/introduction.html))。使用Tendermint的項目示例為Cosmos。*
###
##### 作者:
讓·安托萬·帕雷爾(Jean-Antoine Parrer),2018年6月。如果您對內容有任何疑問,請發送電子郵件至:[jean.parrer@blockchainhub.net](mailto:jean.parrer@blockchainhub.net)
------
### 支持我們
我們在https://blockchainhub.net上的目的是教育公眾了解這項新技術的功能,潛力和威脅。如果您喜歡我們的工作并從我們的資源中受益,請隨時通過捐款支持我們。我們可以發行可抵稅的收據。
**貝寶:** hello@blockchainhub.net
**比特幣:** 1NFwzutctYkY88Ak8Ybovcypu58fdWvBp5
**以太坊:** 0x7edf24bad49c02fa5261e3f392c05decf99908c3
### 參考資料和進一步閱讀
- [BlockchainHub –加密經濟學](https://blockchainhub.net/cryptoeconomics/)
- [Hackernoon –工作證明,權益證明和燒傷證明](https://hackernoon.com/proof-of-work-proof-of-stake-and-proof-of-burn-6823eac2776e)
- [Hackernoon –替代區塊鏈共識機制](https://hackernoon.com/alternative-blockchain-consensus-mechanisms-40c1509af39e)
- [Blockgeeks –什么是以太坊Casper協議?速成課程](https://blockgeeks.com/guides/ethereum-casper/)
- [Lisk Academy –什么是委托權益證明?(DPoS)](https://lisk.io/academy/blockchain-basics/how-does-blockchain-work/delegated-proof-of-stake)
- [Cointelegraph –重要證明:NEM如何為區塊鏈增加聲譽](https://cointelegraph.com/news/proof-of-importance-nem-is-going-to-add-reputations-to-the-blockchain)
- [中等– @poanetwork –授權證明:具有權益的共識模型](https://medium.com/poa-network/proof-of-authority-consensus-model-with-identity-at-stake-d5bd15463256)
- [中級– @abhisharm –了解其缺陷的權益證明。第2部分-“一無所獲”](https://medium.com/@abhisharm/understanding-proof-of-stake-through-its-flaws-part-2-nothing-s-at-stake-8d12d826956c)
- [中– @ kynan.rilee –了解超級賬本鋸齒–經過時間的證明](https://medium.com/kokster/understanding-hyperledger-sawtooth-proof-of-elapsed-time-e0c303577ec1)
- [嫩薄荷文檔](http://tendermint.readthedocs.io/projects/tools/en/master/introduction.html)
- 關于本書
- 引言
- 準備工作
- 安裝 Go語言開發環境
- 開始使用Go
- 創建一個Go模塊
- 第一章 手把手系列
- 1.1 教你搭建Nginx教程
- 1.2 教你搭建Jupyter教程
- 1.3 教你搭建Node教程
- 1.4 教你搭建Fabric教程
- 1.5 教你搭建Ethereum教程
- 1.6 教你搭建Bitcoin教程
- 1.7 教你搭建Systemd教程
- 第二章 架構師之路
- 2.1 微服務開發筆記
- 2.2 Docker開發筆記
- 2.3 ElasticSearch開發筆記
- 2.4 Linux開發筆記
- 2.5 Mysql開發筆記
- 2.6 Nginx開發筆記
- 2.7 Redis開發筆記
- 第三章 區塊鏈教程
- 3.1 Bitcoin開發筆記
- 3.2 Ethereum開發筆記
- 3.3 USDT開發筆記
- 第四章 網絡知識庫
- 4.1 比特幣白皮書
- 4.2 以太坊白皮書
- 第五章 技術博客園
- 5.1 Fabric架構詳解
- 5.2 技術開發指南
- 5.3 共識機制詳解
- 第六章 項目管理
- 6.1 項目運行環境
- 6.2 項目經理的角色
- 6.3 第6、7、8章框架
- 第七章 公務員考公
- 7.1 程序員成功上岸經歷
- 7.2 程序員備考的最佳實踐
- 7.3 程序員備考過程中會遇到哪些問題?
- 7.4 公考公平嗎,35歲再去考可以么?
- 7.5 資料、工具推薦和擴展閱讀
- 結論
- 附錄