「科普」幾種區塊鏈共識機制簡單易懂的介紹

「科普」幾種區塊鏈共識機制簡單易懂的介紹

共識機制:

整個區塊鏈系統的運行,核心就是要做到信息的"去中心化",也就是常說的信息"點對點"運輸。而實現點對點通信,最首要解決的也是最基本的困難,就是"拜占庭將軍問題(Byzantine failures)"。

「科普」幾種區塊鏈共識機制簡單易懂的介紹

拜占庭將軍問題:拜占庭帝國軍隊的將軍們必須全體一致的決定是否攻擊某一支敵軍。問題是這些將軍在地理上是分隔開來的,並且將軍中存在叛徒。叛徒可以任意行動以達到以下目標:欺騙某些將軍採取進攻行動;促成一個不是所有將軍都同意的決定,如當將軍們不希望進攻時促成進攻行動;或者迷惑某些將軍,使他們無法做出決定。如果叛徒達到了這些目的之一,則任何攻擊行動的結果都是註定要失敗的,只有完全達成一致的努力才能獲得勝利。

從中可以看出幾個問題:

如何保證所有將軍都收到了消息?

若將軍中有叛徒,傳遞了假消息,其他將軍怎麼知道誰說的是真?

將軍們不在同一個地方,如何保證在極短的時間內消息傳達到所有將軍手中?

想要解決上述問題,做到信息的點對點成功傳輸,在差不多的時間內需要所有的節點(即"將軍")達成一致共識,這就是區塊鏈中的"共識機制"。

「科普」幾種區塊鏈共識機制簡單易懂的介紹

共識機制的種類:

POW

( Proof of Work)工作量證明

此一概念最早由Cynthia Dwork和Moni Naor於1993年的學術論文提出,而工作量證明一詞則是在1999年由Markus Jakobsson與Ari Juels.所發表。

POW是目前區塊鏈中最簡單、應用最廣泛的共識算法,也就是常說的"挖礦"。礦工們為了獲取記賬權從而獲得獎勵,要不斷的進行哈希計算。在這個過程中,礦工的計算量和獲得記賬權的概率成正比,礦工的算力越高,進行哈希計算的時間越長,工作量越大,獲得記賬權的可能性就越高。目前主流的虛擬貨幣,含比特幣、萊特幣在內的大部分幣種都採用的這種模式。

優點:

1.簡單。

2.安全。(攻破成本巨大,需投入超過總體運算量的50%以上才能破壞共識,也就是說,整個系統節點越多,運算量越高,越不易被攻破)

3.公平。(礦工付出的越多,拿到獎勵的可能性越大)

缺點:

1.耗費資源。(全網算力投入參與挖礦,極耗費能源)

2.耗時。(需要等待多個節點確認)

3.容易產生分叉。

4.新幣種容易產生算力攻擊。(比特幣吸引了大部分算力,新幣種容易遭到比特幣的算力攻擊)

POS

(Proof of Stake)權益證明

2012年8月,一個化名Sunny King的極客推出了Peercoin(PPC),前期採用工作量證明(PoW)機制發行新幣,後期採用權益證明(PoS)維護網絡安全。

POS是POW的升級。礦工們持有代幣的的數量越多、持有時間越長,越容易獲得記賬權。POS引入了一個"幣齡"的概念,節點持有的代幣越多、時間越長,幣齡越大,獲得記賬權的概率也就越大。一旦一個節點獲得了一個區塊的記賬權,幣齡就會被清空歸零,必須等待一頓時間後才能簽署另一個區塊。另外,被清空的幣齡越多,所獲利息就越高,可以聯想成持有股票,獲得分紅。應用了這種算法的幣種有:點點幣PPCoin、新星幣NVC、雅幣YaCoin、宇宙幣CosmosCoin。

優點:

1.節約能源。(相比於POW,POS不需要比拼算力)

2.安全。(破壞共識需要投入50%以上的幣)

3.省時間。(相比於POW而言,達成共識時間縮短)

缺點:

1.易產生分叉。

2.獲得記賬權的節點或許並不想記賬。

3.對礦工激勵有限。

DPOS

(Delegate Proof of Stake) 股份授權證明機制

BitShares社區首先提出了DPoS機制。DPOS是POS的升級版,與POS運作原理基本相同。所有持幣者投票選出若干個代理節點,由這若干個代理節點輪流進行驗證記賬。

優點:

1.耗時短。

2.不會分叉。

缺點:

1.做不到完全的"去中心化"。(選出若干個代理節點是另一種意義上的"中心化")

2.依賴代幣。

PBFT

(Practical Byzantine Fault Tolerance)實用拜占庭容錯

PBFT是BFT(Byzantine Fault Tolerance,拜占庭容錯算法)中最典型的一種算法,BFT從上世紀80年代開始被研究,目前已經是一個被研究得比較透徹的理論,PBFT是由Miguel Castro和Barbara Liskov於1999年提出。

PBFT的核心是:N>=3f+1。其中,N是系統中的總節點數,f是系統中可以出現故障的節點數。也就是如果整個系統中有f個節點出現故障,那麼系統中至少要有N個節點,才能保證系統無誤的正確運行。

PBFT至少需要4個參與者(f=1)。舉例來解釋PBFT:如果系統中有abcd四個節點,a發出一條消息,b節點出現故障而無法正確確認信息,但cd兩個節點確認正確,那麼系統就會忽略b這個故障節點記錄的信息,從而實現整個系統的正確記錄。(2個節點正確確認>1個節點錯誤確認)

優點:

1.不依賴代幣。

2.耗時短。

3.效率高。

缺點:

1.不安全。(需要保證2/3的節點正常無誤的記賬,即故障節點不能超過1/3,相比POW和POS的50%容錯性低很多)

2.可能會出現分叉。

dBFT

delegated BFT(授權拜占庭容錯機制)

小蟻區塊鏈採用的共識算法,是NEO在PBFT上進行改進後的產物。dBFT由權益來選出記賬人,然後記賬人之間通過拜占庭容錯算法(BFT)來達成共識。

優點:

1.防止分叉。(批准區塊鏈新版本需通過2/3節點的審批)

2. 算法可靠。(有嚴格的數學證明)

3.能夠認證記賬節點的真實身份。(引入了數字證書)

缺點:

1.不安全。(同PBFT)

除上述典型的共識算法外,還有Paxos(一致性算法)、Raft算法、RDPOS、Pool(聯營)驗證池、Ripple共識、投注共識,活動證明(Proof of activity,PoA),燃燒證明(proof of burn,PoB),能力證明(proof of capacity, PoC),消逝時間證明(Proof of elapsed time)等算法。隨著區塊鏈不斷髮展,未來將會衍生出更多種類的共識算法。


分享到:


相關文章: