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

電力用戶信息的多區(qū)塊鏈管理及跨鏈查詢方法研究

2024-01-19 08:16:46許俊曉崔昊楊江超江友華
電測與儀表 2024年1期
關鍵詞:用戶信息系統(tǒng)

許俊曉,崔昊楊,江超,江友華

(上海電力大學 電子與信息工程學院, 上海 200090)

0 引 言

信息安全一直是電網(wǎng)信息化與數(shù)字化[1-3]進程中的重要研究課題。在2020年,英國電力市場結算機構Elexon與能源供應商People′s Energy均不同程度遭受了網(wǎng)絡攻擊[4],盡管用戶信息安全未受到嚴重泄露威脅,但也給人工智能時代下的用戶隱私信息與存儲安全問題敲響了警鐘。目前,針對電力用戶海量數(shù)據(jù)信息均以中心化存儲的模式為主,極易遭受單點攻擊。基于區(qū)塊鏈[5-6]去中心化分布式信息管理方法,則能通過密鑰加密[7]、Hash加密[8]等技術保證信息數(shù)據(jù)的安全性[9]。同時,利用通用共識機制并結合加密和星際文件系統(tǒng)(IPFS)等方法,即可實現(xiàn)多節(jié)點廣義多模通信[10-11]。然而,受區(qū)塊鏈各節(jié)點數(shù)據(jù)維護和存儲壓力過大影響,節(jié)點服務器運行效率日益低下的問題正逐步顯現(xiàn)。

針對單鏈多點方案在海量信息處理中遇到的難題,有學者提出了多鏈多節(jié)點的解決方案,如雙鏈方案[12]、主從鏈方案[13]等。而針對多鏈數(shù)據(jù)隔離問題,則相應發(fā)展了跨鏈技術[14],如文獻[15]采用基于側鏈和中繼鏈跨鏈實現(xiàn)了物聯(lián)網(wǎng)的多域認證;文獻[16]通過中繼鏈技術實現(xiàn)能源交易不同主體的數(shù)據(jù)資產流通等。鑒于電力用戶具有物理空域強分散性、數(shù)字空間多樣多維海量特性,利用多鏈技術與跨鏈技術實現(xiàn)信息的安全管理具有重要現(xiàn)實意義。但目前針對海量電力用戶信息的多區(qū)塊鏈數(shù)據(jù)存儲和跨鏈查詢方法,仍少有文獻報道。為此,文中將采用Hyperledger Fabric[17]構建電力用戶信息區(qū)塊鏈管理系統(tǒng),在保證信息安全性和隱私性的前提下,通過創(chuàng)建多數(shù)據(jù)通道來實現(xiàn)多鏈并行,將賬本數(shù)據(jù)多路隔離,交由不同的節(jié)點維護,以減輕每個節(jié)點的維護任務。同時通過設置中間人節(jié)點結合鍵值查詢方法實現(xiàn)了跨鏈查詢,避免多鏈間出現(xiàn)“數(shù)據(jù)孤島”問題,利于數(shù)據(jù)的交流和統(tǒng)計分析。

1 基于Hyperledger Fabric的多鏈模型構建

為實現(xiàn)系統(tǒng)的安全管理和高效運行,采用Hyperledger Fabric模塊化架構方法構建區(qū)塊鏈。文中設計不同模塊以實現(xiàn)系統(tǒng)功能,使用鏈碼[18](Chaincode)完成節(jié)點和區(qū)塊鏈的信息交互。

1.1 系統(tǒng)需求分析

為安全高效地管理電力用戶信息,文中設計了節(jié)點注冊、多通道創(chuàng)建、電力用戶信息上鏈以及電力用戶信息查詢4個模塊,系統(tǒng)模塊組成如圖1所示。節(jié)點注冊模塊負責通過使用Fabric的準入機制嚴格把控參與賬本維護的節(jié)點,實現(xiàn)對于鏈上信息的安全隱私保護,同時監(jiān)控每一筆交易的源頭,實現(xiàn)信息修改的責任追溯。文中要保證電力用戶信息的安全和隱私,因此系統(tǒng)中的節(jié)點由省級至縣級電力公司的信息管理部門組成。

圖1 電力用戶信息管理系統(tǒng)組成

