国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于區(qū)塊鏈和邊緣計算的水稻原產(chǎn)地溯源方法研究

2023-05-28 02:29:10孫傳恒徐大明楊信廷
農(nóng)業(yè)機械學報 2023年5期
關(guān)鍵詞:賬本原產(chǎn)地產(chǎn)地

孫傳恒 袁 晟 羅 娜 徐大明 楊信廷

(1.上海海洋大學信息學院, 上海 201306; 2.國家農(nóng)業(yè)信息化工程技術(shù)研究中心, 北京 100097;3.農(nóng)產(chǎn)品質(zhì)量安全追溯技術(shù)及應(yīng)用國家工程實驗室, 北京 100097)

0 引言

我國是世界最大稻米生產(chǎn)國,60%以上的居民以稻米為主食, 水稻生產(chǎn)事關(guān)國家口糧安全[1]。地理位置以及環(huán)境因素的差異導致了水稻品種和類型的多樣性,同時其質(zhì)量品質(zhì)也存在顯著差異[2]。生活水平的不斷提高使得人們更加注重稻米風味及營養(yǎng)品質(zhì),優(yōu)質(zhì)原產(chǎn)地的稻米產(chǎn)品質(zhì)優(yōu)味美,對消費者更有吸引力[3]。因此,研究水稻原產(chǎn)地溯源,建立水稻原產(chǎn)地可信追溯系統(tǒng),可以提高水稻信息對消費者的透明度、消費者對水稻原產(chǎn)地品牌的認可度,從而維護消費者權(quán)益并加強企業(yè)競爭力。

農(nóng)產(chǎn)品供應(yīng)鏈追溯具有鏈條長、生產(chǎn)分散、信息多源異構(gòu)等特點,傳統(tǒng)的追溯研究集中于利用射頻識別(Radio frequency identification,RFID)、二維碼、無線傳感網(wǎng)絡(luò)等物聯(lián)網(wǎng)技術(shù)記錄追溯數(shù)據(jù),難以解決供應(yīng)鏈追溯數(shù)據(jù)被篡改、上下游間信任成本較高等問題。區(qū)塊鏈綜合運用了分布式數(shù)據(jù)存儲、對等網(wǎng)絡(luò)、共識機制、加密算法等多種計算機技術(shù)[4-5],具有去中心化、數(shù)據(jù)不可篡改、可追溯等特點[6],旨在不可信的開放網(wǎng)絡(luò)中,維護一個安全可信、不可篡改的公共賬本[7],能夠有效解決供應(yīng)鏈上下游數(shù)據(jù)在傳遞過程中的信任問題[7-8],從而構(gòu)建符合追溯需求的可信交易環(huán)境[9]。將區(qū)塊鏈技術(shù)與農(nóng)產(chǎn)品追溯相結(jié)合,能做到分散資源集中管理、集中資源分散服務(wù),為解決目前傳統(tǒng)追溯體系存在的問題提供了技術(shù)支撐[10]。在區(qū)塊鏈農(nóng)產(chǎn)品追溯系統(tǒng)中使用物聯(lián)網(wǎng)技術(shù)對追溯各環(huán)節(jié)信息按照某種格式發(fā)送到數(shù)據(jù)中心進行“一物一碼”標識,并將重要信息上傳至區(qū)塊鏈存證,利用區(qū)塊鏈技術(shù)來保證數(shù)據(jù)的不可篡改[11]。

近年來,國內(nèi)外學者從不同角度探究區(qū)塊鏈和物聯(lián)網(wǎng)技術(shù)在追溯中的應(yīng)用[12-18],這些研究深入探索了區(qū)塊鏈以及物聯(lián)網(wǎng)技術(shù)在追溯方面的價值,但大多通過RFID、傳感器等收集水稻信息直接或通過網(wǎng)關(guān)上傳到云端,再由云端進行溯源信息上鏈處理。這類方法存在以下問題:盡管區(qū)塊鏈是去中心化的,但云端是中心化的,在云端上鏈前存在數(shù)據(jù)篡改風險;同時現(xiàn)有的物聯(lián)網(wǎng)終端設(shè)備數(shù)量呈指數(shù)級增長,將這些物聯(lián)網(wǎng)設(shè)備產(chǎn)生的海量數(shù)據(jù)全部傳輸?shù)皆贫藭ζ溆嬎愦鎯Y源造成很大壓力[19-20]。邊緣計算是一種地理上分布式部署、在靠近數(shù)據(jù)源頭處執(zhí)行計算存儲任務(wù)的技術(shù)[21],它能夠有效利用物聯(lián)網(wǎng)設(shè)備中的計算與存儲資源[22],降低通信延遲和帶寬消耗,減輕云端的計算存儲負荷[23-24]。同時,與區(qū)塊鏈技術(shù)相結(jié)合,能夠為追溯系統(tǒng)提供安全、高效的數(shù)據(jù)共享模式,解決水稻原產(chǎn)地溯源存在的源頭數(shù)據(jù)篡改、云端資源消耗大等問題。區(qū)塊鏈與邊緣計算結(jié)合還會面臨物聯(lián)網(wǎng)設(shè)備生成大量數(shù)據(jù)、數(shù)據(jù)繁雜異構(gòu)、區(qū)塊鏈存儲空間占用過大等問題。

