web3:區(qū)塊鏈常見的幾大共識(shí)機(jī)制及優(yōu)缺點(diǎn)

2023-2-6    前端達(dá)人

什么是共識(shí)?

我們所說的共識(shí),是指達(dá)成了廣泛的一致。 比如,一群人去吃晚飯, 如果他們對(duì)于提議“吃某火鍋”沒有任何異議,那么就可以說共識(shí)達(dá)成了。 如果存在異議,那么他們就必須通過某種方法決定吃什么。 在極端情況下,這群人就會(huì)分開。


什么是共識(shí)機(jī)制?

區(qū)塊鏈要成為一個(gè)難以攻破的、公開的、不可篡改數(shù)據(jù)記錄的去中心化誠(chéng)實(shí)可信系統(tǒng),需要在盡可能短的時(shí)間內(nèi)做到分布式數(shù)據(jù)記錄的安全、明確及不可逆,提供一個(gè)最堅(jiān)實(shí)且去中心化的系統(tǒng)。共識(shí)機(jī)制在區(qū)塊鏈中成為了重要的因素之一。

區(qū)塊鏈分布式記賬的方式使得每個(gè)人手上都有一本完整的賬本,全網(wǎng)共有。但是隨著節(jié)點(diǎn)的不斷增多,數(shù)據(jù)越多,賬本也越安全,難以摧毀。除此之外,任意一個(gè)或者部分節(jié)點(diǎn)的賬本被篡改,都不可能被全網(wǎng)認(rèn)同,除非你能控制51%的節(jié)點(diǎn),即51%攻擊,但是這耗能巨大,幾乎是不可能的。同時(shí)隨著節(jié)點(diǎn)不斷增加,誰(shuí)來記賬,如何選擇合適的人來記賬成為一個(gè)問題,而制定一個(gè)記賬人的選擇方式以及規(guī)定,讓大家來遵守這個(gè)規(guī)定,達(dá)成共識(shí),這就是區(qū)塊鏈里面的共識(shí)機(jī)制。

共識(shí)機(jī)制是區(qū)塊鏈節(jié)點(diǎn)就區(qū)塊信息達(dá)成全網(wǎng)一致共識(shí)的機(jī)制,說得更直白一些就是要解決所謂去中心化的信任問題,因?yàn)槊總€(gè)節(jié)點(diǎn)之間默認(rèn)是不認(rèn)識(shí)且不可靠的,同時(shí)每個(gè)節(jié)點(diǎn)都不能知道其他節(jié)點(diǎn)是否宕機(jī)或者背叛的情況下,盡可能的保證記錄信息的準(zhǔn)確性以及安全性。同時(shí)節(jié)點(diǎn)越分散,效率越低,網(wǎng)絡(luò)對(duì)于信息的滿意度越高,越安全。


共識(shí)機(jī)制的目標(biāo)

區(qū)塊鏈作為一種按時(shí)間順序存儲(chǔ)數(shù)據(jù)的數(shù)據(jù)結(jié)構(gòu),可支持不同的共識(shí)機(jī)制。共識(shí)機(jī)制是區(qū)塊鏈技術(shù)的重要組件。區(qū)塊鏈共識(shí)機(jī)制的目標(biāo)是使所有的誠(chéng)實(shí)節(jié)點(diǎn)保存一致的區(qū)塊鏈視圖,同時(shí)滿足兩個(gè)性質(zhì):
1)一致性:所有誠(chéng)實(shí)節(jié)點(diǎn)保存的區(qū)塊鏈的前綴部分完全相同。
2)有效性:由某誠(chéng)實(shí)節(jié)點(diǎn)發(fā)布的信息終將被其他所有誠(chéng)實(shí)節(jié)點(diǎn)記錄在自己的區(qū)塊鏈中。


為什么需要共識(shí)機(jī)制?

在分布式系統(tǒng)中,各個(gè)不同的主機(jī)通過異步通信方式組成網(wǎng)絡(luò)集群。為了保證每個(gè)主機(jī)達(dá)成一致的狀態(tài)共識(shí),就需要在主機(jī)之間進(jìn)行狀態(tài)復(fù)制。異步系統(tǒng)中,可能會(huì)出現(xiàn)各樣的問題,例如主機(jī)出現(xiàn)故障無法通信,或者性能下降,而網(wǎng)絡(luò)也可能發(fā)生擁堵延遲,類似的種種故障有可能會(huì)發(fā)生錯(cuò)誤信息在系統(tǒng)內(nèi)傳播。因此需要在默認(rèn)不可靠的異步網(wǎng)絡(luò)中定義容錯(cuò)協(xié)議,以確保各主機(jī)達(dá)成安全可靠的狀態(tài)共識(shí)。所以,利用區(qū)塊鏈構(gòu)造基于互聯(lián)網(wǎng)的去中心化賬本,需要解決的首要問題是如何實(shí)現(xiàn)不同賬本節(jié)點(diǎn)上的賬本數(shù)據(jù)的一致性和正確性。

