區塊鏈主流共識算法

一.POW(Proof Of Work)

Proof Of Work,也就是工做量證實。工做量證實系統(或者說協議、函數),是一種應對拒絕服務攻擊和其餘服務濫用的經濟對策。它要求發起者進行必定量的運算,也就意味着須要消耗計算機必定的時間。這種系統要求獲得證實的過程是低效且漫長的,但是校驗則是高效且迅速,歸納起來就是求解難,驗證容易。算法

比特幣是第一個區塊鏈應用,同時也是最著名的應用之一,它所使用的共識機制就是POW。那麼具體是怎麼實現的呢?安全

在比特幣中,使用了SHA256這種哈希函數做爲求解手段。SHA256有如下特徵:網絡

  1. 是一種散列函數,即相鄰的x1和x2,求得的f(x1)和f(x2)差異極大。
  2. 不可逆推,給定了f(x)的值,推斷不出輸入值。
  3. 不存在比窮舉更好的方法,可使f(x)落在特定的範圍。

實際使用過程當中,每一個節點須要打包的交易數據相同,再從尾部加一個隨機數(節點本身選)做爲總體輸入來求輸出值,把結果和當前的挖礦難度對比(要求輸出值前x位爲0),知足條件則向附近節點廣播;不知足則更換隨機數繼續求解。最快求得解的節點,則能夠視爲挖礦勝出,取得其餘節點的共識。函數

目前比特幣已經吸引了全球大部分的運算能力,其餘再使用PoW共識機制的區塊鏈應用很難得到相同的計算能力來保障自身的安全,從而沒法複製比特幣的輝煌;同時因爲挖礦形成大量的資源被浪費,共識達成的週期很長,致使了比特幣的TPS(transaction per second,每秒執行事務數量)極低,只有個位數。區塊鏈

二.POS(Proof of Stake)

POS經過區塊鏈系統內部的虛擬資產來管理安全性,根據節點持有的通證數量或者時長來決定節點享有的權利大小。區塊鏈系統的參與者鎖定他們在該區塊鏈上持有的虛擬資產(Coin或Token),他們會簽署消息以達成一致意見。只有那些已經成爲系統一部分的參與者纔可以決定下一個區塊的內容。.net

PoW共識算法從經濟角度,能夠天然作到防止區塊鏈分叉(區塊鏈分叉的本質就是網絡各節點對區塊鏈的生成產生分歧,沒法達成共識)。可是PoS則須要精心設計好相應的規則來防止分叉,例如PoS能夠設定懲罰機制,參與挖礦的礦工被要求鎖定必定數量的虛擬資產。若是他們被偵測到了存在不當的行爲,則系統會沒收所有或部分被鎖定的虛擬資產。設計

三.DPOS(Delegated Proof of Stake)

DPoS機制,中文名叫作股份受權證實機制(又稱受託人機制),它的原理是讓每個通證的節點進行投票,選出集中多數票的節點,例如100個,而後這些節點會行使相似POS的權力。 DPOS利用利益相關方批准投票的權力以公平和民主的方式解決共識問題,全部網絡參數,從費用估算到塊間隔和交易規模,均可以經過選定的表明進行調整。從某種角度來看,DPOS有點像是議會制度或人民表明大會制度。若是表明不能履行他們的職責(當輪到他們時,沒能生成區塊),他們會被除名,網絡會選出新的超級節點來取代他們。視頻

四.PBFT(Practical Byzantine Fault Tolerance)

Practical Byzantine Fault Tolerance,實用拜占庭容錯算法。blog

拜占庭假設是對現實世界的模型化,因爲硬件錯誤、網絡擁塞或斷開以及遭到惡意攻擊,計算機和網絡可能出現不可預料的行爲。拜占庭容錯協議必須處理這些失效,而且這些協議還要知足所要解決的問題要求的規範。這些算法一般以其彈性t做爲特徵,t表示算法能夠應付的錯誤進程數。不少經典算法問題只有在t小於n/3時纔有解,如拜占庭將軍問題,其中n是系統中進程的總數。進程

五.BFT-DPoS

BFT-DPoS,Byzantine Fault Tolerance - Deligated Proof of Stake,帶有拜占庭容錯的委託股權證實。 EOS的白皮書中,每一個見證人出塊時全網廣播,其餘見證人收到新區塊後,當即對此區塊進行驗證,並將驗證簽名完成的區塊當即返回出塊見證人,不需等待其餘見證人本身出塊時再確認。從當前的出塊見證人看來,他生產了一個區塊,並全網廣播,而後陸續收到了其餘見證人對此區塊的確認,在收到 2/3 見證人確認的瞬間,區塊(包括其中的交易)就不可逆了。交易確認時間大大縮短,從 45 秒縮短至 3 秒左右(主要爲等待生產區塊的時間)。

EOS原來是採用DPoS,爲了效率採用PBFT 和 DPOS結合的BFT-DPoS,理論確認速度大大提高。由於EOS在設計之初就提出了選出21個超級節點做爲見證人,並負責全網的出塊,因此被人詬病缺失了區塊鏈的去中心化精神。實際上,比特幣、以太坊這些前輩,通過了前期的發展後,大部分算力已經集中在各大礦池和機構手上了,因此EOS只是提早把這個生態肯定下來,並寫在臺面上,纔會有這樣的非議。

EOS的這種妥協,實際上是兼顧了中心化和效率,是區塊鏈上一個有益的嘗試。


相關文章和視頻推薦

【許曉笛】詳解 EOS 的新共識機制 BFT-DPoS

圓方圓學院聚集大批區塊鏈名師,打造精品的區塊鏈技術課程。 在各大平臺都長期有優質免費公開課,歡迎報名收看。 公開課地址:ke.qq.com/course/3451…

相關文章
相關標籤/搜索