為了解決這些問題,本文提出水稻原產(chǎn)地溯源邊緣區(qū)塊鏈模型,該模型的邊緣層根據(jù)產(chǎn)地經(jīng)緯度劃分局部區(qū)塊鏈網(wǎng)絡(luò),每個產(chǎn)地區(qū)域鏈包含多個邊緣節(jié)點和一個核心節(jié)點;邊緣節(jié)點僅存儲對應(yīng)產(chǎn)區(qū)賬本,核心節(jié)點存儲全部產(chǎn)區(qū)賬本。利用嵌入式設(shè)備的邊緣計算能力,對物聯(lián)網(wǎng)數(shù)據(jù)實時融合得到所需的水稻追溯信息;邊緣節(jié)點作為區(qū)塊鏈節(jié)點,將水稻追溯信息中的公開溯源數(shù)據(jù)和加密商業(yè)隱私數(shù)據(jù)寫入邊緣區(qū)塊鏈賬本。邊緣區(qū)塊鏈賬本備份到核心節(jié)點再由其上傳至核心鏈,邊緣節(jié)點通過核心節(jié)點在核心鏈發(fā)布交易以注冊身份加入到產(chǎn)地區(qū)域鏈。在該模型的基礎(chǔ)上,設(shè)計嵌入式設(shè)備邊緣計算的工作流程并實現(xiàn)原型。

1 水稻供應(yīng)鏈關(guān)鍵信息

水稻供應(yīng)鏈包括種植、加工、倉儲、運輸、銷售等多環(huán)節(jié)[25],由土壤溫濕度傳感器、稱重傳感器、GPS定位裝置等終端設(shè)備實時采集溫濕度、生產(chǎn)數(shù)量、位置等溯源信息,保證高品質(zhì)稻米產(chǎn)品源頭數(shù)據(jù)真實性。在水稻產(chǎn)品追溯中,數(shù)據(jù)種類繁多,并非所有數(shù)據(jù)都可公開,涉及產(chǎn)量、價格等與產(chǎn)品質(zhì)量安全無關(guān)的商業(yè)隱私信息需要進行加密處理。本文提取水稻供應(yīng)鏈各環(huán)節(jié)關(guān)鍵追溯數(shù)據(jù)并將其劃分為公開數(shù)據(jù)與商業(yè)隱私數(shù)據(jù),具體如表1所示。由于水稻原產(chǎn)地溯源主要涉及產(chǎn)品信息、地理位置和生產(chǎn)數(shù)量,故本文主要對產(chǎn)品基本信息、溫濕度信息、GPS信息和產(chǎn)品重量信息等進行追溯,其中產(chǎn)品重量信息、產(chǎn)品成本、產(chǎn)品價格等為商業(yè)隱私數(shù)據(jù)。

2 基于區(qū)塊鏈和邊緣計算的水稻原產(chǎn)地溯源模型

2.1 水稻原產(chǎn)地溯源邊緣區(qū)塊鏈模型

在深入分析水稻供應(yīng)鏈特點的基礎(chǔ)上,本文設(shè)計基于區(qū)塊鏈和邊緣計算的水稻原產(chǎn)地溯源模型,主要由感知層、邊緣層和應(yīng)用層構(gòu)成,如圖1所示。感知層包括稱重傳感器、GPS傳感器、攝像頭等;傳感器收集到的數(shù)據(jù)通過無線傳感網(wǎng)絡(luò)傳輸?shù)竭吘墝?。邊緣層的嵌入式設(shè)備作為邊緣節(jié)點的同時還作為區(qū)塊鏈節(jié)點維護相應(yīng)賬本,邊緣層完成數(shù)據(jù)過濾、數(shù)據(jù)融合處理以及水稻產(chǎn)地溯源隱私數(shù)據(jù)加密后,邊緣節(jié)點作為聯(lián)盟鏈背書節(jié)點提交追溯信息上鏈;邊緣區(qū)塊鏈部分設(shè)計如下:根據(jù)產(chǎn)地經(jīng)緯度劃分為

圖1 水稻原產(chǎn)地溯源模型

多個產(chǎn)地區(qū)域,每個產(chǎn)地區(qū)域里的邊緣節(jié)點維護一個產(chǎn)地區(qū)域賬本,產(chǎn)地區(qū)域賬本備份到各產(chǎn)區(qū)對應(yīng)的核心節(jié)點,全部核心節(jié)點維護一條核心鏈,邊緣區(qū)塊鏈節(jié)點注冊和備份數(shù)據(jù)都上傳至核心鏈。應(yīng)用層負責消費者、監(jiān)管部門以及企業(yè)的各種信息交互需求。

2.2 邊緣區(qū)塊鏈存儲擴展設(shè)計

