999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于背書特征的電力行業聯盟鏈賬本篡改攻擊檢測方法

2023-11-01 01:13:50王棟楊珂李達周啟惠張艷秋阮倩昀王瑜
電力建設 2023年11期
關鍵詞:數據庫檢測方法

王棟,楊珂,李達,周啟惠,張艷秋,阮倩昀,王瑜

(1.國網數字科技控股有限公司,北京市 100053; 2. 國網區塊鏈科技(北京)有限公司,北京市 100053;3. 國網區塊鏈應用技術實驗室,北京市 100053;4. 中國科學院信息工程研究所,北京市 100093)

0 引 言

隨著我國清潔能源的發展,綠電交易量大幅提升,傳統電力交易模式面臨綠電交易機制不完善、交易環節公開透明度不足、跨省區交易組織難[1-3]等一系列挑戰。區塊鏈因其多節點、防篡改、公開透明的特點與綠電交易的業務需求高度契合,能夠很好解決清潔能源發展過程中的業務痛點。目前依托“區塊鏈+電力交易”深度融合的關鍵技術[4-7],搭建起公開透明、高效可信的綠電交易系統。典型的綠電交易系統所依賴的區塊鏈服務以聯盟鏈為技術架構,為各類業務提供安全可信的底層區塊鏈基礎設施服務。

近年來,以比特幣[8]和以太坊[9]等為代表的公鏈多次遭受51%算力攻擊,即攻擊者通過某種方式控制全網超50%的算力,達到了篡改全網區塊鏈賬本的效果[10-14]。與公鏈不同,電力行業聯盟鏈中的共識不采用工作量證明機制,其賬本篡改攻擊不需要掌握超過全網一半的算力[15-16]。聯盟鏈為了提高鏈中數據查詢速度,采用數據庫存儲數據最新狀態,數據庫的存在為實現賬本篡改攻擊提供了可行性。因此,在電力聯盟鏈中通過篡改電力企業節點的狀態數據庫中存儲的電量值,會造成客戶端查詢數據不一致,若實施篡改電量值的惡意節點數量滿足背書策略,這便達成了惡意節點在后續的電力交易中對鏈中所有節點賬本中電量值的全局控制,對正常的電力交易活動造成惡劣影響。

面對上述攻擊,學術界目前采取的解決措施包括防護和檢測這兩大類方法。針對攻擊的防護方案能夠減少攻擊發生的概率,文獻[17]提出了一種新共識方法,該方法使得掌握51%算力的攻擊者篡改區塊鏈數據的可能性較小。文獻[18]提出了一種針對底層協議參數的補救措施,可阻止控制系統大部分資源的攻擊者對區塊鏈一致性攻擊。文獻[19]提出了一種基于歷史權重信息的方法,分析歷史區塊中礦工出現頻率并計算歷史權重難度,使得攻擊發生代價增加2個數量級。文獻[20]提出了一種區塊延遲發出的懲罰系統,基于攻擊者向網絡隱藏區塊的時間對攻擊者進行處罰。

防護方案不能完全杜絕攻擊發生,因此對攻擊的檢測也至關重要,即及時發現在鏈中發生的賬本篡改攻擊并提供預警功能。機器學習方法由于其易用及有效性,已被廣泛用于區塊鏈的異常檢測,文獻[21]提出了一種基于自動編碼器及時序模型算法的區塊鏈異常檢測方法,通過分析區塊交易統計信息成功發現了ETC上發生的51%算力攻擊。文獻[22]提出了一種針對比特幣交易的異常檢測模型,利用支持向量機和K-Means算法可以檢測出51%算力攻擊。文獻[23]使用智能軟件代理監控區塊鏈中異常行為,提出利用監督機器學習算法和博弈論算法以檢測51%算力攻擊的發生。

