2018-05-20

.FLP定理:在網(wǎng)絡(luò)可靠、存在節(jié)點(diǎn)失效的最小化異步模型系統(tǒng)中,不存在一個(gè)可以解決一致性問(wèn)題的確定性算法。在這個(gè)原理的前提下,也告訴人們:不要浪費(fèi)時(shí)間去為異步分布式系統(tǒng)設(shè)計(jì)在任意場(chǎng)景下都能實(shí)現(xiàn)共識(shí)的算法,在允許節(jié)點(diǎn)失效的情況下,純粹異步系統(tǒng)無(wú)法確保一致性在有限時(shí)間內(nèi)完成。

2.CAP定理:分布式計(jì)算系統(tǒng)不可能同時(shí)確保一致性、可用性和分區(qū)容錯(cuò)性,這三者不可兼得。

一致性(consistency):所有節(jié)點(diǎn)在同一時(shí)刻能夠看到同樣的數(shù)據(jù),即“強(qiáng)一致性”

可用性(availability):確保每個(gè)請(qǐng)求都可以收到確定其是否成功的響應(yīng),并且是在有限的時(shí)間內(nèi)。

分區(qū)容錯(cuò)性(partition tolerance):因?yàn)榫W(wǎng)絡(luò)故障導(dǎo)致的系統(tǒng)分區(qū)不影響系統(tǒng)正常運(yùn)行。

共識(shí)算法的適用范圍:

1)私有鏈:封閉生態(tài)的存儲(chǔ)網(wǎng)絡(luò),所有節(jié)點(diǎn)都是可信任的,如某大興集團(tuán)內(nèi)部的多數(shù)公司

2)聯(lián)盟鏈:半封閉生態(tài)的交易網(wǎng)絡(luò),存在對(duì)等的不信任節(jié)點(diǎn),如行業(yè)內(nèi)部的公司A,B,C等。

3)公有鏈:開(kāi)放生態(tài)的交易網(wǎng)絡(luò),即所有人都可以參與交易,沒(méi)有任何限制和資格審核。

由于私有鏈 是封閉生態(tài)的存儲(chǔ)網(wǎng)絡(luò),因此使用傳統(tǒng)分布式一致性模型應(yīng)該是最優(yōu)的;由于聯(lián)盟行業(yè)鏈的半封閉、半開(kāi)放特性,使用Delegated Proof of XXX是最優(yōu)的;對(duì)于公有鏈,POW應(yīng)該是最優(yōu)的選擇。

4.4PBFT算法(Practical Byzantine Fault Tolerance)

在PBFT算法中,至多可以容忍不超過(guò)系統(tǒng)全部節(jié)點(diǎn)數(shù)量的1/3的拜占庭節(jié)點(diǎn)“背叛”,即如果有超過(guò)2/3的節(jié)點(diǎn)正常,整個(gè)系統(tǒng)就可以正常工作。央行推出的區(qū)塊鏈數(shù)字票據(jù)交易平臺(tái)用的就是優(yōu)化后的PBFT算法。騰訊的區(qū)塊鏈用的也是PBFT.

PBFT算法的優(yōu)點(diǎn):

1.PBFT算法共識(shí)各節(jié)點(diǎn)由業(yè)務(wù)的參與方或者監(jiān)管方組成,安全性與穩(wěn)定性由業(yè)務(wù)相關(guān)方保證。

2.共識(shí)的時(shí)延大約在2-5秒,基本達(dá)到商用實(shí)時(shí)處理的要求。

3.共識(shí)效率高,可滿足高頻交易量的需求。

PBFT非常適合聯(lián)盟鏈的應(yīng)用場(chǎng)景,但是在公有鏈中就有很大的問(wèn)題。

4.5工作量證明--POW(Proof of Work)

POW協(xié)議·簡(jiǎn)述如下:

1)向所有的節(jié)點(diǎn)廣播新的交易

2)每個(gè)節(jié)點(diǎn)把收到的交易放進(jìn)塊中

3)在每一輪中,一個(gè)被隨機(jī)選中的節(jié)點(diǎn)廣播它所保有的塊