這就需要借鑒已有的在分布式系統(tǒng)中實(shí)現(xiàn)狀態(tài)共識(shí)的算法,確定網(wǎng)絡(luò)中選擇記賬節(jié)點(diǎn)的機(jī)制,以及如何保障賬本數(shù)據(jù)在全網(wǎng)中形成正確、一致的共識(shí)。


如何評(píng)價(jià)一個(gè)共識(shí)機(jī)制的優(yōu)劣:

  1. 安全性:能否有效防止二次支付,私自挖礦
  2. 擴(kuò)展性:當(dāng)系統(tǒng)成員和待確認(rèn)交易數(shù)量增加時(shí),所帶來的系統(tǒng)負(fù)載和網(wǎng)絡(luò)通信量的變化,通常以網(wǎng)絡(luò)吞吐量來衡量
  3. 性能效率:每秒可以處理的交易數(shù)量
  4. 資源消耗:達(dá)成共識(shí)過程中,所要消耗的CPU、內(nèi)存等計(jì)算資源

共識(shí)機(jī)制分類

沒有一種共識(shí)機(jī)制是完美無缺的,各共識(shí)機(jī)制都有其優(yōu)缺點(diǎn),有些共識(shí)機(jī)制是為解決一些特定的問題而生。

BTC作為區(qū)塊鏈的第一個(gè)應(yīng)用,它的共識(shí)機(jī)制PoW共識(shí)機(jī)制曾經(jīng)一枝獨(dú)秀,但是隨著區(qū)塊鏈技術(shù)的不斷發(fā)展,各類不同的共識(shí)機(jī)制開始不斷涌現(xiàn),各有千秋,各有擁躉。

常見的共識(shí)就機(jī)制包括:POW(工作量證明機(jī)制)、POS(權(quán)益證明機(jī)制)、POW+POS(混合共識(shí)機(jī)制)、DPOS(股份授權(quán)證明)等等,另外還有Pool驗(yàn)證池、Ripple瑞波共識(shí)協(xié)議、PBFT(使用拜占庭容錯(cuò)算法)等等

PoW( Proof of Work)工作量證明:多勞多得

在這里插入圖片描述

最早(也是第一個(gè))被應(yīng)用的共識(shí)機(jī)制,最先被BTC采用并且獲取了巨大成功,它支撐了BTC系統(tǒng)長(zhǎng)達(dá) 10 多年無重大故障使其平穩(wěn)運(yùn)行。而且 PoW 構(gòu)想也符合創(chuàng)始人中本聰最初的設(shè)想:人人皆可挖礦、按勞分配、公平公正。

PoW 屬于按勞分配,多勞多得,就如同大家在BTC系統(tǒng)中一起進(jìn)行數(shù)學(xué)運(yùn)算,最先運(yùn)算出的才能獲得獎(jiǎng)勵(lì)。是一種衡量計(jì)算機(jī)工作量的共識(shí)機(jī)制。BTC使用的就是工作量證明機(jī)制。

工作量證明主要通過哈希計(jì)算找出合理數(shù)據(jù)的步驟來完成:將區(qū)塊頭數(shù)據(jù)帶入哈希函數(shù)計(jì)算公式,不斷調(diào)整區(qū)塊頭數(shù)據(jù)中的隨機(jī)數(shù),直到計(jì)算出滿足特定標(biāo)準(zhǔn)的哈希值,工作量證明就會(huì)完成。

簡(jiǎn)單來說就是多勞多得,誰(shuí)的算力強(qiáng),計(jì)算得就更快,獲得記賬權(quán)的概率就越高,算力競(jìng)爭(zhēng)的勝者將獲得相應(yīng)區(qū)塊記賬權(quán)和BTC獎(jiǎng)勵(lì)。 因此,礦機(jī)芯片的算力越高,挖礦的時(shí)間更長(zhǎng),就可以獲得更多的數(shù)字貨幣。進(jìn)行運(yùn)算獲得獎(jiǎng)勵(lì)的過程稱之為挖礦,參與挖礦的人們稱之為礦工。這種證明方式?jīng)Q定了其驗(yàn)證過程需要大量的數(shù)據(jù)計(jì)算,而其他節(jié)點(diǎn)卻很容易驗(yàn)證計(jì)算結(jié)果是否正確,因此 區(qū)塊鏈系統(tǒng)無法被惡意節(jié)點(diǎn)所欺騙。但是這種證明方式需要消耗大量能源(電力及計(jì)算硬件損耗),很不 環(huán)保。并且在理論上,如果集合了全網(wǎng)51%的算力即可對(duì)區(qū)塊鏈網(wǎng)絡(luò)進(jìn)行有效攻擊,因此許多基于比特幣 代碼產(chǎn)生的、市值較小的山寨幣很容易遭受攻擊。