上述檢測方法僅面向公鏈和聯盟鏈在共識以及交易流程等方面存在巨大差異性,用機器學習方法做攻擊檢測時,需要收集的數據特征也不一樣,公鏈中的數據集以及數據集的攻擊特征無法適用于聯盟鏈。目前針對聯盟鏈賬本篡改攻擊的檢測方案較少,文獻[24]提出了一種基于規則的檢測方法,將數據庫中存儲的狀態數據與無法篡改的區塊數據進行比對,但這種方式會對區塊鏈系統本身造成很大性能負擔。惡意實用拜占庭容錯(practical Byzantine fault tolerance,PBFT)共識會導致賬本篡改攻擊,文獻[25]提出了一種利用機器學習對聯盟鏈上PBFT共識異常的檢測方案,驗證了機器學習方法對聯盟鏈上異常共識行為檢測的有效性。文獻[26]也采用機器學習方法對僅基于PBFT單一共識的聯盟鏈惡意節點進行檢測。文獻[27]利用聯盟鏈構建健康關懷系統,并使用圖卷積神經網絡檢測惡意節點。文獻[28]提出了一種基于K近鄰算法(k-nearest neighbor,KNN)聯盟鏈異常交易檢測方法,雖然此方法是針對聯盟鏈設計的,但在實驗驗證階段卻采用比特幣交易數據進行驗證,缺乏基于聯盟鏈上攻擊數據特征進行數據集構建,無法應對聯盟鏈的異常檢測需求。

針對上述問題,本文首先在電力聯盟鏈綠電交易仿真環境中實現賬本篡改攻擊,然后提取攻擊相關的多個背書特征進行數據集構建,并基于隨機森林算法設計賬本篡改攻擊在線檢測方法。本文的主要貢獻為:

1)在電力聯盟鏈綠電交易仿真環境中,基于狀態數據庫更改實現針對綠電交易場景的賬本篡改攻擊,研究并提取與攻擊有關的背書讀寫集相似度、背書時間方差、驗證時間均值和背書率4類背書特征。

2)基于背書特征構建攻擊檢測所需的數據集,采用Boosting隨機森林算法進行檢測模型訓練,并將模型非侵入式部署,在線檢測賬本篡改攻擊行為,通過閉環反饋機制的增強學習不斷提升模型的精度和健壯性。

3)通過實施多組對比實驗,與已有方法相比,本文所提方法具有耗能低、檢測精度高、不局限于單一共識算法等優點。

1 區塊鏈綠電交易平臺概述

基于能源互聯網的區塊鏈綠電交易平臺依托聯盟鏈搭建。在綠電交易業務場景中,主要由發電機構、電網企業和售電企業這三大類主體組成,以完成綠電的發電、輸送配送和售電業務。其中,發電機構生產的電能由電網企業輸送并根據用電需求向用戶分配電能,售電企業則負責電能的批發和零售等以實現電力產品價值的工作[29]。

為了提高鏈中數據查詢速度,電力聯盟鏈除了使用文件賬本外,還采用數據庫存儲區塊鏈中數據最新狀態,數據均為鍵-值(key-value)形式。交易首先被模擬執行得到讀寫集并被簽名背書,讀集代表交易模擬執行時讀到存儲在狀態數據庫中key以及key的version,version的形式是(區塊號,交易號),其代表了被更改后key值對應著的最新已完成交易所在區塊號以及交易號。寫集代表模擬執行后產生的狀態更新,即被更改key以及key對應的新value。

讀寫集示例如表1所示。假定鏈中存在發電機構、電網企業和售電企業,這3類的代表節點分別為P0、P1、P2,三個節點產生各自背書讀寫集。比如在節點P0上,keyA的version是(1, 0),代表這筆交易對keyA進行操作,并且更改了keyA值的最新已完成交易是1號區塊的0號交易,所以keyA的version為(1, 0)。在節點P0上模擬執行完當前交易后,keyA的值會變為98, 所以寫集中value為98。

表1 讀寫集示例