4)其他節(jié)點(diǎn)在驗(yàn)證快中的所有的交易正確無(wú)誤后接受該區(qū)塊

5)其他節(jié)點(diǎn)將該區(qū)塊的哈希值放入下一個(gè)它們創(chuàng)建的區(qū)塊中,表示它們承認(rèn)這個(gè)區(qū)塊的正確性

Pow共識(shí)協(xié)議的優(yōu)點(diǎn)是完全去中心化,節(jié)點(diǎn)自由進(jìn)出。但是依賴機(jī)器進(jìn)行數(shù)學(xué)運(yùn)算來(lái)獲取記賬權(quán),資源的消耗相比其他共識(shí)機(jī)制高,可監(jiān)管性弱,每次達(dá)成共識(shí)需要全網(wǎng)共同參與運(yùn)算,性能效率比較低,容錯(cuò)性方面允許全網(wǎng)50%節(jié)點(diǎn)出錯(cuò)。

挖礦造成大量的資源浪費(fèi)

共識(shí)達(dá)成的周期較長(zhǎng)

4.6股權(quán)權(quán)益證明---Pos(Proof of Stack)

Pos最基本的概念就是選擇生成新的區(qū)塊的機(jī)會(huì)應(yīng)和股權(quán)的大小成正比。

Pos運(yùn)作的機(jī)制大致如下:

1)加入Pos機(jī)制的都是持幣人,成為驗(yàn)證者(validator)

2)Pos算法在這些驗(yàn)證者里挑一個(gè)給予權(quán)利生成新的區(qū)塊,挑選順序依據(jù)持幣的多少

3)如果在一定時(shí)間內(nèi),沒(méi)有生產(chǎn)區(qū)塊,Pos則挑選下一個(gè)驗(yàn)證者,給予生成新區(qū)塊的權(quán)利

4)以此類推,以區(qū)塊鏈中最長(zhǎng)的鏈為準(zhǔn)

Pos和PoW有一個(gè)很大的區(qū)別:在Pos機(jī)制下,持幣是有利息的,Pos機(jī)制下不會(huì)產(chǎn)生通縮的情況,和POW相比,Pos不需要為了生成新區(qū)塊而大量的消耗電力,也一定程度上縮短了共識(shí)達(dá)成·的時(shí)間,但缺點(diǎn)是PoS還是需要挖礦。

4.7委托權(quán)益人證明機(jī)制---DPoS

DPoS(Delegated Proof of Stake)機(jī)制是PoS算法的改進(jìn)。DPoS算法中使用見(jiàn)證人機(jī)制解決中心化問(wèn)題。總共有N個(gè)見(jiàn)證人對(duì)區(qū)塊進(jìn)行簽名。DPoS消除了交易需要等待一定數(shù)據(jù)區(qū)塊被非信任節(jié)點(diǎn)驗(yàn)證的時(shí)間消耗。通過(guò)減少確認(rèn)的要求,DPoS算法大大提高了交易的速度。通過(guò)信任少量的誠(chéng)信節(jié)點(diǎn),可以去除區(qū)塊簽名過(guò)程中不必要的步驟。見(jiàn)證人機(jī)制有以下特點(diǎn):

1.見(jiàn)證人的數(shù)量由權(quán)益所有者確定,至少需要確保11個(gè)見(jiàn)證人

2.見(jiàn)證人必須盡量長(zhǎng)時(shí)間在線,以便做出響應(yīng)

3.見(jiàn)證人代表權(quán)益所有人簽署和廣播新的區(qū)塊鏈

4.見(jiàn)證人如果無(wú)法簽署區(qū)塊鏈,就將失去資格,也將失去這一部分的收入

5.見(jiàn)證人無(wú)法簽署無(wú)效的交易,因?yàn)榻灰仔枰幸?jiàn)證人都確認(rèn)

作者:極光007

鏈接:http://www.itdecent.cn/p/85b28b3cf6b5

來(lái)源:簡(jiǎn)書(shū)

著作權(quán)歸作者所有。商業(yè)轉(zhuǎn)載請(qǐng)聯(lián)系作者獲得授權(quán),非商業(yè)轉(zhuǎn)載請(qǐng)注明出處。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容