代表token:BTC、BCH、LTC等。

優(yōu)點(diǎn)

  • 公平公正:去中心化程度高,人人都可以參與獲得記賬權(quán);
  • 安全系數(shù)高:全網(wǎng)算力越高,其安全程度也越高,如破壞該系統(tǒng)需要投入巨大成本;
  • 算法簡(jiǎn)單,容易實(shí)現(xiàn)

缺點(diǎn)

  • 資源浪費(fèi):因每一筆交易都需要通過多數(shù)礦工的確認(rèn),在這些礦工進(jìn)行運(yùn)算的過程中消耗大量的電力資源等。
  • 效率低下:區(qū)塊的確認(rèn)時(shí)間難以縮短;容易產(chǎn)生分叉,需要等待多個(gè)確認(rèn)。
  • 算力集中:根據(jù)往年數(shù)據(jù)顯示,在資本大量進(jìn)入的情況下,過去一年礦池算力份額排名前五位的礦池占據(jù)了BTC總算力份額的 65%,馬太效應(yīng)逐漸顯現(xiàn),而算力過度集中還存在著 51% 攻擊的風(fēng)險(xiǎn)。
  • 永遠(yuǎn)沒有最終性,需要檢查點(diǎn)機(jī)制來彌補(bǔ)最終性。

PoS(Proof of Stake)股權(quán)證明算法:持有越多,獲得越多

在這里插入圖片描述

因 PoW 存在的問題,PoS 在主流算法一路暢通的“殺了出來”,成為了最具有挑戰(zhàn)者。近幾年,基于 PoS共識(shí)打造的區(qū)塊鏈項(xiàng)目越來越多,如目前市值保持第二的ETH也加入了 PoS?!癝taking經(jīng)濟(jì)”在 2019年成為了熱門詞語(yǔ),同時(shí)也被交易所和錢包大力追捧。

POS機(jī)制采用類似股權(quán)證明與投票的機(jī)制,選出記帳人,由它來創(chuàng)建區(qū)塊。持有股權(quán)愈多則有較大的特權(quán),且需負(fù)擔(dān)更多的責(zé)任來產(chǎn)生區(qū)塊,同時(shí)也獲得更多收益的權(quán)力。 POS 機(jī)制中一般用幣齡來計(jì)算記賬權(quán),每個(gè)幣持有一天算一個(gè)幣齡,比如 持有 100 個(gè)幣,總共持有了 30 天,那么此時(shí)的幣齡就為 3000。在 POS機(jī)制下,如果記賬人發(fā)現(xiàn)一個(gè) POS 區(qū)塊, 他的幣齡就會(huì)被清空為 0,每被清空 365 幣齡,將會(huì)從區(qū)塊中獲得 0.05 個(gè)幣的利息(可理解為年利率 5%)。

PoS權(quán)益證明同樣需要通過計(jì)算找出合理的哈希值來完成。 但不同的是權(quán)益證明機(jī)制通過節(jié)點(diǎn)持有加密貨幣的時(shí)間和數(shù)量來判斷節(jié)點(diǎn)的權(quán)益大小。根據(jù)權(quán)益大小不同,用戶之間看到的計(jì)算目標(biāo)值也不同。權(quán)益大的節(jié)點(diǎn),獲得目標(biāo)值更加簡(jiǎn)單,更容易獲得下一個(gè)區(qū)塊的記賬權(quán)。 這種方式不需要每個(gè)節(jié)點(diǎn)都進(jìn)行大量的運(yùn)算,節(jié)省了電力能源。同時(shí)全網(wǎng)51%的算力攻擊在權(quán)益證明機(jī)制下是無效的,因?yàn)榘l(fā)起這種攻擊反而會(huì)損害自身的利益。但是可能會(huì)出現(xiàn)幣種持有數(shù)量大的節(jié)點(diǎn)權(quán)力過 大,對(duì)區(qū)塊鏈記賬享有絕對(duì)支配權(quán)的情況,容易引發(fā)信任問題。

在 PoS 機(jī)制中,是不需要消耗電力來進(jìn)行運(yùn)算,而是通過抵押 token 來獲得打包區(qū)塊的權(quán)利。當(dāng)一筆交易發(fā)生時(shí),系統(tǒng)會(huì)對(duì)打包區(qū)塊和驗(yàn)證區(qū)塊的節(jié)點(diǎn)來進(jìn)行獎(jiǎng)勵(lì),獎(jiǎng)勵(lì)則是增發(fā)或者解鎖的 token。