電力聯盟鏈交易流程如圖1所示,鏈中交易遵循“模擬執行—排序成區塊—驗證提交”3個階段。客戶端發送交易給背書策略指定的背書節點。背書策略在交易過程中極為重要,用于在交易驗證階段驗證交易的有效性,并且執行電力交易智能合約需指定交易的背書節點,例如“在一共5個背書節點中要求滿足至少3個節點背書”。在綠電交易過程中,背書節點可為發電機構節點、電網企業節點和售電企業節點這3類角色。每個交易都被背書節點模擬執行得到讀寫集,背書節點會對交易的讀寫集進行簽名,這一步稱為背書。接下來,交易進入排序環節,客戶端收集背書結果,把背書后的交易發送給排序服務,由排序服務采用共識算法把交易排序打包成區塊。之后區塊被廣播給所有節點。每個節點在驗證階段依據背書策略驗證交易的有效性。如果交易有效,則把交易有效標志位設置為是,同時把交易的寫集更新到本地狀態數據庫中;如果交易無效,則把交易有效標志位設置為否,同時放棄交易的寫集,不更新本地的狀態數據庫。

圖1 電力聯盟鏈中的交易流程

2 賬本篡改攻擊與攻擊特征提取

本節在電力聯盟鏈綠電交易仿真環境下,實現針對綠電交易場景的賬本篡改攻擊,并分析攻擊的實現原理及攻擊造成的后果。研究并提取與攻擊緊密相關的多個背書特征,為后續攻擊檢測提供數據支撐。

2.1 賬本篡改攻擊

本節搭建了電力聯盟鏈綠電交易仿真環境,模擬完成了由發電機構、電網企業和售電企業參與的發電、輸電、配電和售電的基本綠電交易活動,并且基于此交易場景實現了賬本篡改攻擊。在電力聯盟鏈中,賬本篡改攻擊主要是通過修改狀態數據庫中數據來實現的,具體過程如下:

在正常情況下,狀態數據是由客戶端通過調用智能合約發起交易來改變,比如狀態數據庫中存儲了電網企業節點待輸送電量的key(Pe)和售電企業節點待售電量的key(Se),對應value值分別是100和200,當客戶端通過調用輸電智能合約發起一筆電網企業節點傳輸10個單位電量到售電企業節點的交易,若這筆交易有效,交易首先會打包到區塊并存儲到文件賬本中,同時狀態數據庫中Pe和Se的value值變為90和210。

由于節點狀態數據庫會掛載到節點所在主機的文件系統中,通過定位主機節點的數據庫,讀取數據庫狀態數據并對其進行修改,能夠實現篡改節點數據庫的目的。圖2中電網企業用戶篡改了其狀態數據庫中存儲待售電量Se對應值,由210→230,客戶端查詢發電機構節點和售電企業節點數據庫中Se的值為210,但客戶端查詢電網企業節點數據庫中Se的值為230,即從電網企業節點上查到了不一致的數據。

圖2 客戶端查詢數據不一致

更進一步地,如果篡改狀態數據的組織數量滿足了背書策略,那么全局賬本數據都將被篡改。例如,設置背書策略為至少滿足電力企業的2個代表節點的背書結果一致,在該背書策略下,若電網企業節點和發電機構節點合謀,篡改數據庫中待售電量Se值由210→230,而售電企業中Se值仍為210。賬本篡改攻擊如圖3所示,現在客戶端發起一筆由待輸送電量Pe轉10個單位電量到Se交易,在背書階段執行交易后返回的讀寫集中,電網企業節點和發電機構節點中Se的值均為240,由于這2個節點的背書結果一致,符合了背書策略,因此該筆交易有效,所有的節點都會用讀寫集中Se值為240來更新狀態數據庫。在這種情況下,雖然售電企業節點并沒有篡改狀態數據庫,但最終仍“被動”與其他篡改過數據庫節點賬本數據一致,從而達到全局賬本篡改的效果。而一旦鏈中Se值被惡意篡改,將嚴重影響到正常的綠電交易過程,上述攻擊不僅使得售電企業節點待售電量虛高,更惡劣的是將無法保障最終用戶收到所約定好一定量的電能產品,從而影響最終用戶的用電,會造成巨大的經濟損失。

圖3 賬本篡改攻擊