區(qū)塊鏈融合邊緣計算時,面臨參與節(jié)點存儲資源限制方面的挑戰(zhàn)。在邊緣計算節(jié)點部署區(qū)塊鏈時,區(qū)塊鏈全冗余存儲機制和共識過程會消耗節(jié)點大量的存儲和計算資源。由于作為邊緣節(jié)點的嵌入式設(shè)備的存儲容量限制,無法像原先的聯(lián)盟鏈節(jié)點那樣支持擴容;并且聯(lián)盟鏈網(wǎng)絡(luò)中存在大量的邊緣側(cè)節(jié)點,如果所有的節(jié)點都驗證網(wǎng)絡(luò)中的每筆交易,會大大限制聯(lián)盟鏈的吞吐量。為了降低邊緣節(jié)點需要存儲的賬本數(shù)據(jù)以及處理的交易量,本文設(shè)計基于原產(chǎn)地溯源的邊緣區(qū)塊鏈。邊緣計算場景下,數(shù)據(jù)具有地域性、時效性等特點[26]。由于邊緣節(jié)點部署在水稻產(chǎn)地,本文中根據(jù)產(chǎn)地經(jīng)緯度將區(qū)塊鏈網(wǎng)絡(luò)劃分為多個局部區(qū)塊鏈網(wǎng)絡(luò)。

水稻產(chǎn)地區(qū)域劃分方式如下:

(1)劃分區(qū)域??紤]水稻主要產(chǎn)地并非均勻分布,并結(jié)合文獻[27]中的產(chǎn)地區(qū)域劃分方法,將經(jīng)度劃分為2個帶、將緯度劃分為3個帶,這樣整個中國水稻產(chǎn)地地圖被劃分為6個區(qū)域,如圖2所示,其中水稻產(chǎn)地地圖的數(shù)據(jù)來源于2021年全國各省市統(tǒng)計年鑒。

圖2 水稻產(chǎn)地區(qū)域劃分示意圖

(2)確定區(qū)域。在劃分出6個區(qū)域的基礎(chǔ)上,需要確定某邊緣節(jié)點的坐標屬于哪個區(qū)域,參考表2的原則確定水稻原產(chǎn)地區(qū)域,再構(gòu)建邊緣區(qū)塊鏈多鏈網(wǎng)絡(luò)。

表2 水稻產(chǎn)地位置對應(yīng)區(qū)域

邊緣計算場景下聯(lián)盟鏈多鏈示意圖如圖3所示,聯(lián)盟鏈中的一個組織作為一個水稻供應(yīng)鏈企業(yè),一個通道內(nèi)有多個組織,每個組織有多個邊緣區(qū)塊鏈節(jié)點。相同產(chǎn)地區(qū)域內(nèi)的節(jié)點加入相同通道,絕大部分數(shù)據(jù)交換發(fā)生在相同產(chǎn)地區(qū)域的聯(lián)盟鏈網(wǎng)絡(luò),處于不同產(chǎn)地區(qū)域的節(jié)點本身不需要進行頻繁的數(shù)據(jù)交互。并且在每個產(chǎn)地區(qū)域都設(shè)置一個核心節(jié)點,核心節(jié)點加入各自產(chǎn)區(qū)的通道從而備份產(chǎn)區(qū)賬本,同時所有核心節(jié)點維護一個核心鏈,核心節(jié)點再將各產(chǎn)區(qū)賬本上傳至核心鏈,通過核心節(jié)點完成不同產(chǎn)地區(qū)域網(wǎng)絡(luò)溯源數(shù)據(jù)查詢的需求。邊緣節(jié)點加入邊緣區(qū)塊鏈需要通過核心節(jié)點注冊身份,身份注冊視為一個交易發(fā)布到核心區(qū)塊鏈中。不同產(chǎn)地區(qū)域的邊緣區(qū)塊鏈節(jié)點處于不同的通道中,以通道的天然隔離實現(xiàn)溯源數(shù)據(jù)的隔離存儲;同一個通道內(nèi)的大量邊緣節(jié)點是屬于不同企業(yè)的,因此也不會造成中心化風險。由于本文水稻產(chǎn)地追溯鏈中的產(chǎn)區(qū)數(shù)量為6,故每筆追溯數(shù)據(jù)上鏈需要達成共識的節(jié)點數(shù)量近似為原先的1/6。這種邊緣區(qū)塊鏈設(shè)計減少了邊緣區(qū)塊鏈節(jié)點需要存儲的追溯數(shù)據(jù)量,緩解了邊緣區(qū)塊鏈節(jié)點的存儲壓力。

圖3 邊緣計算場景下的聯(lián)盟鏈多鏈示意圖

2.3 水稻原產(chǎn)地溯源中的邊緣計算

借助嵌入式設(shè)備的邊緣計算能力,實現(xiàn)以下兩個模塊:對傳感器數(shù)據(jù)實時融合得到所需的水稻追溯信息;將自身作為區(qū)塊鏈節(jié)點,將水稻追溯信息中的公開溯源數(shù)據(jù)和加密商業(yè)隱私數(shù)據(jù)寫入邊緣區(qū)塊鏈賬本。

(1)數(shù)據(jù)融合

