#本文僅代表作者觀點,不代表IPRdaily立場#
原標題:共識機制:區塊鏈技術的根基
我們驚嘆于區塊鏈新技術,而共識機制是這些革命性技術的根基,共識機制的不同導致不同的區塊鏈項目的形態,區塊鏈網絡使身處不同地域的成千上萬的人置于同一空間中,那他們如何在不跟別人接觸的情況下還能達成一致呢?
Chapter-1:什么是共識機制?
技術定義是:共識機制是一個群體決策的流程,群體中的個體會執行和支持對群體其他個人最好的決定。這是一個個體需要支持大多數人決定的解決方式,不管他們意愿如何。
簡單地說,這僅僅是一個群體決策的方式,舉例說明,10個人的小團體,要決策出對他們所有人最有利的決定,每一個人都提出一個方案,但是大多數人只會支持那個對他們最有利的方案,而其他人只能服從這個決定,不管個人意愿如何。
共識機制不僅僅是同意大多數同意的決定,同時需要同意那個對所有人都最有利的方案,因此,它是一個網絡共贏的決定。區塊鏈共識模型是在網絡世界中創造平等和公平,用于達成共識的共識系統叫做共識理論。
區塊鏈共識模型包括以下內容:
達成一致:機制將收集群體中所有一致意見
合作:群體中每個人都是為了更好地達成一致,從而群體利益一致
合作:個體都考慮群體,而不考慮他們個人利益
平等的權利:每一個個體參與者都有相同投票的權利,這意味著每一個人的投票都非常重要
參與:每個在網絡中的個體都需要參與投票,沒有人能夠逃避或者僅僅在集體中而不投票
積極性:群體中每個成員都是相同的活躍度,沒有人需要承擔群體中的更多的責任
不同的共識機制:
Chapter-2: 拜占庭容錯問題
拜占庭容錯是一個特殊錯誤事項的系統,它叫拜占庭將軍問題。你可以在一臺分布式計算機系統中經歷這種情形,通常是共識系統失靈。
系統組件處理更加相互沖突的信息,共識系統只有在所有因素都正常工作的狀態下才能正常工作。因此,當其中一個系統組件失靈的時候,會導致整個系統奔潰。
失靈的組件通常是由拜占庭容錯系統的不一致導致,這也是為什么這些去中心化網絡的共識系統使用感并不理想。
專家稱之為“拜占庭將軍問題”,是否仍然令人困惑?讓我用一個共識的例子來說明。
想象有一群將軍,每個將軍都有一支他們自己的拜占庭戰士隊伍。他們將要攻占一座城市,因此他們需要計劃攻占的戰術。
你可能會認為這是徒勞的,因為這個只是一個小問題。將軍們可以通過一個信使來溝通,但是當中一些背信棄義的將軍可能試圖破壞整個攻占計劃。
他們可以通過信使傳達一些不真實的信息,甚至信使可能是敵人派來潛伏的臥底。
信使也有可能傳達錯誤的信息蓄意破壞整個攻占計劃。
這就是為什么需要小心謹慎。第一,所有將軍們必須達成了一致的攻占決定;第二,保證不會出現任何的叛徒,否則整個任務都會失敗。
這看起來很簡單,但實際上,并不是。根據研究,平均3n+1個將軍中就會有n個叛徒出現,4個將軍對付一個叛徒,這也是相當棘手了。
Chapter-3:為什么我們需要共識機制?
拜占庭問題主要就是為了達成一致。即使出現一個錯誤,節點們也不能達成一致,或者將達成一致的難度系數提高。
另外,共識機制并不是真的解決這類型問題,它們的初衷是在任何情況下都能夠達成一個特殊目標。區塊鏈共識模型將比拜占庭更加可靠,以及容錯性更高。
Chapter-4: 區塊鏈:去中心化網絡組織數據的架構
重新看一下區塊鏈技術,獲得一個整體網絡的全貌 ——組織數據庫的新方式 ——可以存儲網絡中任何變化的內容 ——所有數據都將像物質一樣被放進區塊中。
因此,在區塊鏈中你將不會看到任何去中心化,這是因為區塊鏈本身不提供去中心化的環境。這也是為什么我們需要共識機制來保證我們的系統是完全去中心化的。
因此,區塊鏈技術僅僅是創造了一個結構化的數據庫,并不會執行去中心化的流程。這就是為什么區塊鏈技術被稱為去中心化網絡的架構而已。
Chapter-5:共識機制:網絡的靈魂
這個方式相當簡潔。區塊鏈共識模型僅僅是達成一致的方式,然而任何去中心化系統都離不開共識機制。
節點是否相互信任也不重要,網絡會遵循一定的原則去達成集體的一致。因此,你需要了解所有類型的共識機制。
目前為止我們沒有發現有某一種共識機制存在所有區塊鏈技術項目中的。我們來看一下不同的共識機制。
Chapter-6:不同類型的共識機制
所有共識機制列表
Proof-of-Work 工作量證明
Proof-of-Stake 權益證明
Delegated Proof-of-Stake 委托權益證明
Leased Proof-Of-Stake 租用權益證明
Proof of Elapsed Time 過去時間證明
Practical Byzantine Fault Tolerance 實用拜占庭容錯
Simplified Byzantine Fault Tolerance 簡單拜占庭容錯
Delegated Byzantine Fault Tolerance 委托拜占庭容錯
Directed Acyclic Graphs 有向非循環圖
Proof-of-Activity 活動量證明
Proof-of-Importance 重要性證明
Proof-of-Capacity 容量證明
Proof-of-Burn 燃燒證明
Proof-of-Weight 重量證明
Proof of Work工作量證明
工作量證明是第一個區塊鏈共識機制。許多區塊鏈項目都是用共識機制來驗證交易以及產生相關區塊的。
去中心化賬本系統收集所有關于區塊的信息,然而需要一個對所有交易區塊作特殊貢獻的角色。
承擔這些任務的所有個體節點叫礦工,它們完成這些任務的過程叫“挖礦”。
這項技術背后最核心的原則是解決復雜的數學問題以及很容易得到答案。
這個數學問題是什么?這些數學問題就是,消耗大量計算機計算能力,去解決哈希函數(Hash Function),或者在不知道輸入值的情況下找到輸出值,另外一個就是整數分解(integer factorization),這也包含大量猜謎過程。
當服務器遭受DDoS攻擊或者去解決共識系統難題需要消耗大量算力,這時礦工就派上用場。用數學等式解決整個問題的答案就叫哈希。
然而工作量證明有很多缺陷。由于網絡增長得過于龐大,需要消耗大量算力,這個過程也增加了系統整體的敏感性。
為什么系統變得如此敏感?
區塊鏈共識順序依靠準確的數據和信息。然而系統速度極慢。如果一個問題非常復雜,將耗費大量時間去產生一個區塊。
交易被延遲,然后整個工作流程將停滯。如果區塊產生問題不能在一定時間內解決,那么區塊產生將成為一個幻想。然而如果問題被系統很容易解決了,這又可能導致DDoS攻擊。同時,解決方案需要被進一步仔細檢查,因為不是所有節點都能夠發現潛在的錯誤。
如果他們能夠做到,網絡將失去最重要的特性——透明。
工作量證明如何應用在一個區塊鏈網絡中?
首先,礦工解決所有猜謎問題,然后產生新區塊,然后驗證交易。無法說明一個猜謎難題有多復雜,這取決于用戶數量最大值,當時算力的最小值,以及網絡整體容量。
新區塊在哈希函數被解決之后產生,以及每一個新產生區塊都包含前一個區塊的哈希函數值。通過這種方式,網絡增加了保護性以及可以組織任何暴力攻擊。一旦一個礦工解決了謎題,一個新區塊將產生,然后交易信息被驗證。
工作量證明共識機制實際被用于何處?
被應用最廣泛的就是比特幣,比特幣是第一個采用這種共識機制的加密數字貨幣。區塊鏈共識模式允許根據網絡整體算力,動態改變算力謎題的難度。
產生一個新區塊需要10分鐘。其他加密貨幣例如萊特幣,也是采用同樣的共識機制。
另外一個工作量證明的區塊鏈,以太坊,平臺上3-4個大項目都是采用工作量證明。然而,以太坊在逐漸過渡至權益證明。
為什么區塊鏈技術優先采用工作量證明?
為什么其他區塊鏈項目會優先采用工作量證明?這是因為工作量證明提供DDoS攻擊保護,以及降低整體權益挖礦。
工作量證明給黑客攻擊造成不小的難度,因為整個系統有大量算力以及其他要求。這就是為什么雖然黑客能攻擊區塊鏈共識模型,但需要耗費大量時間,以及攻擊難度會使整體成本過高。
另外,沒有礦工能夠左右整個網絡,因為決策不是根據金錢數量,而是根據你擁有能夠創造新區塊的算力決定的。
工作量證明共識機制主要受到的批評?
沒有一個共識機制是完美的,工作量證明也不例外。它有許多優點,同時也帶來很多缺陷。主要被詬病以下方面:
消耗大量能源
區塊鏈網絡包含數百萬計的用于解決哈希問題的定制芯片,這個過程要求大量的能源支撐。
目前,比特幣擁有每秒200億哈希算力。網絡中礦工使用一些特殊設計的芯片,這為網絡增加了一層防止僵尸網絡攻擊(botnet attack)的保護。工作量證明的區塊鏈網絡的保護層消耗大量密集型能源。算力的增加逐漸成為全球能耗的一個問題——礦工也面臨增加大量電力成本。
解決這個問題的最好方式是尋找便宜的能源。
礦工的中心化
由于能耗問題,工作量證明也轉向便宜電力能源作為解決方案。然而,主要的問題是比特幣大礦工數量的增加。在一定時間內,大礦工會因為擁有大量算力,而嘗試對挖礦系統制定新規則。這樣會造成一個去中心化網絡中逐漸中心化。這也是工作量證明共識機制面臨的另外一個重大問題。
什么是51%攻擊?
這是一個由可以控制大多數用戶,或者占領多數挖礦能力的人(或節點、或群體)發動的攻擊。在這種情形下, 攻擊者有足夠的算力去控制網絡中的一切。
舉例,想象一個情形,當Alice向Bob通過區塊鏈網絡發送一些加密貨幣,然而Alice被卷入這場攻擊中,而Bob沒有。這個轉賬交易雖然發生了,但是攻擊者通過區塊鏈的分叉,阻止了任何加密貨幣的轉賬。
另外一個情形,礦工如果加入了其中一個陣營,他們絕對算力會繼續在這些區塊后產生驗證區塊,這也是為什么更加短的區塊鏈會被拒絕驗證。同樣,Bob也無法接收轉賬。
Proof of Stake權益證明
什么是權益證明?
權益證明的產生就是為了解決工作量證明的缺陷。在網絡中加入其它區塊之前,每一個區塊將被驗證。鏈如果有任何一點的扭曲,礦工可以用持有的加密貨幣對挖礦過程進行投票。
權益證明是一種允許每個個體,根據他們持有的加密貨幣數量,參與挖礦或者驗證區塊的共識機制。因此,在這種情形下,你擁有的加密貨幣數量越多,意味著你的權益越大。
這是如何工作的?
這種共識機制中,少數派被優先選擇。盡管整個流程是完全隨機的,但也不是每一個少數派都能參與投票。網絡中的礦工是隨機被選擇的。
如果你有一定數量的加密貨幣存儲在錢包中,你將有資格成為網絡中的一個節點。當成為一個節點后,如果你想要成為一個礦工,你需要抵押一定數量的加密數字貨幣,然后投票系統選出驗證者,這是礦工必須將按照最少要求數量的加密貨幣抵押到一個特殊的錢包中。
整個過程很簡單。新區塊將根據特殊錢包中的加密貨幣的數量比例產生。例如,如果你擁有10%的加密貨幣,那么你擁有10%機會挖出新區塊。許多區塊鏈項目采用不同的權益共識機制。
然而所有的權益共識機制對于新區塊產生都是一樣的,每一個礦工都將獲得區塊獎勵以及一定數量的交易手續費。
權益證明池里將會發生什么?
還有其他方式參與投票,如果權益數量太多,你可以加入一個池然后從中獲取收益。有以下兩種方式:
你可以將你持有的加密貨幣借給池子里要參與的用戶,然后分享收益。然而,你需要找到一個可靠的人去將你手中的幣給他。
你可以自己加入一個池子,參與這個池子的每個人將根據他們權益的數量分享收益。
權益證明:優勢?
這種共識機制不需要任何硬件支持。你只需要一個運行正常的計算機系統,以及一個穩定的網絡即可。網絡中擁有足夠加密貨幣的任何人都可以驗證交易。
如果一個人在網絡中進行投資,他的投資不會貶值或者折舊。能影響收益的唯一因素就是加密貨幣的價格波動。權益證明共識機制的區塊鏈比工作量證明更加節能,它不會消耗大量資源。
能夠減少51%攻擊的威脅。
盡管權益證明看起來比工作量證明更加合算,但仍然有一個很大的缺點,就是不是完全去中心化。這是由于只有一部分節點能夠參與網絡投票。而擁有最多數量加密貨幣的人將最終控制大部分系統。
采用權益證明的主要加密貨幣
PIVX
這是一個幾乎0交易費的匿名幣。PIVX是從DASH分叉出來的,然而不同于DASH采用工作量證明,PIVX采用權益證明。他們用分布式區塊的主節點來保證更好的投票效果。如果你想要擁有PIVX,你必須下載官方錢包,然后同步于區塊鏈網絡中,接著,你必須往錢包中轉入一些加密貨幣,然后保持連接。
NavCoin
許多加密貨幣是比特幣的分叉幣,NavCoin也是其中之一,這個項目是完全開源的,他們也轉向了權益證明。為了最大化收益,你的計算機需要更長時間連接網絡。由于權益證明異常輕量級,你可以毫不擔心地任其運行更長時間。
Stratis
他們主要提供企業級服務,企業可以使用Stratis去建立自己的dApps,而不用搭建自己底層的區塊鏈網絡。Stratis這個平臺提供側鏈進行搭建app,從而阻止網絡滯后。雖然他們以工作量證明開始,但是最終將轉向權益證明。 Delegated Proof-of-Stake Consensus委托權益證明共識
委托權益證明是權益證明的變體。系統具有相當的魯棒性,然后往整體增加了一個不同形式的彈性機制。
如果你想要快速、有效率、去中心化共識機制,那么委托權益證明將會是最好的選擇。權益擁有者的事項將通過一種民主的方式得到完全解決。網絡中的每一個組件將成為一個代理。
不同于礦工或者驗證者,這里的節點被成為代理者。通過決定區塊產生,系統可以以秒級處理交易。而且,系統被設計成可以對所有監管問題進行保護和對抗。
見證者驗證所有簽名
通常,見證者免于所有監管以及其他中性詞。傳統合約中的標準見證者都會對一個特殊的點進行見證驗證。他們僅僅是保證個體在一個特點時間參與了合約。
在DPOS中,見證者可以產生區塊信息。頂級見證者要投票選出。通常只有完全去中心化系統中才會發生這種投票。
所有的見證者都會在產生區塊后收到報酬。這個報酬的比例由投票系統事先制定。
投票選擇代理者中的特殊參數改變
跟見證者一樣,代理者也由投票產生。代理者可以改變整個網絡的參數。你可以通過代理者,去改變手續費、出塊時間、區塊大小和見證者報酬。如果要改變網絡參數,需要大多數代理者都參與投票支持。然而,代理者不會像見證者獲得報酬。
改變原有的規則
為了使系統平穩運行,不時需要加入一些不同的功能。然而,無法在缺少潛在相關者的情況下添加功能。見證者可以聚集起來,改變政策,但是他們被系統限定不能如此。 見證者需要保持中立,以及他們僅僅是作為利益相關者的雇員。所以,所有事項都由利益相關者決定。
雙花攻擊風險
在DPOS中,雙花攻擊風險被最大程度降低。雙花攻擊是指區塊鏈網絡無法包含數據庫中之前的交易記錄。網絡可以在無人幫助的情況下進行自我檢查,然后發現類似的損失。通過這種方式,來保證數據庫的100%透明。
權益證明下的交易完成
盡管這是權益證明的一個變體,但核心交易系統仍然是整個運行在權益證明機制上的。權益證明的交易流程增加一個保護層對抗錯誤的共識系統。
誰采用委托權益證明?
LISK,為開發者可以在這個區塊鏈平臺上,便利地開發基于JavaScript的去中心化應用。
Lisk跟以太坊有很多相似的地方,然而,它采用委托權益證明而非權益證明。這里的投票運行機制不一樣。 Leased Proof-Of-Stake (LPoS) 租用權益證明
權益證明的另外一個變體是租用權益證明。采用這個新型共識機制的區塊鏈項目是Waves平臺。就像其他區塊鏈平臺一樣,Waves也是屬于能耗少的。權益證明對于投票機制存在一些限制。擁有少量加密貨幣的個體可能永遠也無法實際參與投票環節。為了維持網絡運行,只有少數擁有更多加密貨幣的個體可以參與。這個流程會導致在一個去中心化平臺中存在中心化團體,這顯然不是大家愿意看到的。
在租用權益證明中,即使擁有少量加密貨幣的持幣者也能有機會參與投票。他們可以把手中的幣借給網絡,然后從中獲取收益。引入新型的租用權益證明后,情況完全變化了。系統之前的缺陷可以毫無難度地得到解決。Waves平臺最主要的目的就是顧及少數的投資者。那些只擁有少量加密貨幣在錢包中的人可能永遠都無法像大戶一樣有機會獲取收益。這也導致了共識機制一個主要命題——透明性。 Proof of Elapsed Time (PoET) 過去時間證明。
過去時間證明是最好的共識機制之一。這個特殊的機制被主要用于聯盟鏈網絡——即你需要得到許可才能加入這個網絡中。這些可允許網絡需要對挖礦權利或投票原則等事項進行決策。為了一切順利運行,過去時間證明采用一個特殊的手段來覆蓋整個網絡的透明性。這個共識機制同時能夠保證系統的安全登錄,在成為礦工前網絡需要進行驗證。毋庸置疑,在這個共識機制下,挑選出勝者只能依靠公平手段。
這個牛逼的共識序列的主要戰略是什么?
網絡中每一個個體必須等待一定量的時間,然而時間的限制是完全隨機的。
參與者必須完成TA的等待時間后,才能在賬本中創造新的區塊。
為了證實這些場景共識機制必須考慮以下兩點
勝者是否首先就選擇了隨機數?TA能否選擇一個短時間的隨機數然后就獲勝
個體是否真的完成TA被分配的等待時間?
過去時間證明依靠一個特殊的CPU設備——Intel軟件保護擴展。這個設備能夠在網絡中運行特殊的代碼,過去時間證明就是采用這個系統來保證勝局完全公平。
Intel SGX系統
由于過去時間共識機制采用SGX系統來驗證公平性。我們來詳細說一下這個系統。
首先,一個特殊的硬件系統創造一個認證來使用特殊可信任的代碼。代碼是在一個安全的環境中產生的。任何外界都可以用這個認證來驗證是否被篡改。
第二,這些代碼是在網絡中的隔絕區域中運行的,沒有人可以連接到。
第一個步驟能夠證明你是在網絡中真實地使用可信代碼,而不是隨機的把戲。如果步驟一不能夠正常運行,主網絡甚至無法發現。 第二個步驟阻止任何用戶通過認為TA在運行代碼從而操縱系統。步驟二保證了共識機制的安全性。
可信任代碼
簡單地羅列出代碼的要點
加入區塊鏈網絡
一個新用戶首先需要下載區塊鏈中可信任的代碼
開啟后,他們會獲得一個特殊的鑰匙對
運行這個鑰匙對,用戶就可以發送SGX認證到網絡中,請求通過
參與樂透系統
個體將會從可信代碼源中得到一個已經簽名的計時器。之后,個體將需要等待,直到時間完全消耗掉。最后,這個個體將會得到一個完成任務的資格。
協議同時保證了基于SGX不同層級的保護。系統將計算一個用戶需要多少次才能贏得一次樂透。通過這樣,他們將得知個人用戶的SGX是否被損害了。Practical Byzantine Fault Tolerance (PBFT) 實用拜占庭容錯
PBFT主要用于狀態機,它復制系統,但是又可以免于拜占庭將軍問題。如何做到的?
PBFT一開始就假設網絡中存在潛在的錯誤,以及一些獨立的節點將在某些特定時間失靈。
PBFT就是為異步共識系統所設計的,而且進一步優化,通過一種高效的方式去解決所有問題。系統中的所有節點都按照特殊的順序進行設置。其中一個節點被選為最初的一個,其他作為備選方案。然而系統中所有的節點都有序地運行,之間也能夠彼此溝通。
溝通層設置得相當高級,因為節點間想要驗證系統中的每一個信息。而這個設置可以避免不可靠信息問題。
然而,通過這種方式,甚至一個節點被損害了,他們也能夠發現。所有的節點將通過大多數投票來達成一致。
共識機制的優點
這個模型最初是為了實際應用所設計的,非常容易應用。因此PBFT在所有共識機制中都占據優勢。
不需要驗證
網絡中的交易運行跟別的系統有點區別。它可以使一筆交易最后落實,而不需要像POW系統那樣進行驗證。如果節點在某個區塊上達成一致,則這筆交易就算最終完成。這是基于所有可信的節點在同一時間進行了相互溝通后,然后對某一區塊都有認知這一事實。
減少能源消耗
PBFT可以比POW減少大量能源消耗。在POW中,每一個區塊產生都需要一個POW解題循環。然而,PBFT中,不是每一個礦工都在解決哈希算法。這就是為什么PBFT系統不用耗用如此多的算力。
系統的缺點
溝通的缺口
PBFT中最重要的因素就是節點間的溝通,系統中的每一個節點都必須保證他們收集的信息是可靠的。然而,共識機制僅在一小部分節點中得到有效運行。
如果節點數量增加到一定程度,系統將難以追蹤所有的節點,也無法與每一個節點都有單獨聯系。
有論文提出用MACs以及其他數字簽名來證明信息的真實性。但有說法認為,MACs無法處理區塊鏈網絡系統,使用它最終會造成重大的損失。
數字簽名是個好主意,但是維持所有溝通節點的安全性,將會隨著節點數量增加,變得越來越難。
女巫攻擊
PBFT相當容易遭受女巫攻擊。在女巫攻擊中,通過操縱一定數量的節點,來損害整個網絡。更龐大的網絡情形將更加糟糕,同時系統的擴展性也會降低。
如果可以將PBFT跟其他共識機制一起使用,它們可能可會得到非常穩固安全的連擊措施。 Simplified Byzantine Fault Tolerance (SBFT) 簡易拜占庭容錯
SBFT的系統運行有點不一樣。
第一,區塊生成器將一次性收集所有的交易,把他們放進一個新區塊后,再進行驗證。簡單地說,一個區塊將收集所有的交易,按照順序將他們放進另外一個區塊后,再對他們進行驗證。區塊生成器采用一定的規則,能夠使所有節點都驗證所有交易。
接著,一個區塊授權節點(singer)將再驗證所有交易后,然后為他們添加屬于他們自己的簽名。這就是為什么如果任何區塊缺少一個簽名都將被拒絕。
簡易拜占庭容錯的不同階段
整個流程從創造階段開始,資產的用戶將生成一定數量獨特的資產ID。
接著,在提交階段,用戶向平臺提交所有ID。
然后,驗證階段,ID將獲得實際用例的特定條件。
一旦他們獲得簽名,ID將被存儲和發送至不同賬戶中。交易將由智能合約開啟。
最后,交易被激活。
這個優秀系統另外一個非常有趣的功能是賬戶經理,這個賬戶經理將涉及許多階段。最初的目標是將所有的資產進行安全地存儲。賬戶經理也存儲著所有的交易數據,這個經理可為不同用戶覆蓋所有類型的組合式數據。
你可以把這個當做數字錢包。通過使用數字錢包,你可以從錢包中轉移你的資產,然后重新獲得他們以及收益。你可以通過智能合約來使用賬戶經理,當需要滿足某些要求的時候,他可以釋放資金。
資產的所有權將流向何方?他們使用了一個推動模型,你可以將賺取的資產發送至這個模型包含地址和資產ID。
安全和隱私
SBFT是一個私人網絡,將保密性作為網絡最高級別的任務。平臺被設計成面向敏感信息,但同時擁有一些限制。這也是為什么系統有三個技術特征:
一次性使用地址
當一個用戶每次想要用TA的錢包接收一些資產時,他們將被授予一次性使用地址。每一個地址都不同,這樣可以防止任何用戶去攔截交易。
零知識證明
零知識證明被用于隱藏交易的所有內容。然而,整個網絡依舊能夠被驗證其真實性。這個通過零知識證明——只有接收者和發送者可以看到交易內容——可以完成。
元數據加密
交易的元數據被加密,以進一步保證其安全性。網絡允許通過密鑰來驗證其真實性。然而,為了達到更好地保護效果,密鑰將2-3天內進行改變。
同時,所有元數據被分隔存放在數據網絡中的不同地方。因此,如果其中一個數據被黑客攻擊,其他可以使用其他密鑰來生成更多的密鑰。管理和每隔幾天進行流轉這些密鑰對于保證共識機制的真實性來說,非常有必要。
鏈,一個用SBFT去驗證網絡中的交易的區塊鏈平臺。除此之外,還使用HSM來提供工業級別的安全性,而不需要對單點失效進行處理,就能提供額外的安全保障。 Delegated Byzantine Fault Tolerance (dBFT) 委托拜占庭容錯
工作量證明和權益證明是運用最廣泛的共識機制。許多區塊鏈生態系統都采用者兩種共識機制,但有些項目嘗試使用更新型更先進的共識機制系統,NEO就是這樣的代表。
過去的12個月里,經歷了瘋狂的增長,NEO現在已經成為業務炙手可熱的項目。中國品牌顯現出其潛力。為什么這么說?因為他們是這個先進的共識機制的發明者——委托拜占庭容錯。
一個熱門的區塊鏈項目:NEO
這是目前行業中熱門的項目之一,被稱為“中國版以太坊”。NEO主要目標是創造一個智能經濟體系,在那里你可以低成本地進行數字資產交易。
NEO采用委托拜占庭容錯來驗證交易。如果你擁有NEO代幣,你將生產GAS——平臺主要的流通貨幣。你將為你的每一筆交易付出一定量的手續費,即GAS。也就是說,你擁有的NEO越多,你獲得的GAS越多。
然而,這個份額與POS有點不一樣。許多交易所提供一個撮合系統,然而,最好是使用NEO的官方錢包,而不是其他的存儲錢包。
在我們開始分析dBFT前,你要知道dBFT的元機制——拜占庭容錯共識機制——的主要缺陷。
拜占庭將軍問題的缺陷
當我們見證任何投票以及結果的時候,系統的一個主要缺陷將出現。以下的例子將幫助你更好地理解。
你已經知道遵循dBFT共識機制的節點都像軍隊的展示一樣。軍隊中的節點都有只有一個將軍,通常他們聽從將軍的命令?,F在想象一下,拜占庭軍隊計劃攻占羅馬,假設拜占庭軍隊有9位將軍,他們包圍了羅馬城,準備攻打。將軍們只有執行統一的一個戰術——進攻或撤退——才能成功拿下羅馬。
這就是問題所在。將軍們都各懷心事——只有超過半數同意的策略他們才會遵循。這里有另外一個假設,將軍們是不會坐在一張桌子上進行商討決策的,他們分布在不同的地點,使用信使來傳遞信息。
4大威脅
4種情況可能幫助羅馬人維持他們的統治:
羅馬人可以賄賂將軍來獲得他們的支持,接受賄賂的將軍被稱為“叛變的將軍”。
其中一位將軍可能采取了錯誤的決策,被稱為“行動錯誤的將軍”。
羅馬人可以賄賂信使,讓信使傳達錯誤信息,來誤導其他將軍的決策。
羅馬人可以殺掉信使,直接破壞將軍們的通信網絡。
所以拜占庭容錯有4個突出的缺陷,導致不完美的共識機制。
委托拜占庭容錯如何改變這種局面?
NEO為我們展示了拜占庭容錯問題的一個更好的解決方式。我們來看看令NEO自豪的dBFT。dBFT主要用以下兩種方式解決現有問題——更好的擴展性,以及更強的性能。
代言人和代理者
我們用另外一個例子說明dBFT。假設拜占庭軍隊中有一個競選出的領導者,而不是官僚做派的將軍。這個被選出的領導者將扮演軍隊品牌的代理者。
你可能認為將軍們可能被這些民選出的代理者所替代。甚至軍隊的其他成員可以反對這些代理者,然后再重新選舉。官僚做派的將軍有劣勢,以及沒有將軍能夠賄賂整個隊伍,因此羅馬人無法直接賄賂將軍來實現他們的目的。
在dBFT中,被選出來的代理者可以追蹤每一個節點的決策。一個去中心化賬本可以標記所有節點的所有決策。
節點同時可以選出代言人來向代理者表達他們的共識和統一的想法。為了通過一項新政策,代言人可以向代理者傳達節點的訴求,并且獲得至少2/3的代理者同意。否則,這項提案將不被通過。
如果一項提案沒有獲得2/3代理者的支持, 將被拒絕,同時一項新提案將被提出,直到達成共識。這個過程保證了整個軍隊不受到叛變將軍以及被賄賂將軍的破壞。
不誠實的代言人
還有兩種情況會損害dBFT共識機制的正直——不誠實的代言人,和不誠實的代理者。
dBFT共識機制也給出了解決方案。
正如前文所述,賬本將節點所有的決策都記錄保存在一個地方。代理者可以驗證代言人的說法是否代表所有節點。如果賬本不接受代言人的提案,66%的代理者將拒絕代言人的提案,并且將代言人拉黑。
不誠實的代理者
第二種情況是不誠實的代理者,被賄賂的代理者。在這里,誠實的代理者和誠實的代言人將會努力獲得2/3大多數,來消除不誠實代理者的影響。
所以,你能夠看到dBFT是如何克服拜占庭將軍問題和BFT共識機制的缺陷的。當然,NEO值得獲得全世界的贊譽,因為它們努力地創造出一個更加優秀的共識機制。
Directed Acyclic Graphs (DAG) 有向非循環圖
大家都認為比特幣是區塊鏈1.0的代表,以太坊是區塊鏈2.0的代表。但我們看到市場中有更加先進技術的出現。
有些人認為DAG是區塊鏈3.0的代表,同時很多項目也爭做成為區塊鏈3.0。例如,NXT將是這場DAG應用競爭中領先的項目,除了NXT,IOTA和 IoT鏈也是采用DAG的。
DAG是如何工作的?
你可能認為DAG是一種共識機制,但實際上DAG是一種數據結構。當大多數區塊鏈被認為是由包含數據的區塊組成的一條鏈,DAG是數據拓撲排序的無縫隙圖,可以便利地處理數據如數據傳輸、數據路由、數據壓縮。
工作量證明機制需要10分鐘生成新區塊。是的,POW就是行動極其緩慢的人。DAG采用側鏈而不是僅僅在單鏈上工作。側鏈允許不同的交易獨立在多條鏈上發生。這減少了創造和驗證區塊的時間。實際上,它減少了對區塊的需要。挖礦需要消耗大量的時間和能源。
這里,所有的交易都是被安排羅列到一定序列中,系統是非循環的,意味著找到父節點的幾率為0,因為這是呈樹狀的節點,而不是呈回路的節點。DAG給世界展示了沒有區塊的區塊鏈的可能。
DAG的基本概念
沒有雙花
傳統的區塊鏈一次性挖礦一個區塊。存在這種可能性:多于一個礦工去驗證節點。這個將會帶來雙花的可能性。甚至這種情形會導致軟或者硬分叉。DAG基于之前轉賬的數量,驗證一個特殊的交易。這將會使區塊鏈系統更加安全和更具魯棒性。
更小的寬度
在其他共識機制下,交易節點是被加入整個網絡中的,這導致系統變得非常龐大。而DAG將新交易與以往的交易圖連接起來,這使得整個網絡可以更加直接間接地驗證某項交易。
更快以及更智能
由于DAG具有無區塊的特性,它可以更快地處理交易。實際上,它讓POW和POS的處理速度看起來像祖輩一樣緩慢。
更加支持小額交易
不是每筆交易都會進行數百萬美元的轉賬的,實際上,小額支付更為常見。但是比特幣和以太坊的轉賬手續費看起來對小額支付轉賬并不友好。另外,因為非常低的交易費,讓DAG完美地適應小額交易。Chapter-7:其他共識機制
Proof-of-Activity 活動量證明
當人們爭論是POW還是POS更好的時候,萊特幣的發明人和另外三位從業者則在嘗試更為聰明的想法。他們提出一個簡單的問題:為什么不將POW和POS放在一塊兒,讓他們相互競爭呢?
因此,這個吸引人的混合體誕生了——活動量證明。它結合了兩大最好的特性,能夠更安全地面對攻擊,同時也不是一個消耗大量資源的系統。
活動量證明是如何工作的?
在POA區塊鏈共識協議中,挖礦部分就是像POW一樣開始,礦工解決一個難題就能夠獲得獎勵。POA跟POW最大的不同?在POW中,礦工會在一項完整交易后進行挖礦。
而在POA中,礦工只是對區塊模板進行挖礦。區塊模板包括兩項內容:頂端的信息,以及礦工的獎勵地址。
一旦礦工開始對區塊模板進行挖礦,系統就轉向POS。區塊中的頂端信息將隨機發送給一個利益相關者,然后他們將驗證這些預挖的區塊。越多堆棧(stack)被驗證者獲取,他們成為區塊的可能性就會增加。經過驗證,這個區塊進入區塊鏈。
這就是POA如何運用最優秀的兩個共識機制來驗證區塊以及往鏈上添加區塊。同時,系統將用一定量的手續費對礦工和驗證者進行獎勵。因此系統能夠對抗“公有地悲劇”,以及為區塊鏈驗證創造一個更好的解決方法。
POA的影響
區塊鏈面臨最大的威脅之一是51%攻擊。POA將51%攻擊的可能性降到幾乎為0。它使得無論礦工還是驗證者都無法成為大多數,從而往網絡中增加區塊需要雙方平等的努力。
盡管有批評說POA存在一些缺陷,第一是挖礦導致的大量能源消耗,第二是POA沒有辦法解決驗證者雙重簽名問題。這兩大問題嚴重地限制POA的使用。
有兩個采用POA的熱門區塊鏈項目——Decred和Espers。但是他們兩者有很多不同,實際上,Decred被認為要比Espers運行得更加成功。
Proof-of-Importance 重要性證明
POI最有代表性的項目是NEM,POI是POS的延伸。同時,NEM還采用一個新機制——捕獲(harvesting)或等待行權(vesting)。
捕獲機制決定一個節點是否被加入區塊鏈中,你在一個節點中捕獲越多,它被加入鏈的幾率越大。捕獲機制的回報是,節點可以在驗證者驗證后,獲得交易手續費。你的賬戶需要有至少10,000XEM,才有資格進行捕獲。
這解決了POS的主要問題,POS中,相比驗證只能獲得很少回報,越富有的人獲得的回報越多。例如,如果你擁有20%的加密貨幣,你可以對網絡中20%的區塊進行挖礦。這將導致共識機制對富人更加有利。
POI重要的特征
等待行權
這個共識機制最令人關注的特點是「等待行權」或「捕獲」。如前所述,首先你必須擁有至少10,000加密貨幣,才有資格參與捕獲。你POI的得分將取決于你捕獲的數量,同時,共識機制會把你擁有加密貨幣的時間點加以考慮。
交易合作伙伴關系
在POI中,如果你與其他NEM持幣者進行交易,將會獲得回報。系統將認為你們是合作伙伴關系,但是如果你們計劃偽造合作伙伴關系,系統將識別出。
得分系統
交易將影響你的POI得分,得分將基于30天內你進行的交易。交易越頻繁、交易累計金額越多,你在NEM網絡中的得分越多。
Proof-of-Capacity 容量證明
POC是POW的升級版,最重要的特點是“標記(plotting)”。在你開始挖礦前,你可以貢獻你的算力或者硬盤存儲資源。
這使得整個系統比POW更加快速,POC僅需在數分鐘內生成新區塊,而POW需要10分鐘。而且POC嘗試解決POW的哈希問題。你的計算機擁有越多解決方案或標記,你贏得挖礦競爭的幾率越高。
POC是如何工作的?
為了理解POC的本質,你需要抓住兩個概念——標記(plotting)和挖礦(mining)。
通過標記你計算機中的硬盤,你就創造了一個隨機數(nonce)。POC的隨機數與比特幣的隨機數有點不一樣,你需要將你的ID和數據做“哈?!保ㄉ⒘?,或預映射),直到你接出這些隨機數。每一個隨機數都附帶有8,192個哈希值,這些附帶數被稱為“小鏟”,每一個ID最多會有 4,095個“小鏟”。
另外一個概念是硬盤“挖礦”,如前所述,你會一次性收到0到4,095個“小鏟”,然后將其存儲在你的硬盤當中。你將被設定解出隨機數的最短時限,這個時限就是創造區塊的時間。
如果你能夠比其他礦工更早地解出隨機數,你將獲得一個區塊作為獎勵。POC的一個典型項目就是Burst。
POC的優點和缺點
硬盤挖礦比一般的POW挖礦要節省能源,你不需要像昂貴的比特幣挖礦一樣投入大量金錢。你家庭電腦中的硬盤就足以開啟POC挖礦。
但事實上,POC有一些致命的缺點。首先,這種機制會造成大量多余的硬盤空間,系統會傾向那些擁有更大存儲量的礦工,這對去中心化是個威脅。黑客將開發系統,以及令系統感染上惡意挖礦軟件。
Proof-of-Burn 燃燒證明
這個共識序列是令人印象深刻的。為了保護POW加密貨幣,一部分的加密貨幣將被燒毀!當礦工將一部分加密貨幣發送到“食客地址(Eater Address)”的時候,這個過程就會發生。
“食客地址”不能以任何理由花費上面的加密貨幣,有一個賬本會持續追蹤被燒毀的加密貨幣,來保證它們確實沒有被花費。燒毀加密貨幣的用戶將會得到一定報酬。
雖然燃燒是一種損失,但是損失是暫時的,因為這個機制將長期保護加密貨幣不受到黑客攻擊。而且,燃燒機制將增加其余加密貨幣的價值權益。
這種機制增加了礦工開挖下一個區塊的機會,同時增加他們未來的收益,所以,燃燒被認為是挖礦特權。對手就是一個加密貨幣的共識案例——運用這個區塊鏈共識協議。
食客地址
為了然后加密貨幣,用戶將其加密貨幣發送到食客地址。食客地址沒有任何私鑰,因此沒有人能夠進入這個地址,去花費上面的加密貨幣。同時,這些食客地址是隨機生成的。
雖然這么加密貨幣無法追蹤或者“永遠消失”,但他們仍然被視為是合適的供給,以及被標記成被燒毀。
POB算法的利與弊
燃燒這些加密貨幣的初衷是為了增加穩定性。我們知道長期玩家是傾向長期持有加密貨幣以獲得收益的。
系統通過為他們提供更加穩定的加密貨幣以及長期保障來支持這些長期投資者。同時,這也會增強去中心化以及創造一個更好的分布式網絡。
但是無論從哪個角度看,燃燒意味著浪費。即使某些食客地址有超過價值100,000美元的比特幣,但是也無法恢復,因為它們被燒毀了。
Proof-of-Weight 重量證明
重量證明是我們最后介紹的共識機制,它是POS共識機制的一次重大升級。在POS中,你擁有的代幣越多,你將有機會發現更多,這導致了整個系統有失偏頗。
重量證明試圖解決POS的偏頗問題。Algorand, Filecoin, Chia都采用了重量證明。重量證明考慮其他因素,而不是POS中擁有更多代幣。
這些因素被成為“權重因素”,例如,Filecoin認為擁有的IPFS數據的數量為權重因素,其他因素包括但不限于時空證明和復制證明。
這種系統核心的優勢包括定制化和擴展性,雖然激勵性可能成為這種共識機制的一大挑戰。 共識機制的比較
Chapter-8: 結論
是共識機制讓區塊鏈網絡變得全面,當然,沒有任何一種共識機制堪稱完美,但是技術的美妙之處就是不斷地改變以及完善。
如果沒有這些其他的共識機制,我們可能仍然依賴POW,不管你喜歡與否,POW一定程度上威脅了去中心化以及區塊鏈分布式的特性。
區塊鏈技術的基礎就是去中心化,是對抗君主政治的反抗,是普羅大眾對腐化錯誤系統的終結。我們強烈期待,更好的共識機制的出現,改變我們的生活,創造更好的未來。
來源: 巴比特
作者:Hasib Anwar
編輯:IPRdaily趙珍 校對:IPRdaily縱橫君
“投稿”請投郵箱“iprdaily@163.com”
「關于IPRdaily」
IPRdaily成立于2014年,是全球影響力的知識產權媒體+產業服務平臺,致力于連接全球知識產權人,用戶匯聚了中國、美國、德國、俄羅斯、以色列、澳大利亞、新加坡、日本、韓國等15個國家和地區的高科技公司、成長型科技企業IP高管、研發人員、法務、政府機構、律所、事務所、科研院校等全球近50多萬產業用戶(國內25萬+海外30萬);同時擁有近百萬條高質量的技術資源+專利資源,通過媒體構建全球知識產權資產信息第一入口。2016年獲啟賦資本領投和天使匯跟投的Pre-A輪融資。
(英文官網:iprdaily.com 中文官網:iprdaily.cn)
本文來自巴比特并經IPRdaily.cn中文網編輯。轉載此文章須經權利人同意,并附上出處與作者信息。文章不代表IPRdaily.cn立場,如若轉載,請注明出處:“http://www.meihaolucy.com/”
文章不錯,犒勞下辛苦的作者吧