精心挑选亚洲男人av间天堂在线观看_国产精品福利在线观看入口_国产九九热小视频_free少妇野战hd_精品人妻系列无码

解密區(qū)塊鏈最強(qiáng)心臟迅雷鏈共識(shí)算法詳解

編輯:xiaoling 閱讀:12 時(shí)間:2018-11-14 11:39:58
11月10日在廣州貝塔咖啡舉辦的迅雷鏈技術(shù)沙龍上,迅雷鏈底層工程師張驍就迅雷鏈共識(shí)


算法的內(nèi)在細(xì)節(jié),向到場(chǎng)的開發(fā)者和區(qū)塊鏈愛好者做了詳細(xì)解讀。DPoA+PBFT的算法保證了分布式系統(tǒng)中的強(qiáng)一致性和高效率共識(shí),吸引了在場(chǎng)來(lái)賓的關(guān)注。
 

什么是共識(shí)算法?
 

張驍認(rèn)為,區(qū)塊鏈建立在分布式系統(tǒng)上,有若干個(gè)節(jié)點(diǎn),每個(gè)節(jié)點(diǎn)都會(huì)維護(hù)自己的數(shù)據(jù),這些數(shù)據(jù)需要保證一致性。如果不同的節(jié)點(diǎn)提供的數(shù)據(jù)不同,就不是一個(gè)能夠正常對(duì)外工作的分布式系統(tǒng)。所以在區(qū)塊鏈中,需要把這些數(shù)據(jù)通過(guò)復(fù)制和同步,來(lái)保持一致性,這個(gè)過(guò)程就叫做共識(shí)。
 

共識(shí)過(guò)程中所使用的算法就叫共識(shí)算法。對(duì)于區(qū)塊鏈來(lái)說(shuō),共識(shí)算法的作用就是制定達(dá)成共識(shí)的標(biāo)準(zhǔn),即當(dāng)數(shù)據(jù)有所不同時(shí),以誰(shuí)的為準(zhǔn)。張驍深入淺出,用通俗易懂的方式,解釋了這個(gè)概念。
 

當(dāng)前主流共識(shí)算法的分類
 

張驍表示,目前共識(shí)算法可分為分為概率一致性共識(shí)和絕對(duì)一致性共識(shí)。
 

概率一致性共識(shí)算法是指在某一個(gè)時(shí)間點(diǎn)上,允許數(shù)據(jù)有一些不一致情況的算法。比如比特幣采用的算法,就是一種典型的概率一致性算法。比特幣達(dá)成共識(shí)的過(guò)程中,如果在同一個(gè)時(shí)間點(diǎn)有兩個(gè)不同的節(jié)點(diǎn),都找到了滿足這個(gè)條件的計(jì)算公式,就相當(dāng)于都可以產(chǎn)生一個(gè)區(qū)塊,然后就產(chǎn)生了分叉。當(dāng)然,這種分叉是會(huì)被下一輪的挖礦和共識(shí)過(guò)程所修正的,最終還是會(huì)達(dá)成一致,但在其誕生后的一小段時(shí)間里,是無(wú)法達(dá)成一致的。
 

絕對(duì)一致性共識(shí)算法是指數(shù)據(jù)始終保持一致性的算法,它通過(guò)犧牲一定的可用性,保證了數(shù)據(jù)的一致,其中又可以細(xì)分CFT和BFT兩個(gè)類型。
 

CFT算法的特點(diǎn)是確定一個(gè)固定的節(jié)點(diǎn)數(shù)量,只要有達(dá)到這個(gè)數(shù)量的節(jié)點(diǎn)確認(rèn),那么共識(shí)就算達(dá)成。比如總共有11個(gè)節(jié)點(diǎn),確定只要4個(gè)節(jié)點(diǎn)投票確認(rèn)某次交易,那么這次交易就算完成。這樣做的結(jié)果是交易確認(rèn)速度很快,同時(shí)結(jié)果永遠(yuǎn)都是確定的,而且不會(huì)出現(xiàn)分叉。
 

BFT算法是另外一種常見的絕對(duì)一致性算法,它達(dá)成共識(shí)的過(guò)程分為三個(gè)階段,分別是預(yù)準(zhǔn)備、準(zhǔn)備還有提交,其共識(shí)過(guò)程是:
 

1.預(yù)準(zhǔn)備階段:某個(gè)節(jié)點(diǎn)為從客戶端收到的請(qǐng)求分配提案編號(hào),然后發(fā)出預(yù)準(zhǔn)備消息,廣播給其它節(jié)點(diǎn);
 

