伍 星,范玉順+,郜振鋒
(1.清華大學(xué) 自動(dòng)化系,北京 100084;2.清華大學(xué) 北京信息科學(xué)與技術(shù)國(guó)家研究中心,北京 100084;3.深信服科技股份有限公司,廣東 深圳 518071)
近年來,隨著互聯(lián)網(wǎng)、云計(jì)算等技術(shù)的飛速發(fā)展,以及面向服務(wù)架構(gòu)(Service-Oriented Architecture, SOA)[1]、業(yè)務(wù)即服務(wù)(Business as a Service, BaaS)[2]、軟件即服務(wù)(Software as a Service, SaaS)[3]等理念的興起,制造型企業(yè)正經(jīng)歷著從傳統(tǒng)制造業(yè)向云制造服務(wù)業(yè)的深刻轉(zhuǎn)型,所承擔(dān)的角色也從產(chǎn)品提供者轉(zhuǎn)換為服務(wù)提供者[4-5]。
在云制造模式下,制造型企業(yè)通過虛擬化技術(shù)將制造資源(如云服務(wù)器、軟件、數(shù)據(jù))和制造能力(如計(jì)算能力、設(shè)計(jì)能力和生產(chǎn)能力)封裝成服務(wù)的形式發(fā)布在云制造服務(wù)平臺(tái)上。該平臺(tái)是一個(gè)包含了海量、異構(gòu)、多層次制造服務(wù)信息的云共享資源池,用戶可以從中查找、使用和集成制造服務(wù)以滿足自身制造需求,實(shí)現(xiàn)制造資源的按需分配和使用。
因?yàn)樵浦圃旆?wù)平臺(tái)承載著服務(wù)信息發(fā)布、服務(wù)資源匹配和服務(wù)系統(tǒng)管理等重要職責(zé),所以建立一個(gè)安全的、多方可信的云制造服務(wù)平臺(tái)是吸引制造企業(yè)和用戶參與,促進(jìn)云制造行業(yè)繁榮發(fā)展的關(guān)鍵,然而傳統(tǒng)的中心化云制造服務(wù)平臺(tái)通常存在安全防護(hù)不足和信任機(jī)制缺失的風(fēng)險(xiǎn)。近年來,一些學(xué)者提出將區(qū)塊鏈技術(shù)引入云制造服務(wù)平臺(tái),試圖通過利用區(qū)塊鏈分布式、防篡改等特性來解決云制造服務(wù)平臺(tái)中的安全問題和信任危機(jī)。
區(qū)塊鏈本質(zhì)上是部署在眾多節(jié)點(diǎn)上的一種分布式數(shù)據(jù)庫,為了保證這些節(jié)點(diǎn)上數(shù)據(jù)的正確性和一致性,共識(shí)算法發(fā)揮了重要作用[6]。主流的共識(shí)算法包括應(yīng)用于公有鏈的工作量證明(Proof of Work, PoW)[7]、股權(quán)權(quán)益證明(Proof of Stake, PoS),以及應(yīng)用于聯(lián)盟鏈的實(shí)用拜占庭容錯(cuò)(Practical Byzantine Fault Tolerance, PBFT)[8]?,F(xiàn)有共識(shí)算法通常會(huì)帶來顯著的資源消耗、帶寬開銷和網(wǎng)絡(luò)延遲,難以滿足云制造服務(wù)平臺(tái)對(duì)高效性的要求。
服務(wù)質(zhì)量(Quality of Service, QoS)是衡量云制造服務(wù)性能的重要指標(biāo),可用QoS值反映區(qū)塊鏈節(jié)點(diǎn)的性能。在云制造服務(wù)場(chǎng)景下,借鑒PBFT算法的基本思想,本文提出基于QoS值的改進(jìn)PBFT算法Q-PBFT,該算法由共識(shí)節(jié)點(diǎn)篩選算法和一致性協(xié)議改進(jìn)算法兩部分組成。在共識(shí)節(jié)點(diǎn)篩選算法中,首先基于區(qū)塊鏈節(jié)點(diǎn)的QoS值篩選出具有高QoS值的節(jié)點(diǎn)構(gòu)成候選共識(shí)集群,然后提出集群的動(dòng)態(tài)調(diào)整和輪換策略,在共識(shí)過程中識(shí)別和移除拜占庭節(jié)點(diǎn),并允許高QoS值新節(jié)點(diǎn)接入,以此提高系統(tǒng)的動(dòng)態(tài)性和健壯性;在一致性協(xié)議改進(jìn)算法中,將傳統(tǒng)PBFT算法中的三階段廣播協(xié)議優(yōu)化為二階段協(xié)議,通過減少通信復(fù)雜度提高共識(shí)效率,并設(shè)計(jì)了廣播消息的數(shù)據(jù)格式,使算法能夠識(shí)別拜占庭節(jié)點(diǎn)。Q-PBFT算法天然地契合云制造服務(wù)場(chǎng)景,本文也通過理論分析和實(shí)驗(yàn)分析表明Q-PBFT算法能夠在滿足安全性的前提下,減少帶寬消耗、降低共識(shí)時(shí)延,從而提升基于區(qū)塊鏈的云制造服務(wù)平臺(tái)的性能。
本章將對(duì)本研究所涉及的研究背景、重要概念給出詳細(xì)描述,以便后續(xù)討論。
一個(gè)典型的云制造服務(wù)平臺(tái)主要包括制造服務(wù)提供者、制造服務(wù)和服務(wù)使用者3類實(shí)體。其中制造服務(wù)提供者將制造資源和能力封裝成制造服務(wù)的形式發(fā)布在平臺(tái)上,制造服務(wù)包括一些服務(wù)基本信息,如服務(wù)名稱、服務(wù)標(biāo)簽、服務(wù)描述、服務(wù)發(fā)布時(shí)間、服務(wù)價(jià)格、服務(wù)質(zhì)量等,服務(wù)使用者可以根據(jù)自身制造需求從平臺(tái)上選擇一個(gè)或多個(gè)服務(wù)。云制造服務(wù)平臺(tái)通常能夠自動(dòng)匹配用戶需求和服務(wù)資源,匹配完成后,用戶可以按需購買。服務(wù)的交易信息,如服務(wù)購買數(shù)量、服務(wù)交易時(shí)間等將記錄在云制造服務(wù)平臺(tái)上[9]。
近年來,一些學(xué)者通過引入?yún)^(qū)塊鏈技術(shù)建立了基于區(qū)塊鏈的云制造服務(wù)平臺(tái),王強(qiáng)等[10]建立了云制造服務(wù)交易信息的多鏈數(shù)據(jù)存儲(chǔ)架構(gòu),通過定制智能合約實(shí)現(xiàn)了制造服務(wù)的安全匹配與可信交易;徐雪松等[11]通過構(gòu)建分層擴(kuò)展式區(qū)塊鏈,擴(kuò)展了不同資源能力的制造型企業(yè)在云服務(wù)平臺(tái)高效區(qū)塊的操作,同時(shí)確保了端到端的數(shù)據(jù)安全。GAO等[12]在基于區(qū)塊鏈的云服務(wù)平臺(tái)中,借鑒比特幣的概念設(shè)計(jì)了自定義通證Stoken作為價(jià)值傳遞的媒介,并圍繞Stoken設(shè)計(jì)了一系列激勵(lì)機(jī)制以促進(jìn)云服務(wù)平臺(tái)的繁榮。
利用區(qū)塊鏈搭建云制造服務(wù)平臺(tái),就可以通過區(qū)塊鏈記錄服務(wù)的基本信息和交易信息,并用區(qū)塊鏈獨(dú)特的分布式鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)和密碼學(xué)技術(shù)保證這些數(shù)據(jù)的真實(shí)性。數(shù)據(jù)一旦上鏈就不可刪除和修改,從而避免惡意攻擊篡改數(shù)據(jù),有效提高云制造服務(wù)平臺(tái)的信譽(yù)。同時(shí),區(qū)塊鏈還可以保證交易全過程可追溯,當(dāng)服務(wù)提供者和使用者之間出現(xiàn)交易糾紛時(shí),這些可溯源的信息將成為有力的證據(jù)。
區(qū)塊鏈根據(jù)應(yīng)用場(chǎng)景的不同分為公有鏈和聯(lián)盟鏈[13]。在公有鏈中,任何節(jié)點(diǎn)都可以自由加入和退出網(wǎng)絡(luò),節(jié)點(diǎn)完全不可信,數(shù)據(jù)的可信性由復(fù)雜的共識(shí)算法(如PoW)保證;在聯(lián)盟鏈中,節(jié)點(diǎn)背后都有與其對(duì)應(yīng)的實(shí)體組織機(jī)構(gòu),由這些組織機(jī)構(gòu)組成聯(lián)盟,共同維護(hù)區(qū)塊鏈平臺(tái)安全運(yùn)轉(zhuǎn)。云制造服務(wù)業(yè)的場(chǎng)景與聯(lián)盟鏈的應(yīng)用場(chǎng)景高度吻合,云制造服務(wù)業(yè)中的所有企業(yè)可以構(gòu)成一個(gè)云制造服務(wù)聯(lián)盟。聯(lián)盟中的制造型企業(yè)在提供云制造服務(wù)的同時(shí)以節(jié)點(diǎn)的形式接入?yún)^(qū)塊鏈網(wǎng)絡(luò),由企業(yè)為節(jié)點(diǎn)背書,共同維護(hù)云制造服務(wù)平臺(tái)安全運(yùn)轉(zhuǎn)。本文所優(yōu)化的PBFT算法正是一種廣泛應(yīng)用于聯(lián)盟鏈中的共識(shí)算法。
根據(jù)其在網(wǎng)絡(luò)中承擔(dān)的職責(zé)不同,區(qū)塊鏈節(jié)點(diǎn)主要分為共識(shí)節(jié)點(diǎn)和記賬節(jié)點(diǎn)兩類[14]。共識(shí)節(jié)點(diǎn)根據(jù)共識(shí)協(xié)議達(dá)成的一致性結(jié)果產(chǎn)生數(shù)據(jù)區(qū)塊,并保證區(qū)塊信息的一致性和正確性;記賬節(jié)點(diǎn)進(jìn)一步驗(yàn)證所產(chǎn)生區(qū)塊信息的合法性,并將通過驗(yàn)證的區(qū)塊記錄在本地賬本。區(qū)塊能否有效產(chǎn)生是決定區(qū)塊鏈網(wǎng)絡(luò)能否健康運(yùn)行的關(guān)鍵,因此云制造服務(wù)平臺(tái)需要選擇實(shí)力較強(qiáng)、信譽(yù)良好的企業(yè)參與維護(hù)共識(shí)節(jié)點(diǎn),聯(lián)盟中的其他企業(yè)負(fù)責(zé)維護(hù)記賬節(jié)點(diǎn)。共識(shí)節(jié)點(diǎn)和記賬節(jié)點(diǎn)在一定的條件下可以相互轉(zhuǎn)換。因?yàn)楣沧R(shí)節(jié)點(diǎn)通常需要根據(jù)已有區(qū)塊鏈內(nèi)容驗(yàn)證交易信息的合法性,所以本文提到的共識(shí)節(jié)點(diǎn)同時(shí)也承擔(dān)著記賬功能。
PBFT算法[8]包括客戶端、主節(jié)點(diǎn)、從節(jié)點(diǎn)3種角色。客戶端是消息的發(fā)送方,需要記錄云制造服務(wù)平臺(tái)中的所有信息,例如發(fā)布的服務(wù)信息、服務(wù)交易信息等統(tǒng)稱為消息,由客戶端發(fā)送到共識(shí)節(jié)點(diǎn)集群請(qǐng)求共識(shí);主節(jié)點(diǎn)和從節(jié)點(diǎn)均為共識(shí)節(jié)點(diǎn),通過相互配合完成共識(shí)過程。傳統(tǒng)PBFT算法的一致性協(xié)議(共識(shí)過程)包括預(yù)準(zhǔn)備階段、準(zhǔn)備階段和確認(rèn)階段3個(gè)通信階段:
(1)預(yù)準(zhǔn)備階段 主節(jié)點(diǎn)接收來自客戶端發(fā)來的消息請(qǐng)求m,為其分配編號(hào)r,生成預(yù)準(zhǔn)備消息,再廣播到所有從節(jié)點(diǎn),廣播的消息格式為〈PREPREPARE,v,r,m,d(m)〉,其中d(m)為消息的摘要(如哈希編碼),v為視圖編號(hào)。
(2)準(zhǔn)備階段 節(jié)點(diǎn)檢查預(yù)準(zhǔn)備消息的內(nèi)容,如果同意,則進(jìn)入準(zhǔn)備階段并向其他所有節(jié)點(diǎn)廣播準(zhǔn)備消息,準(zhǔn)備消息格式為〈PREPARE,v,r,m,d(m),ni〉,其中ni為第i個(gè)區(qū)塊鏈節(jié)點(diǎn)。
(3)確認(rèn)階段 當(dāng)節(jié)點(diǎn)接收到2f+1個(gè)準(zhǔn)備消息后(f為拜占庭節(jié)點(diǎn)個(gè)數(shù)),首先檢查消息是否正確,然后進(jìn)入確認(rèn)階段,即節(jié)點(diǎn)向其他所有節(jié)點(diǎn)廣播確認(rèn)消息,確認(rèn)消息格式為〈COMMIT,v,r,m,d(m),ni〉。當(dāng)節(jié)點(diǎn)收到2f+1個(gè)確認(rèn)消息后,生成區(qū)塊,向客戶端返回生成區(qū)塊的信息。
PBFT算法能夠解決拜占庭將軍問題,在即使存在一定數(shù)量拜占庭節(jié)點(diǎn)(惡意節(jié)點(diǎn))的情況下,仍然能夠在分布式節(jié)點(diǎn)間達(dá)成一致共識(shí)。然而,該算法需要所有節(jié)點(diǎn)都參與到共識(shí)過程中,而且其共識(shí)流程依賴三階段協(xié)議這種高強(qiáng)度網(wǎng)絡(luò)通信協(xié)議,因此共識(shí)集群的規(guī)模成為限制PBFT算法性能的主要因素。當(dāng)系統(tǒng)中共識(shí)節(jié)點(diǎn)的數(shù)量增加時(shí),算法的通信代價(jià)(帶寬消耗和共識(shí)時(shí)延)大幅增加。
針對(duì)該問題,學(xué)者們提出很多PBFT改進(jìn)算法,通過減少共識(shí)節(jié)點(diǎn)的規(guī)模來提升PBFT算法的效率。朱海等[15]提出基于距離的DS-PBFT算法,根據(jù)地理距離進(jìn)行分組共識(shí),在縮小共識(shí)節(jié)點(diǎn)規(guī)模的基礎(chǔ)上縮短共識(shí)節(jié)點(diǎn)間的通信距離;王海勇等[16]將投票證明(Proof of Vote, PoV)與PBFT結(jié)合,將網(wǎng)絡(luò)中的節(jié)點(diǎn)劃分為具有不同職責(zé)的節(jié)點(diǎn),由投票節(jié)點(diǎn)投票產(chǎn)生共識(shí)節(jié)點(diǎn),并監(jiān)督共識(shí)節(jié)點(diǎn)誠(chéng)實(shí)可靠地生產(chǎn)數(shù)據(jù)區(qū)塊;LAO等[17]提出應(yīng)用于物聯(lián)網(wǎng)環(huán)境的G-PBFT算法,其選擇若干個(gè)忠實(shí)可靠的、強(qiáng)健的物聯(lián)網(wǎng)設(shè)備作為共識(shí)節(jié)點(diǎn),利用物聯(lián)網(wǎng)設(shè)備防止Sybil攻擊。
以上研究分別從不同角度減少了共識(shí)集群的規(guī)模,在一定程度上提升了PBFT算法的共識(shí)效率。然而,將這些共識(shí)算法應(yīng)用在基于區(qū)塊鏈的云制造服務(wù)平臺(tái)具有局限性,例如在云環(huán)境下,很難根據(jù)地理距離進(jìn)行分組共識(shí);同時(shí)上述算法在能耗、吞吐量、延時(shí)等方面改進(jìn)后,仍然存在進(jìn)一步的優(yōu)化空間。本文正是在云制造服務(wù)場(chǎng)景下,針對(duì)上述算法進(jìn)行進(jìn)一步優(yōu)化。
QoS指標(biāo)通常用于衡量云制造服務(wù)的性能,其包含多個(gè)維度信息,如服務(wù)的可用性、可靠性、吞吐量、響應(yīng)延時(shí)、信譽(yù)等。類似地,可以用QoS值衡量區(qū)塊鏈節(jié)點(diǎn)的性能。云服務(wù)的QoS值通常體現(xiàn)了發(fā)布該服務(wù)的云制造企業(yè)的綜合實(shí)力,當(dāng)云服務(wù)具有低響應(yīng)延時(shí)和高吞吐量時(shí),企業(yè)部署的區(qū)塊鏈節(jié)點(diǎn)通常也具有較高的信息處理能力;當(dāng)云服務(wù)具有較高的信譽(yù)度時(shí),區(qū)塊鏈節(jié)點(diǎn)也不容易成為拜占庭節(jié)點(diǎn)。因此,當(dāng)一個(gè)云制造企業(yè)發(fā)布云服務(wù)并接入云制造平臺(tái)時(shí),可用其發(fā)布服務(wù)的QoS值表示其所承擔(dān)區(qū)塊鏈節(jié)點(diǎn)的QoS值,QoS值高的區(qū)塊鏈節(jié)點(diǎn)具有較高的穩(wěn)定性、信息處理能力和可信度。
由于QoS指標(biāo)包含多個(gè)維度信息,有的指標(biāo)是正指標(biāo)(值越高越好,如吞吐量、信譽(yù)等),有的指標(biāo)是負(fù)指標(biāo)(值越低越好,如響應(yīng)延時(shí)等),當(dāng)基于QoS值篩選區(qū)塊鏈共識(shí)節(jié)點(diǎn)時(shí),需要融合多個(gè)維度的QoS信息,建立一個(gè)統(tǒng)一、歸一化的QoS值計(jì)算函數(shù),即
(1)
除了上述提到的常規(guī)QoS指標(biāo)外,本文在QoS評(píng)價(jià)體系中新增一個(gè)維度指標(biāo)——共識(shí)貢獻(xiàn)度λ,用于衡量一個(gè)區(qū)塊鏈節(jié)點(diǎn)對(duì)消息達(dá)成共識(shí)這一過程所作的貢獻(xiàn),
λ=α1(1-e-β1NT)-α2(eβ2NF-1)。
(2)
式中:λ1=α1(1-e-β1NT),表示正貢獻(xiàn)度部分,NT為節(jié)點(diǎn)做出正確共識(shí)判斷的數(shù)量,α1為獎(jiǎng)勵(lì)因子,β1控制正貢獻(xiàn)度曲線的增長(zhǎng)速度;λ2=α2(eβ2NF-1),表示負(fù)貢獻(xiàn)度部分,NF為錯(cuò)誤共識(shí)判斷的數(shù)量,a2為懲罰因子,β2控制負(fù)貢獻(xiàn)度曲線的增長(zhǎng)速度。PBFT算法本質(zhì)上是少數(shù)服從多數(shù)的共識(shí)算法,在對(duì)一個(gè)消息共識(shí)的過程中,可以認(rèn)為多數(shù)節(jié)點(diǎn)的判斷即為正確判斷。令α1=1,a2=1,兩個(gè)部分的共識(shí)貢獻(xiàn)度曲線分別如圖1和圖2所示。
從圖1可見,節(jié)點(diǎn)正貢獻(xiàn)度的積累速度隨正確共識(shí)判斷數(shù)量的增加而減緩,從而降低新節(jié)點(diǎn)加入的門檻;從圖2可見,節(jié)點(diǎn)受到的懲罰會(huì)隨錯(cuò)誤共識(shí)判斷數(shù)量的增加而加重,多次作惡的節(jié)點(diǎn)再無可能得到信任。另外,增大β1和β2能夠加大貢獻(xiàn)度曲線的變化趨勢(shì)。
共識(shí)貢獻(xiàn)度是一種正指標(biāo),可以代入式(1)與常規(guī)共識(shí)指標(biāo)融合來計(jì)算統(tǒng)一的QoS值。融合后區(qū)塊鏈節(jié)點(diǎn)ni的QoS值計(jì)算公式為:
(3)
式中:λ(ni)為區(qū)塊鏈節(jié)點(diǎn)ni的共識(shí)貢獻(xiàn)度;λmax和λmin分別為所有節(jié)點(diǎn)共識(shí)貢獻(xiàn)度中的最大值和最小值;wλ為共識(shí)貢獻(xiàn)度指標(biāo)的權(quán)重。由于增加了新指標(biāo),為了保證權(quán)重的歸一化,需要調(diào)整常規(guī)QoS指標(biāo)原始的權(quán)重值。融合后常規(guī)QoS指標(biāo)的新權(quán)重
(4)
在傳統(tǒng)PBFT共識(shí)算法的基礎(chǔ)上,Q-PBFT算法的主要工作是篩選基于QoS值的共識(shí)節(jié)點(diǎn)和改進(jìn)一致性協(xié)議,本章從這兩個(gè)方面分別進(jìn)行介紹。值得注意的是,共識(shí)節(jié)點(diǎn)篩選算法和一致性協(xié)議改進(jìn)算法兩個(gè)模塊的功能相輔相成、不可分割。共識(shí)節(jié)點(diǎn)篩選算法關(guān)注的問題是如何基于已經(jīng)確定的QoS值,在每個(gè)階段建立共識(shí)集群;一致性協(xié)議改進(jìn)算法則是基于已經(jīng)建立的共識(shí)集群執(zhí)行共識(shí)算法,解決區(qū)塊生成、QoS值更新等問題。更新的QoS值也將反過來成為下階段共識(shí)節(jié)點(diǎn)篩選的依據(jù)。
假設(shè)區(qū)塊鏈節(jié)點(diǎn)總數(shù)為N,拜占庭節(jié)點(diǎn)數(shù)量為f,N>3f+1;通過篩選后,共識(shí)節(jié)點(diǎn)集群的規(guī)模為C。基于QoS值的共識(shí)節(jié)點(diǎn)篩選算法包括初始階段、淘汰階段、輪換階段3個(gè)階段,算法框架如圖3所示。
(1)初始階段 在實(shí)際的網(wǎng)絡(luò)中,如果直接從N個(gè)區(qū)塊鏈節(jié)點(diǎn)中選擇C個(gè)節(jié)點(diǎn)作為共識(shí)節(jié)點(diǎn),即使N>3f+1,也難保證C>3f′+1,f′為最終共識(shí)集群中拜占庭節(jié)點(diǎn)的數(shù)量;即使節(jié)點(diǎn)具有較高QoS值,也不能完全保證其在共識(shí)過程中的表現(xiàn)。因此,應(yīng)該避免一刀切的篩選方式,本文提出的正是一種分段篩選方案:在初始階段,對(duì)N個(gè)區(qū)塊鏈節(jié)點(diǎn)按QoS值的大小降序排序,取前P個(gè)節(jié)點(diǎn)構(gòu)成候選共識(shí)集群,C≤P≤N。P的大小取決于云服務(wù)制造聯(lián)盟中企業(yè)的信譽(yù)程度,若整體信譽(yù)度較高,則可以取一個(gè)較小的P值。
(2)過渡階段 該階段對(duì)長(zhǎng)度為P的候選共識(shí)集群進(jìn)行進(jìn)一步篩選,將共識(shí)集群的規(guī)模縮小到目標(biāo)長(zhǎng)度C。本文采用一種平穩(wěn)的過渡策略:定義共識(shí)周期T,在一個(gè)周期中,共識(shí)集群可以完成m輪共識(shí);一個(gè)周期結(jié)束后,重新計(jì)算集群中所有節(jié)點(diǎn)的QoS值,淘汰綜合表現(xiàn)最差的d個(gè)共識(shí)節(jié)點(diǎn),因此從過渡階段開始到結(jié)束,系統(tǒng)完成的共識(shí)輪數(shù)
(5)
式中?·?表示向上取整。
(3)輪換階段 該階段為過渡過程穩(wěn)定后共識(shí)算法進(jìn)入的第3個(gè)階段,且將長(zhǎng)期維持在該階段。在輪換階段,所有非共識(shí)節(jié)點(diǎn)都將加入候選列表,即在共識(shí)集群和候選列表之間建立動(dòng)態(tài)平衡:在一個(gè)共識(shí)周期T后,淘汰共識(shí)表現(xiàn)最差的d個(gè)共識(shí)節(jié)點(diǎn),候選列表中QoS值最高的d個(gè)節(jié)點(diǎn)將“晉級(jí)”到共識(shí)集群。通過輪換策略,可以提高網(wǎng)絡(luò)的動(dòng)態(tài)性和健壯性,當(dāng)一個(gè)正常的節(jié)點(diǎn)成為拜占庭節(jié)點(diǎn)后,將會(huì)在輪換階段被發(fā)現(xiàn)并被及時(shí)移出網(wǎng)絡(luò)(自動(dòng)進(jìn)入候選列表),一個(gè)新的具有高QoS值的節(jié)點(diǎn)將有機(jī)會(huì)成為共識(shí)節(jié)點(diǎn)。
共識(shí)節(jié)點(diǎn)篩選算法的3個(gè)階段均基于QoS值對(duì)節(jié)點(diǎn)進(jìn)行篩選,該QoS值是綜合考慮吞吐量、響應(yīng)延時(shí)、共識(shí)貢獻(xiàn)度等多項(xiàng)指標(biāo)的一個(gè)統(tǒng)一加權(quán)值。由于每個(gè)階段所處的時(shí)期和篩選目標(biāo)均不同,每個(gè)階段計(jì)算QoS值時(shí)應(yīng)對(duì)各種指標(biāo)考慮不同的加權(quán)系數(shù)。在初始階段,因?yàn)楣沧R(shí)過程還未開展,無法考慮共識(shí)貢獻(xiàn)度,所以完全基于常規(guī)QoS指標(biāo)對(duì)節(jié)點(diǎn)進(jìn)行初步篩選。在過渡階段,候選共識(shí)集群均為具有較高QoS值的節(jié)點(diǎn),因此主要考察共識(shí)貢獻(xiàn)度,基于共識(shí)表現(xiàn)淘汰節(jié)點(diǎn)。在輪換階段,網(wǎng)絡(luò)進(jìn)入長(zhǎng)期穩(wěn)定運(yùn)行狀態(tài),共識(shí)集群中的節(jié)點(diǎn)存在成為故障節(jié)點(diǎn)(常規(guī)QoS值降低)和拜占庭節(jié)點(diǎn)(共識(shí)貢獻(xiàn)度降低)的風(fēng)險(xiǎn),應(yīng)該綜合考慮常規(guī)QoS指標(biāo)和共識(shí)貢獻(xiàn)度;對(duì)于候選列表中的節(jié)點(diǎn),由于其未參與現(xiàn)階段共識(shí)過程,主要考察常規(guī)QoS指標(biāo),部分候選節(jié)點(diǎn)的歷史共識(shí)表現(xiàn)將成為參考。各種指標(biāo)的權(quán)重在不同階段的權(quán)重系數(shù)如表1所示,其中常規(guī)QoS指標(biāo)權(quán)重為吞吐量、響應(yīng)延時(shí)等多種常規(guī)指標(biāo)權(quán)重之和。
表1 QoS值計(jì)算權(quán)重系數(shù)表
傳統(tǒng)PBFT算法的主節(jié)點(diǎn)通過如下公式確定:
p=vmodN。
(6)
第p個(gè)節(jié)點(diǎn)會(huì)被選為主節(jié)點(diǎn),這是一種輪流坐莊的選舉方式,選舉結(jié)果具有較大的隨意性,因此選舉產(chǎn)生的主節(jié)點(diǎn)很有可能是惡意節(jié)點(diǎn),存在一定安全隱患。若主節(jié)點(diǎn)是惡意節(jié)點(diǎn),則會(huì)觸發(fā)視圖切換協(xié)議,頻繁的視圖切換會(huì)增加系統(tǒng)開銷。本文提出的一致性協(xié)議改進(jìn)算法首先優(yōu)化主節(jié)點(diǎn)選舉方案,不再按照編號(hào)選擇主節(jié)點(diǎn),而是根據(jù)QoS值選擇主節(jié)點(diǎn)。在基于QoS值篩選出的共識(shí)節(jié)點(diǎn)集群中,進(jìn)一步選擇QoS值最大的節(jié)點(diǎn)作為主節(jié)點(diǎn),其他節(jié)點(diǎn)均為副節(jié)點(diǎn)。
傳統(tǒng)的PBFT算法通過三階段協(xié)議來保證同一個(gè)視圖v、同一個(gè)編號(hào)r下消息m的一致性和正確性。假設(shè)m為正確消息,m′為錯(cuò)誤消息,若一個(gè)節(jié)點(diǎn)是拜占庭節(jié)點(diǎn),則該節(jié)點(diǎn)可能將正確消息篡改為對(duì)自己有利的錯(cuò)誤消息,稱這類惡意攻擊為正確性攻擊;也可能發(fā)送不同的消息m,m′給不同的節(jié)點(diǎn),稱這類惡意攻擊為一致性攻擊。PBFT算法可以確保網(wǎng)絡(luò)中非拜占庭節(jié)點(diǎn)處理的是消息m,v,n,而非m′,v,n。在云制造服務(wù)交易平臺(tái)中,部分企業(yè)可能發(fā)起正確性攻擊以獲得不正當(dāng)利益,例如篡改交易消息,將消費(fèi)者對(duì)服務(wù)的差評(píng)修改為好評(píng);或偽造交易消息,生成虛假訂單等。然而,企業(yè)很難從一致性攻擊中獲得利益。因此在云制造服務(wù)場(chǎng)景下,本文假設(shè)惡意節(jié)點(diǎn)只會(huì)發(fā)起正確性攻擊,不會(huì)發(fā)起一致性攻擊?;谠撉疤?,本文將對(duì)傳統(tǒng)PBFT算法中的三階段協(xié)議進(jìn)行簡(jiǎn)化,提出二階段協(xié)議,以優(yōu)化共識(shí)流程。優(yōu)化后的一致性協(xié)議算法流程示意圖如圖4所示。
設(shè)某一共識(shí)階段參與共識(shí)的區(qū)塊鏈節(jié)點(diǎn)數(shù)為N′,在區(qū)塊鏈場(chǎng)景下算法的主要流程如下:
(1)請(qǐng)求階段 主節(jié)點(diǎn)接收來自客戶端的消息請(qǐng)求m,檢查消息的合法性,包括消息的格式是否符合系統(tǒng)要求,消息的內(nèi)容是否與區(qū)塊鏈已有內(nèi)容沖突等。若檢查通過,則為消息編號(hào)、排序,并將該消息加入待共識(shí)消息列表M0,M0的內(nèi)容為{j,mj,d(mj)}。若列表長(zhǎng)度或等待時(shí)間達(dá)到設(shè)定閾值,則進(jìn)入準(zhǔn)備階段。
(2)準(zhǔn)備階段 主節(jié)點(diǎn)為消息列表M0生成準(zhǔn)備消息,準(zhǔn)備消息的格式為〈PREPARE,v,h,M0,D(M0),Sign(n0)〉,其中h為待生成區(qū)塊的高度,D(M0)為消息列表M0的摘要(梅克爾樹哈希值),Sign(n0)為主節(jié)點(diǎn)的簽名。將該準(zhǔn)備消息廣播到所有節(jié)點(diǎn),進(jìn)入確認(rèn)階段。
(3)確認(rèn)階段 副節(jié)點(diǎn)ni接收到準(zhǔn)備消息,檢查其合法性,包括數(shù)字簽名的合法性、視圖編號(hào)v、待生成區(qū)塊高度h、消息列表M0及其摘要,并逐條檢查消息的合法性,將每條消息和檢查結(jié)果添加到消息列表M1,M1的內(nèi)容為〈M11,M12,ni〉,其中M11為檢查通過的消息列表,M12為檢查不通過的消息列表。然后生成確認(rèn)消息,確認(rèn)消息的格式為〈COMMIT,v,h,M1,D(M1),Sign(ni)〉,Sign(ni)為副本節(jié)點(diǎn)ni的簽名。副節(jié)點(diǎn)將確認(rèn)消息廣播到所有節(jié)點(diǎn)。
(4)回復(fù)階段 當(dāng)某節(jié)點(diǎn)ni接收到2f+1個(gè)來自其他節(jié)點(diǎn)的確認(rèn)消息后,首先檢查確認(rèn)消息的合法性,然后對(duì)消息列表M1中的消息進(jìn)行逐條統(tǒng)計(jì),將統(tǒng)計(jì)結(jié)果添加到消息列表M2,M2的格式為{j,mj,d(mj),M2T,M2F},其中M2T是同意消息mj的節(jié)點(diǎn)集合,M2F是不同意消息mj的節(jié)點(diǎn)集合。若M2T的長(zhǎng)度大于M2F,則將消息mj寫進(jìn)區(qū)塊,最終生成的區(qū)塊為blockh。該節(jié)點(diǎn)ni生成回復(fù)消息,回復(fù)消息的格式為〈REPLY,v,h,blockh,D(blockh),M2,D(M2),Sign(ni)〉。所有副節(jié)點(diǎn)將回復(fù)消息反饋給客戶端,當(dāng)客戶端收到至少f+1個(gè)包含相同區(qū)塊信息(blockh,D(blockh))的回復(fù)消息后,即確定blockh為h高度上的區(qū)塊,包含該區(qū)塊信息的回復(fù)為有效回復(fù)??蛻舳嗽诰W(wǎng)絡(luò)中廣播區(qū)塊信息,所有記賬節(jié)點(diǎn)將最新的區(qū)塊加入?yún)^(qū)塊鏈。同時(shí),客戶端根據(jù)收到的有效回復(fù)中的信息M2評(píng)判各節(jié)點(diǎn)在共識(shí)過程中的表現(xiàn),如是否做出假陽性共識(shí)判斷(對(duì)不合法的消息檢查通過)或假陰性共識(shí)判斷(對(duì)合法的消息檢查不通過),根據(jù)共識(shí)表現(xiàn)更新節(jié)點(diǎn)的共識(shí)貢獻(xiàn)度,從而更新節(jié)點(diǎn)的QoS值。
上述一致性協(xié)議算法流程的主要執(zhí)行步驟如下:
算法1一致性協(xié)議算法流程。
1: 請(qǐng)求階段:
2: while消息列表長(zhǎng)度M0或等待時(shí)間小于設(shè)定閾值do
3: 主節(jié)點(diǎn)n0接收來自客戶端的請(qǐng)求消息m,檢查消息合法性。若檢查通過,則為消息編號(hào)、排序,并加入到待共識(shí)消息列表M0。
4: end while
5: 準(zhǔn)備階段:
6: 主節(jié)點(diǎn)為M0生成準(zhǔn)備消息PREPARE,v,h,M0,D(M0),Sign(n0)。
7: 主節(jié)點(diǎn)將準(zhǔn)備消息廣播到參與共識(shí)算法的節(jié)點(diǎn)。
8: 確認(rèn)階段:
9: for 0
10: 副節(jié)點(diǎn)ni接收到準(zhǔn)備消息,檢查準(zhǔn)備消息的合法性
11: if檢查通過then
12: 逐條檢查M0中的消息,生成檢查完畢的消息列表M1。
14: 將確認(rèn)消息廣播到所有節(jié)點(diǎn)。
15: end if
16: end for
17: 回復(fù)階段:
18: for 0≤i 19: if節(jié)點(diǎn)ni接收到2f+1個(gè)來自其他節(jié)點(diǎn)的確認(rèn)消息并檢查通過then 20: 逐條檢查M1中的所有消息,生成統(tǒng)計(jì)消息列表M2,生成區(qū)塊blockh。 22: end if 23: end for 24: if客戶端收到至少f+1個(gè)包含相同區(qū)塊blockh的回復(fù)消息then 25: 確定blockh為h高度上的區(qū)塊。 26: 評(píng)判各個(gè)節(jié)點(diǎn)的共識(shí)表現(xiàn),更新節(jié)點(diǎn)的QoS值。 27: end if 本章將從理論和實(shí)驗(yàn)兩方面對(duì)Q-PBFT算法性能進(jìn)行分析,PBFT算法和S-PBFT算法為對(duì)照方法,其中S-PBFT算法指從N個(gè)區(qū)塊鏈節(jié)點(diǎn)中選擇C個(gè)節(jié)點(diǎn)進(jìn)行共識(shí)的一類方法的統(tǒng)稱。 4.1.1 容錯(cuò)性分析 對(duì)于PBFT算法,假設(shè)網(wǎng)絡(luò)中有f個(gè)拜占庭節(jié)點(diǎn),則網(wǎng)絡(luò)需要從N-f個(gè)節(jié)點(diǎn)的回復(fù)中進(jìn)行共識(shí)判斷。由于網(wǎng)絡(luò)延遲,拜占庭節(jié)點(diǎn)的回復(fù)可能先于誠(chéng)實(shí)節(jié)點(diǎn)到達(dá),在最極端的情況下,N-f個(gè)回復(fù)包含了f個(gè)拜占庭節(jié)點(diǎn)的回復(fù),需要保證誠(chéng)實(shí)節(jié)點(diǎn)的回復(fù)個(gè)數(shù)大于拜占庭節(jié)點(diǎn)的回復(fù)個(gè)數(shù),即N-f-f>f。因此,PBFT算法最多能容納f=?(N-1)/3?個(gè)拜占庭節(jié)點(diǎn),?·?表示向下取整計(jì)算。 Q-PBFT算法和S-PBFT算法本質(zhì)上與PBFT算法一樣,都是基于少數(shù)服從多數(shù)原則的算法。類似分析,在最極端情況下需要保證C>3f′,f′為篩選后共識(shí)集群中拜占庭節(jié)點(diǎn)的個(gè)數(shù)。在初始節(jié)點(diǎn)集合滿足N>3f的前提下,由于條件限制,S-PBFT算法難以保證篩選后的集合仍然滿足容錯(cuò)性要求。Q-PBFT算法基于QoS值篩選共識(shí)節(jié)點(diǎn),使節(jié)點(diǎn)的安全性有一定保障,而且通過淘汰階段和輪換階段淘汰拜占庭節(jié)點(diǎn),可以有效保證篩選后集合的容錯(cuò)性。 4.1.2 安全性分析 本節(jié)討論在共識(shí)節(jié)點(diǎn)是拜占庭節(jié)點(diǎn)的前提下系統(tǒng)的安全性,以及系統(tǒng)能否識(shí)別出拜占庭節(jié)點(diǎn)。 若主節(jié)點(diǎn)是拜占庭節(jié)點(diǎn),則其可能將錯(cuò)誤的消息m′加入消息列表,誠(chéng)實(shí)的副節(jié)點(diǎn)ni在確認(rèn)階段通過檢查消息的合法性發(fā)現(xiàn)錯(cuò)誤消息m′,并將該檢查結(jié)果加入M12列表。副節(jié)點(diǎn)ni收到2f+1個(gè)來自其他節(jié)點(diǎn)的確認(rèn)消息,發(fā)現(xiàn)至少在f+1個(gè)確認(rèn)消息中,錯(cuò)誤消息m′在M12列表上,ni將生成不包含消息m′的blockh?;貜?fù)階段,客戶端收到f+1個(gè)不包含m′的blockh,即有f+1個(gè)節(jié)點(diǎn)對(duì)消息m′作出檢查不通過的判斷,可以判斷是主節(jié)點(diǎn)作惡,于是觸發(fā)視圖切換協(xié)議,立即更新節(jié)點(diǎn)的共識(shí)貢獻(xiàn)度并重新選舉主節(jié)點(diǎn)。 若副節(jié)點(diǎn)ni是拜占庭節(jié)點(diǎn),則其可能在確認(rèn)階段對(duì)正確的消息m做出錯(cuò)誤的共識(shí)(例如對(duì)消息m檢查不通過,或替換成偽造的消息m′并檢查通過)。由于錯(cuò)誤的共識(shí)最多有f個(gè),根據(jù)誠(chéng)實(shí)的f+1個(gè)節(jié)點(diǎn)的共識(shí)判斷情況,錯(cuò)誤的共識(shí)結(jié)果不會(huì)被加入?yún)^(qū)塊,而且錯(cuò)誤的共識(shí)判斷將會(huì)被記錄,因此可以判斷ni是拜占庭節(jié)點(diǎn)。副節(jié)點(diǎn)ni也可能直接將消息m′加入?yún)^(qū)塊,該錯(cuò)誤的區(qū)塊在回復(fù)階段會(huì)被客戶端發(fā)現(xiàn),而且包含該錯(cuò)誤區(qū)塊的回復(fù)消息也將作為無效消息處理。在一個(gè)共識(shí)周期完成后,拜占庭節(jié)點(diǎn)因做出錯(cuò)誤的共識(shí)判斷而可能會(huì)被輪換。 綜上分析,無論主節(jié)點(diǎn)作惡還是副節(jié)點(diǎn)作惡,本文提出的Q-PBFT算法中的一致性協(xié)議改進(jìn)算法均能保證系統(tǒng)安全運(yùn)行,并可及時(shí)識(shí)別共識(shí)集群中出現(xiàn)的拜占庭節(jié)點(diǎn),通過淘汰和輪換策略進(jìn)一步提高系統(tǒng)的安全性。 4.1.3 通信次數(shù)分析 在傳統(tǒng)PBFT算法中,所有節(jié)點(diǎn)都將參與共識(shí)過程,而且在單次共識(shí)過程中,需要完成一次單節(jié)點(diǎn)全網(wǎng)廣播和兩次全節(jié)點(diǎn)全網(wǎng)廣播,因此單次共識(shí)過程總通信次數(shù) countPBFT=N-1+(N-1)(N-1)+ N(N-1)=2N2-2N。 (7) S-PBFT算法減少了共識(shí)集群的規(guī)模,因此單次共識(shí)過程總通信次數(shù) countS-PBFT=2C2-2C。 (8) 本文所提Q-PBFT算法,基于QoS值篩選,通過多階段策略動(dòng)態(tài)地減小共識(shí)集群的規(guī)模,而且對(duì)一致性協(xié)議過程進(jìn)行了簡(jiǎn)化,在單次共識(shí)中減少了一次全網(wǎng)廣播。設(shè)共識(shí)過程某一階段的共識(shí)節(jié)點(diǎn)數(shù)為N′,則單次共識(shí)過程總通信次數(shù) countQ-PBFT=N′-1+(N′-1)(N′-1) =N′2-N′。 (9) 當(dāng)共識(shí)過程進(jìn)入輪換穩(wěn)定階段后,設(shè)h′為當(dāng)前區(qū)塊高度,則網(wǎng)絡(luò)中單次共識(shí)的平均通信次數(shù) (10) 4.2.1 數(shù)據(jù)集及實(shí)驗(yàn)環(huán)境介紹 WSDream[18]是做Web服務(wù)研究常用的數(shù)據(jù)集,其記錄了2 699個(gè)服務(wù)提供商向339個(gè)用戶提供的5 825個(gè)服務(wù)的QoS值,如傳輸延遲等。本文首先對(duì)該數(shù)據(jù)集進(jìn)行清洗(如刪除負(fù)值和異常較大值),然后統(tǒng)計(jì)服務(wù)提供商提供服務(wù)的平均傳輸延遲。一個(gè)服務(wù)提供商代表一個(gè)云制造企業(yè),本文用平均傳輸延遲作為云制造企業(yè)的常規(guī)QoS值,該QoS值將作為篩選共識(shí)節(jié)點(diǎn)的標(biāo)準(zhǔn)。 本文配置了5臺(tái)基于i7-6700處理器、32 GB內(nèi)存、Ubuntu 18.04操作系統(tǒng)的服務(wù)器,通過Python對(duì)PBFT,Q-PBFT等算法進(jìn)行數(shù)學(xué)仿真。受限于實(shí)驗(yàn)環(huán)境,在不影響實(shí)驗(yàn)結(jié)論的前提下,本文從2 699個(gè)云制造型企業(yè)中隨機(jī)選擇100個(gè)企業(yè)進(jìn)行實(shí)驗(yàn),每個(gè)企業(yè)部署一個(gè)虛擬區(qū)塊鏈節(jié)點(diǎn),因此本實(shí)驗(yàn)在5臺(tái)服務(wù)器上最多虛擬100個(gè)節(jié)點(diǎn)。本文用QoS指標(biāo)中的傳輸延遲加上節(jié)點(diǎn)間的實(shí)際通信時(shí)延作為共識(shí)節(jié)點(diǎn)處理消息、傳輸消息的真實(shí)延遲,以此在實(shí)驗(yàn)中體現(xiàn)QoS值對(duì)區(qū)塊鏈節(jié)點(diǎn)性能的影響。 實(shí)驗(yàn)中的一些參數(shù)設(shè)置如下:初始候選共識(shí)集群規(guī)模P=50,最終共識(shí)集群規(guī)模C=30;一個(gè)共識(shí)周期包含共識(shí)次數(shù)m=5,淘汰及輪換列表長(zhǎng)度d=4;主節(jié)點(diǎn)每隔Δt=0.1 s發(fā)起一次共識(shí)請(qǐng)求。 4.2.2 共識(shí)時(shí)延分析 共識(shí)時(shí)延指從主節(jié)點(diǎn)發(fā)起一次共識(shí)請(qǐng)求到整個(gè)共識(shí)過程完成所需要的時(shí)間,較低的共識(shí)時(shí)延意味著系統(tǒng)能更快地確認(rèn)消息并具有更高的吞吐量,因此共識(shí)時(shí)延是衡量區(qū)塊鏈性能的重要指標(biāo),其計(jì)算公式為 delay=tfinish-treq。 (11) 式中:treq為發(fā)起某一共識(shí)過程的時(shí)刻;tfinish為該共識(shí)過程結(jié)束的時(shí)刻。 實(shí)驗(yàn)1設(shè)置區(qū)塊鏈節(jié)點(diǎn)總數(shù)為100,觀察隨著共識(shí)過程的進(jìn)行,Q-PBFT算法共識(shí)時(shí)延的變化。 Q-PBFT算法共識(shí)時(shí)延變化曲線如圖5所示,可見隨著共識(shí)次數(shù)的增加,Q-PBFT算法的共識(shí)時(shí)延在整體上呈現(xiàn)下降的趨勢(shì),最終穩(wěn)定在0.54 s。在過渡階段,由于共識(shí)節(jié)點(diǎn)淘汰過程發(fā)生在一個(gè)共識(shí)周期的結(jié)束階段(如圖5),一個(gè)共識(shí)周期內(nèi)的共識(shí)時(shí)延不會(huì)有明顯變化。只有在一個(gè)共識(shí)周期的結(jié)束階段,共識(shí)集群規(guī)模減小,才會(huì)導(dǎo)致新周期內(nèi)的共識(shí)時(shí)延降低。 實(shí)驗(yàn)2設(shè)置區(qū)塊鏈節(jié)點(diǎn)數(shù)由10增加到100,比較PBFT算法、S-PBFT算法、Q-PBFT算法、QPBFT_1算法的平均共識(shí)時(shí)延。S-PBFT算法隨機(jī)篩選共識(shí)節(jié)點(diǎn);Q-PBFT_1算法是Q-PBFT算法的退化版本,只執(zhí)行基于QoS值的共識(shí)節(jié)點(diǎn)篩選算法,不執(zhí)行優(yōu)化的一致性協(xié)議。 實(shí)驗(yàn)2的實(shí)驗(yàn)結(jié)果如圖6所示,圖中橫坐標(biāo)下每個(gè)節(jié)點(diǎn)數(shù)所對(duì)應(yīng)的共識(shí)時(shí)延為多次共識(shí)過程的平均共識(shí)時(shí)延。 由圖7可知,當(dāng)N≤30時(shí),4種算法的共識(shí)時(shí)延均隨區(qū)塊鏈節(jié)點(diǎn)數(shù)的增加而增加;當(dāng)N>30時(shí),PBFT算法的共識(shí)時(shí)延隨區(qū)塊鏈節(jié)點(diǎn)數(shù)的增加繼續(xù)增加,而S-PBFT算法、Q-PBFT算法、Q-PBFT_1算法因?yàn)閷⒐沧R(shí)集群的規(guī)??刂圃?0,所以共識(shí)時(shí)延沒有顯著變化。S-PBFT算法中的共識(shí)節(jié)點(diǎn)為隨機(jī)篩選,部分節(jié)點(diǎn)可能有較大的數(shù)據(jù)傳輸時(shí)延,因此其共識(shí)時(shí)延高于Q-PBFT_1算法。Q-PBFT算法在Q-PBFT_1算法的基礎(chǔ)上進(jìn)一步優(yōu)化了一致性協(xié)議。因此在各種節(jié)點(diǎn)數(shù)量下,Q-PBFT算法均體現(xiàn)出了最優(yōu)的共識(shí)性能。 近年來,基于區(qū)塊鏈技術(shù)建立一個(gè)安全的、多方可信的云制造服務(wù)平臺(tái)成為研究趨勢(shì)。作為區(qū)塊鏈的核心技術(shù),共識(shí)算法往往決定區(qū)塊鏈系統(tǒng)的性能。然而,以PBFT算法為例的現(xiàn)有共識(shí)算法通常帶來顯著的資源消耗。QoS是衡量云制造服務(wù)性能的重要指標(biāo),在云制造服務(wù)場(chǎng)景下,本文提出Q-PBFT,從共識(shí)節(jié)點(diǎn)篩選和一致性協(xié)議改進(jìn)兩方面優(yōu)化PBFT算法。在共識(shí)節(jié)點(diǎn)篩選算法中,首先基于區(qū)塊鏈節(jié)點(diǎn)的QoS值篩選出具有高QoS值的節(jié)點(diǎn)構(gòu)成候選共識(shí)集群,然后提出集群的動(dòng)態(tài)調(diào)整和輪換策略;在一致性協(xié)議改進(jìn)算法中,將傳統(tǒng)PBFT算法中的三階段廣播協(xié)議優(yōu)化為二階段協(xié)議,通過減少通信復(fù)雜度提高共識(shí)效率,并設(shè)計(jì)了廣播消息的數(shù)據(jù)格式,使算法能夠識(shí)別拜占庭節(jié)點(diǎn)。理論分析和實(shí)驗(yàn)分析表明,Q-PBFT算法能夠在滿足安全性的前提下減少帶寬消耗、降低共識(shí)時(shí)延,從而提升基于區(qū)塊鏈的云制造服務(wù)平臺(tái)的性能。 在未來的研究中,擬搭建基于區(qū)塊鏈的云制造服務(wù)平臺(tái),將本文所提Q-PBFT算法作為共識(shí)組件接入平臺(tái)。然后圍繞該平臺(tái)開展進(jìn)一步優(yōu)化工作,如完善獎(jiǎng)懲機(jī)制、提出面向用戶隱私保護(hù)的數(shù)據(jù)存儲(chǔ)和讀取方法等,從而促進(jìn)云制造服務(wù)生態(tài)的繁榮發(fā)展。4 分析
4.1 理論分析
4.2 實(shí)驗(yàn)分析
5 結(jié)束語