代表token:ADA、ONT、ATOM等。

優(yōu)點(diǎn)

  • 不浪費(fèi)資源、效率高:因其不需要拼算力挖礦,同時(shí)縮短了共識(shí)達(dá)成的時(shí)間,轉(zhuǎn)賬效率提高了;
  • 弱化了中心礦池規(guī)模經(jīng)濟(jì)的需求:算力集中壟斷的情形也得到了緩解,個(gè)體競(jìng)爭(zhēng)力差別相對(duì)減?。?

缺點(diǎn)

  • 被動(dòng)形成中心化:因去中心化程度,容易出現(xiàn)強(qiáng)者恒強(qiáng)的情況,會(huì)導(dǎo)致富者越富,資源越來越集中的情況。
  • 安全隱患:PoS機(jī)制實(shí)現(xiàn)較為復(fù)雜,容易產(chǎn)生安全漏洞。
  • 無權(quán)益問題(Nothing at Stake):用戶在PoS中可以同時(shí)在兩個(gè)分叉上面下注;無論哪一個(gè)分叉后面被公認(rèn)為主鏈,該用戶都可以獲得獎(jiǎng)勵(lì)而沒有機(jī)會(huì)成本的損失。這樣也在事實(shí)上會(huì)干擾共識(shí)的形成。
  • 還是需要挖礦,本質(zhì)上沒有解決商業(yè)應(yīng)用的痛點(diǎn)。

DPOS(Delegated Proof-of-Stake)股份授權(quán)證明

在這里插入圖片描述

DPoS 機(jī)制是在 PoS 的基礎(chǔ)上進(jìn)行了改良,舉例來說就是大家公認(rèn)的投出選票,選舉出一定數(shù)量的代表,讓這些代表進(jìn)行驗(yàn)證和記賬等,可以理解為PoS 的升級(jí)版。與PoS的主要區(qū)別在于持幣者投出一定數(shù)量的節(jié)點(diǎn),代理他們進(jìn)行驗(yàn)證和記賬。其合規(guī)監(jiān)管、性能、資源消耗和容錯(cuò)性與PoS相似。

DPoS的工作原理為:每個(gè)股東按其持股比例擁有影響力,51%股東投票的結(jié)果將是不可逆且有約束力的。其挑戰(zhàn)是通過及時(shí)而高效的方法達(dá)到51%批準(zhǔn)。為達(dá)到這個(gè)目標(biāo),每個(gè)股東可以將其投票權(quán)授予一名代表。獲票數(shù)最多的前100位代表按既定時(shí)間表輪流產(chǎn)生區(qū)塊。每名代表分配到一個(gè)時(shí)間段來生產(chǎn)區(qū)塊。所有的代表將收到等同于一個(gè)平均水平的區(qū)塊所含交易費(fèi)的10%作為報(bào)酬。如果一個(gè)平均水平的區(qū)塊含有100股作為交易費(fèi),一名代表將獲得1股作為報(bào)酬。DPoS的投票模式可以每30秒產(chǎn)生一個(gè)新區(qū)塊。

簡(jiǎn)單點(diǎn)說:DPoS 委托權(quán)益證明通過由持幣人投票選舉出一定數(shù)量的代表來達(dá)成共識(shí)。 每個(gè)持幣人的投票所占的比重 與他持有的幣種數(shù)量有關(guān),持有的越多,所占的比重越大。被選出的代表可擁有記賬權(quán),輪流進(jìn)行記賬;未能很好履行職責(zé)的代表還會(huì)被投票除名。這一任期結(jié)束后,新的代表會(huì)再次通過投票產(chǎn)生。

代表token:EOS、TRX等。

優(yōu)點(diǎn)

  • 比 PoS 機(jī)制擁有更高的效率和性能:相比于 PoS 機(jī)制,DPoS 大幅縮小了參與驗(yàn)證和記賬的節(jié)點(diǎn)數(shù)量,可以達(dá)到秒級(jí)的共識(shí)驗(yàn)證。

缺點(diǎn)

  • 整個(gè)共識(shí)機(jī)制還是依賴于token,很多商業(yè)應(yīng)用是不需要代幣存在的。
  • 去中心化程度低:相比較于只能說是弱中心化;
  • 安全問題嚴(yán)重:類 PoS 機(jī)制的通病,相信大家都看到過報(bào)道,如被黑客攻擊等等。

PoC(Proof of Capacity)容量證明機(jī)制

在這里插入圖片描述

