文獻標識碼: A
DOI:10.16157/j.issn.0258-7998.190079
中文引用格式: 喬靜煒,肖紅,李穗生,等. 智能制造CPS中基于節點有效度的共識算法[J].電子技術應用,2019,45(4):118-121,126.
英文引用格式: Qiao Jingwei,Xiao Hong,Li Suisheng,et al. Consensus algorithm based on node validity in CPS[J]. Application of Electronic Technique,2019,45(4):118-121,126.
0 引言
智能制造CPS系統是計算機和物理進程的統一體,是集計算、通信和控制于一體的智能系統。CPS與物聯網、工業控制系統、工業互聯網等有著集成、融合的關系[1]。智能制造CPS系統中存在著大量的節點設備,這些設備之間需要進行相互通信來完成資源的配置、協調企業內部資源[2],如此大量的節點設備以及節點間的通信需求使得系統中的數據量極為龐大。
數據安全是智能制造系統可靠性、可用性的核心問題[3-4],也是智能制造CPS系統能夠應用在實際生產環境中的首要前提。系統中龐大的數據量給傳統第三方數據存儲系統造成了巨大的壓力。
區塊鏈是比特幣底層的核心技術,本質上是一個去中心化的分布式賬本,節點間基于一套共識機制共同維護整個區塊鏈系統;任意節點失效或退出,整個系統的運行不受影響,解決了傳統中心化模式容易遭受攻擊、篡改的問題。共識算法是區塊鏈技術的核心,現有共識算法應用于智能制造CPS系統,還存在節點資源受限以及如何在滿足系統可擴展性的同時保證安全性等問題。本文針對上述問題,提出改進的共識算法。
1 相關研究
目前,學術界對共識機制做了較為廣泛的研究,其優缺點總結[5]如表1所示。
關于區塊鏈在智能制造CPS系統中的應用研究較少,但是物聯網在許多方面與智能制造CPS系統是相似的。許多專家學者對于區塊鏈在物聯網中的應用研究做出了相關的探索。
針對物聯網節點設備眾多且設備資源受限的特點,提出了兩種應對方法,一是構建多層物聯網安全模型[6],將較低層中的所有節點視為較高層中的一個節點,區塊鏈部署在邊緣層(edge layer)以外的各個層級,在各節點間執行共識;二是采用消除消耗較大的工作量證明(POW)機制的方法[7],由礦工為每個事務使用唯一的鍵,所有交易都要由礦工進行檢查,并對采礦者進行授權,該文重點關注了通信過程中相關事務的公鑰加密。
另外,物聯網中眾多的智能設備帶來龐大的數據量[8],使得集中式數據中心(如云存儲)無法負擔相應的管理任務。為此,提出基于區塊鏈的分布式云架構,在網絡的邊緣使用軟件定義網絡,對邊緣節點進行控制,針對此架構提出了Proof-of-Service機制,在該機制中,對服務提供商使用區塊鏈技術進行管理,服務請求者根據得到的服務對服務提供商進行支付和獎勵,從而維持區塊鏈網絡中的共識,但是沒有對該算法的性能進行分析和評價。
對于區塊鏈在物聯網系統中用戶數據隱私保護方面[9],區塊鏈技術雖然可以實現較為安全的數據存儲,防止惡意節點篡改數據或偽造區塊而獲取利益[10],但是保證數據安全的共識機制對資源消耗較大,物聯網系統中資源受限的設備并不能滿足其要求。文獻[11]針對區塊鏈中的工作量證明機制的可靠性、安全性及其自身存在的潛在的威脅做了詳細的分析。
使用區塊鏈對個人信息進行分散管理的平臺設計[12]中,采用了改進的共識算法——信譽評分證明算法。該算法根據節點所簽署的合約數量進行動態可信評價。與POW算法不同,該算法不再關注節點所做的工作量,而是關注節點的可信評分。但該算法需要考慮節點所簽署合約的真實性和有效性。
以上研究主要針對物聯網節點資源受限的特點,從體系架構和共識算法兩個方面,通過減少節點資源消耗或直接將資源受限節點排除在共識流程之外來解決相關問題。區塊鏈系統本質上通過節點共同管理來維持系統的安全性。但已有方法在考慮節點資源受限時犧牲了一部分安全性、削弱了系統的去中心化特性。本文提出一種基于節點動態有效度的共識機制,兼顧系統的去中心化特性與減少資源消耗。
2 算法改進
2.1 現有共識算法分析
工作量證明機制POW通過節點計算難題來獲得數據記錄權限,這種機制會消耗節點大量的計算資源,造成資源浪費。
權益證明機制POS根據各節點擁有的幣齡進行計算難題的難度分配:幣齡越大,節點所需要解決難題的難度越低。這使得幣齡越大的節點越容易得到數據記錄權限,繼而得到越多的獎勵。該算法導致系統中節點間的貧富差距越來越大,最終,系統中可以得到數據記錄權限的節點只集中在小部分擁有大量幣齡的節點中。該算法使系統的去中心化特性遭到了破壞,與存儲在第三方數據庫中一樣,一旦遭到惡意節點的攻擊,系統的安全性將大大降低。
2.2 本文所提出的共識算法
針對現有共識算法存在的問題,提出基于節點有效度的共識算法。首先對算法中的說法做如下約定:
約定1 將獲得數據記錄權限節點在系統中的分布情況稱為節點的分散性,分散性越好,越能維護系統的去中心化特性。
約定2 節點通信的有效性:一個節點在執行給定目標任務時,其行為如同預期,則稱該節點的本次通信是有效的。
Input: data_for_deal、expect_value
Output:True or False
得到輸出結果的偽代碼如下:
def func_comm_valid(data_for_deal,expect_value):
result = data_deal_function(data_for_deal)
IF result == expect_value:
return True
ELSE:
return False
其中,data_for_deal表示該設備接收到的待處理數據,expect_value表示與待處理數據一同傳入的預期結果。當該設備通過data_deal_function函數對data_for_deal處理后得到結果result,判斷處理結果與預期結果是否相同,如果相同,則本次通信是有效的,返回True,否則返回False。
約定3 節點有效度:指系統中某一節點可以有效通信的性能。描述為:一段時間內某一節點有效通信次數與該節點在這段時間內總共的通信次數之比。有效度越高,節點越可信。
def func_valid_percent (times_total, times_valid):
valid_percent = times_valid / times_total
其中,valid_percent表示節點的有效度,times_valid表示有效通信的次數,times_total表示該節點總的通信次數。
在單位時間(約定的一段時間)內,節點之間進行信息通信,根據各節點在這段時間內的行為計算出這段時間內各節點的有效度并廣播至整個系統網絡。系統根據節點在近幾個單位時間內的有效度評價節點的可信性:有效度合格,則節點可信,記為Trusted;有效度不合格,則節點定為可疑節點;對于可疑節點,調用func_wait()函數根據接下來的行為對其進行可信評估;對于可信節點,可信度越高的節點獲得數據記錄權限的機會越大。這樣,選取具有數據記錄權限節點的這一過程就是動態變化的,降低了因節點的某些固有特性而獨占數據記錄權限所帶來的安全問題。算法偽代碼如下:
WHILE
IF valid_percent >= valid_qualified:
node = Trusted
ELSE
IF func_wait(node) >= valid_qualified_value
node = Trusted
ELSE
node = Trobled
其中,valid_qualified表示有效度的合格值。
在該算法中,各節點的有效度成為影響節點獲取數據記錄權限的重要因素。因此,需要將系統中各節點的有效度排序列表進行記錄,節點有效度排序成為節點是否能夠被選為具有數據記錄權限節點的有效憑證;同時,為保證節點有效度排序列表不被篡改,提出將節點有效度排序列表的哈希值記錄在區塊頭的方法。改進后的區塊頭字段如表2所示,列表中的最后一個字段為新增加的字段。
在區塊鏈與智能制造CPS系統相結合的過程中,節點之間的信息交互以節點的可信性為基礎。當誠實節點變為惡意節點后,直接影響該節點的有效度。為了更直觀地看到節點有效度的變化,及時發現惡意節點,提出將單位時間內的通信有效度作為研究對象的方法,每個單位時間內都重新記錄相關數據。同時,保證節點的通信對象不能夠局限在某個或某幾個單一節點內,且不能是在某個單位時間內高頻次數據通信的節點,最大限度防止惡意節點的攻擊。
3 實驗
本文以智能制造CPS系統中各節點有效度排序作為分配數據記錄權限的指標。實驗模擬了擁有4個節點的典型CPS場景,通過統計各節點獲得數據記錄權限的次數對典型共識算法進行驗證,并與本文提出的共識算法作對比,以此來分析本文所提出的共識算法在數據記錄權限分布的分散性方面的優勢。
本文通過Python語言編寫程序,模擬系統設備交互情況;另外,為模擬節點設備計算能力不同的情況,設置了4個數據處理能力不同的節點,從節點1到節點4依次減弱。
實驗條件如下:
(1)各個節點之間進行隨機不間斷的UDP通信;
(2)進行4次時長為1小時模擬實驗,在這1小時內,系統多次執行共識算法來選擇具有數據記錄權限的節點,統計各節點獲得數據記錄權限的次數;
(3)實驗結果使用nodei和Hi分別表示4個節點和為期一個小時的實驗周期,i為變量。將節點的有效度valid_percent縮寫為vp,將節點在相應有效度下獲得數據記錄權限的次數記為vt。
3.1 傳統共識算法的實驗結果及分析
3.1.1 POW共識算法實驗結果及分析
實驗結果如表3所示。圖1是該算法的實驗結果可視化展示。
結果分析:數據處理能力強的節點1獲取數據記錄權限的次數最多,系統去中心化特性較差。
3.1.2 POS共識算法實驗結果及分析
(1)設各節點的幣齡初始值為0,實驗結果如表4所示。圖2是該算法的實驗結果可視化展示。
結果分析:各節點初始幣齡相同時,數據記錄權限的分配受節點數據處理能力影響較大,依然集中在節點1,去中心化特性較差。
(2)各節點幣齡初始值不同:設節點4幣齡初始值為10,其他節點幣齡初始值為0,實驗結果如表5所示。圖3是該算法的實驗結果可視化展示。
結果分析:幣齡初始值不同時,獲得數據記錄權限次數較多的是數據處理能力較強的節點1和幣齡初始值較大的節點4。該算法中擁有幣齡較多的節點占據了較大的優勢,去中心化特性差。
3.2 本文所提共識算法的實驗結果及分析
統計每個實驗周期中各節點通信的有效度均值,以此進行數據記錄權限的分配。表6是在節點有效度變化的情況下得到的各節點獲取數據記錄權限次數。
圖4是該算法的實驗結果可視化展示,其中,圖4(a)展示了4個節點獲得數據記錄權限次數的變化,圖4(b)展示了4次模擬實驗中,節點有效度與節點獲得數據記錄權限次數的變化趨勢之間的關系。
結果分析:從圖4(a)中可以看出,獲得數據記錄權限的節點具有較好的分散性;從圖4(b)可以看出,節點獲得數據記錄權限次數與節點有效度變化趨勢基本一致,即節點是否可以獲得數據權限主要與節點的有效度相關。
綜上可得,本文所提出的共識算法使獲得數據記錄權限的節點隨節點有效度變化呈動態分布,具有較好的分散性,較好的維護系統的去中心化特性。
通過節點有效度的不同分配節點的數據記錄權限,可以使得系統中活躍且可信的節點獲得更多的數據記錄權限。這樣,數據記錄權限將不再集中分布于系統中小部分節點,提高了系統的安全性。
3.3 算法時間復雜度等特性分析
已有共識算法與本文提出的共識算法的復雜度與可擴展性對比如表7所示。
各共識算法的執行時間復雜度[13]如表7所示。本文所提出的算法主要時間消耗用來處理節點有效度的排序操作。由表7可以看出,本文的算法在時間復雜度方面占有一定的優勢,此外,擴展性較好,且維護了系統的去中心化特性,保障了系統的安全。
4 結論
本文針對現有的共識算法在執行過程中消耗較大的計算資源、破壞了系統的去中心化特性的問題,提出基于節點有效度的共識機制。實驗結果表明,改進后的共識算法使得活躍且可信的節點有更大的概率獲得數據記錄權限,且兼顧系統的去中心化特性與減少資源消耗問題。未來需進一步考慮節點行為評價方法及降低算法復雜性。
參考文獻
[1] Cyber-Physical Systems.信息物理系統白皮書(2017)[R].中國信息物理系統發展論壇,2017.
[2] 李馥娟,王群,錢煥延.信息物理融合系統研究[J].電子技術應用,2018,44(9):24-28.
[3] LIU B,YU X L,CHEN S,et al.Blockchain based data integrity service framework for IoT data[C].2017 IEEE International Conference on Web Services(ICWS),Honolulu,HI,2017:468-475.
[4] 崔麗珍,徐錦濤,丁福星,等.基于物聯網的農業大棚氣象數據監測系統設計[J].電子技術應用,2018,44(12):73-76,80.
[5] Du Mingxiao,Ma Xiaofeng,Zhang Zhe,et al.A review on consensus algorithm of blockchain[C].2017 IEEE International Conference on Systems,Man,and Cybernetics(SMC),Banff,AB,2017:2567-2572.
[6] LI C,ZHANG L J.A blockchain based new secure multilayer network model for Internet of Things[C].2017 IEEE International Congress on Internet of Things(ICIOT),Honolulu,HI,2017:33-41.
[7] DORRI A,KANHERE S S,JURDAK R,et al.Blockchain for IoT security and privacy: the case study of a smart home[C].2017 IEEE International Conference on Pervasive Computing and Communications Workshops(PerCom Workshops),Kona,HI,2017:618-623.
[8] SHARMA P K,CHEN M Y,PARK J H.A software defined fog node based distributed blockchain cloud architecture for IoT[J].IEEE Access,2017,6:115-124.
[9] POLYZOS G C,FOTIOU N.Blockchain-assisted information distribution for the Internet of Things[C].2017 IEEE International Conference on Information Reuse and Integration(IRI),San Diego,CA,2017:75-78.
[10] HUH S,CHO S,KIM S.Managing IoT devices using blockchain platform[C].2017 19th International Conference on Advanced Communication Technology(ICACT),Bongpyeong,2017:464-467.
[11] CHRISTIDIS K,DEVETSIKIOTIS M.Blockchains and smart contracts for the Internet of Things[J].IEEE Access,2016,4:2292-2303.
[12] Fu Dongqi,Fang Liri.Blockchain-based trusted computing in social network[C].2016 2nd IEEE International Conference on Computer and Communications(ICCC),Chengdu,2016:19-22.
[13] 黃宇翔,梁志宏,黃苾,等.基于區塊鏈的供應鏈可信數據管理[J].計算機系統應用,2018,27(12):9-17.
作者信息:
喬靜煒,肖 紅,李穗生,柳少峰,周玉彬,張 騁
(廣東工業大學 計算機學院,廣東 廣州510006)