多通道創(chuàng)建模塊負責使用Fabric的多通道技術實現(xiàn)多鏈并行,以減輕節(jié)點存儲壓力。通道本質上是賬本的邏輯概念,單一通道內的節(jié)點共同維護相同賬本,通道外的節(jié)點與通道內的賬本信息完全隔離,因此單個通道可被視為單一單鏈。一個通道可以含多個節(jié)點,一個節(jié)點也可以參與多個通道賬本的維護。文中采用按省劃分的方法構建多個通道,同省的節(jié)點進入一個通道,維護該省的賬本信息。

電力用戶信息上鏈模塊負責通過鏈碼將電力用戶的個人信息(例如姓名、用戶編號、開戶地址等)和用電信息(例如用電量、繳費金額、用電類型等)上鏈存儲。根據(jù)用戶的開戶地址,各省份的用戶信息被記錄在各自省份通道的賬本上,由該省節(jié)點進行維護。電力用戶信息查詢模塊負責通過Fabric的鍵值查詢功能對鏈上對應數(shù)據(jù)進行查詢。但通道間存在數(shù)據(jù)隔離,不利于數(shù)據(jù)的交流或統(tǒng)計。因此,除了各省節(jié)點之外,文中還設置了一個中間人節(jié)點,該節(jié)點擁有進入所有通道的權限,通過該節(jié)點可進行跨鏈查詢操作。

1.2 節(jié)點注冊

節(jié)點的注冊由Fabric CA完成。Fabric CA采用分層公開密鑰基礎結構(PKI)[19],公私鑰和數(shù)字證書由各注冊節(jié)點頒發(fā)。具體而言,省、市、縣各級電力公司的信息管理部門均需通過Fabric CA完成節(jié)點注冊以獲得公私鑰和數(shù)字證書,用于保證數(shù)據(jù)的安全隱私,未持有正確公私鑰和證書的節(jié)點無法參與系統(tǒng)操作。公私鑰主要用于交易簽名,文中使用橢圓曲線加密算法(ECC)[20]進行簽名操作,ECC在使用更小的密鑰時,能夠提供比傳統(tǒng)RSA加密算法更快的運行速度及更高的安全性能。

Fabric CA使用橢圓曲線加密算法得出成組的非對稱公私鑰,先隨機生成正整數(shù)k作為私鑰,接著計算Q=kP,Q就作為公鑰,其他人無法從公開的公鑰倒推出相應的私鑰[20]。公私鑰被用于交易簽名,每一筆交易都需要發(fā)起人節(jié)點使用私鑰簽名,其他節(jié)點驗簽成功后交易才能完成。首先發(fā)起人節(jié)點將交易信息M進行Hash加密處理[21]得到h,并隨機產生一個整數(shù)r以及計算點rP(x,y),根據(jù)r、h和k計算出驗證數(shù)s,如式(1)所示,然后將交易信息M與簽名{rP(x,y),s}發(fā)送給其它節(jié)點。

(1)

其他節(jié)點接收到M與簽名后,先對M進行Hash處理得到h,使用公鑰Q計算點R,計算公式見式(2),由于Q=Kp,因此式(3)成立。最后,對比R與rP,若兩者相等則驗簽成功。通過簽名和驗簽操作,每一筆交易過程會十分清晰且不可篡改,保證了電力用戶信息管理系統(tǒng)內數(shù)據(jù)的安全。

(2)

(3)

為防止攻擊者偽造公鑰而影響交易簽名,客戶端會對所有節(jié)點的數(shù)字證書進行驗證。證書中包含公鑰,公鑰的簽名等信息,證書生成及驗證的過程如圖2所示。節(jié)點注冊成功后,會生成公私鑰A,CA使用自身私鑰B對節(jié)點公鑰A進行加密,得到簽名C,并將簽名C與公鑰A存入證書中。節(jié)點進行工作時,其證書需要通過驗證。客戶端先從CA處獲取公鑰B,對證書中的簽名C進行解密,接著將解密后的公鑰a與公鑰A對比,查看是否相同,相同則通過驗證。只有擁有合法證書的節(jié)點才能參與賬本的維護,保證了鏈上電力用戶信息的安全隱私。