在綠電交易業務場景中,當需要從鏈上讀取數據時,鏈是直接從節點本地數據庫中讀取狀態數據。在交易背書階段對于每個鍵值對最新狀態查詢僅訪問狀態數據庫。因此通過攻擊某個節點狀態數據庫,之后有可能讀到篡改后的數據。本文所實現賬本篡改攻擊的原理并不與聯盟鏈的不可篡改性矛盾,這是因為聯盟鏈是以鏈式結構來存儲區塊的,但這種不可篡改性只存在于文件賬本中,而存儲狀態數據數據庫是可被篡改的。

2.2 攻擊特征提取

根據上述分析的賬本篡改攻擊原理,電力聯盟鏈易受攻擊點在于交易流程背書階段中對于key-value最新狀態的查詢僅訪問狀態數據庫,通過篡改狀態數據庫中的值,從而造成客戶端查詢數據不一致甚至是鏈中所有賬本數據都被篡改的情況。與背書緊密相關的且受攻擊影響的特征將會有利于表征賬本篡改攻擊對背書階段的影響。在本節中,通過對電力聯盟鏈交易流程和攻擊特征的分析,提取背書讀寫集相似度、背書時間方差、驗證時間均值和背書率這4類背書特征,并基于提取的特征構建檢測數據集。

2.2.1 背書讀寫集相似度

在交易流程背書階段,發電機構、電網企業和售電企業節點都會生成一個讀寫集,讀寫集的值依賴于節點本地狀態數據庫中存儲的值。狀態數據篡改可能會更改狀態數據庫中存儲key的value值以及version,從而導致不同節點產生背書讀寫集有差異,因此,可將節點上背書讀寫集相似度作為一類特征。為了計算背書讀寫集相似度,首先需要將所有節點背書讀寫集統一編碼,然后提取距離參考系,最后計算背書節點讀寫集編碼與參考系的平均距離。

1)讀寫集統一編碼。

讀寫集中key所對應的version、value一般都以字符串形式表示,無法直接計算相似度,在計算相似度之前需要將其轉換為數字形式表示。因此,本方案對每個節點讀寫集中version和value進行統一One-Hot編碼從而方便計算,得到編碼集合為Opi。One-Hot編碼,又稱為一位有效編碼,主要是采用位狀態寄存器來對狀態進行編碼,在任意時候只有一位有效。使用One-Hot編碼,可將離散特征的取值擴展到歐氏空間,使特征之間的距離計算更加合理。

為了實現對讀寫集編碼,首先對所有讀寫集中version值和value值做統計,得到不同version值和不同value值的總數,表1讀寫集示例的總類別數為7,然后每個version值或者value值會轉換為一個長度為7的二進制向量,向量中只有一位為1,其余位為0。舉例來說,P0節點的讀集中的keyA-version,經過編碼后變為[0, 0, 0, 0, 0, 0, 1],總類別數為7,且它屬于第一類。表1的示例進行統一One-Hot編碼后的結果如表2所示。

表2 讀寫集統一編碼示例

2)距離參考系Oc。

計算背書讀寫集相似度D之前,需要得到鏈中大多數節點所共有的背書讀寫集,該讀寫集稱為距離參考系Oc,如果沒有發生數據庫中數據被篡改的情況,那么鏈中所有節點背書讀寫集是一致的,Oc就為當前讀寫集,當發生篡改情況時,就會出現節點背書讀寫集不一致情況,Oc計算方式定義為:

(1)

式中:k從0到Ls-1取值,Ls為所有key在讀集和寫集中出現的總次數,即表2的行數;j從0到Ln-1取值,Ln代表鏈中所有節點的個數;OPj(k)為對于k代表的行(如keyA-version為第1行,對應的k為0),第j個節點對應的二進制向量。如表1,當取k=0,j=0時,OP0(0)=[0, 0, 0, 0, 0, 0, 1],即P0節點生成的讀集keyA-version的值。定義函數count[OPj(k)]的含義為當k取值確定時,OPj(k)在所有節點出現的次數,如表1所示,當取k=0,j=0時,count[OP0(0)]=2,因為對于keyA-version,P0和P2節點對應的二進制向量是一致的,在所有節點中出現了2次。定義函數argmax()作用為當count[OPj(k)]的取值最大時,返回對應的OPj(k),如表1所示。

