您好,登錄后才能下訂單哦!
本篇內(nèi)容主要講解“LibraBFT與比原鏈Bystack BBFT有什么不同”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“LibraBFT與比原鏈Bystack BBFT有什么不同”吧!
如果說什么是區(qū)塊鏈的靈魂,那一定是共識機制。
它是區(qū)塊鏈的根基。無論公鏈或是聯(lián)盟鏈,共識機制都從基礎(chǔ)上限制了區(qū)塊鏈的交易處理能力和擴展性。
2019年6月18日,F(xiàn)acebook 發(fā)布了自己 Libra 項目的白皮書,引發(fā)廣泛關(guān)注。作為 Facebook 試圖創(chuàng)造國際流通數(shù)字貨幣的重要項目,Libra 區(qū)塊鏈采用的是 LibraBFT 共識機制,是一個為 Libra 設計的魯棒的高效的狀態(tài)復制系統(tǒng)。它基于一種新型的 BFT 共識算法,HotStuff。
就在 Facebook Libra 項目白皮書發(fā)布之前不久,5月17日,比原鏈發(fā)布了 BaaS 平臺 Bystack。這是一個一主多側(cè)鏈架構(gòu)的商用區(qū)塊鏈系統(tǒng),主鏈采用 PoW 共識保證多樣資產(chǎn)安全和去中心化,側(cè)鏈提供可插拔的共識以滿足不同業(yè)務需求。同時,Bystack 本身還針對側(cè)鏈獨創(chuàng)了一種 DPoS+BBFT 的共識算法。
同樣是 BFT 類共識機制,LibraBFT 和 BBFT 兩者有什么不同呢?
共識(Consensus)是分布式系統(tǒng)中節(jié)點對數(shù)據(jù)或網(wǎng)絡最終狀態(tài)達成的協(xié)議。由于網(wǎng)絡環(huán)境和節(jié)點狀態(tài)的不可控,共識機制需要同時考慮性能、可靠性、安全性等多方面問題。
共識機制從大的方面,可分為 PoW 等中本聰共識機制,和拜占庭容錯(BFT)類共識機制兩大類。BFT 共識機制廣泛應用于各類聯(lián)盟鏈。
PoW 共識在非許可(Permissionless)鏈上應用廣泛,但是它的概率模型在提供較高可靠性的同時,犧牲了效率,浪費了大量計算資源。在具體商業(yè)應用環(huán)境中,許可(Permissioned)機制已經(jīng)保證了一定程度上的節(jié)點可信度(Semi-Trust)。這樣的前提下,用戶更關(guān)心執(zhí)行效率(TPS)和最終確定性(Finality)。這是BFT共識在聯(lián)盟鏈中流行的原因。
BFT( Byzantine Fault Tolerance)即拜占庭容錯。它是分布式計算容錯技術(shù)。
由于硬件錯誤、網(wǎng)絡擁塞或中斷、以及遭到惡意攻擊等原因,計算機和網(wǎng)絡可能出現(xiàn)不可預料的行為。拜占庭容錯技術(shù)被設計用來處理這些異常,在容錯的基礎(chǔ)上達成共識。
與從比特幣衍生出的中本聰共識不同,在BFT類協(xié)議中,一旦達成共識,則直接形成確定性結(jié)果,而不是中本聰共識的概率上的最終一致。
BFT 類共識在金融場景及聯(lián)盟鏈場景中應用甚廣。同時隨著技術(shù)進步,公有鏈場景下應用的 BFT 共識也在不斷出現(xiàn)。
實用拜占庭容錯算法(Practical Byzantine Fault Tolerance Algorithm,PBFT)是首個實用的在異步分布式網(wǎng)絡中實現(xiàn)拜占庭容錯的共識算法。
PBFT 算法可工作在異步環(huán)境中,并且優(yōu)化了原始拜占庭容錯算法效率不高的問題,將算法復雜度由指數(shù)級降低到多項式級,使得拜占庭容錯算法在實際系統(tǒng)應用中變得可行——這點已得到廣泛驗證。PBFT 算法可以在失效節(jié)點不超過總數(shù)1/3的情況下同時保證一致性(Safety)和交付保證(Liveness)。
無論 Facebook Libra 的 LibraBFT 共識協(xié)議,還是比原鏈 Bystack 的 BBFT共識機制,都在底層上充分吸收了 PBFT 的優(yōu)點,采用了已有的經(jīng)過時間驗證的處理方式,并在 PBFT 的一些短板和不足之處分別做出了各自不同方向的革新。
前面已經(jīng)說到,Libra 采用基于 HotStuff 的 LibraBFT 共識。
HotStuff 是一個三階段的 BFT 算法。它將視圖切換流程和正常流程進行合并,不再有單獨視圖切換流程,降低了視圖切換的復雜度。
在 HotStuff 中切換視圖時,系統(tǒng)中的某個節(jié)點無需確認「足夠多的節(jié)點希望進行視圖切換」這一消息再通知新的主節(jié)點,而是可以直接切換到新視圖并通知新主節(jié)點。HotStuff 把確認「足夠多的節(jié)點希望進行視圖切換」這一消息的行為放進了正常流程中。由此把 PBFT 的兩階段確認擴展成了三階段確認。
HotStuff 的另一個重要改變,是將 PBFT 的網(wǎng)狀通信網(wǎng)絡拓撲變成了星形通信網(wǎng)絡拓撲。HotStuff 中,每次通信都依靠主節(jié)點。節(jié)點不再通過 p2p 網(wǎng)絡將消息廣播給其它節(jié)點,而是將消息發(fā)送給主節(jié)點,由主節(jié)點處理后發(fā)送給其它節(jié)點。得益于星型通信網(wǎng)絡拓撲,系統(tǒng)的通信復雜度大大降低。和 PBFT 類似,主節(jié)點會提議進行狀態(tài)遷移,其它節(jié)點收到該狀態(tài)遷移要求后,會檢查其合法性。
LibraBFT 在 3f+1 個驗證節(jié)點之間收集投票,這些驗證者可能是誠實的節(jié)點也可能是拜占庭節(jié)點。在網(wǎng)絡中存在 2f+1 個誠實節(jié)點的前提下,Libra能夠抵御 f 個驗證節(jié)點的雙花攻擊和分叉攻擊。
LibraBFT在一個有全局統(tǒng)一時間(GST),并且網(wǎng)絡最大延時(ΔT)可控的部分同步網(wǎng)絡中是有效的。并且,LibraBFT在所有驗證節(jié)點重啟的情況下,也能夠保證網(wǎng)絡一致性。
根據(jù) Bystack 白皮書,BBFT 是一種基于實用拜占庭容錯 PBFT 的衍生共識,是一種分層拜占庭容錯共識算法。在保證拜占庭容錯,即允許少量節(jié)點(f≤N/3)作惡的情況下,具有以下特性:
(1)配置性(Configurable)
采用模塊化可插拔設計,按需配置,并在一定程度上保證對新技術(shù)的兼容(Future-Proof)。
這是 Bystack 的一個核心競爭點??珂湼拍罱鼛啄暌恢庇惺艿綇V泛關(guān)注,也是區(qū)塊鏈發(fā)展的重要方向。支持模塊化的插拔,使得 Bystack 擁有跨鏈方向的想象空間,有能力形成一個真正擴展性強、能兼容其他主流共識機制的區(qū)塊鏈系統(tǒng)。
這樣的兼容能力使得 BBFT 有能力讓其他的聯(lián)盟鏈公鏈成為自己的側(cè)鏈,讓自己不僅僅是一個區(qū)塊鏈操作系統(tǒng),而且形成一個區(qū)塊鏈操作系統(tǒng)生態(tài)。這樣一來,想象空間就大了。
不過當然,要達到這樣的程度,技術(shù)實現(xiàn)上可能任重道遠。兼容性是一個動輒消耗大量研發(fā)成本的方向,它不難,但是繁瑣。BBFT 很難一步登頂一開始就做到最好,目前只能一步一步來。
(2)適應性(Adaptive)
即針對不同網(wǎng)絡環(huán)境提供穩(wěn)定的執(zhí)行效率。
BFT 需要節(jié)點之間互相交換驗證結(jié)果以取得多數(shù)共識。一般來說,每個節(jié)點需要得到足夠多(≥(2/3)*N)的來自其他節(jié)點的回復才能做出有效判斷。網(wǎng)絡延時直接影響信息交互效率,特別在跨地域跨境應用中,延時將成為網(wǎng)絡運行的瓶頸。
在 BBFT 中,共識節(jié)點維護當前網(wǎng)絡拓撲,按最短路徑原理相近的節(jié)點采取優(yōu)先通信。對通信的聚合可以進一步降低延時。同時類似PBFT,BBFT 中領(lǐng)導節(jié)點(Leader)的角色被弱化,共識節(jié)點拿到超過2/3票數(shù)就可以做出判定,從而在領(lǐng)導節(jié)點通信受到阻塞的情況下,也不會對整個網(wǎng)絡決策產(chǎn)生巨大影響。
(3)擴展性(Scalable)
保證共識復雜度隨網(wǎng)絡容量線性(Linear)或低于線性(Sub-Linear)增加。
一方面共識節(jié)點越多網(wǎng)絡的可靠性相對越高;另一方面,傳統(tǒng) PBFT 中節(jié)點通信的復雜度 O(N^2) 隨網(wǎng)絡容量指數(shù)級增長,極大限制了節(jié)點數(shù)目。BBFT中對消息的有效聚合可以有效減少消息發(fā)送的次數(shù),從而保證 O(N) 的復雜度要求。與網(wǎng)絡拓撲相結(jié)合,可以把網(wǎng)絡分割為多層結(jié)構(gòu),消息數(shù)據(jù)可以在同層內(nèi)有效共享,以多簽聚合的形式跨層傳播。多簽信息驗證可以使用現(xiàn)有的成熟的
方案,例如基于 Shnorr 簽名的 MuSig 算法,可以在保證多簽驗證效率的同時,抵御Rogue Key Attack攻擊。
(4)異構(gòu)性(Heterogeneous)
分離共識的驗證和通信。
共識達成需要驗證和通信,但兩者并沒有很強的關(guān)聯(lián)。采取低耦合的共識框架可以進一步提高網(wǎng)絡可靠性和效率。
驗證模塊往往取決于具體用戶邏輯,對算力和安全性都有一定要求。通信模塊和用戶邏輯相對獨立,主要處理網(wǎng)絡連接和請求。網(wǎng)絡拓撲和最短路徑的計算和選擇可以在這里完成。由于和用戶邏輯無關(guān),通信模塊可以以抽象層(AbstractionLayer)或者中間件(Middleware)的形式和驗證對接。
異構(gòu)帶來的優(yōu)勢還體現(xiàn)在用最優(yōu)的工具做最適合的事。驗證和通信允許運行在不同的系統(tǒng)上、不同的操作環(huán)境中,針對不同硬件的算力優(yōu)勢和安全保證(TrustZone)來發(fā)揮最大效能。
BBFT 的兩大主要特點在于:
多層結(jié)構(gòu)。根據(jù)網(wǎng)絡進行分層。傳統(tǒng) BFT 是單層結(jié)構(gòu),只有一個領(lǐng)導節(jié)點和若干處于同等地位的共識節(jié)點。BBFT 的創(chuàng)新在于大領(lǐng)導下面還有小領(lǐng)導,如果領(lǐng)導出問題,不至于對網(wǎng)絡產(chǎn)生較大影響,相當于弱化了領(lǐng)導的作用。而且由于是多層結(jié)構(gòu),可以把網(wǎng)絡通信分流再組合,優(yōu)化網(wǎng)絡通信的延時和數(shù)量。
傳統(tǒng) PBFT 的通信復雜度是指數(shù)級的,難以擴展,網(wǎng)絡里面隨著節(jié)點數(shù)暴漲,整個網(wǎng)絡延遲可能很嚴重。BBFT 通過分層和加密簽名的聚合,對整個網(wǎng)絡結(jié)構(gòu)有效組合,可以保證通信復雜度線性增長,而不是指數(shù)級增長。
可配置性。Bystack 上的側(cè)鏈工程其實分三個模塊,一是底層共識算法,二是網(wǎng)絡劃分,三是簽名聚合。其中,網(wǎng)絡劃分和簽名聚合是相對獨立的模塊,可以使用不同的網(wǎng)絡分層算法、簽名聚合算法與共識層的算法進行搭配??梢愿鶕?jù)具體用戶場景靈活選用不同的合理方案。
LibraBFT 將 PBFT 的網(wǎng)狀通信網(wǎng)絡拓撲變成了星形通信網(wǎng)絡拓撲,以降低系統(tǒng)通信復雜度;BBFT則使用多層結(jié)構(gòu)把網(wǎng)絡通信分流再組合,優(yōu)化網(wǎng)絡通信的延時和數(shù)量。
LibraBFT 將視圖切換流程和正常流程進行了合并,把 PBFT 的兩階段確認擴展成了三階段確認;BBFT 則將經(jīng)典 BFT 算法中產(chǎn)生、預最終狀態(tài)與最終狀態(tài)三個狀態(tài)修改為只有一個最終確認狀態(tài)。
兩者都可看做是 PBFT 共識的升級,吸收了現(xiàn)有 BFT 類共識的成果和優(yōu)點,并在此基礎(chǔ)上做出不同方向的擴展。LibraBFT 共識機制更多是 PBFT 基礎(chǔ)上的一種革新,更多關(guān)注算法本身,對 PBFT 有很多修改和優(yōu)化的方面;BBFT 更多是在層級上進行分層控制,更多是一種系統(tǒng)全局思維。BBFT 希望達到的,不只是一種高效的共識機制,更是能融合其他共識機制的共識機制。維度上,BBFT 是可以讓 LibraBFT 直接接入,在側(cè)鏈上利用對方所有優(yōu)勢的。LibraBFT 是第一序改變,BBFT 是第二序改變。
可以明顯看出,Bystack 更加關(guān)注利用好現(xiàn)有共識機制,將不同的共識機制整合、取長補短,這在 Bystack 整體架構(gòu)上表現(xiàn)就十分突出,比如主側(cè)鏈采用不同共識并有機結(jié)合、側(cè)鏈使用 DPoS+BBFT 的混合共識算法并具備可配置性……Bystack 不只是想做區(qū)塊鏈的操作系統(tǒng),它實際上有做操作系統(tǒng)的操作系統(tǒng)的意思。
區(qū)塊鏈共識機制的研究,已經(jīng)進行很長一段時間,但從 PoW 共識提出到現(xiàn)在,并沒有說得上范式突破的進展。
也許讓區(qū)塊鏈兼容其他鏈的共識機制,實現(xiàn)平滑跨鏈,讓任何一條鏈都可以作為一個側(cè)鏈接入進來,可以成為區(qū)塊鏈方向的一個范式突破,帶來全新的想象空間。也許這也是現(xiàn)在跨鏈概念比較火爆的原因。
到此,相信大家對“LibraBFT與比原鏈Bystack BBFT有什么不同”有了更深的了解,不妨來實際操作一番吧!這里是億速云網(wǎng)站,更多相關(guān)內(nèi)容可以進入相關(guān)頻道進行查詢,關(guān)注我們,繼續(xù)學習!
免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。