圖2 證書生成及驗證流程

1.3 多通道創(chuàng)建

節(jié)點注冊完成后,需要創(chuàng)建多通道實現(xiàn)多鏈并行,以減輕節(jié)點存儲任務。如圖3所示,系統(tǒng)按省劃分通道,各省節(jié)點只需維護各省的賬本信息。賬本中的區(qū)塊信息主要由前一區(qū)塊哈希值,時間戳和包含用戶信息的Markle樹根等組成。

圖3 多通道結構

文中使用Fabric的configtxgen模塊和peer模塊創(chuàng)建多個通道。通道創(chuàng)建流程如圖4所示。首先開通通道(Channel),以用戶的開戶地址省份為劃分標準。在Profile配置文件中設置通道的組織名稱,使用Configtxgen模塊運行Profile文件生成各省份通道的初始塊文件channel.tx。channel.tx規(guī)定了Channel中包含了哪些組織,它最終會被用作Channel的配置原型,通過填補成為賬本的genesis塊。channel.tx創(chuàng)建成功后,執(zhí)行jion命令將各省的Peer節(jié)點加入各省的通道。加入的具體流程如下:首先通過channel.tx讀取Channel的genesis塊數(shù)據(jù);接著調用CreateLedger方法根據(jù)該數(shù)據(jù)創(chuàng)建Peer節(jié)點的本地Channel賬本;最后調用createChain方法創(chuàng)建針對此Channel使用的鏈對象,使用InitializeChannel方法初始化了Peer節(jié)點間的Gossip連接服務,由此Peer節(jié)點可以向其他節(jié)點索要區(qū)塊的數(shù)據(jù)并將其添加到本地的Channel賬本。各省節(jié)點加入后,執(zhí)行更新命令更新錨節(jié)點,錨節(jié)點的作用是了解其他通道內成員的信息,檢查其是否同時屬于本通道。文中利用多通道技術構建多鏈并分散存儲任務,可以避免出現(xiàn)每個節(jié)點服務器都存儲過量用戶數(shù)據(jù)的情況,減輕節(jié)點的存儲壓力。

圖4 多通道創(chuàng)建流程

1.4 鏈碼設計

節(jié)點和通道創(chuàng)建完成后,需要將用戶信息上鏈管理,而信息上鏈、查詢的操作都需要鏈碼來實現(xiàn)。鏈碼,也稱智能合約,是一段部署在Docker容器中的程序。鏈碼負責客戶端程序與Fabric賬本的數(shù)據(jù)交互,節(jié)點可以通過鏈碼在客戶端發(fā)起交易和查詢信息。首先我們通過鏈碼聲明一個結構體,將用戶的個人信息(例如姓名、用戶編號、開戶地址等)和用電信息(例如用電量、繳費金額、用電類型等)與結構體中的鍵值一一對應(見表1和表2),用于將數(shù)據(jù)封裝成對象,并將用戶編號(EntityID)定為查詢鍵值。為了完成信息的上鏈和查詢,文中使用了Fabric的Shim系統(tǒng)包與客戶端進行通信。

表1 電力用戶個人信息結構體組成

表2 電力用戶用電信息結構體組成

1.4.1 信息上鏈

完成電力用戶信息上鏈需要調用Shim包中的ChaincodeStubinterface接口,使用接口中的讀取方法(GetState)和寫入方法(PutState)將信息寫入賬本,具體設計流程如圖5所示。節(jié)點將用戶信息上傳至客戶端,客戶端業(yè)務層先將信息封裝為數(shù)據(jù)對象Power,接著將Power序列化為字節(jié)數(shù)組,調用鏈碼,上傳字節(jié)數(shù)組。鏈碼通過接口獲取字節(jié)數(shù)組后,首先判斷上傳數(shù)組的參數(shù)個數(shù)是否符合要求,若不符合則返回錯誤,若符合則將數(shù)組反序列化為Power。反序列化后,鏈碼通過GetState(Power. EntityID)檢查用戶號EntityID是否已經(jīng)存在,若存在則返回錯誤,若不存在則通過PutState(Power)發(fā)起交易,將數(shù)據(jù)寫入賬本。節(jié)點證書驗證、交易簽名驗簽成功后,交易完成,用戶信息成功上鏈。