PoC 機(jī)制早在 2014年存在了,但只是一直處于“落魄階段”,簡(jiǎn)單說就是沒火,無人問津。2019年隨著POC一大公鏈Yottachain的崛起,越來越多的礦工加入了POC硬盤挖礦這個(gè)行業(yè)大軍了。它是POW共識(shí)機(jī)制的一種,以硬盤作為共識(shí)參與者,它的特點(diǎn)是犧牲性能獲得安全可信,相對(duì)POW減少了非常多的安全和信任成本,更低成本解決了全局信任和安全,幾乎不耗電力資源,并且可共享和復(fù)用的信任生態(tài)。

PoC 機(jī)制是通過普通硬盤挖礦的共識(shí)機(jī)制。簡(jiǎn)單來說就是利用計(jì)算機(jī)硬盤中的閑置空間來進(jìn)行存儲(chǔ)進(jìn)行挖礦獲取收益,硬盤空間越大,存儲(chǔ)的內(nèi)容越多獲得的收益就越大。 它更多地關(guān)注內(nèi)存而不是處理能力。 從某種意義上說,這是對(duì)PoW的改進(jìn),即使在挖掘開始之前,容量證明也要求節(jié)點(diǎn)將預(yù)先計(jì)算的哈希值存儲(chǔ)在其硬盤驅(qū)動(dòng)器和其他內(nèi)存單元上,這個(gè)過程稱為繪圖,繪圖使容量證明成為比工作證明更快的機(jī)制。這種方法的另一個(gè)優(yōu)點(diǎn)是它可以節(jié)省大量能源,這與工作量證明機(jī)制不同。更不用說,硬盤存儲(chǔ)更多哈希值的任何技術(shù)改進(jìn)也將為不在區(qū)塊鏈中的人改進(jìn)技術(shù),這與許多制造商制造的專用芯片不同,后者除了采礦之外什么都不做。

IPFS 也類似,但不同的是 IPFS 衍生的區(qū)塊鏈項(xiàng)目(激勵(lì)層Filecoin)是一種去中心化存儲(chǔ)服務(wù)的 Marketplace(撮合交易的市場(chǎng)),它的重點(diǎn)在于如何在系統(tǒng)參與者互不信任的條件下,實(shí)現(xiàn)存儲(chǔ)和檢索工作的量化;PoC 是一種底層共識(shí)機(jī)制,與 PoW、PoS一樣都是去中心化網(wǎng)絡(luò)達(dá)成一致性狀態(tài)的算法。由此來看,兩者是完全不同的概念,唯一的共同點(diǎn)就是都可以使用硬盤向網(wǎng)絡(luò)貢獻(xiàn)價(jià)值來?yè)Q取收益。

代表token:BTT、BHD等。

優(yōu)點(diǎn)

  • 挖礦門檻較低:只要有硬盤就可以進(jìn)行挖礦,大大降低了挖礦門檻;PoC的礦機(jī)耗電量低、噪音小、成本低,適合家庭挖礦和人人挖礦。
  • 去中心化程度較高:抵押機(jī)制提高了算力集中化的門檻,即便有超級(jí)礦工出現(xiàn),普通散戶也可以繼續(xù)獲得收益。
  • 能源消耗低,節(jié)能:相比于PoW,POC挖礦將算力替換成硬盤空間,在很大程度的杜絕了POW挖礦造成的資源浪費(fèi)以及對(duì)環(huán)境不友好等問題,同時(shí)降低了挖礦成本,讓礦工從挖礦中賺取更多的利潤(rùn)。
  • 反壟斷:用硬盤容量替代了算力,天然具有抗ASIC的屬性

缺點(diǎn)

  • 未來發(fā)展的局限性可能較大
  • 可能會(huì)有政策性風(fēng)險(xiǎn)
  • PoC并沒有實(shí)現(xiàn)真正的平等

DAG(Directed acyclic graph)有向無環(huán)圖:無區(qū)塊鏈概念

在這里插入圖片描述

有向無環(huán)圖是計(jì)算機(jī)科學(xué)中眾所周知的數(shù)據(jù)結(jié)構(gòu)。事實(shí)上,區(qū)塊鏈也是DAG的一個(gè)例子,因?yàn)樗幸粋€(gè)明確的方向,沒有任何循環(huán),并且是一個(gè)圖。1OTA使用的Tangle也是DAG共識(shí)機(jī)制的一種形式。在這種機(jī)制中,每個(gè)塊必須有兩個(gè)父塊。所以,為了通過DAG共識(shí)機(jī)制完成一筆交易,用戶需要驗(yàn)證自己之前的兩筆交易。這種機(jī)制的最大優(yōu)勢(shì)是它可以減少延遲和交易費(fèi)用。然而,這種共識(shí)模型對(duì)提高可擴(kuò)展性幾乎沒有任何作用,而且極易受到攻擊,因?yàn)槿魏喂糁恍枰?4%的哈希算力就可以破壞系統(tǒng)。