(2)

利用式(1),分別計算出當k取不同值時,Oc(k)的值,計算結果如表3所示。

3)計算相似度D。

定義dist(x,y)為向量x、y的歐氏距離:

(3)

根據式(1)和式(3),則平均相似度即背書讀寫集相似度D定義為:

(4)

首先固定k,對表2中的第k行,計算每一列的元素OPj(k)與Oc(k)的距離,然后k遞增,繼續計算第k行中每一列的元素OPj(k)與Oc(k)的距離,最后計算Ln*Ls個距離值的平均值即為D。

2.2.2 背書時間方差TE

背書時需要進行交易的模擬執行,而模擬執行輸入來自于狀態數據庫,在智能合約的函數中對不同類別輸入會選擇不同的代碼分支執行,當數據被篡改后,被篡改數據節點與正常節點在模擬執行交易時,會選擇不同的代碼分支執行,從而導致背書時間的不一致。

本文定義第i個節點背書時間為Ei,那么n個節點背書時間方差定義為:

(5)

2.2.3 驗證時間均值TV

驗證階段為交易的第3個階段,節點收到排序服務打包的區塊后,對其中每筆交易讀寫集進行驗證。篡改狀態數據庫中數據后,被篡改節點與其他正常節點產生背書讀寫集不同,由于交易的讀寫集是所有背書節點讀寫集的集合,因此攻擊發生時待驗證交易讀寫集與未受到攻擊時待驗證交易讀寫集有差別,從而導致交易驗證時間有差異。并且驗證階段,節點需要驗證本地狀態數據version與被驗證交易讀寫集中version是否一致。如果節點本地version被篡改過,也會導致驗證過程與未受到攻擊時驗證過程有差別。

本文定義第i個節點的驗證時間為Vi,那么n個節點的驗證時間均值定義為:

(6)

2.2.4 背書策略背書率TP

電力聯盟鏈的智能合約都有背書策略,假如鏈中有3類機構分別為發電機構、電網企業和售電企業,背書策略指定機構中至少2個節點對交易執行結果進行簽名。背書策略指定鏈中的節點執行合約后對執行結果進行背書,在交易驗證過程中,節點需要確保交易擁有合適數量的背書結果,即驗證此交易滿足背書策略。背書率表示實際參加背書的節點數量與背書策略指定的背書節點數量的比值,用TP表示,該比值越大,則受到攻擊的概率越小,反之,則越大。

3 賬本篡改攻擊檢測方法

3.1 攻擊檢測任務概述

基于背書特征的賬本篡改攻擊檢測工作流如圖4所示,主要包括數據收集、特征提取、模型訓練、在線檢測以及增量更新。

圖4 攻擊檢測工作流

1)數據收集:收集發電機構、電網企業和售電企業等多節點運行時數據。為每個節點啟動一個非侵入式監控節點獲取數據,采集的監控數據包括:一次交易的背書讀寫集、完成一次交易所需的背書時間、完成一次交易所需的驗證時間和背書節點數量。數據按照單次交易觸發一次的頻率收集,即當新交易發生時,在所有相關的節點上進行一次數據采集。

2)特征提取:匯總收集的數據,利用本文特征計算方法提取數據特征,包括讀寫集相似度、背書時間方差、驗證時間均值和背書率,為樣本生成4維特征向量。

3)模型訓練:訓練階段,通過學習正常和攻擊樣本進行基于隨機森林攻擊檢測模型的訓練。

4)在線檢測:檢測階段,實時收集正在運行的鏈上數據并提取特征,利用上一步訓練的模型,對實時采集的數據特征進行在線攻擊檢測,并將檢測結果發送給用戶。

5)增量更新:模型訓練數據不能覆蓋所有的攻擊,因此提供閉環反饋機制的增強學習更新模型,在線檢測過程中會將判斷有誤的數據傳給分類器,分類器依托回傳數據增量訓練提高模型精度。

3.2 攻擊模型檢測

本文采用分類與回歸樹(classification and regression tree,CART)算法生成決策樹,多棵決策樹形成隨機森林,有效避免單棵決策樹的過擬合問題[30],并采用基于Boosting的方法避免冗余樹的生成,降低內存消耗。

