• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      云制造服務(wù)場景下基于QoS值的改進PBFT算法

      2022-07-07 08:47:16范玉順郜振鋒
      計算機集成制造系統(tǒng) 2022年6期
      關(guān)鍵詞:拜占庭共識服務(wù)平臺

      伍 星,范玉順+,郜振鋒

      (1.清華大學(xué) 自動化系,北京 100084;2.清華大學(xué) 北京信息科學(xué)與技術(shù)國家研究中心,北京 100084;3.深信服科技股份有限公司,廣東 深圳 518071)

      0 引言

      近年來,隨著互聯(lián)網(wǎng)、云計算等技術(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ù))和制造能力(如計算能力、設(shè)計能力和生產(chǎn)能力)封裝成服務(wù)的形式發(fā)布在云制造服務(wù)平臺上。該平臺是一個包含了海量、異構(gòu)、多層次制造服務(wù)信息的云共享資源池,用戶可以從中查找、使用和集成制造服務(wù)以滿足自身制造需求,實現(xiàn)制造資源的按需分配和使用。

      因為云制造服務(wù)平臺承載著服務(wù)信息發(fā)布、服務(wù)資源匹配和服務(wù)系統(tǒng)管理等重要職責(zé),所以建立一個安全的、多方可信的云制造服務(wù)平臺是吸引制造企業(yè)和用戶參與,促進云制造行業(yè)繁榮發(fā)展的關(guān)鍵,然而傳統(tǒng)的中心化云制造服務(wù)平臺通常存在安全防護不足和信任機制缺失的風(fēng)險。近年來,一些學(xué)者提出將區(qū)塊鏈技術(shù)引入云制造服務(wù)平臺,試圖通過利用區(qū)塊鏈分布式、防篡改等特性來解決云制造服務(wù)平臺中的安全問題和信任危機。

      區(qū)塊鏈本質(zhì)上是部署在眾多節(jié)點上的一種分布式數(shù)據(jù)庫,為了保證這些節(jié)點上數(shù)據(jù)的正確性和一致性,共識算法發(fā)揮了重要作用[6]。主流的共識算法包括應(yīng)用于公有鏈的工作量證明(Proof of Work, PoW)[7]、股權(quán)權(quán)益證明(Proof of Stake, PoS),以及應(yīng)用于聯(lián)盟鏈的實用拜占庭容錯(Practical Byzantine Fault Tolerance, PBFT)[8]?,F(xiàn)有共識算法通常會帶來顯著的資源消耗、帶寬開銷和網(wǎng)絡(luò)延遲,難以滿足云制造服務(wù)平臺對高效性的要求。

      服務(wù)質(zhì)量(Quality of Service, QoS)是衡量云制造服務(wù)性能的重要指標,可用QoS值反映區(qū)塊鏈節(jié)點的性能。在云制造服務(wù)場景下,借鑒PBFT算法的基本思想,本文提出基于QoS值的改進PBFT算法Q-PBFT,該算法由共識節(jié)點篩選算法和一致性協(xié)議改進算法兩部分組成。在共識節(jié)點篩選算法中,首先基于區(qū)塊鏈節(jié)點的QoS值篩選出具有高QoS值的節(jié)點構(gòu)成候選共識集群,然后提出集群的動態(tài)調(diào)整和輪換策略,在共識過程中識別和移除拜占庭節(jié)點,并允許高QoS值新節(jié)點接入,以此提高系統(tǒng)的動態(tài)性和健壯性;在一致性協(xié)議改進算法中,將傳統(tǒng)PBFT算法中的三階段廣播協(xié)議優(yōu)化為二階段協(xié)議,通過減少通信復(fù)雜度提高共識效率,并設(shè)計了廣播消息的數(shù)據(jù)格式,使算法能夠識別拜占庭節(jié)點。Q-PBFT算法天然地契合云制造服務(wù)場景,本文也通過理論分析和實驗分析表明Q-PBFT算法能夠在滿足安全性的前提下,減少帶寬消耗、降低共識時延,從而提升基于區(qū)塊鏈的云制造服務(wù)平臺的性能。

      1 背景介紹

      本章將對本研究所涉及的研究背景、重要概念給出詳細描述,以便后續(xù)討論。

      1.1 云制造服務(wù)平臺和區(qū)塊鏈

      一個典型的云制造服務(wù)平臺主要包括制造服務(wù)提供者、制造服務(wù)和服務(wù)使用者3類實體。其中制造服務(wù)提供者將制造資源和能力封裝成制造服務(wù)的形式發(fā)布在平臺上,制造服務(wù)包括一些服務(wù)基本信息,如服務(wù)名稱、服務(wù)標簽、服務(wù)描述、服務(wù)發(fā)布時間、服務(wù)價格、服務(wù)質(zhì)量等,服務(wù)使用者可以根據(jù)自身制造需求從平臺上選擇一個或多個服務(wù)。云制造服務(wù)平臺通常能夠自動匹配用戶需求和服務(wù)資源,匹配完成后,用戶可以按需購買。服務(wù)的交易信息,如服務(wù)購買數(shù)量、服務(wù)交易時間等將記錄在云制造服務(wù)平臺上[9]。

      近年來,一些學(xué)者通過引入?yún)^(qū)塊鏈技術(shù)建立了基于區(qū)塊鏈的云制造服務(wù)平臺,王強等[10]建立了云制造服務(wù)交易信息的多鏈數(shù)據(jù)存儲架構(gòu),通過定制智能合約實現(xiàn)了制造服務(wù)的安全匹配與可信交易;徐雪松等[11]通過構(gòu)建分層擴展式區(qū)塊鏈,擴展了不同資源能力的制造型企業(yè)在云服務(wù)平臺高效區(qū)塊的操作,同時確保了端到端的數(shù)據(jù)安全。GAO等[12]在基于區(qū)塊鏈的云服務(wù)平臺中,借鑒比特幣的概念設(shè)計了自定義通證Stoken作為價值傳遞的媒介,并圍繞Stoken設(shè)計了一系列激勵機制以促進云服務(wù)平臺的繁榮。

      利用區(qū)塊鏈搭建云制造服務(wù)平臺,就可以通過區(qū)塊鏈記錄服務(wù)的基本信息和交易信息,并用區(qū)塊鏈獨特的分布式鏈式存儲結(jié)構(gòu)和密碼學(xué)技術(shù)保證這些數(shù)據(jù)的真實性。數(shù)據(jù)一旦上鏈就不可刪除和修改,從而避免惡意攻擊篡改數(shù)據(jù),有效提高云制造服務(wù)平臺的信譽。同時,區(qū)塊鏈還可以保證交易全過程可追溯,當(dāng)服務(wù)提供者和使用者之間出現(xiàn)交易糾紛時,這些可溯源的信息將成為有力的證據(jù)。

      區(qū)塊鏈根據(jù)應(yīng)用場景的不同分為公有鏈和聯(lián)盟鏈[13]。在公有鏈中,任何節(jié)點都可以自由加入和退出網(wǎng)絡(luò),節(jié)點完全不可信,數(shù)據(jù)的可信性由復(fù)雜的共識算法(如PoW)保證;在聯(lián)盟鏈中,節(jié)點背后都有與其對應(yīng)的實體組織機構(gòu),由這些組織機構(gòu)組成聯(lián)盟,共同維護區(qū)塊鏈平臺安全運轉(zhuǎn)。云制造服務(wù)業(yè)的場景與聯(lián)盟鏈的應(yīng)用場景高度吻合,云制造服務(wù)業(yè)中的所有企業(yè)可以構(gòu)成一個云制造服務(wù)聯(lián)盟。聯(lián)盟中的制造型企業(yè)在提供云制造服務(wù)的同時以節(jié)點的形式接入?yún)^(qū)塊鏈網(wǎng)絡(luò),由企業(yè)為節(jié)點背書,共同維護云制造服務(wù)平臺安全運轉(zhuǎn)。本文所優(yōu)化的PBFT算法正是一種廣泛應(yīng)用于聯(lián)盟鏈中的共識算法。

      1.2 共識節(jié)點和記賬節(jié)點

      根據(jù)其在網(wǎng)絡(luò)中承擔(dān)的職責(zé)不同,區(qū)塊鏈節(jié)點主要分為共識節(jié)點和記賬節(jié)點兩類[14]。共識節(jié)點根據(jù)共識協(xié)議達成的一致性結(jié)果產(chǎn)生數(shù)據(jù)區(qū)塊,并保證區(qū)塊信息的一致性和正確性;記賬節(jié)點進一步驗證所產(chǎn)生區(qū)塊信息的合法性,并將通過驗證的區(qū)塊記錄在本地賬本。區(qū)塊能否有效產(chǎn)生是決定區(qū)塊鏈網(wǎng)絡(luò)能否健康運行的關(guān)鍵,因此云制造服務(wù)平臺需要選擇實力較強、信譽良好的企業(yè)參與維護共識節(jié)點,聯(lián)盟中的其他企業(yè)負責(zé)維護記賬節(jié)點。共識節(jié)點和記賬節(jié)點在一定的條件下可以相互轉(zhuǎn)換。因為共識節(jié)點通常需要根據(jù)已有區(qū)塊鏈內(nèi)容驗證交易信息的合法性,所以本文提到的共識節(jié)點同時也承擔(dān)著記賬功能。

      1.3 PBFT算法

      PBFT算法[8]包括客戶端、主節(jié)點、從節(jié)點3種角色??蛻舳耸窍⒌陌l(fā)送方,需要記錄云制造服務(wù)平臺中的所有信息,例如發(fā)布的服務(wù)信息、服務(wù)交易信息等統(tǒng)稱為消息,由客戶端發(fā)送到共識節(jié)點集群請求共識;主節(jié)點和從節(jié)點均為共識節(jié)點,通過相互配合完成共識過程。傳統(tǒng)PBFT算法的一致性協(xié)議(共識過程)包括預(yù)準備階段、準備階段和確認階段3個通信階段:

      (1)預(yù)準備階段 主節(jié)點接收來自客戶端發(fā)來的消息請求m,為其分配編號r,生成預(yù)準備消息,再廣播到所有從節(jié)點,廣播的消息格式為〈PREPREPARE,v,r,m,d(m)〉,其中d(m)為消息的摘要(如哈希編碼),v為視圖編號。

      (2)準備階段 節(jié)點檢查預(yù)準備消息的內(nèi)容,如果同意,則進入準備階段并向其他所有節(jié)點廣播準備消息,準備消息格式為〈PREPARE,v,r,m,d(m),ni〉,其中ni為第i個區(qū)塊鏈節(jié)點。

      (3)確認階段 當(dāng)節(jié)點接收到2f+1個準備消息后(f為拜占庭節(jié)點個數(shù)),首先檢查消息是否正確,然后進入確認階段,即節(jié)點向其他所有節(jié)點廣播確認消息,確認消息格式為〈COMMIT,v,r,m,d(m),ni〉。當(dāng)節(jié)點收到2f+1個確認消息后,生成區(qū)塊,向客戶端返回生成區(qū)塊的信息。

      PBFT算法能夠解決拜占庭將軍問題,在即使存在一定數(shù)量拜占庭節(jié)點(惡意節(jié)點)的情況下,仍然能夠在分布式節(jié)點間達成一致共識。然而,該算法需要所有節(jié)點都參與到共識過程中,而且其共識流程依賴三階段協(xié)議這種高強度網(wǎng)絡(luò)通信協(xié)議,因此共識集群的規(guī)模成為限制PBFT算法性能的主要因素。當(dāng)系統(tǒng)中共識節(jié)點的數(shù)量增加時,算法的通信代價(帶寬消耗和共識時延)大幅增加。

      針對該問題,學(xué)者們提出很多PBFT改進算法,通過減少共識節(jié)點的規(guī)模來提升PBFT算法的效率。朱海等[15]提出基于距離的DS-PBFT算法,根據(jù)地理距離進行分組共識,在縮小共識節(jié)點規(guī)模的基礎(chǔ)上縮短共識節(jié)點間的通信距離;王海勇等[16]將投票證明(Proof of Vote, PoV)與PBFT結(jié)合,將網(wǎng)絡(luò)中的節(jié)點劃分為具有不同職責(zé)的節(jié)點,由投票節(jié)點投票產(chǎn)生共識節(jié)點,并監(jiān)督共識節(jié)點誠實可靠地生產(chǎn)數(shù)據(jù)區(qū)塊;LAO等[17]提出應(yīng)用于物聯(lián)網(wǎng)環(huán)境的G-PBFT算法,其選擇若干個忠實可靠的、強健的物聯(lián)網(wǎng)設(shè)備作為共識節(jié)點,利用物聯(lián)網(wǎng)設(shè)備防止Sybil攻擊。

      以上研究分別從不同角度減少了共識集群的規(guī)模,在一定程度上提升了PBFT算法的共識效率。然而,將這些共識算法應(yīng)用在基于區(qū)塊鏈的云制造服務(wù)平臺具有局限性,例如在云環(huán)境下,很難根據(jù)地理距離進行分組共識;同時上述算法在能耗、吞吐量、延時等方面改進后,仍然存在進一步的優(yōu)化空間。本文正是在云制造服務(wù)場景下,針對上述算法進行進一步優(yōu)化。

      2 QoS值計算

      QoS指標通常用于衡量云制造服務(wù)的性能,其包含多個維度信息,如服務(wù)的可用性、可靠性、吞吐量、響應(yīng)延時、信譽等。類似地,可以用QoS值衡量區(qū)塊鏈節(jié)點的性能。云服務(wù)的QoS值通常體現(xiàn)了發(fā)布該服務(wù)的云制造企業(yè)的綜合實力,當(dāng)云服務(wù)具有低響應(yīng)延時和高吞吐量時,企業(yè)部署的區(qū)塊鏈節(jié)點通常也具有較高的信息處理能力;當(dāng)云服務(wù)具有較高的信譽度時,區(qū)塊鏈節(jié)點也不容易成為拜占庭節(jié)點。因此,當(dāng)一個云制造企業(yè)發(fā)布云服務(wù)并接入云制造平臺時,可用其發(fā)布服務(wù)的QoS值表示其所承擔(dān)區(qū)塊鏈節(jié)點的QoS值,QoS值高的區(qū)塊鏈節(jié)點具有較高的穩(wěn)定性、信息處理能力和可信度。

      由于QoS指標包含多個維度信息,有的指標是正指標(值越高越好,如吞吐量、信譽等),有的指標是負指標(值越低越好,如響應(yīng)延時等),當(dāng)基于QoS值篩選區(qū)塊鏈共識節(jié)點時,需要融合多個維度的QoS信息,建立一個統(tǒng)一、歸一化的QoS值計算函數(shù),即

      (1)

      除了上述提到的常規(guī)QoS指標外,本文在QoS評價體系中新增一個維度指標——共識貢獻度λ,用于衡量一個區(qū)塊鏈節(jié)點對消息達成共識這一過程所作的貢獻,

      λ=α1(1-e-β1NT)-α2(eβ2NF-1)。

      (2)

      式中:λ1=α1(1-e-β1NT),表示正貢獻度部分,NT為節(jié)點做出正確共識判斷的數(shù)量,α1為獎勵因子,β1控制正貢獻度曲線的增長速度;λ2=α2(eβ2NF-1),表示負貢獻度部分,NF為錯誤共識判斷的數(shù)量,a2為懲罰因子,β2控制負貢獻度曲線的增長速度。PBFT算法本質(zhì)上是少數(shù)服從多數(shù)的共識算法,在對一個消息共識的過程中,可以認為多數(shù)節(jié)點的判斷即為正確判斷。令α1=1,a2=1,兩個部分的共識貢獻度曲線分別如圖1和圖2所示。

      從圖1可見,節(jié)點正貢獻度的積累速度隨正確共識判斷數(shù)量的增加而減緩,從而降低新節(jié)點加入的門檻;從圖2可見,節(jié)點受到的懲罰會隨錯誤共識判斷數(shù)量的增加而加重,多次作惡的節(jié)點再無可能得到信任。另外,增大β1和β2能夠加大貢獻度曲線的變化趨勢。

      共識貢獻度是一種正指標,可以代入式(1)與常規(guī)共識指標融合來計算統(tǒng)一的QoS值。融合后區(qū)塊鏈節(jié)點ni的QoS值計算公式為:

      (3)

      式中:λ(ni)為區(qū)塊鏈節(jié)點ni的共識貢獻度;λmax和λmin分別為所有節(jié)點共識貢獻度中的最大值和最小值;wλ為共識貢獻度指標的權(quán)重。由于增加了新指標,為了保證權(quán)重的歸一化,需要調(diào)整常規(guī)QoS指標原始的權(quán)重值。融合后常規(guī)QoS指標的新權(quán)重

      (4)

      3 Q-PBFT共識算法

      在傳統(tǒng)PBFT共識算法的基礎(chǔ)上,Q-PBFT算法的主要工作是篩選基于QoS值的共識節(jié)點和改進一致性協(xié)議,本章從這兩個方面分別進行介紹。值得注意的是,共識節(jié)點篩選算法和一致性協(xié)議改進算法兩個模塊的功能相輔相成、不可分割。共識節(jié)點篩選算法關(guān)注的問題是如何基于已經(jīng)確定的QoS值,在每個階段建立共識集群;一致性協(xié)議改進算法則是基于已經(jīng)建立的共識集群執(zhí)行共識算法,解決區(qū)塊生成、QoS值更新等問題。更新的QoS值也將反過來成為下階段共識節(jié)點篩選的依據(jù)。

      3.1 共識節(jié)點篩選

      假設(shè)區(qū)塊鏈節(jié)點總數(shù)為N,拜占庭節(jié)點數(shù)量為f,N>3f+1;通過篩選后,共識節(jié)點集群的規(guī)模為C。基于QoS值的共識節(jié)點篩選算法包括初始階段、淘汰階段、輪換階段3個階段,算法框架如圖3所示。

      (1)初始階段 在實際的網(wǎng)絡(luò)中,如果直接從N個區(qū)塊鏈節(jié)點中選擇C個節(jié)點作為共識節(jié)點,即使N>3f+1,也難保證C>3f′+1,f′為最終共識集群中拜占庭節(jié)點的數(shù)量;即使節(jié)點具有較高QoS值,也不能完全保證其在共識過程中的表現(xiàn)。因此,應(yīng)該避免一刀切的篩選方式,本文提出的正是一種分段篩選方案:在初始階段,對N個區(qū)塊鏈節(jié)點按QoS值的大小降序排序,取前P個節(jié)點構(gòu)成候選共識集群,C≤P≤N。P的大小取決于云服務(wù)制造聯(lián)盟中企業(yè)的信譽程度,若整體信譽度較高,則可以取一個較小的P值。

      (2)過渡階段 該階段對長度為P的候選共識集群進行進一步篩選,將共識集群的規(guī)??s小到目標長度C。本文采用一種平穩(wěn)的過渡策略:定義共識周期T,在一個周期中,共識集群可以完成m輪共識;一個周期結(jié)束后,重新計算集群中所有節(jié)點的QoS值,淘汰綜合表現(xiàn)最差的d個共識節(jié)點,因此從過渡階段開始到結(jié)束,系統(tǒng)完成的共識輪數(shù)

      (5)

      式中?·?表示向上取整。

      (3)輪換階段 該階段為過渡過程穩(wěn)定后共識算法進入的第3個階段,且將長期維持在該階段。在輪換階段,所有非共識節(jié)點都將加入候選列表,即在共識集群和候選列表之間建立動態(tài)平衡:在一個共識周期T后,淘汰共識表現(xiàn)最差的d個共識節(jié)點,候選列表中QoS值最高的d個節(jié)點將“晉級”到共識集群。通過輪換策略,可以提高網(wǎng)絡(luò)的動態(tài)性和健壯性,當(dāng)一個正常的節(jié)點成為拜占庭節(jié)點后,將會在輪換階段被發(fā)現(xiàn)并被及時移出網(wǎng)絡(luò)(自動進入候選列表),一個新的具有高QoS值的節(jié)點將有機會成為共識節(jié)點。

      共識節(jié)點篩選算法的3個階段均基于QoS值對節(jié)點進行篩選,該QoS值是綜合考慮吞吐量、響應(yīng)延時、共識貢獻度等多項指標的一個統(tǒng)一加權(quán)值。由于每個階段所處的時期和篩選目標均不同,每個階段計算QoS值時應(yīng)對各種指標考慮不同的加權(quán)系數(shù)。在初始階段,因為共識過程還未開展,無法考慮共識貢獻度,所以完全基于常規(guī)QoS指標對節(jié)點進行初步篩選。在過渡階段,候選共識集群均為具有較高QoS值的節(jié)點,因此主要考察共識貢獻度,基于共識表現(xiàn)淘汰節(jié)點。在輪換階段,網(wǎng)絡(luò)進入長期穩(wěn)定運行狀態(tài),共識集群中的節(jié)點存在成為故障節(jié)點(常規(guī)QoS值降低)和拜占庭節(jié)點(共識貢獻度降低)的風(fēng)險,應(yīng)該綜合考慮常規(guī)QoS指標和共識貢獻度;對于候選列表中的節(jié)點,由于其未參與現(xiàn)階段共識過程,主要考察常規(guī)QoS指標,部分候選節(jié)點的歷史共識表現(xiàn)將成為參考。各種指標的權(quán)重在不同階段的權(quán)重系數(shù)如表1所示,其中常規(guī)QoS指標權(quán)重為吞吐量、響應(yīng)延時等多種常規(guī)指標權(quán)重之和。

      表1 QoS值計算權(quán)重系數(shù)表

      3.2 一致性協(xié)議的改進

      傳統(tǒng)PBFT算法的主節(jié)點通過如下公式確定:

      p=vmodN。

      (6)

      第p個節(jié)點會被選為主節(jié)點,這是一種輪流坐莊的選舉方式,選舉結(jié)果具有較大的隨意性,因此選舉產(chǎn)生的主節(jié)點很有可能是惡意節(jié)點,存在一定安全隱患。若主節(jié)點是惡意節(jié)點,則會觸發(fā)視圖切換協(xié)議,頻繁的視圖切換會增加系統(tǒng)開銷。本文提出的一致性協(xié)議改進算法首先優(yōu)化主節(jié)點選舉方案,不再按照編號選擇主節(jié)點,而是根據(jù)QoS值選擇主節(jié)點。在基于QoS值篩選出的共識節(jié)點集群中,進一步選擇QoS值最大的節(jié)點作為主節(jié)點,其他節(jié)點均為副節(jié)點。

      傳統(tǒng)的PBFT算法通過三階段協(xié)議來保證同一個視圖v、同一個編號r下消息m的一致性和正確性。假設(shè)m為正確消息,m′為錯誤消息,若一個節(jié)點是拜占庭節(jié)點,則該節(jié)點可能將正確消息篡改為對自己有利的錯誤消息,稱這類惡意攻擊為正確性攻擊;也可能發(fā)送不同的消息m,m′給不同的節(jié)點,稱這類惡意攻擊為一致性攻擊。PBFT算法可以確保網(wǎng)絡(luò)中非拜占庭節(jié)點處理的是消息m,v,n,而非m′,v,n。在云制造服務(wù)交易平臺中,部分企業(yè)可能發(fā)起正確性攻擊以獲得不正當(dāng)利益,例如篡改交易消息,將消費者對服務(wù)的差評修改為好評;或偽造交易消息,生成虛假訂單等。然而,企業(yè)很難從一致性攻擊中獲得利益。因此在云制造服務(wù)場景下,本文假設(shè)惡意節(jié)點只會發(fā)起正確性攻擊,不會發(fā)起一致性攻擊?;谠撉疤?,本文將對傳統(tǒng)PBFT算法中的三階段協(xié)議進行簡化,提出二階段協(xié)議,以優(yōu)化共識流程。優(yōu)化后的一致性協(xié)議算法流程示意圖如圖4所示。

      設(shè)某一共識階段參與共識的區(qū)塊鏈節(jié)點數(shù)為N′,在區(qū)塊鏈場景下算法的主要流程如下:

      (1)請求階段 主節(jié)點接收來自客戶端的消息請求m,檢查消息的合法性,包括消息的格式是否符合系統(tǒng)要求,消息的內(nèi)容是否與區(qū)塊鏈已有內(nèi)容沖突等。若檢查通過,則為消息編號、排序,并將該消息加入待共識消息列表M0,M0的內(nèi)容為{j,mj,d(mj)}。若列表長度或等待時間達到設(shè)定閾值,則進入準備階段。

      (2)準備階段 主節(jié)點為消息列表M0生成準備消息,準備消息的格式為〈PREPARE,v,h,M0,D(M0),Sign(n0)〉,其中h為待生成區(qū)塊的高度,D(M0)為消息列表M0的摘要(梅克爾樹哈希值),Sign(n0)為主節(jié)點的簽名。將該準備消息廣播到所有節(jié)點,進入確認階段。

      (3)確認階段 副節(jié)點ni接收到準備消息,檢查其合法性,包括數(shù)字簽名的合法性、視圖編號v、待生成區(qū)塊高度h、消息列表M0及其摘要,并逐條檢查消息的合法性,將每條消息和檢查結(jié)果添加到消息列表M1,M1的內(nèi)容為〈M11,M12,ni〉,其中M11為檢查通過的消息列表,M12為檢查不通過的消息列表。然后生成確認消息,確認消息的格式為〈COMMIT,v,h,M1,D(M1),Sign(ni)〉,Sign(ni)為副本節(jié)點ni的簽名。副節(jié)點將確認消息廣播到所有節(jié)點。

      (4)回復(fù)階段 當(dāng)某節(jié)點ni接收到2f+1個來自其他節(jié)點的確認消息后,首先檢查確認消息的合法性,然后對消息列表M1中的消息進行逐條統(tǒng)計,將統(tǒng)計結(jié)果添加到消息列表M2,M2的格式為{j,mj,d(mj),M2T,M2F},其中M2T是同意消息mj的節(jié)點集合,M2F是不同意消息mj的節(jié)點集合。若M2T的長度大于M2F,則將消息mj寫進區(qū)塊,最終生成的區(qū)塊為blockh。該節(jié)點ni生成回復(fù)消息,回復(fù)消息的格式為〈REPLY,v,h,blockh,D(blockh),M2,D(M2),Sign(ni)〉。所有副節(jié)點將回復(fù)消息反饋給客戶端,當(dāng)客戶端收到至少f+1個包含相同區(qū)塊信息(blockh,D(blockh))的回復(fù)消息后,即確定blockh為h高度上的區(qū)塊,包含該區(qū)塊信息的回復(fù)為有效回復(fù)。客戶端在網(wǎng)絡(luò)中廣播區(qū)塊信息,所有記賬節(jié)點將最新的區(qū)塊加入?yún)^(qū)塊鏈。同時,客戶端根據(jù)收到的有效回復(fù)中的信息M2評判各節(jié)點在共識過程中的表現(xiàn),如是否做出假陽性共識判斷(對不合法的消息檢查通過)或假陰性共識判斷(對合法的消息檢查不通過),根據(jù)共識表現(xiàn)更新節(jié)點的共識貢獻度,從而更新節(jié)點的QoS值。

      上述一致性協(xié)議算法流程的主要執(zhí)行步驟如下:

      算法1一致性協(xié)議算法流程。

      1: 請求階段:

      2: while消息列表長度M0或等待時間小于設(shè)定閾值do

      3: 主節(jié)點n0接收來自客戶端的請求消息m,檢查消息合法性。若檢查通過,則為消息編號、排序,并加入到待共識消息列表M0。

      4: end while

      5: 準備階段:

      6: 主節(jié)點為M0生成準備消息PREPARE,v,h,M0,D(M0),Sign(n0)。

      7: 主節(jié)點將準備消息廣播到參與共識算法的節(jié)點。

      8: 確認階段:

      9: for 0

      10: 副節(jié)點ni接收到準備消息,檢查準備消息的合法性

      11: if檢查通過then

      12: 逐條檢查M0中的消息,生成檢查完畢的消息列表M1。

      14: 將確認消息廣播到所有節(jié)點。

      15: end if

      16: end for

      17: 回復(fù)階段:

      18: for 0≤i

      19: if節(jié)點ni接收到2f+1個來自其他節(jié)點的確認消息并檢查通過then

      20: 逐條檢查M1中的所有消息,生成統(tǒng)計消息列表M2,生成區(qū)塊blockh。

      22: end if

      23: end for

      24: if客戶端收到至少f+1個包含相同區(qū)塊blockh的回復(fù)消息then

      25: 確定blockh為h高度上的區(qū)塊。

      26: 評判各個節(jié)點的共識表現(xiàn),更新節(jié)點的QoS值。

      27: end if

      4 分析

      本章將從理論和實驗兩方面對Q-PBFT算法性能進行分析,PBFT算法和S-PBFT算法為對照方法,其中S-PBFT算法指從N個區(qū)塊鏈節(jié)點中選擇C個節(jié)點進行共識的一類方法的統(tǒng)稱。

      4.1 理論分析

      4.1.1 容錯性分析

      對于PBFT算法,假設(shè)網(wǎng)絡(luò)中有f個拜占庭節(jié)點,則網(wǎng)絡(luò)需要從N-f個節(jié)點的回復(fù)中進行共識判斷。由于網(wǎng)絡(luò)延遲,拜占庭節(jié)點的回復(fù)可能先于誠實節(jié)點到達,在最極端的情況下,N-f個回復(fù)包含了f個拜占庭節(jié)點的回復(fù),需要保證誠實節(jié)點的回復(fù)個數(shù)大于拜占庭節(jié)點的回復(fù)個數(shù),即N-f-f>f。因此,PBFT算法最多能容納f=?(N-1)/3?個拜占庭節(jié)點,?·?表示向下取整計算。

      Q-PBFT算法和S-PBFT算法本質(zhì)上與PBFT算法一樣,都是基于少數(shù)服從多數(shù)原則的算法。類似分析,在最極端情況下需要保證C>3f′,f′為篩選后共識集群中拜占庭節(jié)點的個數(shù)。在初始節(jié)點集合滿足N>3f的前提下,由于條件限制,S-PBFT算法難以保證篩選后的集合仍然滿足容錯性要求。Q-PBFT算法基于QoS值篩選共識節(jié)點,使節(jié)點的安全性有一定保障,而且通過淘汰階段和輪換階段淘汰拜占庭節(jié)點,可以有效保證篩選后集合的容錯性。

      4.1.2 安全性分析

      本節(jié)討論在共識節(jié)點是拜占庭節(jié)點的前提下系統(tǒng)的安全性,以及系統(tǒng)能否識別出拜占庭節(jié)點。

      若主節(jié)點是拜占庭節(jié)點,則其可能將錯誤的消息m′加入消息列表,誠實的副節(jié)點ni在確認階段通過檢查消息的合法性發(fā)現(xiàn)錯誤消息m′,并將該檢查結(jié)果加入M12列表。副節(jié)點ni收到2f+1個來自其他節(jié)點的確認消息,發(fā)現(xiàn)至少在f+1個確認消息中,錯誤消息m′在M12列表上,ni將生成不包含消息m′的blockh?;貜?fù)階段,客戶端收到f+1個不包含m′的blockh,即有f+1個節(jié)點對消息m′作出檢查不通過的判斷,可以判斷是主節(jié)點作惡,于是觸發(fā)視圖切換協(xié)議,立即更新節(jié)點的共識貢獻度并重新選舉主節(jié)點。

      若副節(jié)點ni是拜占庭節(jié)點,則其可能在確認階段對正確的消息m做出錯誤的共識(例如對消息m檢查不通過,或替換成偽造的消息m′并檢查通過)。由于錯誤的共識最多有f個,根據(jù)誠實的f+1個節(jié)點的共識判斷情況,錯誤的共識結(jié)果不會被加入?yún)^(qū)塊,而且錯誤的共識判斷將會被記錄,因此可以判斷ni是拜占庭節(jié)點。副節(jié)點ni也可能直接將消息m′加入?yún)^(qū)塊,該錯誤的區(qū)塊在回復(fù)階段會被客戶端發(fā)現(xiàn),而且包含該錯誤區(qū)塊的回復(fù)消息也將作為無效消息處理。在一個共識周期完成后,拜占庭節(jié)點因做出錯誤的共識判斷而可能會被輪換。

      綜上分析,無論主節(jié)點作惡還是副節(jié)點作惡,本文提出的Q-PBFT算法中的一致性協(xié)議改進算法均能保證系統(tǒng)安全運行,并可及時識別共識集群中出現(xiàn)的拜占庭節(jié)點,通過淘汰和輪換策略進一步提高系統(tǒng)的安全性。

      4.1.3 通信次數(shù)分析

      在傳統(tǒng)PBFT算法中,所有節(jié)點都將參與共識過程,而且在單次共識過程中,需要完成一次單節(jié)點全網(wǎng)廣播和兩次全節(jié)點全網(wǎng)廣播,因此單次共識過程總通信次數(shù)

      countPBFT=N-1+(N-1)(N-1)+

      N(N-1)=2N2-2N。

      (7)

      S-PBFT算法減少了共識集群的規(guī)模,因此單次共識過程總通信次數(shù)

      countS-PBFT=2C2-2C。

      (8)

      本文所提Q-PBFT算法,基于QoS值篩選,通過多階段策略動態(tài)地減小共識集群的規(guī)模,而且對一致性協(xié)議過程進行了簡化,在單次共識中減少了一次全網(wǎng)廣播。設(shè)共識過程某一階段的共識節(jié)點數(shù)為N′,則單次共識過程總通信次數(shù)

      countQ-PBFT=N′-1+(N′-1)(N′-1)

      =N′2-N′。

      (9)

      當(dāng)共識過程進入輪換穩(wěn)定階段后,設(shè)h′為當(dāng)前區(qū)塊高度,則網(wǎng)絡(luò)中單次共識的平均通信次數(shù)

      (10)

      4.2 實驗分析

      4.2.1 數(shù)據(jù)集及實驗環(huán)境介紹

      WSDream[18]是做Web服務(wù)研究常用的數(shù)據(jù)集,其記錄了2 699個服務(wù)提供商向339個用戶提供的5 825個服務(wù)的QoS值,如傳輸延遲等。本文首先對該數(shù)據(jù)集進行清洗(如刪除負值和異常較大值),然后統(tǒng)計服務(wù)提供商提供服務(wù)的平均傳輸延遲。一個服務(wù)提供商代表一個云制造企業(yè),本文用平均傳輸延遲作為云制造企業(yè)的常規(guī)QoS值,該QoS值將作為篩選共識節(jié)點的標準。

      本文配置了5臺基于i7-6700處理器、32 GB內(nèi)存、Ubuntu 18.04操作系統(tǒng)的服務(wù)器,通過Python對PBFT,Q-PBFT等算法進行數(shù)學(xué)仿真。受限于實驗環(huán)境,在不影響實驗結(jié)論的前提下,本文從2 699個云制造型企業(yè)中隨機選擇100個企業(yè)進行實驗,每個企業(yè)部署一個虛擬區(qū)塊鏈節(jié)點,因此本實驗在5臺服務(wù)器上最多虛擬100個節(jié)點。本文用QoS指標中的傳輸延遲加上節(jié)點間的實際通信時延作為共識節(jié)點處理消息、傳輸消息的真實延遲,以此在實驗中體現(xiàn)QoS值對區(qū)塊鏈節(jié)點性能的影響。

      實驗中的一些參數(shù)設(shè)置如下:初始候選共識集群規(guī)模P=50,最終共識集群規(guī)模C=30;一個共識周期包含共識次數(shù)m=5,淘汰及輪換列表長度d=4;主節(jié)點每隔Δt=0.1 s發(fā)起一次共識請求。

      4.2.2 共識時延分析

      共識時延指從主節(jié)點發(fā)起一次共識請求到整個共識過程完成所需要的時間,較低的共識時延意味著系統(tǒng)能更快地確認消息并具有更高的吞吐量,因此共識時延是衡量區(qū)塊鏈性能的重要指標,其計算公式為

      delay=tfinish-treq。

      (11)

      式中:treq為發(fā)起某一共識過程的時刻;tfinish為該共識過程結(jié)束的時刻。

      實驗1設(shè)置區(qū)塊鏈節(jié)點總數(shù)為100,觀察隨著共識過程的進行,Q-PBFT算法共識時延的變化。

      Q-PBFT算法共識時延變化曲線如圖5所示,可見隨著共識次數(shù)的增加,Q-PBFT算法的共識時延在整體上呈現(xiàn)下降的趨勢,最終穩(wěn)定在0.54 s。在過渡階段,由于共識節(jié)點淘汰過程發(fā)生在一個共識周期的結(jié)束階段(如圖5),一個共識周期內(nèi)的共識時延不會有明顯變化。只有在一個共識周期的結(jié)束階段,共識集群規(guī)模減小,才會導(dǎo)致新周期內(nèi)的共識時延降低。

      實驗2設(shè)置區(qū)塊鏈節(jié)點數(shù)由10增加到100,比較PBFT算法、S-PBFT算法、Q-PBFT算法、QPBFT_1算法的平均共識時延。S-PBFT算法隨機篩選共識節(jié)點;Q-PBFT_1算法是Q-PBFT算法的退化版本,只執(zhí)行基于QoS值的共識節(jié)點篩選算法,不執(zhí)行優(yōu)化的一致性協(xié)議。

      實驗2的實驗結(jié)果如圖6所示,圖中橫坐標下每個節(jié)點數(shù)所對應(yīng)的共識時延為多次共識過程的平均共識時延。

      由圖7可知,當(dāng)N≤30時,4種算法的共識時延均隨區(qū)塊鏈節(jié)點數(shù)的增加而增加;當(dāng)N>30時,PBFT算法的共識時延隨區(qū)塊鏈節(jié)點數(shù)的增加繼續(xù)增加,而S-PBFT算法、Q-PBFT算法、Q-PBFT_1算法因為將共識集群的規(guī)模控制在30,所以共識時延沒有顯著變化。S-PBFT算法中的共識節(jié)點為隨機篩選,部分節(jié)點可能有較大的數(shù)據(jù)傳輸時延,因此其共識時延高于Q-PBFT_1算法。Q-PBFT算法在Q-PBFT_1算法的基礎(chǔ)上進一步優(yōu)化了一致性協(xié)議。因此在各種節(jié)點數(shù)量下,Q-PBFT算法均體現(xiàn)出了最優(yōu)的共識性能。

      5 結(jié)束語

      近年來,基于區(qū)塊鏈技術(shù)建立一個安全的、多方可信的云制造服務(wù)平臺成為研究趨勢。作為區(qū)塊鏈的核心技術(shù),共識算法往往決定區(qū)塊鏈系統(tǒng)的性能。然而,以PBFT算法為例的現(xiàn)有共識算法通常帶來顯著的資源消耗。QoS是衡量云制造服務(wù)性能的重要指標,在云制造服務(wù)場景下,本文提出Q-PBFT,從共識節(jié)點篩選和一致性協(xié)議改進兩方面優(yōu)化PBFT算法。在共識節(jié)點篩選算法中,首先基于區(qū)塊鏈節(jié)點的QoS值篩選出具有高QoS值的節(jié)點構(gòu)成候選共識集群,然后提出集群的動態(tài)調(diào)整和輪換策略;在一致性協(xié)議改進算法中,將傳統(tǒng)PBFT算法中的三階段廣播協(xié)議優(yōu)化為二階段協(xié)議,通過減少通信復(fù)雜度提高共識效率,并設(shè)計了廣播消息的數(shù)據(jù)格式,使算法能夠識別拜占庭節(jié)點。理論分析和實驗分析表明,Q-PBFT算法能夠在滿足安全性的前提下減少帶寬消耗、降低共識時延,從而提升基于區(qū)塊鏈的云制造服務(wù)平臺的性能。

      在未來的研究中,擬搭建基于區(qū)塊鏈的云制造服務(wù)平臺,將本文所提Q-PBFT算法作為共識組件接入平臺。然后圍繞該平臺開展進一步優(yōu)化工作,如完善獎懲機制、提出面向用戶隱私保護的數(shù)據(jù)存儲和讀取方法等,從而促進云制造服務(wù)生態(tài)的繁榮發(fā)展。

      猜你喜歡
      拜占庭共識服務(wù)平臺
      密碼服務(wù)平臺
      打造一體化汽車服務(wù)平臺
      共識 共進 共情 共學(xué):讓“溝通之花”綻放
      論思想共識凝聚的文化向度
      拜占庭帝國的繪畫藝術(shù)及其多樣性特征初探
      論基于云的電子政務(wù)服務(wù)平臺構(gòu)建
      商量出共識
      基于云計算的民航公共信息服務(wù)平臺
      淺談初中歷史教學(xué)中的邏輯補充——從拜占庭帝國滅亡原因談起
      《西方史學(xué)通史》第三卷“拜占庭史學(xué)”部分糾繆
      古代文明(2016年1期)2016-10-21 19:35:20
      宁陕县| 九江县| 尼木县| 吉安市| 贵州省| 乌拉特中旗| 新密市| 霞浦县| 临颍县| 东兴市| 五常市| 滁州市| 云南省| 柘荣县| 井研县| 崇仁县| 郁南县| 玉林市| 古蔺县| 广宁县| 凤凰县| 高密市| 沁阳市| 明光市| 马龙县| 灵川县| 安义县| 苗栗市| 敦煌市| 香格里拉县| 曲松县| 莒南县| 双辽市| 齐齐哈尔市| 兴仁县| 林州市| 琼中| 云南省| 开鲁县| 辉县市| 大悟县|