DAG最初出現(xiàn)就是為了解決區(qū)塊鏈的效率問題。其通過改變區(qū)塊的鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu),通過DAG的拓?fù)浣Y(jié)構(gòu)來存儲(chǔ)區(qū)塊。在區(qū)塊打包時(shí)間不變的情況下,網(wǎng)絡(luò)中可以并行的打包N個(gè)區(qū)塊,網(wǎng)絡(luò)中的交易就可以容納N倍。

之后DAG發(fā)展成為脫離區(qū)塊鏈,提出了blockless無區(qū)塊的概念。新交易發(fā)起時(shí),只需要選擇網(wǎng)絡(luò)中已經(jīng)存在的并且比較新的交易作為鏈接確認(rèn),這一做法解決了網(wǎng)絡(luò)寬度問題,大大加快了交易速度。

代表token:IOTA、byteball等。
前段時(shí)間國(guó)內(nèi)首個(gè)基于DAG的物聯(lián)網(wǎng)區(qū)塊鏈項(xiàng)目ITC萬物鏈也取得了不小的漲幅。

優(yōu)點(diǎn)

  • 交易速度快;
  • 無需挖礦;
  • 極低的手續(xù)費(fèi)

缺點(diǎn)

  • 網(wǎng)絡(luò)規(guī)模不大,導(dǎo)致極易成為中心化;
  • 安全性低于PoW機(jī)制

PBFT(Practical Byzantine Fault Tolerance)實(shí)用拜占庭容錯(cuò):分布式一致性算法

實(shí)用拜占庭容錯(cuò)在保證活性和安全性(liveness & safety)的前提下提供了(n-1)/3的容錯(cuò)性。
在分布式計(jì)算上,不同的計(jì)算機(jī)透過訊息交換,嘗試達(dá)成共識(shí);但有時(shí)候,系統(tǒng)上協(xié)調(diào)計(jì)算機(jī)(Coordinator / Commander)或成員計(jì)算機(jī) (Member /Lieutanent)可能因系統(tǒng)錯(cuò)誤并交換錯(cuò)的訊息,導(dǎo)致影響最終的系統(tǒng)一致性。拜占庭將軍問題就根據(jù)錯(cuò)誤計(jì)算機(jī)的數(shù)量,尋找可能的解決辦法,這無法找到一個(gè)絕對(duì)的答案,但只可以用來驗(yàn)證一個(gè)機(jī)制的有效程度。而拜占庭問題的可能解決方法為:在 N ≥ 3F + 1 的情況下一致性是可能解決。其中,N為計(jì)算機(jī)總數(shù),F(xiàn)為有問題計(jì)算機(jī)總數(shù)。信息在計(jì)算機(jī)間互相交換后,各計(jì)算機(jī)列出所有得到的信息,以大多數(shù)的結(jié)果作為解決辦法。

優(yōu)點(diǎn)

  • 系統(tǒng)運(yùn)轉(zhuǎn)可以脫離幣的存在,pbft算法共識(shí)各節(jié)點(diǎn)由業(yè)務(wù)的參與方或者監(jiān)管方組成,安全性與穩(wěn)定性由業(yè)務(wù)相關(guān)方保證。
  • 共識(shí)的時(shí)延大約在2~5秒鐘,基本達(dá)到商用實(shí)時(shí)處理的要求。
  • 共識(shí)效率高,可滿足高頻交易量的需求。

缺點(diǎn)

  • 當(dāng)有1/3或以上記賬人停止工作后,系統(tǒng)將無法提供服務(wù);
  • 當(dāng)有1/3或以上記賬人聯(lián)合作惡,且其它所有的記賬人被恰好分割為兩個(gè)網(wǎng)絡(luò)孤島時(shí),惡意記賬人可以使系統(tǒng)出現(xiàn)分叉,但是會(huì)留下密碼學(xué)證據(jù)

實(shí)用拜占庭容錯(cuò)主要應(yīng)用于央行的數(shù)字貨幣以及布萌區(qū)塊鏈。


dBFT(delegated BFT)授權(quán)拜占庭容錯(cuò)算法

小蟻采用的dBFT機(jī)制,是由權(quán)益來選出記賬人,然后記賬人之間通過拜占庭容錯(cuò)算法來達(dá)成共識(shí)。dBFT和PBFT的關(guān)系類似于PoS和DPoS的關(guān)系。