2.準(zhǔn)備階段:其它節(jié)點(diǎn)收到預(yù)準(zhǔn)備消息后,檢查消息合法性,如果檢查通過(guò)則向其他節(jié)點(diǎn)發(fā)送準(zhǔn)備消息,并帶上自己的ID信息,同時(shí)接收來(lái)自其他節(jié)點(diǎn)的準(zhǔn)備信息。收到準(zhǔn)備消息的節(jié)點(diǎn)對(duì)消息同樣進(jìn)行合法性檢查驗(yàn)證,全網(wǎng)中至少2/3的節(jié)點(diǎn)驗(yàn)證過(guò)的消息,才會(huì)真正進(jìn)入準(zhǔn)備狀態(tài);
 

3.提交階段:向全網(wǎng)所有節(jié)點(diǎn)廣播進(jìn)入準(zhǔn)備狀態(tài)的消息,然后由所有節(jié)點(diǎn)進(jìn)行投票,投票數(shù)達(dá)2/3后該消息通過(guò)。
 

各種共識(shí)算法的優(yōu)缺點(diǎn)
 


張驍指出,以比特幣為代表的概率一致性算法的缺點(diǎn)是,對(duì)確認(rèn)時(shí)間的要求比較長(zhǎng)。比特幣出塊速度為10分鐘,同時(shí)還要經(jīng)過(guò)6個(gè)區(qū)塊的確認(rèn),才能得到最終的確定。即要經(jīng)過(guò)60分鐘之后,某個(gè)交易才能得到確認(rèn),而且還不一定能夠保證支付成功。這在實(shí)際應(yīng)用過(guò)程中是無(wú)法接受的,誰(shuí)也不能付款后還要等1個(gè)小時(shí),才能確定到底有沒有完成付款、拿走東西。
 

因此,概率一致性算法不適合實(shí)際商用,無(wú)法滿足實(shí)際商業(yè)場(chǎng)景中對(duì)交易確認(rèn)速度、并發(fā)處理的要求。
 

CFT算法的問題是不能防止節(jié)點(diǎn)間的撮合,比如有4個(gè)相熟的節(jié)點(diǎn)勾結(jié)到一起,這樣幾乎就可以確認(rèn)所有交易。同時(shí)也不能防止節(jié)點(diǎn)作惡,比如一個(gè)節(jié)點(diǎn)向其中4個(gè)節(jié)點(diǎn)發(fā)出一個(gè)確認(rèn)請(qǐng)求,再向其它的節(jié)點(diǎn)發(fā)出另一個(gè)完全相反的確認(rèn)請(qǐng)求,這樣就會(huì)同一時(shí)間形成兩個(gè)完全不同的交易結(jié)果,由此導(dǎo)致系統(tǒng)出現(xiàn)偏差。
 

因此,CFT算法基本只能在能夠確保節(jié)點(diǎn)誠(chéng)實(shí)度的情況下使用,比如私有鏈。
 

BFT算法彌補(bǔ)了CFT的漏洞,杜絕了節(jié)點(diǎn)撮合交易和作惡的可能性,每一次交易都經(jīng)過(guò)兩輪投票,多次驗(yàn)證,因此不會(huì)出現(xiàn)惡意交易的情況出現(xiàn)。
 

但它有兩個(gè)缺點(diǎn),一是容錯(cuò)率變低,因?yàn)槊枯喭镀倍夹枰辽?/3的節(jié)點(diǎn)通過(guò)才行,所以BFT算法下,節(jié)點(diǎn)最多只能容忍不到1/3的節(jié)點(diǎn)出現(xiàn)故障,如果超過(guò),整個(gè)區(qū)塊鏈都不能運(yùn)行。
 

其次是由于要進(jìn)行3個(gè)階段,每個(gè)階段都需要對(duì)全網(wǎng)進(jìn)行廣播,所以通信量非常大,是節(jié)點(diǎn)總數(shù)量的次方級(jí)。因此在節(jié)點(diǎn)數(shù)量比較多的情況下,BFT算法會(huì)顯得效率很低,簡(jiǎn)單說(shuō),就是這種算法不太適用于多節(jié)點(diǎn)的區(qū)塊鏈。
 

迅雷鏈采用什么共識(shí)算法?
 


基于以上共識(shí)算法都無(wú)法滿足要求,為了更好的適應(yīng)各種大型商業(yè)場(chǎng)景,迅雷鏈提出了獨(dú)有的同構(gòu)多鏈架構(gòu)結(jié)合DPoA+PBFT的共識(shí)算法。
 