3.2.1 基于隨機森林的檢測模型

隨機森林檢測模型如圖5所示,訓練決策樹過程對訓練集中的樣本有放回隨機采樣,對背書讀寫集相似度、背書時間方差、驗證時間均值以及背書率4類特征隨機采樣,抑制模型的過擬合、提高分類器的健壯性。

圖5 檢測模型的訓練過程

隨機森林的訓練過程如下:

1)樣本隨機采樣。給定包含正常和攻擊樣本的訓練集X={x1,x2,…,xn}和帶有正常/異常的樣本目標值Y={y1,y2,…,yn},使用有放回背書特征樣本采樣方法。多次采樣中沒有用到樣本作為驗證集。

2)特征隨機采樣。每個決策樹訓練過程中隨機采樣背書特征,不使用全部的背書特征,如Tree1的特征是背書讀寫集相似度和驗證時間均值,Tree2的特征是背書時間方差、驗證時間均值和背書率。對于每棵樹而言,樣本和特征都是不同的。

3)訓練結果計算。決策樹的預測結果包括正常和異常,在分類任務中預測結果的類別通過投票方式選擇,將得票最高的結果作為最終輸出。由于該過程使用大量決策樹訓練,有效避免了過擬合問題,但產生冗余決策樹會大量消耗內存。

3.2.2 基于Boosting的訓練模型權重更新

Boosting使用序列訓練方法加速模型權重更新,為決策樹構建信息互補對象,保證每棵樹信息都是高可用的,避免冗余樹的生成,降低內存消耗。算法關鍵部分如下:

1)節點劃分。

給定{x1,y1,w1},…,{xN,yN,wN},依據隨機選取的背書特征和信息增益劃分決策樹節點。在計算信息增益過程中,樣本按最大權重進行排序。信息增益計算過程為:

(7)

式中:ΔG為信息增益;Sn為節點n的樣本集合;Sl為樣本集合的左子節點;Sr為樣本集合的右子節點;E(·)為交叉熵計算。

當遞歸劃分將決策樹擴展到一定的深度或者當前到達節點的樣本信息增益為0時,會創建新的葉節點。

2)決策樹權重。

和多類Boosting[31-32]相似,決策樹權重的計算公式為:

(8)

式中:αt為決策樹權重;M為類別數量;εt為決策樹的分類錯誤率。

3)訓練樣本權重更新。

通過使錯誤分類樣本權重變大,在下一步操作中構建容易糾正錯誤分類樣本的決策樹。

(9)

式中:wi為決策樹的迭代更新權重,更新權重后權重被歸一化,重復訓練過程,直到獲得最終權重。

4 實驗測評

本節介紹實驗環境以及數據集的構成,從識別耗時、區塊鏈性能損耗、識別準確率等方面將本文提出的方案與已有檢測方案進行對比。

4.1 實驗環境

電力聯盟鏈綠電交易仿真場景包括發電機構節點、電網企業節點和售電企業節點3類節點,每類的節點個數設置具有隨機性,為每個節點啟動一個非侵入式監控節點收集信息,使用Kafka、Raft(一種崩潰容錯共識算法)、拜占庭容錯(robust Byzantine fault tolerance,RBFT)等多種共識算法,每個節點都在一個獨立OpenStack虛擬機上運行,每個虛擬機使用相同硬件配置:vCPU(e3-1220 v5@ 3.00 GHz),內存8 GB。所有虛擬機運行在同一個局域網中,局域網交換機的速度為1.0 Gbit/s。

4.2 數據集

數據基于仿真環境采集,組建不同大小(節點數不同)以及不同應用下的電力聯盟鏈綠電交易場景以提高數據豐富度:鏈中節點總數從2到24不等,多應用場景智能合約包括配電合約、電力資產管理合約和電力實體身份認證合約等,使用腳本模擬用戶隨機發起交易的行為。