在水稻產(chǎn)地溯源中通過GPS、稱重傳感器、RFID、溫濕度傳感器等實時采集水稻的GPS、重量等數(shù)據(jù)。感知層終端設(shè)備計算存儲能力較弱,難以對傳感器數(shù)據(jù)進行及時處理。邊緣節(jié)點擁有較高的計算資源和存儲空間,通過對傳感器數(shù)據(jù)的分析,可以實現(xiàn)對異常數(shù)據(jù)進行過濾,將過濾處理后的各種傳感器數(shù)據(jù)提取關(guān)鍵信息進行數(shù)據(jù)融合得到所需的水稻產(chǎn)地溯源數(shù)據(jù)。這保證了存儲在區(qū)塊鏈中的數(shù)據(jù)是可靠的,消除了傳感器精度上的潛在誤差或檢測到的異常數(shù)據(jù)[28]。

本文使用卡爾曼濾波算法對水稻產(chǎn)地溯源各環(huán)節(jié)傳感器實時動態(tài)數(shù)據(jù)進行數(shù)據(jù)融合,其通過逐層遞歸的方式進行線性濾波,利用前一個采樣周期的估計值加上當前測量值對當前狀態(tài)進行準確的估計[29]。這種方法存儲計算消耗較少,具有良好的實時性和抗干擾能力,采用這種方法進行水稻產(chǎn)地溯源的數(shù)據(jù)級融合。

線性動態(tài)系統(tǒng)的卡爾曼濾波模型由狀態(tài)方程、節(jié)點觀測方程、狀態(tài)一步預(yù)測值以及更新方程組成,根據(jù)文獻[29]可以不斷地迭代下去,在水稻原產(chǎn)地溯源環(huán)境存在干擾較多的情況下,通過卡爾曼濾波算法能夠有效消除傳感器數(shù)據(jù)中系統(tǒng)噪聲和測量噪聲的影響,更加準確地得到實際環(huán)境測量數(shù)據(jù)的真實值。表3為水稻產(chǎn)地溯源中的測量數(shù)據(jù)以及經(jīng)過卡爾曼濾波后的數(shù)據(jù),其中原始車載GPS經(jīng)緯度經(jīng)過經(jīng)緯度和加速度數(shù)據(jù)融合后得到卡爾曼濾波GPS經(jīng)緯度。

表3 測量數(shù)據(jù)與卡爾曼濾波數(shù)據(jù)

生產(chǎn)環(huán)節(jié)數(shù)據(jù)融合后最終得到溯源數(shù)據(jù)示例如下:產(chǎn)品批次:320911199734981328|產(chǎn)品名稱:五常大米|上鏈節(jié)點Id:320911|節(jié)點名稱:peer0.org1.example.com|土壤類型:黑土|土壤溫濕度:3.04℃,14.44%|生產(chǎn)企業(yè):五常市北大倉米業(yè)有限公司|產(chǎn)地經(jīng)緯度:4 492.927 6,N,12 715.428 3,E|采收日期:2022/07/05|種植成本:1.25元/kg|采收量:3 000.0 kg。

(2)溯源數(shù)據(jù)上鏈

水稻原產(chǎn)地溯源通過稱重傳感器、GPS定位設(shè)備、溫濕度傳感器等實時采集產(chǎn)品生物信息和空間信息數(shù)據(jù)。其中,并非所有數(shù)據(jù)可公開溯源,涉及商品價格、產(chǎn)量等不影響產(chǎn)品質(zhì)量的商業(yè)隱私數(shù)據(jù),需在保證安全可靠的前提下通過區(qū)塊鏈實現(xiàn)數(shù)據(jù)的防篡改。本文將水稻追溯數(shù)據(jù),劃分為可公開溯源數(shù)據(jù)與商業(yè)隱私數(shù)據(jù)。嵌入式設(shè)備不僅是邊緣節(jié)點,還將自身作為區(qū)塊鏈上鏈節(jié)點,對公開溯源直接上鏈,商業(yè)隱私數(shù)據(jù)加密后再上鏈。 溯源數(shù)據(jù)上鏈的詳細流程如圖4所示,邊緣節(jié)點先將獲取的傳感器數(shù)據(jù)經(jīng)卡爾曼濾波算法數(shù)據(jù)融合得到水稻溯源數(shù)據(jù),再對溯源數(shù)據(jù)分類,將商業(yè)隱私數(shù)據(jù)通過SM2

圖4 邊緣節(jié)點上鏈流程

公鑰加密后的隱私數(shù)據(jù)密文及公開溯源數(shù)據(jù)打包成交易提案廣播至邊緣側(cè)區(qū)塊鏈網(wǎng)絡(luò),網(wǎng)絡(luò)通過Raft共識算法選出新區(qū)塊的生成者,其余邊緣節(jié)點再將新區(qū)塊備份到本地賬本中。

針對公開溯源數(shù)據(jù)消費者溯源需求、商業(yè)隱私數(shù)據(jù)授權(quán)共享需求,本文設(shè)計數(shù)據(jù)上鏈合約、獲取公開數(shù)據(jù)合約、通過SM2橢圓曲線公鑰密碼算法[30]私鑰解密查詢隱私溯源數(shù)據(jù)合約,具體的算法邏輯如表4所示。

表4 算法邏輯設(shè)計

