文獻標識碼: A
DOI:10.16157/j.issn.0258-7998.190079
中文引用格式: 喬靜煒,肖紅,李穗生,等. 智能制造CPS中基于節(jié)點有效度的共識算法[J].電子技術(shù)應(yīng)用,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系統(tǒng)是計算機和物理進程的統(tǒng)一體,是集計算、通信和控制于一體的智能系統(tǒng)。CPS與物聯(lián)網(wǎng)、工業(yè)控制系統(tǒng)、工業(yè)互聯(lián)網(wǎng)等有著集成、融合的關(guān)系[1]。智能制造CPS系統(tǒng)中存在著大量的節(jié)點設(shè)備,這些設(shè)備之間需要進行相互通信來完成資源的配置、協(xié)調(diào)企業(yè)內(nèi)部資源[2],如此大量的節(jié)點設(shè)備以及節(jié)點間的通信需求使得系統(tǒng)中的數(shù)據(jù)量極為龐大。
數(shù)據(jù)安全是智能制造系統(tǒng)可靠性、可用性的核心問題[3-4],也是智能制造CPS系統(tǒng)能夠應(yīng)用在實際生產(chǎn)環(huán)境中的首要前提。系統(tǒng)中龐大的數(shù)據(jù)量給傳統(tǒng)第三方數(shù)據(jù)存儲系統(tǒng)造成了巨大的壓力。
區(qū)塊鏈是比特幣底層的核心技術(shù),本質(zhì)上是一個去中心化的分布式賬本,節(jié)點間基于一套共識機制共同維護整個區(qū)塊鏈系統(tǒng);任意節(jié)點失效或退出,整個系統(tǒng)的運行不受影響,解決了傳統(tǒng)中心化模式容易遭受攻擊、篡改的問題。共識算法是區(qū)塊鏈技術(shù)的核心,現(xiàn)有共識算法應(yīng)用于智能制造CPS系統(tǒng),還存在節(jié)點資源受限以及如何在滿足系統(tǒng)可擴展性的同時保證安全性等問題。本文針對上述問題,提出改進的共識算法。
1 相關(guān)研究
目前,學(xué)術(shù)界對共識機制做了較為廣泛的研究,其優(yōu)缺點總結(jié)[5]如表1所示。
關(guān)于區(qū)塊鏈在智能制造CPS系統(tǒng)中的應(yīng)用研究較少,但是物聯(lián)網(wǎng)在許多方面與智能制造CPS系統(tǒng)是相似的。許多專家學(xué)者對于區(qū)塊鏈在物聯(lián)網(wǎng)中的應(yīng)用研究做出了相關(guān)的探索。
針對物聯(lián)網(wǎng)節(jié)點設(shè)備眾多且設(shè)備資源受限的特點,提出了兩種應(yīng)對方法,一是構(gòu)建多層物聯(lián)網(wǎng)安全模型[6],將較低層中的所有節(jié)點視為較高層中的一個節(jié)點,區(qū)塊鏈部署在邊緣層(edge layer)以外的各個層級,在各節(jié)點間執(zhí)行共識;二是采用消除消耗較大的工作量證明(POW)機制的方法[7],由礦工為每個事務(wù)使用唯一的鍵,所有交易都要由礦工進行檢查,并對采礦者進行授權(quán),該文重點關(guān)注了通信過程中相關(guān)事務(wù)的公鑰加密。
另外,物聯(lián)網(wǎng)中眾多的智能設(shè)備帶來龐大的數(shù)據(jù)量[8],使得集中式數(shù)據(jù)中心(如云存儲)無法負擔(dān)相應(yīng)的管理任務(wù)。為此,提出基于區(qū)塊鏈的分布式云架構(gòu),在網(wǎng)絡(luò)的邊緣使用軟件定義網(wǎng)絡(luò),對邊緣節(jié)點進行控制,針對此架構(gòu)提出了Proof-of-Service機制,在該機制中,對服務(wù)提供商使用區(qū)塊鏈技術(shù)進行管理,服務(wù)請求者根據(jù)得到的服務(wù)對服務(wù)提供商進行支付和獎勵,從而維持區(qū)塊鏈網(wǎng)絡(luò)中的共識,但是沒有對該算法的性能進行分析和評價。
對于區(qū)塊鏈在物聯(lián)網(wǎng)系統(tǒng)中用戶數(shù)據(jù)隱私保護方面[9],區(qū)塊鏈技術(shù)雖然可以實現(xiàn)較為安全的數(shù)據(jù)存儲,防止惡意節(jié)點篡改數(shù)據(jù)或偽造區(qū)塊而獲取利益[10],但是保證數(shù)據(jù)安全的共識機制對資源消耗較大,物聯(lián)網(wǎng)系統(tǒng)中資源受限的設(shè)備并不能滿足其要求。文獻[11]針對區(qū)塊鏈中的工作量證明機制的可靠性、安全性及其自身存在的潛在的威脅做了詳細的分析。
使用區(qū)塊鏈對個人信息進行分散管理的平臺設(shè)計[12]中,采用了改進的共識算法——信譽評分證明算法。該算法根據(jù)節(jié)點所簽署的合約數(shù)量進行動態(tài)可信評價。與POW算法不同,該算法不再關(guān)注節(jié)點所做的工作量,而是關(guān)注節(jié)點的可信評分。但該算法需要考慮節(jié)點所簽署合約的真實性和有效性。
以上研究主要針對物聯(lián)網(wǎng)節(jié)點資源受限的特點,從體系架構(gòu)和共識算法兩個方面,通過減少節(jié)點資源消耗或直接將資源受限節(jié)點排除在共識流程之外來解決相關(guān)問題。區(qū)塊鏈系統(tǒng)本質(zhì)上通過節(jié)點共同管理來維持系統(tǒng)的安全性。但已有方法在考慮節(jié)點資源受限時犧牲了一部分安全性、削弱了系統(tǒng)的去中心化特性。本文提出一種基于節(jié)點動態(tài)有效度的共識機制,兼顧系統(tǒng)的去中心化特性與減少資源消耗。
2 算法改進
2.1 現(xiàn)有共識算法分析
工作量證明機制POW通過節(jié)點計算難題來獲得數(shù)據(jù)記錄權(quán)限,這種機制會消耗節(jié)點大量的計算資源,造成資源浪費。
權(quán)益證明機制POS根據(jù)各節(jié)點擁有的幣齡進行計算難題的難度分配:幣齡越大,節(jié)點所需要解決難題的難度越低。這使得幣齡越大的節(jié)點越容易得到數(shù)據(jù)記錄權(quán)限,繼而得到越多的獎勵。該算法導(dǎo)致系統(tǒng)中節(jié)點間的貧富差距越來越大,最終,系統(tǒng)中可以得到數(shù)據(jù)記錄權(quán)限的節(jié)點只集中在小部分擁有大量幣齡的節(jié)點中。該算法使系統(tǒng)的去中心化特性遭到了破壞,與存儲在第三方數(shù)據(jù)庫中一樣,一旦遭到惡意節(jié)點的攻擊,系統(tǒng)的安全性將大大降低。
2.2 本文所提出的共識算法
針對現(xiàn)有共識算法存在的問題,提出基于節(jié)點有效度的共識算法。首先對算法中的說法做如下約定:
約定1 將獲得數(shù)據(jù)記錄權(quán)限節(jié)點在系統(tǒng)中的分布情況稱為節(jié)點的分散性,分散性越好,越能維護系統(tǒng)的去中心化特性。
約定2 節(jié)點通信的有效性:一個節(jié)點在執(zhí)行給定目標任務(wù)時,其行為如同預(yù)期,則稱該節(jié)點的本次通信是有效的。
Input: data_for_deal、expect_value
Output:True or False
得到輸出結(jié)果的偽代碼如下:
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表示該設(shè)備接收到的待處理數(shù)據(jù),expect_value表示與待處理數(shù)據(jù)一同傳入的預(yù)期結(jié)果。當(dāng)該設(shè)備通過data_deal_function函數(shù)對data_for_deal處理后得到結(jié)果result,判斷處理結(jié)果與預(yù)期結(jié)果是否相同,如果相同,則本次通信是有效的,返回True,否則返回False。
約定3 節(jié)點有效度:指系統(tǒng)中某一節(jié)點可以有效通信的性能。描述為:一段時間內(nèi)某一節(jié)點有效通信次數(shù)與該節(jié)點在這段時間內(nèi)總共的通信次數(shù)之比。有效度越高,節(jié)點越可信。
def func_valid_percent (times_total, times_valid):
valid_percent = times_valid / times_total
其中,valid_percent表示節(jié)點的有效度,times_valid表示有效通信的次數(shù),times_total表示該節(jié)點總的通信次數(shù)。
在單位時間(約定的一段時間)內(nèi),節(jié)點之間進行信息通信,根據(jù)各節(jié)點在這段時間內(nèi)的行為計算出這段時間內(nèi)各節(jié)點的有效度并廣播至整個系統(tǒng)網(wǎng)絡(luò)。系統(tǒng)根據(jù)節(jié)點在近幾個單位時間內(nèi)的有效度評價節(jié)點的可信性:有效度合格,則節(jié)點可信,記為Trusted;有效度不合格,則節(jié)點定為可疑節(jié)點;對于可疑節(jié)點,調(diào)用func_wait()函數(shù)根據(jù)接下來的行為對其進行可信評估;對于可信節(jié)點,可信度越高的節(jié)點獲得數(shù)據(jù)記錄權(quán)限的機會越大。這樣,選取具有數(shù)據(jù)記錄權(quán)限節(jié)點的這一過程就是動態(tài)變化的,降低了因節(jié)點的某些固有特性而獨占數(shù)據(jù)記錄權(quán)限所帶來的安全問題。算法偽代碼如下:
WHILE
IF valid_percent >= valid_qualified:
node = Trusted
ELSE
IF func_wait(node) >= valid_qualified_value
node = Trusted
ELSE
node = Trobled
其中,valid_qualified表示有效度的合格值。
在該算法中,各節(jié)點的有效度成為影響節(jié)點獲取數(shù)據(jù)記錄權(quán)限的重要因素。因此,需要將系統(tǒng)中各節(jié)點的有效度排序列表進行記錄,節(jié)點有效度排序成為節(jié)點是否能夠被選為具有數(shù)據(jù)記錄權(quán)限節(jié)點的有效憑證;同時,為保證節(jié)點有效度排序列表不被篡改,提出將節(jié)點有效度排序列表的哈希值記錄在區(qū)塊頭的方法。改進后的區(qū)塊頭字段如表2所示,列表中的最后一個字段為新增加的字段。
在區(qū)塊鏈與智能制造CPS系統(tǒng)相結(jié)合的過程中,節(jié)點之間的信息交互以節(jié)點的可信性為基礎(chǔ)。當(dāng)誠實節(jié)點變?yōu)閻阂夤?jié)點后,直接影響該節(jié)點的有效度。為了更直觀地看到節(jié)點有效度的變化,及時發(fā)現(xiàn)惡意節(jié)點,提出將單位時間內(nèi)的通信有效度作為研究對象的方法,每個單位時間內(nèi)都重新記錄相關(guān)數(shù)據(jù)。同時,保證節(jié)點的通信對象不能夠局限在某個或某幾個單一節(jié)點內(nèi),且不能是在某個單位時間內(nèi)高頻次數(shù)據(jù)通信的節(jié)點,最大限度防止惡意節(jié)點的攻擊。
3 實驗
本文以智能制造CPS系統(tǒng)中各節(jié)點有效度排序作為分配數(shù)據(jù)記錄權(quán)限的指標。實驗?zāi)M了擁有4個節(jié)點的典型CPS場景,通過統(tǒng)計各節(jié)點獲得數(shù)據(jù)記錄權(quán)限的次數(shù)對典型共識算法進行驗證,并與本文提出的共識算法作對比,以此來分析本文所提出的共識算法在數(shù)據(jù)記錄權(quán)限分布的分散性方面的優(yōu)勢。
本文通過Python語言編寫程序,模擬系統(tǒng)設(shè)備交互情況;另外,為模擬節(jié)點設(shè)備計算能力不同的情況,設(shè)置了4個數(shù)據(jù)處理能力不同的節(jié)點,從節(jié)點1到節(jié)點4依次減弱。
實驗條件如下:
(1)各個節(jié)點之間進行隨機不間斷的UDP通信;
(2)進行4次時長為1小時模擬實驗,在這1小時內(nèi),系統(tǒng)多次執(zhí)行共識算法來選擇具有數(shù)據(jù)記錄權(quán)限的節(jié)點,統(tǒng)計各節(jié)點獲得數(shù)據(jù)記錄權(quán)限的次數(shù);
(3)實驗結(jié)果使用nodei和Hi分別表示4個節(jié)點和為期一個小時的實驗周期,i為變量。將節(jié)點的有效度valid_percent縮寫為vp,將節(jié)點在相應(yīng)有效度下獲得數(shù)據(jù)記錄權(quán)限的次數(shù)記為vt。
3.1 傳統(tǒng)共識算法的實驗結(jié)果及分析
3.1.1 POW共識算法實驗結(jié)果及分析
實驗結(jié)果如表3所示。圖1是該算法的實驗結(jié)果可視化展示。
結(jié)果分析:數(shù)據(jù)處理能力強的節(jié)點1獲取數(shù)據(jù)記錄權(quán)限的次數(shù)最多,系統(tǒng)去中心化特性較差。
3.1.2 POS共識算法實驗結(jié)果及分析
(1)設(shè)各節(jié)點的幣齡初始值為0,實驗結(jié)果如表4所示。圖2是該算法的實驗結(jié)果可視化展示。
結(jié)果分析:各節(jié)點初始幣齡相同時,數(shù)據(jù)記錄權(quán)限的分配受節(jié)點數(shù)據(jù)處理能力影響較大,依然集中在節(jié)點1,去中心化特性較差。
(2)各節(jié)點幣齡初始值不同:設(shè)節(jié)點4幣齡初始值為10,其他節(jié)點幣齡初始值為0,實驗結(jié)果如表5所示。圖3是該算法的實驗結(jié)果可視化展示。
結(jié)果分析:幣齡初始值不同時,獲得數(shù)據(jù)記錄權(quán)限次數(shù)較多的是數(shù)據(jù)處理能力較強的節(jié)點1和幣齡初始值較大的節(jié)點4。該算法中擁有幣齡較多的節(jié)點占據(jù)了較大的優(yōu)勢,去中心化特性差。
3.2 本文所提共識算法的實驗結(jié)果及分析
統(tǒng)計每個實驗周期中各節(jié)點通信的有效度均值,以此進行數(shù)據(jù)記錄權(quán)限的分配。表6是在節(jié)點有效度變化的情況下得到的各節(jié)點獲取數(shù)據(jù)記錄權(quán)限次數(shù)。
圖4是該算法的實驗結(jié)果可視化展示,其中,圖4(a)展示了4個節(jié)點獲得數(shù)據(jù)記錄權(quán)限次數(shù)的變化,圖4(b)展示了4次模擬實驗中,節(jié)點有效度與節(jié)點獲得數(shù)據(jù)記錄權(quán)限次數(shù)的變化趨勢之間的關(guān)系。
結(jié)果分析:從圖4(a)中可以看出,獲得數(shù)據(jù)記錄權(quán)限的節(jié)點具有較好的分散性;從圖4(b)可以看出,節(jié)點獲得數(shù)據(jù)記錄權(quán)限次數(shù)與節(jié)點有效度變化趨勢基本一致,即節(jié)點是否可以獲得數(shù)據(jù)權(quán)限主要與節(jié)點的有效度相關(guān)。
綜上可得,本文所提出的共識算法使獲得數(shù)據(jù)記錄權(quán)限的節(jié)點隨節(jié)點有效度變化呈動態(tài)分布,具有較好的分散性,較好的維護系統(tǒng)的去中心化特性。
通過節(jié)點有效度的不同分配節(jié)點的數(shù)據(jù)記錄權(quán)限,可以使得系統(tǒng)中活躍且可信的節(jié)點獲得更多的數(shù)據(jù)記錄權(quán)限。這樣,數(shù)據(jù)記錄權(quán)限將不再集中分布于系統(tǒng)中小部分節(jié)點,提高了系統(tǒng)的安全性。
3.3 算法時間復(fù)雜度等特性分析
已有共識算法與本文提出的共識算法的復(fù)雜度與可擴展性對比如表7所示。
各共識算法的執(zhí)行時間復(fù)雜度[13]如表7所示。本文所提出的算法主要時間消耗用來處理節(jié)點有效度的排序操作。由表7可以看出,本文的算法在時間復(fù)雜度方面占有一定的優(yōu)勢,此外,擴展性較好,且維護了系統(tǒng)的去中心化特性,保障了系統(tǒng)的安全。
4 結(jié)論
本文針對現(xiàn)有的共識算法在執(zhí)行過程中消耗較大的計算資源、破壞了系統(tǒng)的去中心化特性的問題,提出基于節(jié)點有效度的共識機制。實驗結(jié)果表明,改進后的共識算法使得活躍且可信的節(jié)點有更大的概率獲得數(shù)據(jù)記錄權(quán)限,且兼顧系統(tǒng)的去中心化特性與減少資源消耗問題。未來需進一步考慮節(jié)點行為評價方法及降低算法復(fù)雜性。
參考文獻
[1] Cyber-Physical Systems.信息物理系統(tǒng)白皮書(2017)[R].中國信息物理系統(tǒng)發(fā)展論壇,2017.
[2] 李馥娟,王群,錢煥延.信息物理融合系統(tǒng)研究[J].電子技術(shù)應(yīng)用,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] 崔麗珍,徐錦濤,丁福星,等.基于物聯(lián)網(wǎng)的農(nóng)業(yè)大棚氣象數(shù)據(jù)監(jiān)測系統(tǒng)設(shè)計[J].電子技術(shù)應(yīng)用,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,F(xiàn)OTIOU 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,F(xiàn)ang Liri.Blockchain-based trusted computing in social network[C].2016 2nd IEEE International Conference on Computer and Communications(ICCC),Chengdu,2016:19-22.
[13] 黃宇翔,梁志宏,黃苾,等.基于區(qū)塊鏈的供應(yīng)鏈可信數(shù)據(jù)管理[J].計算機系統(tǒng)應(yīng)用,2018,27(12):9-17.
作者信息:
喬靜煒,肖 紅,李穗生,柳少峰,周玉彬,張 騁
(廣東工業(yè)大學(xué) 計算機學(xué)院,廣東 廣州510006)