每條樣本包含一次交易的背書讀寫集相似度、完成一次交易所需背書時間方差、驗證時間均值和背書率。對于負(異常)樣本的收集,隨機選擇上述節點,對其進行賬本篡改攻擊。數據集如表4所示,共16 800個樣本,正樣本8 505個,負樣本8 295個,訓練集和測試集的占比為80%和20%。

表4 數據集數量

4.3 對比實驗

本節針對已有的基于規則檢測方法和其他機器學習方法進行復現,并與本文方法進行多評估指標對比。

4.3.1 基于規則的檢測方法

將文獻[24]提出的基于規則檢測方法稱為RULE方法,本文提出的檢測方法稱為ML方法。RULE方法是每次交易執行之前,把節點狀態數據庫與文件賬本區塊中的數據作對比,若對比結果相同,則未受到攻擊,反之亦然。主要從識別耗時、對區塊鏈的性能損耗、識別準確率方面進行比較,其結果對比如圖6所示。

圖6 本文方法與基于規則的檢測方法對比

識別耗時表示從交易結束到檢測出攻擊所消耗的時間,如圖6(a)所示,隨著區塊數量增加,RULE方法識別耗時急劇增長,而ML方法的識別耗時保持穩定且遠小于RULE方法。ML方法使用樣本數據特征作為輸入,數據特征在交易過程中通過非侵入式監控節點采集,不需要訪問區塊數據,因此即使區塊數量增加,模型計算時間也不會變化;RULE方法在判斷是否發生攻擊時需要比對狀態數據庫與本地區塊賬本是否一致,隨著本地區塊數量的增加,每次逆序遍歷區塊賬本,尋找狀態數據庫中key所對應的交易在區塊賬本中位置的時間也會增長。

性能損耗表示攻擊檢測方法對電力聯盟鏈造成的影響,性能指標為每秒處理的交易數(transaction per second,TPS)。使用RULE方法需要在每次交易執行前暫停整體聯盟鏈網絡,并且需要等待所有節點的檢測結果,對區塊鏈系統本身交易性能影響較大,隨著聯盟鏈網絡節點數量的增加,TPS迅速下降,如圖6(b)所示,在節點數量從2增加到24的過程中,RULE方法的TPS從344減小到258。本文提出的ML方法無需停止正常交易流程,對區塊鏈交易性能的影響很小,幾乎與原始交易性能一致,即使節點數量增加到24,TPS依然大于344,優于RULE方法的最佳性能。以原始交易模式下的交易性能作為基準,RULE方法會造成34.75%的性能損耗,ML方法造成4.03%的性能損耗,ML方法的性能損耗遠低于RULE方法。

在準確率方面,ML方法在相同95.75%準確率下,比RULE方法,具有檢測耗時和性能損耗比較低的優勢,在不影響實際業務運行條件下,更滿足對電力聯盟鏈進行賬本篡改攻擊的在線檢測需求。

4.3.2 其他機器學習方法

在聯盟鏈的攻擊檢測研究領域,基于機器學習研究方法相對較少,本節選取了2個準確率較高且較相關的方法進行對比實驗,分別為文獻[25](記為文獻MLCA)以及文獻[27](記為文獻GHAD)進行實驗對比。

采用準確率作為評價指標,由于本文方法與對比方法都是基于機器學習的方法,三者在識別耗時和對區塊鏈的性能損耗是接近的,不再進行比對展示。三者的準確率對比如圖7所示。與另外2種檢測方法相比,本文方法的檢測準確率是最高的,從而說明了本文方案在電力聯盟鏈賬本篡改攻擊檢測上十分有效,包括數據集的設計和機器學習算法的選取。

圖7 本文方法與其他基于機器學習的檢測方法對比

由于對比方法所采用的數據集與本文采用的數據集存在不一致性,為了進一步驗證本文方法有效性,設置了另外一組對比實驗,分別將對比方法中所采用機器學習算法用于本文設計的數據集,得到的測試結果標注為“僅MLCA算法”和“僅GHAD算法”。測試結果如圖7所示,可看到將對比方法中的機器學習算法用于本文的數據集,所得到測試結果的準確率仍低于本文方法,模型的準確率均小于92.50%,遠低于本文方法得到的95.75%準確值,從而說明在相同的數據集上,本文所采用的隨機森林算法效果更好。另外,由于本文提取的背書特征與共識算法類型無關,檢測方法不局限于單一共識算法,可以適配多種共識算法。