本文對隱私溯源數(shù)據(jù)混合加密后上鏈、鏈上節(jié)點基于SM2私鑰訪問隱私數(shù)據(jù)、鏈上共享公開溯源數(shù)據(jù),數(shù)據(jù)上鏈算法1如下:

算法1:數(shù)據(jù)上鏈算法

輸入:節(jié)點peer,合約名稱cc,通道名稱channel,鍵值id,公開數(shù)據(jù)pubData,隱私數(shù)據(jù)密文priData

輸出:交易哈希txID,區(qū)塊高度blockNum

if id驗證有效 then

∥自動化生成SM2密鑰對

prk←getKey() ∥溯源節(jié)點SM2私鑰

publicKey←&prk.PublicKey ∥溯源節(jié)點SM2公鑰

∥通過溯源節(jié)點SM2公鑰加密隱私數(shù)據(jù)priData

SM2EncryPri←SM2Encrypt(priData, publicKey)

∥封裝上鏈數(shù)據(jù)結(jié)構(gòu)體

traceObj←&traceObj{id, pubData, SM2EncryPri}

∥執(zhí)行上鏈操作,marbleJSONasBytes為traceObj的json編碼

err←PutState(id,marbleJSONasBytes)

if err非空 then

return Error

else

return txID,blockNum

else

return dataError

通過數(shù)據(jù)上鏈算法,邊緣側(cè)區(qū)塊鏈節(jié)點調(diào)用數(shù)據(jù)上鏈智能合約發(fā)起交易提案,排序節(jié)點接收交易并排序后創(chuàng)建新區(qū)塊廣播到通道內(nèi)各組織的主節(jié)點,主節(jié)點背書并同步廣播到組織內(nèi)其他節(jié)點。本文建立的追溯網(wǎng)絡(luò)采用Raft共識機制,邊緣區(qū)塊鏈追溯系統(tǒng)的每秒處理事務(wù)數(shù)(Transaction per second,TPS)約為150。Raft由全部追溯節(jié)點選取主節(jié)點進行記賬、驗證、廣播,通過心跳機制選舉主節(jié)點,主節(jié)點負責管理鏈內(nèi)Raft集群中所有節(jié)點的復(fù)制,確保跟隨節(jié)點和主節(jié)點的日志一致,核心共識過程是日志記錄和數(shù)據(jù)提交。Raft算法的通信復(fù)雜度為O(N),其中N為一個集群中節(jié)點的數(shù)量,通信復(fù)雜度是理論上衡量共識算法效率性的一個指標,因此共識效率較高,具有良好的拓展性;同時僅需2n+1(其中n為集群中最多允許的節(jié)點故障數(shù))個節(jié)點參與排序即可,降低了部署成本。

溯源信息查詢分為公開數(shù)據(jù)透明訪問、隱私數(shù)據(jù)授權(quán)查詢,隱私數(shù)據(jù)查詢需要SM2私鑰解密。隱私數(shù)據(jù)查詢算法2如下:

算法2:隱私溯源數(shù)據(jù)查詢算法

輸入:節(jié)點peer,合約名稱cc,通道名稱channel,溯源數(shù)據(jù)溯源碼code, SM2私鑰key

輸出: 成功則返回隱私數(shù)據(jù)

if code=True and key=True then ∥判斷溯源碼以及SM2私鑰是否有效

∥獲取隱私溯源數(shù)據(jù)密文

traceinfo←GetState(code)

priEncrydata←string(traceinfo.EncryTraceData)

∥通過SM2密鑰解密隱私溯源數(shù)據(jù)密文

pridata←SM2Decrypt (priEncrydata,key)

else

return error

return success

邊緣節(jié)點以Key-value鍵值對的形式提交溯源數(shù)據(jù),key為產(chǎn)品ID,通過創(chuàng)建數(shù)據(jù)庫鍵值索引代替遍歷查詢,減少數(shù)據(jù)查詢時間開銷。數(shù)據(jù)上鏈交易請求由邊緣節(jié)點構(gòu)造交易背書提案,經(jīng)過Raft集群共識排序,返回當前上鏈請求的交易哈希,生成新的區(qū)塊與區(qū)塊高度,詳細信息如表5所示。

表5 上鏈數(shù)據(jù)

本文的水稻產(chǎn)地溯源工作流程如圖5所示。區(qū)塊鏈中將存儲兩種類型的交易數(shù)據(jù):一種是GPS數(shù)據(jù)、土壤溫濕度等公開數(shù)據(jù),另一種是數(shù)量、價格等隱私數(shù)據(jù)。終端數(shù)據(jù)經(jīng)過解析、過濾以及數(shù)據(jù)融合等處理后,將通過邊緣節(jié)點作為背書節(jié)點提交上鏈,經(jīng)驗證后達成共識,存儲到區(qū)塊鏈中。終端提供交易數(shù)據(jù)給邊緣節(jié)點,邊緣節(jié)點處理數(shù)據(jù)、數(shù)據(jù)融合后再將追溯數(shù)據(jù)打包上傳至邊緣側(cè)區(qū)塊鏈,核心節(jié)點為邊緣節(jié)點提供注冊身份和備份溯源數(shù)據(jù)服務(wù)。