迅雷鏈基于玩客云共享計(jì)算提供的150萬(wàn)個(gè)節(jié)點(diǎn)而產(chǎn)生,迅雷鏈先是從這150萬(wàn)個(gè)節(jié)點(diǎn)中,挑選那些在線穩(wěn)定、傳輸通暢、性能較好的優(yōu)質(zhì)節(jié)點(diǎn),集中成一個(gè)備選池,再用DPoA算法,從這備選池里挑選出一定數(shù)量的節(jié)點(diǎn),組成整個(gè)迅雷鏈的記賬網(wǎng)絡(luò)。這些節(jié)點(diǎn)會(huì)定期輪換、重選,以避免記賬節(jié)點(diǎn)暴露,被外界攻擊。
 

而在記賬過(guò)程中,采用PBFT算法。PBFT算法的優(yōu)點(diǎn)是確認(rèn)速度快、并發(fā)處理性能高,而且還永不分叉,有很強(qiáng)的一致性,非常適合于實(shí)際商用。
 

但PBFT也有缺點(diǎn),一是容錯(cuò)率低,需要保證記賬節(jié)點(diǎn)擁有較高的在線率,二是通信量大,不適合于太多節(jié)點(diǎn)的區(qū)塊鏈。迅雷鏈自身的特點(diǎn),恰好彌補(bǔ)了這兩個(gè)缺陷。
 

首先,迅雷鏈所有記賬節(jié)點(diǎn)都是優(yōu)中選優(yōu)挑選出來(lái),而且還有大量備用,因此一來(lái)節(jié)點(diǎn)故障率本身就不高,二來(lái)一旦有節(jié)點(diǎn)出現(xiàn)故障,可以從備選池中立即選擇新的節(jié)點(diǎn)來(lái)補(bǔ)上。150萬(wàn)+的總節(jié)點(diǎn)數(shù),保證了隨時(shí)都有足夠的備選節(jié)點(diǎn)使用。
 

同時(shí)由于是采用DPoA算法來(lái)挑選記賬節(jié)點(diǎn),所以在同一時(shí)間記賬的節(jié)點(diǎn)數(shù)量不會(huì)很多,完美規(guī)避了PBFT算法通信量大的缺點(diǎn)。
 

基于這種雙重算法的設(shè)計(jì),迅雷鏈才能在保證安全性、去中心化程度的同時(shí),又能實(shí)現(xiàn)百萬(wàn)級(jí)TPS、秒級(jí)確認(rèn)速度等超高性能,并能保證不分叉、不回滾,是目前最適合實(shí)際商用需求的區(qū)塊鏈。
 

張驍最后說(shuō),沒有任何一種共識(shí)算法是最好的,我們不能說(shuō)到底是POW好,還是DPoA+PBFT好。因?yàn)樗惴ê貌缓?,要根?jù)實(shí)際承載的區(qū)塊鏈來(lái)判定,通過(guò)區(qū)塊鏈面向的業(yè)務(wù)場(chǎng)景和目標(biāo)去考量。迅雷鏈作為區(qū)塊鏈3.0時(shí)代的引領(lǐng)者,需要能夠接納更多的商戶上鏈,能夠達(dá)到百萬(wàn)級(jí)的TPS,能夠讓交易在每秒級(jí)別的時(shí)間當(dāng)中確認(rèn)。在這樣的需求下,在結(jié)合到有150萬(wàn)以上節(jié)點(diǎn)的玩客云硬件支持,所以最終選擇了DPoA+PBFT的算法,成就了迅雷鏈的最強(qiáng)心臟。

最新更新
游戲
應(yīng)用
資訊
游戲總排行
軟件總排行
1
全民槍戰(zhàn)
全民槍戰(zhàn)
全民槍戰(zhàn)
飛行射擊
下載
2
屠龍破曉單機(jī)版
下載
3
我的塔防
我的塔防
我的塔防
塔防精選
下載
4
忍者必須死3
忍者必須死3
忍者必須死3
動(dòng)作跑酷
下載
5
天天酷跑
天天酷跑
天天酷跑
動(dòng)作跑酷
下載
6
最強(qiáng)NBA
最強(qiáng)NBA
最強(qiáng)NBA
體育競(jìng)速
下載
7
王牌戰(zhàn)爭(zhēng)
下載
8
全民飛機(jī)大戰(zhàn)
下載
9
全民冠軍足球
全民冠軍足球
全民冠軍足球
體育競(jìng)速
下載
10
迷你世界
迷你世界
迷你世界
休閑益智
下載