5 結束語

針對電力聯盟鏈中的賬本篡改攻擊,本文提出了基于背書特征的檢測方法,進行了試驗驗證,相比于現有檢測方法在識別耗時、區塊鏈性能損耗、檢測準確率有較大優勢,并能滿足電力聯盟鏈在線檢測的業務需求。目前本文用于攻擊檢測的特征僅包含背書讀寫集相似度、背書時間方差、驗證時間均值和背書率4類,后續工作會增加特征種類及優化特征提取方法,進一步提高本文方法的識別準確率。

猜你喜歡
數據庫檢測方法
“不等式”檢測題
“一元一次不等式”檢測題
“一元一次不等式組”檢測題
數據庫
財經(2017年2期)2017-03-10 14:35:35
數據庫
財經(2016年15期)2016-06-03 07:38:02
小波變換在PCB缺陷檢測中的應用
用對方法才能瘦
Coco薇(2016年2期)2016-03-22 02:42:52
數據庫
財經(2016年3期)2016-03-07 07:44:46
數據庫
財經(2016年6期)2016-02-24 07:41:51
四大方法 教你不再“坐以待病”!
Coco薇(2015年1期)2015-08-13 02:47:34
主站蜘蛛池模板: 国产亚洲视频播放9000| 欧美日韩一区二区在线播放| 日本精品中文字幕在线不卡| 国产欧美在线观看一区| 欧美一级在线| 依依成人精品无v国产| 91久久精品日日躁夜夜躁欧美| 在线五月婷婷| 国产污视频在线观看| 人妻精品全国免费视频| 国产超碰一区二区三区| 中文字幕永久在线看| 日韩欧美中文亚洲高清在线| 色婷婷色丁香| 无码免费视频| 中文无码精品A∨在线观看不卡| 国产精品v欧美| 精品无码一区二区三区电影| 99尹人香蕉国产免费天天拍| 亚洲人成在线免费观看| av天堂最新版在线| 欧美成人手机在线观看网址| 日韩精品毛片| 中文字幕人成乱码熟女免费| 欧美日本中文| 亚洲国产第一区二区香蕉| 亚洲三级a| 麻豆精品在线播放| 久久毛片免费基地| 一级毛片在线免费视频| 香蕉久久国产超碰青草| 91啦中文字幕| 久久特级毛片| 亚洲性视频网站| 日韩 欧美 小说 综合网 另类| 欧美国产精品不卡在线观看| 毛片免费在线| 欧美三級片黃色三級片黃色1| 日韩毛片视频| 一本一本大道香蕉久在线播放| 在线不卡免费视频| 天天操精品| P尤物久久99国产综合精品| 美女免费黄网站| 人妻精品全国免费视频| 亚洲成人高清在线观看| 黑人巨大精品欧美一区二区区| 中文字幕av一区二区三区欲色| 婷婷激情亚洲| 国产精品99r8在线观看| 日韩中文无码av超清| 国产十八禁在线观看免费| 久久婷婷国产综合尤物精品| 麻豆精品久久久久久久99蜜桃| 欧美国产成人在线| 午夜影院a级片| a欧美在线| 免费不卡视频| 国产香蕉在线| 久久伊人操| 91精品小视频| 九九九国产| 欧美第二区| 成人免费一区二区三区| 在线观看国产精品第一区免费| 成年A级毛片| 色香蕉网站| 色综合网址| 呦女精品网站| 热99re99首页精品亚洲五月天| 99久久精品国产精品亚洲| 精品国产毛片| 日本在线国产| 亚洲成人免费在线| 精品一区二区三区水蜜桃| 亚洲国产天堂久久九九九| 国产香蕉国产精品偷在线观看| 中文无码日韩精品| 好紧好深好大乳无码中文字幕| 操美女免费网站| 日本少妇又色又爽又高潮| 欧美亚洲一区二区三区导航|