圖5 水稻產(chǎn)地溯源工作流程

消費者、企業(yè)和監(jiān)管機構(gòu)可以使用計算機或手機查詢追溯數(shù)據(jù),在獲得SM2私鑰后可查詢商業(yè)隱私數(shù)據(jù)。例如,一個人從超市買了一袋五常大米,可以使用智能手機掃描二維碼查詢與之相關(guān)的公開追溯數(shù)據(jù),包括產(chǎn)品批次、產(chǎn)品ID、產(chǎn)品名稱、上鏈節(jié)點ID、土壤溫濕度、產(chǎn)地經(jīng)緯度等。水稻企業(yè)或監(jiān)管部門若要獲取隱私數(shù)據(jù),包括水稻的產(chǎn)量、價格和負責人等,需要獲得數(shù)據(jù)提交節(jié)點的私鑰,通過私鑰解密查詢商業(yè)隱私數(shù)據(jù)。

3 水稻原產(chǎn)地溯源系統(tǒng)實現(xiàn)

3.1 系統(tǒng)架構(gòu)

基于區(qū)塊鏈和邊緣計算的水稻原產(chǎn)地溯源系統(tǒng),通過區(qū)塊鏈實現(xiàn)上鏈信息的不可篡改,保證水稻原產(chǎn)地溯源鏈上信息的真實可信。通過邊緣計算不僅對感知層數(shù)據(jù)過濾融合,還將處理后的追溯信息上傳至邊緣側(cè)區(qū)塊鏈,實現(xiàn)公開數(shù)據(jù)明文與商業(yè)隱私數(shù)據(jù)加密上鏈。這保證了上鏈前信息來源可靠,同時通過差異化加密的方式保證了隱私安全和溯源數(shù)據(jù)的透明性,實現(xiàn)了區(qū)塊鏈和物聯(lián)網(wǎng)的有機結(jié)合。具體的系統(tǒng)架構(gòu)共分為5層:感知層、邊緣層、存儲層、接口層、應(yīng)用層。

物理層使用溫濕度傳感器、GPS、稱重傳感器、RFID等終端設(shè)備,對水稻產(chǎn)地溯源過程中的物聯(lián)網(wǎng)信息進行自動化獲取,為邊緣層的實時數(shù)據(jù)提取過濾和數(shù)據(jù)融合提供數(shù)據(jù)來源。

邊緣層使用嵌入式設(shè)備對物聯(lián)網(wǎng)數(shù)據(jù)進行實時數(shù)據(jù)處理和存儲,如對GPS數(shù)據(jù)解析,對異常數(shù)據(jù)進行數(shù)據(jù)過濾,對溫濕度傳感器數(shù)據(jù)、GPS數(shù)據(jù)進行數(shù)據(jù)融合,以減少數(shù)據(jù)冗余度,提高物理層采集數(shù)據(jù)的準確度。將溯源數(shù)據(jù)劃分為公開溯源數(shù)據(jù)和商業(yè)隱私數(shù)據(jù),并對公開溯源數(shù)據(jù)直接上鏈、商業(yè)隱私數(shù)據(jù)通過SM2加密后上鏈等都由邊緣層來執(zhí)行。邊緣層既為存儲層提供追溯信息,又是存儲層聯(lián)盟鏈的節(jié)點。

存儲層中區(qū)塊鏈數(shù)據(jù)賬本由文件系統(tǒng)存儲的區(qū)塊結(jié)構(gòu)和數(shù)據(jù)庫維護的世界狀態(tài)組成,通過Go語言編寫的智能合約執(zhí)行交易更新區(qū)塊鏈賬本。文件系統(tǒng)以Merkle樹結(jié)構(gòu)存儲上鏈數(shù)據(jù),通過鏈式區(qū)塊結(jié)構(gòu)實現(xiàn)數(shù)據(jù)正向記錄和逆向追溯。世界狀態(tài)以鍵值對的方式保存賬本數(shù)據(jù)狀態(tài)的最新值,通過智能合約執(zhí)行交易時,可通過世界狀態(tài)索引查詢鍵值的最新狀態(tài),無需遍歷整個事務(wù)日志,提高數(shù)據(jù)查詢效率。

接口層封裝了區(qū)塊鏈賬本數(shù)據(jù)寫入和查詢接口,為消費者、企業(yè)、監(jiān)管部門實現(xiàn)數(shù)據(jù)查詢、數(shù)據(jù)上傳等應(yīng)用層功能提供支持。

應(yīng)用層鏈接存儲層中的水稻產(chǎn)地追溯數(shù)據(jù),可為消費者和溯源企業(yè)、監(jiān)管機構(gòu)提供個性化服務(wù)。比如消費者掃碼獲取原產(chǎn)地溯源信息,企業(yè)獲取公開溯源數(shù)據(jù),監(jiān)管機構(gòu)通過私鑰解密查詢商業(yè)隱私數(shù)據(jù)。

3.2 原型實現(xiàn)