dBFT在PBFT基礎(chǔ)上進(jìn)行了以下改進(jìn):

  1. 將C/S架構(gòu)的請(qǐng)求響應(yīng)模式,改進(jìn)為適合P2P網(wǎng)絡(luò)的對(duì)等節(jié)點(diǎn)模式;
  2. 將靜態(tài)的共識(shí)參與節(jié)點(diǎn)改進(jìn)為可動(dòng)態(tài)進(jìn)入、退出的動(dòng)態(tài)共識(shí)參與節(jié)點(diǎn);
  3. 為共識(shí)參與節(jié)點(diǎn)的產(chǎn)生設(shè)計(jì)了一套基于持有權(quán)益比例的投票機(jī)制,通過投票決定共識(shí)參與節(jié)點(diǎn)(記賬節(jié)點(diǎn));
  4. 在區(qū)塊鏈中引入數(shù)字證書,解決了投票中對(duì)記賬節(jié)點(diǎn)真實(shí)身份的認(rèn)證問題。

優(yōu)點(diǎn)

  • 專業(yè)化的記賬人;
  • 可以容忍任何類型的錯(cuò)誤;
  • 記賬由多人協(xié)同完成,每一個(gè)區(qū)塊都有最終性,不會(huì)分叉;
  • 算法的可靠性有嚴(yán)格的數(shù)學(xué)證明;

缺點(diǎn)

  • 當(dāng)有1/3或以上記賬人停止工作后,系統(tǒng)將無法提供服務(wù);
  • 當(dāng)有1/3或以上記賬人聯(lián)合作惡,且其它所有的記賬人被恰好分割為兩個(gè)網(wǎng)絡(luò)孤島時(shí),惡意記賬人可以使系統(tǒng)出現(xiàn)分叉,但是會(huì)留下密碼學(xué)證據(jù);

以上總結(jié)來說,dBFT機(jī)制最核心的一點(diǎn),就是最大限度地確保系統(tǒng)的最終性,使區(qū)塊鏈能夠適用于真正的金融應(yīng)用場(chǎng)景。


Pool驗(yàn)證池——私有鏈專用

基于傳統(tǒng)的分布式一致性技術(shù),加上數(shù)據(jù)驗(yàn)證機(jī)制;之前曾是行業(yè)鏈大范圍在使用的共識(shí)機(jī)制,但是隨著私有鏈項(xiàng)目的逐漸減少漸漸開始勢(shì)微。

優(yōu)點(diǎn)

不需要token也可以工作,在成熟的分布式一致性算法(Pasox、Raft)基礎(chǔ)上,實(shí)現(xiàn)秒級(jí)共識(shí)驗(yàn)證。

缺點(diǎn)

去中心化程度不如bictoin;更適合多方參與的多中心商業(yè)模式。

參考

拜占庭將軍問題

拜占庭將軍問題是一個(gè)協(xié)議問題,拜占庭帝國(guó)軍隊(duì)的將軍們必須全體一致的決定是否攻擊某一支敵軍。問題是這些將軍在地理上是分隔開來的,并且將軍中存在叛徒。叛徒可以任意行動(dòng)以達(dá)到以下目標(biāo):欺騙某些將軍采取進(jìn)攻行動(dòng);促成一個(gè)不是所有將軍都同意的決定,如當(dāng)將軍們不希望進(jìn)攻時(shí)促成進(jìn)攻行動(dòng);或者迷惑某些將軍,使他們無法做出決定。如果叛徒達(dá)到了這些目的之一,則任何攻擊行動(dòng)的結(jié)果都是注定要失敗的,只有完全達(dá)成一致的努力才能獲得勝利。

這一問題是一種對(duì)現(xiàn)實(shí)世界的模型化,尤指網(wǎng)絡(luò)當(dāng)中由于軟硬件錯(cuò)誤、網(wǎng)絡(luò)阻塞及惡意攻擊導(dǎo)致的各種未知行為。
顯然,在此處默認(rèn)了將軍們?cè)谶_(dá)成一致的過程中正確的傳遞出了自己的決定,也就是說叛徒只存在于將軍當(dāng)中,不存在于傳令兵當(dāng)中。故要讓拜占庭將軍問題有解,必須要具備一個(gè)重要前提,即信道必須是安全可靠的。關(guān)于信道可靠問題,會(huì)引出兩軍問題。兩軍問題的結(jié)論是,在一個(gè)不可靠的通信鏈路上試圖通過通信以達(dá)成一致是基本不可能或者十分困難的。

拜占庭容錯(cuò)

拜占庭將軍問題提出后,有很多的算法被提出用于解決這個(gè)問題。這類算法統(tǒng)稱拜占庭容錯(cuò)算法(BFT: Byzantine Fault Tolerance)。簡(jiǎn)略來說,拜占庭容錯(cuò)(BFT)不是某一個(gè)具體算法,而是能夠抵抗拜占庭將軍問題導(dǎo)致的一系列失利的系統(tǒng)特點(diǎn)。 這意味著即使某些節(jié)點(diǎn)出現(xiàn)缺點(diǎn)或惡意行為,拜占庭容錯(cuò)系統(tǒng)也能夠繼續(xù)運(yùn)轉(zhuǎn)。本質(zhì)上來說,拜占庭容錯(cuò)方案就是少數(shù)服從多數(shù)。