圖5 電力用戶信息上鏈流程

1.4.2 跨鏈信息查詢

為打破通道間的數(shù)據(jù)隔離,實現(xiàn)數(shù)據(jù)交流,文中設計了一種方案,設置中間人節(jié)點,結合InvokeChaincode方法實現(xiàn)跨鏈鏈碼調用,用于全局數(shù)據(jù)查詢。InvokeChaincode是Shim系統(tǒng)包的ChaincodeStubinterface接口中用作調用外部鏈碼的方法,使用InvokeChaincode方法可以對本通道的賬本進行讀寫操作。但當使用InvokeChaincode調用外部通道的鏈碼時,只有GetState方法等讀取方法可以響應,因此 InvokeChaincode方法只能讀取外部通道的賬本信息,并不能寫入信息。而讀取信息也是有條件的,即需要侵入外部通道的鏈碼,否則由于通道間存在數(shù)據(jù)隔離,僅僅使用 InvokeChaincode方法無法調用外部通道的賬本數(shù)據(jù)。

為此,文中提出了中間人節(jié)點,可作為兩條不同通道的“溝通橋梁”。在Fabric中,單一節(jié)點可以加入多個不同通道,因此該節(jié)點也可以獲取不同通道中的賬本信息。如圖6所示,Peer3加入了Channel1和Channel2通道,有權限獲取兩者的賬本信息,能夠調用雙方的鏈碼,公共物理節(jié)點Peer3即為中間人節(jié)點。以Peer3節(jié)點為中間通道,當Channel1的Peer1節(jié)點使用InvokeChaincode方法,上傳 Channel2的通道ID(ChannelID)和鏈碼名稱(ChaincodeName)參數(shù)對Channel2的賬本信息進行調用操作后,該方法會將上傳的ChannelID和ChaincodeName進行拼接形成新的賬本名稱—ChName。拼接成功后,調用handleInvokeChaincode方法,并傳入ChName以及Order節(jié)點發(fā)來的通道ID(ChID)和交易編號(Txid)。Order節(jié)點是獨立于Peer節(jié)點外,用于交易排序的節(jié)點,它通過Grpc[22]與各個節(jié)點連接。handleInvokeChaincode方法調用成功后,先調用createChannel函數(shù),使用ChID和Txid創(chuàng)建一個txCtxID通道,此通道與上文Channel不同,是Handler中的通道,只用于消息的收發(fā)。通道構建成功后,向Order節(jié)點發(fā)送InvokeChaincode上傳的ChName,由Order節(jié)點對Peer3節(jié)點提出鏈碼調用的請求,調用成功后將消息記錄在txCtxID通道返回。文中將InvokeChaincode方法和中間人節(jié)點結合,成功實現(xiàn)了電力用戶信息的跨鏈鏈碼調用。

借助跨鏈鏈碼調用可以實現(xiàn)全局電力用戶信息查詢。首先使用CA完成中間人節(jié)點的注冊,此CA必須與之前節(jié)點注冊使用的CA相同。接著,將中間人節(jié)點加入所有的通道中。中間人節(jié)點設置成功后,通過鏈碼完成查詢操作,具體設計流程如圖7所示。

圖6 跨鏈調用結構

圖7 電力用戶信息查詢流程

首先節(jié)點將用戶編號(EntityID)、所在省份的通道ID(ChannelID)和該通道的賬本名稱(ChaincodeName)通過客戶端業(yè)務層上傳,接著判斷該用戶是否為本省用戶,是則直接調用本通道鏈碼,否則通過InvokeChaincode(ChaincodeName, ChannelID)進行跨鏈鏈碼調用,查詢用戶對應省份通道的賬本。調用鏈碼成功后,先判斷上傳的EntityID的參數(shù)是否符合要求,若不符合則返回錯誤,若符合則使用GetState(EntityID)查詢該鏈碼的賬本,讀取EntityID對應的數(shù)據(jù)對象。最后判斷讀取的數(shù)據(jù)對象是否為Null,是則返回錯誤,否則返回查詢結果。

1.5 落地方案設計