為實現(xiàn)基于區(qū)塊鏈和邊緣計算的水稻產(chǎn)地溯源原型,采用Rockchip RK3399雙核Cortex-A72+四核Cortex-A53芯片系統(tǒng)(SoC),采用迅為開發(fā)板在嵌入式硬件上開發(fā),利用這種硬件可以實現(xiàn)邊緣計算。感知設(shè)備如GPS、稱重傳感器、攝像頭等通過無線傳感網(wǎng)絡(luò)傳輸數(shù)據(jù)到嵌入式設(shè)備。

在RK3399芯片上根據(jù)Ubuntu 16.04定制操作系統(tǒng)并部署Fabric 1.4.4,由于RK3399的CPU核心是arm64,而Hyperledger Fabric官方?jīng)]有arm64版本的docker鏡像,也沒有發(fā)布相應(yīng)的二進制文件(peer、orderer、configtxgen等),因此需要編譯Fabric源碼獲取。通過Qt Creator開發(fā)嵌入式程序并交叉編譯后將程序移植到RK3399芯片上運行,如圖6所示,該程序用于物聯(lián)網(wǎng)數(shù)據(jù)獲取并處理,包括物聯(lián)網(wǎng)數(shù)據(jù)收集、數(shù)據(jù)過濾、數(shù)據(jù)融合等,最終將其中的關(guān)鍵數(shù)據(jù)打包為追溯信息上傳到區(qū)塊鏈。如圖7所示,水稻產(chǎn)地溯源存儲在區(qū)塊鏈賬本,追溯系統(tǒng)展示區(qū)塊鏈數(shù)據(jù)存儲信息,包括區(qū)塊高度、交易Hash等,用戶可查詢水稻原產(chǎn)地溯源信息。本文實現(xiàn)的原型利用區(qū)塊鏈技術(shù)和嵌入式硬件的邊緣計算能力,在水稻產(chǎn)地獲取源頭數(shù)據(jù)經(jīng)數(shù)據(jù)過濾、數(shù)據(jù)融合后直接將水稻追溯信息上傳至邊緣區(qū)塊鏈,再由核心節(jié)點將邊緣區(qū)塊鏈賬本上傳至核心鏈。邊緣計算保證數(shù)據(jù)來源真實性,區(qū)塊鏈保證上鏈數(shù)據(jù)不可篡改,兩者結(jié)合實現(xiàn)了追溯系統(tǒng)數(shù)據(jù)的可信存儲。

圖6 邊緣區(qū)塊鏈節(jié)點程序界面

圖7 水稻產(chǎn)地追溯系統(tǒng)界面

同時,為滿足消費者追溯需求,本研究設(shè)計的水稻產(chǎn)地溯源系統(tǒng)為消費者提供掃碼溯源的功能,消費者可掃描產(chǎn)品上的二維碼獲取產(chǎn)品的溯源數(shù)據(jù)。如圖8所示,經(jīng)過查詢后,消費者可獲取產(chǎn)品介紹信息、溯源信息和區(qū)塊信息。消費者可獲得該批次產(chǎn)品的公開溯源信息,同時展示區(qū)塊鏈追溯系統(tǒng)中的區(qū)塊鏈地址、追溯Hash值和區(qū)塊高度,確保數(shù)據(jù)不被篡改。

圖8 消費者掃碼溯源界面

4 測試與分析

4.1 測試環(huán)境

通過Ubuntu 16.04 Linux系統(tǒng),基于Hyperledger Fabric v1.4.4 建立水稻產(chǎn)地溯源網(wǎng)絡(luò),RK3399芯片存儲容量16 GB,運行內(nèi)存4 GB。區(qū)塊鏈采用Raft共識,所有節(jié)點均部署外部狀態(tài)數(shù)據(jù)庫CouchDB,通過鍵值查詢代替遍歷查詢,提升數(shù)據(jù)查詢效率,測試工具為Postman和Hyperledger Caliper,具體配置如表6所示。

表6 區(qū)塊鏈配置

4.2 上鏈與查詢性能

本文為合約封裝上鏈外部接口,通過接口實現(xiàn)腳本文件高并發(fā)調(diào)用。在數(shù)據(jù)上鏈腳本文件中,指定發(fā)起數(shù)據(jù)上鏈交易節(jié)點為peer1.org1.example.com,通過接口每輪次測試50次,數(shù)據(jù)上鏈平均時延如圖9a所示。在數(shù)據(jù)查詢接口中,通過接口每輪次測試50次,公開溯源數(shù)據(jù)、隱私溯源數(shù)據(jù)解密查詢所需的平均時延如圖9b所示。根據(jù)圖9所示,溯源數(shù)據(jù)加密上鏈的平均時間為1.27 s,公開溯源數(shù)據(jù)平均查詢時間為45.84 ms,隱私溯源數(shù)據(jù)平均查詢時間為50.92 ms,能夠滿足水稻原產(chǎn)地溯源系統(tǒng)數(shù)據(jù)上鏈與查詢需求。

圖9 追溯數(shù)據(jù)上鏈與查詢時間

4.3 存儲性能