拜占庭將軍問題的原始論文給出了一些解決思路,但其更注重理論上的可行性。算法效率不高,算法復(fù)雜度為指數(shù)級(jí),且文中明確指出時(shí)間成本及消息傳遞數(shù)量很大。因此不具備太大的實(shí)用價(jià)值。

拜占庭容錯(cuò)系統(tǒng)需要達(dá)成如下兩個(gè)指標(biāo)
● 安全性:任何已經(jīng)完成的請(qǐng)求都不會(huì)被更改,它可以在以后請(qǐng)求看到。在區(qū)塊鏈系統(tǒng)中,可以理解為,已經(jīng)生成的賬本不可篡改,并且可以被節(jié)點(diǎn)隨時(shí)查看。
● 活性:可以接受并且執(zhí)行非拜占庭客戶端的請(qǐng)求,不會(huì)被任何因素影響而導(dǎo)致非拜占庭客戶端的請(qǐng)求不能執(zhí)行。在區(qū)塊鏈系統(tǒng)中,可以理解為,系統(tǒng)需要持續(xù)生成區(qū)塊,為用戶記賬,這主要靠挖礦的激勵(lì)機(jī)制來保證。

拜占庭系統(tǒng)目前普遍采用的假設(shè)條件包括:
● 拜占庭節(jié)點(diǎn)的行為可以是任意的,拜占庭節(jié)點(diǎn)之間可以共謀;
● 節(jié)點(diǎn)之間的錯(cuò)誤是不相關(guān)的;
● 節(jié)點(diǎn)之間通過異步網(wǎng)絡(luò)連接,網(wǎng)絡(luò)中的消息可能丟失、亂序、延時(shí)到達(dá);
● 服務(wù)器之間傳遞的信息,第三方可以知曉 ,但是不能竄改、偽造信息的內(nèi)容和驗(yàn)證信息的完整性;

科普 | 什么是共識(shí)機(jī)制?

詳解區(qū)塊鏈中常見的八大共識(shí)機(jī)制!

區(qū)塊鏈的幾大共識(shí)機(jī)制及優(yōu)缺點(diǎn)




作者:彩云sky
來源:人人都是產(chǎn)品經(jīng)理
著作權(quán)歸作者所有。商業(yè)轉(zhuǎn)載請(qǐng)聯(lián)系作者獲得授權(quán),非商業(yè)轉(zhuǎn)載請(qǐng)注明出處。

藍(lán)藍(lán)設(shè)計(jì)建立了UI設(shè)計(jì)分享群,每天會(huì)分享國(guó)內(nèi)外的一些優(yōu)秀設(shè)計(jì),如果有興趣的話,可以進(jìn)入一起成長(zhǎng)學(xué)習(xí),請(qǐng)加藍(lán)小助,微信號(hào):ben_lanlan,報(bào)下信息,藍(lán)小助會(huì)請(qǐng)您入群。歡迎您加入噢~~希望得到建議咨詢、商務(wù)合作,也請(qǐng)與我們聯(lián)系01063334945。


分享此文一切功德,皆悉回向給文章原作者及眾讀者.
免責(zé)聲明:藍(lán)藍(lán)設(shè)計(jì)尊重原作者,文章的版權(quán)歸原作者。如涉及版權(quán)問題,請(qǐng)及時(shí)與我們?nèi)〉寐?lián)系,我們立即更正或刪除。


藍(lán)藍(lán)設(shè)計(jì)www.bouu.cn )是一家專注而深入的界面設(shè)計(jì)公司,為期望卓越的國(guó)內(nèi)外企業(yè)提供卓越的UI界面設(shè)計(jì)、BS界面設(shè)計(jì) 、 cs界面設(shè)計(jì) 、 ipad界面設(shè)計(jì) 、 包裝設(shè)計(jì) 、 圖標(biāo)定制 、 用戶體驗(yàn) 、交互設(shè)計(jì)、 網(wǎng)站建設(shè) 平面設(shè)計(jì)服務(wù)、UI設(shè)計(jì)公司、界面設(shè)計(jì)公司、UI設(shè)計(jì)服務(wù)公司、數(shù)據(jù)可視化設(shè)計(jì)公司、UI交互設(shè)計(jì)公司、高端網(wǎng)站設(shè)計(jì)公司、UI咨詢、用戶體驗(yàn)公司、軟件界面設(shè)計(jì)公司

分享本文至:

日歷

鏈接

個(gè)人資料

存檔