為迎合國家電網(wǎng)的需求,文中設計了系統(tǒng)的現(xiàn)實落地方案。首先,系統(tǒng)中的節(jié)點均由省級至區(qū)/縣級電力公司的信息管理部門構成,實現(xiàn)信息數(shù)據(jù)的安全存儲以及信息管理的責任追溯。接著以省份為通道劃分的標準實現(xiàn)多通道管理,每個省份通道擁有固定數(shù)量的節(jié)點,維護該省的用戶信息,以分散信息處理的壓力。最后設置中間人節(jié)點,打破通道間的信息隔離。由于中間人節(jié)點是各通道間的“交通樞紐”,其重要性等級較高,因此中間人節(jié)點均由省級部門構成,各省節(jié)點通過該節(jié)點實現(xiàn)信息數(shù)據(jù)的交流及共享。

2 系統(tǒng)功能測試

2.1 系統(tǒng)測試環(huán)境

采用Hyperledger Fabric搭建聯(lián)盟區(qū)塊鏈系統(tǒng),整個測試的組成包括1個CA節(jié)點,3個Peer節(jié)點,其中Peer0為中間人節(jié)點,3個Org通道,3個Orderer排序節(jié)點,其名稱與所在組織或通道如表3所示。系統(tǒng)的測試是在虛擬機上完成的,虛擬機的配置如表4所示。

表3 系統(tǒng)節(jié)點組成

表4 虛擬機配置

2.2 系統(tǒng)功能測試

首先驗證系統(tǒng)的信息上鏈功能,在節(jié)點注冊,通道創(chuàng)建和鏈碼實例化完成之后,通過客戶端上傳兩個不同省份的測試用戶信息,這兩個用戶的信息被分開寫入Org1(上海市)和Org2(北京市)兩個通道的賬本,上鏈的后臺記錄如圖8所示。

驗證系統(tǒng)的本鏈和跨鏈信息查詢功能,通過前端輸入用戶編號(EntityID)、所在省份的通道ID(ChannelID)和該通道的賬本名稱(ChaincodeName)查詢記錄在不同通道賬本上的兩個用戶的完整記錄,查詢成功后將結果通過Web前端界面顯示,查詢成功后結果如圖9所示。

圖8 上鏈后臺記錄

圖9 本/跨鏈查詢結果界面及后臺記錄

2.3 系統(tǒng)效率測試

文中使用區(qū)塊鏈性能測試工具Hyperledger Caliper對系統(tǒng)和測試單鏈進行吞吐量測試,測試分為兩輪,第一輪兩者擁有5個節(jié)點,另一輪兩者擁有15個節(jié)點。每輪測試在相同環(huán)境下進行了兩次,每一次測試15回,兩次測試交易次數(shù)txNumber分別為500和1 500,測試數(shù)據(jù)如圖10所示。

圖10 系統(tǒng)吞吐量測試數(shù)據(jù)

當兩者節(jié)點數(shù)量為5時,對文中系統(tǒng)和測試單鏈進行txNumber為500的測試,兩者的平均吞吐量分別為163.8 tps和163.1 tps。當txNumber上升為1 500后,兩者平均吞吐量下降為155.1 tps和149.5 tps。在交易量大量增加后,文中系統(tǒng)和測試單鏈的吞吐量下降率分別為5.3%和8.3%。

當兩者節(jié)點數(shù)量為15時,文中系統(tǒng)和測試單鏈的平均吞吐量在txNumber為500的情況下,分別為163.1 tps和162.5 tps。當txNumber上升為1 500后,兩者平均吞吐量下降為154.2 tps和148.3 tps,吞吐量下降率分別為5.5%和8.7%。結果證明,節(jié)點數(shù)量翻倍增長后,系統(tǒng)吞吐量變化不大,而在交易任務不斷增加的情況下,文中系統(tǒng)具有比單鏈系統(tǒng)更高的運行效率。

3 結束語