本文的邊緣區(qū)塊鏈模型利用產(chǎn)地區(qū)域劃分區(qū)塊鏈多鏈提升水稻區(qū)塊鏈原產(chǎn)地溯源網(wǎng)絡(luò)存儲能力,根據(jù)產(chǎn)地經(jīng)緯度劃分產(chǎn)地區(qū)域,將我國水稻產(chǎn)地劃分為6個水稻產(chǎn)區(qū),每個產(chǎn)地區(qū)域單獨維護一條鏈,每條鏈獨立存儲該產(chǎn)地區(qū)域內(nèi)各追溯節(jié)點的溯源數(shù)據(jù),邊緣區(qū)塊鏈多鏈結(jié)構(gòu)與傳統(tǒng)單鏈結(jié)構(gòu)存儲容量對比如圖10所示,相同區(qū)塊數(shù)量下,邊緣多鏈的存儲容量消耗僅為傳統(tǒng)單鏈的18%左右。

圖10 存儲性能對比

通過產(chǎn)地區(qū)域劃分水稻溯源,各產(chǎn)區(qū)邊緣節(jié)點分布式獨立存儲溯源數(shù)據(jù),緩解數(shù)據(jù)單鏈存儲壓力。追溯數(shù)據(jù)通過物聯(lián)網(wǎng)設(shè)備采集,經(jīng)邊緣區(qū)塊鏈節(jié)點處理后上傳至所在區(qū)域的區(qū)塊鏈網(wǎng)絡(luò),其中,單條溯源數(shù)據(jù)為0.43 kB,由邊緣區(qū)塊鏈節(jié)點背書,經(jīng)過智能合約上鏈生成新的區(qū)塊。水稻原產(chǎn)地溯源場景下,由于邊緣設(shè)備的性能限制,單鏈式溯源網(wǎng)絡(luò)在滿足聯(lián)盟鏈架構(gòu)基礎(chǔ)上難以負載千萬級數(shù)據(jù)存儲需求,多鏈存儲網(wǎng)絡(luò)通過通道隔離數(shù)據(jù),能夠滿足水稻各產(chǎn)地區(qū)域海量溯源數(shù)據(jù)的存儲需求。

5 結(jié)論

(1)提出了基于區(qū)塊鏈和邊緣計算的水稻原產(chǎn)地溯源模型,邊緣節(jié)點將自身作為區(qū)塊鏈節(jié)點,將水稻原產(chǎn)地溯源信息數(shù)據(jù)融合處理后上傳至邊緣側(cè)區(qū)塊鏈;通過產(chǎn)地經(jīng)緯度劃分產(chǎn)地區(qū)域構(gòu)建邊緣區(qū)塊鏈網(wǎng)絡(luò),核心節(jié)點組建核心鏈負責各產(chǎn)地區(qū)域鏈的節(jié)點注冊和賬本備份。該研究解決了傳統(tǒng)物聯(lián)網(wǎng)區(qū)塊鏈追溯系統(tǒng)數(shù)據(jù)來源中心化、通信延遲高以及云端資源消耗大等問題。

(2)在水稻原產(chǎn)地溯源模型中,通過區(qū)塊鏈和邊緣計算的部署,可以降低或防范一些潛在的安全風險。并成功地實現(xiàn)了原型,驗證了本模型的可行性。測試結(jié)果表明,數(shù)據(jù)加密上鏈、公開數(shù)據(jù)查詢、商業(yè)隱私數(shù)據(jù)解密查詢的平均時延分別為1.27 s、45.84 ms、50.92 ms,存儲容量消耗為傳統(tǒng)單鏈的18%,系統(tǒng)具備良好的性能,能夠滿足水稻原產(chǎn)地溯源的需求,為邊緣計算場景下區(qū)塊鏈溯源系統(tǒng)的架構(gòu)設(shè)計和存儲容量擴展提供一定的借鑒與參考。

猜你喜歡
賬本原產(chǎn)地產(chǎn)地
數(shù)說:重慶70年“賬本”展示
當代黨員(2019年19期)2019-11-13 01:43:29
青海啟動牦牛藏羊原產(chǎn)地可追溯工程
警惕“洗產(chǎn)地”暗礁
中國外匯(2019年22期)2019-05-21 03:14:56
丟失的紅色賬本
大樹爺爺?shù)馁~本
食物離產(chǎn)地越遠越好
測定不同產(chǎn)地寬筋藤中5種重金屬
中成藥(2018年8期)2018-08-29 01:28:16
丟失的紅色賬本
按主要原產(chǎn)地和目的地劃分的商品進出口
加強產(chǎn)地檢疫實現(xiàn)以檢促防
涞水县| 基隆市| 榆树市| 武义县| 东宁县| 搜索| 商洛市| 九江市| 新和县| 吉水县| 九龙县| 齐齐哈尔市| 合水县| 新余市| 电白县| 留坝县| 凤山市| 武邑县| 晋中市| 巴马| 精河县| 四平市| 五原县| 都兰县| 珲春市| 鄱阳县| 临潭县| 新宁县| 光山县| 木里| 潜山县| 瓮安县| 马鞍山市| 青海省| 客服| 平顶山市| 涿鹿县| 阜阳市| 铁力市| 朔州市| 迁安市|