亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

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

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

        伍 星,范玉順+,郜振鋒

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

        0 引言

        近年來,隨著互聯(lián)網(wǎng)、云計算等技術(shù)的飛速發(fā)展,以及面向服務架構(gòu)(Service-Oriented Architecture, SOA)[1]、業(yè)務即服務(Business as a Service, BaaS)[2]、軟件即服務(Software as a Service, SaaS)[3]等理念的興起,制造型企業(yè)正經(jīng)歷著從傳統(tǒng)制造業(yè)向云制造服務業(yè)的深刻轉(zhuǎn)型,所承擔的角色也從產(chǎn)品提供者轉(zhuǎn)換為服務提供者[4-5]。

        在云制造模式下,制造型企業(yè)通過虛擬化技術(shù)將制造資源(如云服務器、軟件、數(shù)據(jù))和制造能力(如計算能力、設(shè)計能力和生產(chǎn)能力)封裝成服務的形式發(fā)布在云制造服務平臺上。該平臺是一個包含了海量、異構(gòu)、多層次制造服務信息的云共享資源池,用戶可以從中查找、使用和集成制造服務以滿足自身制造需求,實現(xiàn)制造資源的按需分配和使用。

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

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

        服務質(zhì)量(Quality of Service, QoS)是衡量云制造服務性能的重要指標,可用QoS值反映區(qū)塊鏈節(jié)點的性能。在云制造服務場景下,借鑒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é)議,通過減少通信復雜度提高共識效率,并設(shè)計了廣播消息的數(shù)據(jù)格式,使算法能夠識別拜占庭節(jié)點。Q-PBFT算法天然地契合云制造服務場景,本文也通過理論分析和實驗分析表明Q-PBFT算法能夠在滿足安全性的前提下,減少帶寬消耗、降低共識時延,從而提升基于區(qū)塊鏈的云制造服務平臺的性能。

        1 背景介紹

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

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

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

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

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

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

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

        根據(jù)其在網(wǎng)絡中承擔的職責不同,區(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)絡能否健康運行的關(guān)鍵,因此云制造服務平臺需要選擇實力較強、信譽良好的企業(yè)參與維護共識節(jié)點,聯(lián)盟中的其他企業(yè)負責維護記賬節(jié)點。共識節(jié)點和記賬節(jié)點在一定的條件下可以相互轉(zhuǎn)換。因為共識節(jié)點通常需要根據(jù)已有區(qū)塊鏈內(nèi)容驗證交易信息的合法性,所以本文提到的共識節(jié)點同時也承擔著記賬功能。

        1.3 PBFT算法

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

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

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

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

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

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

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

        2 QoS值計算

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

        由于QoS指標包含多個維度信息,有的指標是正指標(值越高越好,如吞吐量、信譽等),有的指標是負指標(值越低越好,如響應延時等),當基于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?;赒oS值的共識節(jié)點篩選算法包括初始階段、淘汰階段、輪換階段3個階段,算法框架如圖3所示。

        (1)初始階段 在實際的網(wǎng)絡中,如果直接從N個區(qū)塊鏈節(jié)點中選擇C個節(jié)點作為共識節(jié)點,即使N>3f+1,也難保證C>3f′+1,f′為最終共識集群中拜占庭節(jié)點的數(shù)量;即使節(jié)點具有較高QoS值,也不能完全保證其在共識過程中的表現(xiàn)。因此,應該避免一刀切的篩選方式,本文提出的正是一種分段篩選方案:在初始階段,對N個區(qū)塊鏈節(jié)點按QoS值的大小降序排序,取前P個節(jié)點構(gòu)成候選共識集群,C≤P≤N。P的大小取決于云服務制造聯(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)絡的動態(tài)性和健壯性,當一個正常的節(jié)點成為拜占庭節(jié)點后,將會在輪換階段被發(fā)現(xiàn)并被及時移出網(wǎng)絡(自動進入候選列表),一個新的具有高QoS值的節(jié)點將有機會成為共識節(jié)點。

        共識節(jié)點篩選算法的3個階段均基于QoS值對節(jié)點進行篩選,該QoS值是綜合考慮吞吐量、響應延時、共識貢獻度等多項指標的一個統(tǒng)一加權(quán)值。由于每個階段所處的時期和篩選目標均不同,每個階段計算QoS值時應對各種指標考慮不同的加權(quán)系數(shù)。在初始階段,因為共識過程還未開展,無法考慮共識貢獻度,所以完全基于常規(guī)QoS指標對節(jié)點進行初步篩選。在過渡階段,候選共識集群均為具有較高QoS值的節(jié)點,因此主要考察共識貢獻度,基于共識表現(xiàn)淘汰節(jié)點。在輪換階段,網(wǎng)絡進入長期穩(wěn)定運行狀態(tài),共識集群中的節(jié)點存在成為故障節(jié)點(常規(guī)QoS值降低)和拜占庭節(jié)點(共識貢獻度降低)的風險,應該綜合考慮常規(guī)QoS指標和共識貢獻度;對于候選列表中的節(jié)點,由于其未參與現(xiàn)階段共識過程,主要考察常規(guī)QoS指標,部分候選節(jié)點的歷史共識表現(xiàn)將成為參考。各種指標的權(quán)重在不同階段的權(quán)重系數(shù)如表1所示,其中常規(guī)QoS指標權(quán)重為吞吐量、響應延時等多種常規(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)絡中非拜占庭節(jié)點處理的是消息m,v,n,而非m′,v,n。在云制造服務交易平臺中,部分企業(yè)可能發(fā)起正確性攻擊以獲得不正當利益,例如篡改交易消息,將消費者對服務的差評修改為好評;或偽造交易消息,生成虛假訂單等。然而,企業(yè)很難從一致性攻擊中獲得利益。因此在云制造服務場景下,本文假設(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)回復階段 當某節(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生成回復消息,回復消息的格式為〈REPLY,v,h,blockh,D(blockh),M2,D(M2),Sign(ni)〉。所有副節(jié)點將回復消息反饋給客戶端,當客戶端收到至少f+1個包含相同區(qū)塊信息(blockh,D(blockh))的回復消息后,即確定blockh為h高度上的區(qū)塊,包含該區(qū)塊信息的回復為有效回復。客戶端在網(wǎng)絡中廣播區(qū)塊信息,所有記賬節(jié)點將最新的區(qū)塊加入?yún)^(qū)塊鏈。同時,客戶端根據(jù)收到的有效回復中的信息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: 回復階段:

        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的回復消息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)絡中有f個拜占庭節(jié)點,則網(wǎng)絡需要從N-f個節(jié)點的回復中進行共識判斷。由于網(wǎng)絡延遲,拜占庭節(jié)點的回復可能先于誠實節(jié)點到達,在最極端的情況下,N-f個回復包含了f個拜占庭節(jié)點的回復,需要保證誠實節(jié)點的回復個數(shù)大于拜占庭節(jié)點的回復個數(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?;貜碗A段,客戶端收到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ā)現(xiàn),而且包含該錯誤區(qū)塊的回復消息也將作為無效消息處理。在一個共識周期完成后,拜占庭節(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)

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

        (10)

        4.2 實驗分析

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

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

        本文配置了5臺基于i7-6700處理器、32 GB內(nèi)存、Ubuntu 18.04操作系統(tǒng)的服務器,通過Python對PBFT,Q-PBFT等算法進行數(shù)學仿真。受限于實驗環(huán)境,在不影響實驗結(jié)論的前提下,本文從2 699個云制造型企業(yè)中隨機選擇100個企業(yè)進行實驗,每個企業(yè)部署一個虛擬區(qū)塊鏈節(jié)點,因此本實驗在5臺服務器上最多虛擬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ī)模減小,才會導致新周期內(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ù)所對應的共識時延為多次共識過程的平均共識時延。

        由圖7可知,當N≤30時,4種算法的共識時延均隨區(qū)塊鏈節(jié)點數(shù)的增加而增加;當N>30時,PBFT算法的共識時延隨區(qū)塊鏈節(jié)點數(shù)的增加繼續(xù)增加,而S-PBFT算法、Q-PBFT算法、Q-PBFT_1算法因為將共識集群的規(guī)??刂圃?0,所以共識時延沒有顯著變化。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ù)建立一個安全的、多方可信的云制造服務平臺成為研究趨勢。作為區(qū)塊鏈的核心技術(shù),共識算法往往決定區(qū)塊鏈系統(tǒng)的性能。然而,以PBFT算法為例的現(xiàn)有共識算法通常帶來顯著的資源消耗。QoS是衡量云制造服務性能的重要指標,在云制造服務場景下,本文提出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é)議,通過減少通信復雜度提高共識效率,并設(shè)計了廣播消息的數(shù)據(jù)格式,使算法能夠識別拜占庭節(jié)點。理論分析和實驗分析表明,Q-PBFT算法能夠在滿足安全性的前提下減少帶寬消耗、降低共識時延,從而提升基于區(qū)塊鏈的云制造服務平臺的性能。

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

        猜你喜歡
        拜占庭共識服務平臺
        密碼服務平臺
        打造一體化汽車服務平臺
        共識 共進 共情 共學:讓“溝通之花”綻放
        論思想共識凝聚的文化向度
        拜占庭帝國的繪畫藝術(shù)及其多樣性特征初探
        論基于云的電子政務服務平臺構(gòu)建
        商量出共識
        基于云計算的民航公共信息服務平臺
        淺談初中歷史教學中的邏輯補充——從拜占庭帝國滅亡原因談起
        《西方史學通史》第三卷“拜占庭史學”部分糾繆
        古代文明(2016年1期)2016-10-21 19:35:20
        欧美高清精品一区二区| 久久久久国产亚洲AV麻豆| 日本护士一区二区三区高清热线 | 国产精品黑丝美腿美臀| 亚洲精品国产一区二区| 亚洲精品无码不卡av| 国产日韩欧美视频成人| 日本一区二区三级免费| 把女人弄爽特黄a大片| 人成午夜免费大片| 欧洲乱码伦视频免费| 日韩美女av一区二区| 亚洲乱码日产精品一二三| 日本www一道久久久免费榴莲| 精品黄色av一区二区三区| 亚洲不卡在线免费视频| 久久香蕉国产线看观看精品yw| 成人三级在线| 人妻风韵犹存av中文字幕| 黄片视频免费在线播放观看 | 午夜一区二区三区在线视频| 国产精品一区二区三区播放| 一本久道综合在线无码人妻| 可以免费在线看黄的网站| 国产视频在线播放亚洲| 日本免费视频| 蜜臀久久99精品久久久久久小说| 久久久久综合一本久道| 国产激情在线观看免费视频| 人妻少妇精品视频专区| 亚洲成人免费网址| 少妇人妻偷人中文字幕| 精品午夜福利在线观看| 成人性生交片无码免费看| 无码国产一区二区色欲| 一区二区三区国产黄色| 最近中文字幕完整版免费| 亚洲色AV性色在线观看| 中文字幕东京热一区二区人妻少妇 | 国产精品亚洲一区二区极品| 亚洲视频免费一区二区|