文章針對單鏈情況下節(jié)點存儲壓力過大的問題,提出了多鏈管理及跨鏈查詢的方法,并設計了電力用戶信息區(qū)塊鏈管理系統(tǒng)。系統(tǒng)使用Fabric構建聯(lián)盟區(qū)塊鏈,在設置節(jié)點注冊以保證用戶信息安全隱私的前提下,利用多通道技術實現(xiàn)多鏈并行,減輕單個節(jié)點的存儲壓力,避免節(jié)點服務器運行效率低下。為了避免通道間數(shù)據(jù)無法交流,文中通過設置中間人節(jié)點結合鍵值查詢方法實現(xiàn)跨鏈查詢。最后文中完成并測試了系統(tǒng)消息上鏈及跨鏈查詢的功能,并且對比了文中系統(tǒng)與單鏈系統(tǒng)的吞吐量及其下降率,結果證明文中系統(tǒng)更加高效。

綜上,所述方法不僅保證了電力用戶信息的安全隱私,實現(xiàn)了數(shù)據(jù)的融通共享,也確保了信息處理的高效穩(wěn)定,對推動國家電網(wǎng)智能化升級,企業(yè)數(shù)字化轉型提供了一定的參考和借鑒。

猜你喜歡
用戶信息系統(tǒng)
Smartflower POP 一體式光伏系統(tǒng)
WJ-700無人機系統(tǒng)
ZC系列無人機遙感系統(tǒng)
北京測繪(2020年12期)2020-12-29 01:33:58
連通與提升系統(tǒng)的最后一塊拼圖 Audiolab 傲立 M-DAC mini
訂閱信息
中華手工(2017年2期)2017-06-06 23:00:31
關注用戶
商用汽車(2016年11期)2016-12-19 01:20:16
關注用戶
商用汽車(2016年6期)2016-06-29 09:18:54
關注用戶
商用汽車(2016年4期)2016-05-09 01:23:12
如何獲取一億海外用戶
展會信息
中外會展(2014年4期)2014-11-27 07:46:46
主站蜘蛛池模板: 国产免费网址| 中字无码精油按摩中出视频| 亚洲女同欧美在线| 91视频日本| 中文成人在线视频| 华人在线亚洲欧美精品| 日本三级黄在线观看| 欧美一级大片在线观看| 亚洲免费三区| 国产亚洲欧美在线中文bt天堂| 在线无码九区| jizz国产视频| 国产精品女同一区三区五区| 这里只有精品在线| 久久精品午夜视频| 精品国产一二三区| 精品国产欧美精品v| 天天躁狠狠躁| 99久久精品免费看国产免费软件| 欧美中文字幕在线二区| 在线观看视频99| 毛片免费在线视频| 免费午夜无码18禁无码影院| 国产成人1024精品| 在线欧美a| 国产91精品久久| 欧美日韩北条麻妃一区二区| 国产美女自慰在线观看| 婷婷综合亚洲| 亚洲自偷自拍另类小说| 亚洲成A人V欧美综合天堂| 91视频区| 亚洲熟女中文字幕男人总站 | 亚洲a级在线观看| 老熟妇喷水一区二区三区| 欧美一区精品| 国产精品一区二区国产主播| 国产性猛交XXXX免费看| 国产免费自拍视频| 国产在线麻豆波多野结衣| a毛片免费观看| 自拍偷拍欧美| 午夜人性色福利无码视频在线观看| 亚洲成年人片| 久久精品国产国语对白| 欧美v在线| 91香蕉视频下载网站| 日韩欧美国产成人| www.91中文字幕| 国产在线98福利播放视频免费| 中文字幕第4页| 中文字幕在线播放不卡| 成人国产精品网站在线看| 亚洲精品视频免费看| 久久久91人妻无码精品蜜桃HD| 国产精品专区第一页在线观看| 免费A级毛片无码免费视频| 2020精品极品国产色在线观看| 超清无码一区二区三区| 精品91视频| 欧美成人手机在线视频| www中文字幕在线观看| 亚洲人成色在线观看| 幺女国产一级毛片| 美女视频黄频a免费高清不卡| 国产欧美日韩在线在线不卡视频| 无码久看视频| 狠狠干欧美| 亚洲成人动漫在线| 熟女视频91| 无码AV高清毛片中国一级毛片| 九九热在线视频| 无码AV高清毛片中国一级毛片| 国产微拍精品| 国产女主播一区| 欧美高清视频一区二区三区| 成人福利在线视频免费观看| 国产精品无码在线看| 国产在线98福利播放视频免费| 国产导航在线| 日韩在线欧美在线| 久久这里只精品热免费99|