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

?

基于區(qū)塊鏈的農(nóng)產(chǎn)品溯源系統(tǒng)研究

2021-05-14 03:57吳曉彤柳平增王志鏵
關(guān)鍵詞:分布式區(qū)塊節(jié)點(diǎn)

吳曉彤 柳平增 王志鏵

(山東農(nóng)業(yè)大學(xué)信息科學(xué)與工程學(xué)院 山東 泰安 271018)

0 引 言

農(nóng)產(chǎn)品溯源系統(tǒng)作為一種對(duì)農(nóng)產(chǎn)品質(zhì)量進(jìn)行監(jiān)督與控制的有效方法,已成為國(guó)內(nèi)外農(nóng)產(chǎn)品質(zhì)量安全監(jiān)管的有效手段[1]。但由于傳統(tǒng)農(nóng)產(chǎn)品溯源系統(tǒng)依賴于中心數(shù)據(jù)庫(kù)存儲(chǔ)和管理數(shù)據(jù),系統(tǒng)中心化嚴(yán)重,導(dǎo)致信息在記錄過(guò)程中易被篡改、數(shù)據(jù)不公開透明、信息易丟失等問(wèn)題,系統(tǒng)在數(shù)據(jù)存儲(chǔ)安全方面面臨著眾多挑戰(zhàn)。

區(qū)塊鏈?zhǔn)且环N分布式賬本技術(shù),具有去中心化、公開透明、分布式存儲(chǔ)、不可篡改、安全可靠等技術(shù)特點(diǎn),被認(rèn)為是一種與生俱來(lái)的信任機(jī)器,可用于解決傳統(tǒng)溯源系統(tǒng)產(chǎn)生的中心化、信任危機(jī)等問(wèn)題,提高溯源的可靠性與安全性[2-4]。

本文在總結(jié)和分析傳統(tǒng)農(nóng)產(chǎn)品溯源系統(tǒng)問(wèn)題的基礎(chǔ)上,構(gòu)建基于區(qū)塊鏈的農(nóng)產(chǎn)品溯源模型和溯源系統(tǒng)架構(gòu),利用區(qū)塊鏈的分布式存儲(chǔ)、智能合約等技術(shù)實(shí)現(xiàn)了去中心化的農(nóng)產(chǎn)品溯源模式,將農(nóng)產(chǎn)品溯源信息分布式的存儲(chǔ)在鏈上的每一個(gè)節(jié)點(diǎn)中,并通過(guò)HyperledgerFabric框架實(shí)現(xiàn)了基于區(qū)塊鏈的農(nóng)產(chǎn)品溯源系統(tǒng)。該系統(tǒng)提高了農(nóng)產(chǎn)品溯源信息的透明度與安全性。

1 傳統(tǒng)農(nóng)產(chǎn)品溯源系統(tǒng)問(wèn)題分析

國(guó)內(nèi)外許多學(xué)者在物聯(lián)網(wǎng)、網(wǎng)絡(luò)信息、數(shù)據(jù)庫(kù)等技術(shù)方面,對(duì)農(nóng)產(chǎn)品溯源系統(tǒng)進(jìn)行創(chuàng)新性的研究并取得顯著成效[5-17]。傳統(tǒng)農(nóng)產(chǎn)品溯源以種植、倉(cāng)儲(chǔ)、加工及物流等流程為主線,記錄和管理從種植到銷售所有環(huán)節(jié)的產(chǎn)品信息,溯源模型如圖1所示。

圖1 傳統(tǒng)農(nóng)產(chǎn)品溯源系統(tǒng)模型

可以看出:傳統(tǒng)的農(nóng)產(chǎn)品溯源系統(tǒng)一般以中心數(shù)據(jù)庫(kù)為基礎(chǔ),采取分段、分環(huán)節(jié)的溯源模式;在農(nóng)產(chǎn)品流通過(guò)程中,國(guó)內(nèi)多部門實(shí)行切塊分段共管的運(yùn)行機(jī)制,分段監(jiān)管步調(diào)不一;部分系統(tǒng)基礎(chǔ)建設(shè)缺乏標(biāo)準(zhǔn)化,信息不規(guī)范、系統(tǒng)不兼容;對(duì)于監(jiān)管部門和消費(fèi)者來(lái)說(shuō),所有信息需要從中心數(shù)據(jù)庫(kù)中獲取[18-23]。傳統(tǒng)溯源系統(tǒng)依賴于中心數(shù)據(jù)庫(kù)會(huì)導(dǎo)致以下問(wèn)題:

(1) 系統(tǒng)中心化嚴(yán)重,信息真實(shí)性無(wú)法驗(yàn)證。傳統(tǒng)溯源系統(tǒng)大多采用中心數(shù)據(jù)庫(kù)實(shí)現(xiàn)信息存儲(chǔ),信息存在人為篡改的可能,使得消費(fèi)者對(duì)于溯源信息的真實(shí)性有較大的質(zhì)疑。

(2) 農(nóng)產(chǎn)品信息不公開透明,導(dǎo)致交易雙方出現(xiàn)信任問(wèn)題。不同環(huán)節(jié)的用戶作為不同的角色參與溯源過(guò)程,角色間缺乏信息反饋,信息不公開透明,導(dǎo)致各角色掌握的信息不對(duì)稱,交易雙方缺乏信任,容易產(chǎn)生信任危機(jī)問(wèn)題。

(3) 農(nóng)產(chǎn)品責(zé)任主體難確定。由于傳統(tǒng)溯源系統(tǒng)各環(huán)節(jié)分散、碎片化嚴(yán)重,一旦產(chǎn)品出現(xiàn)質(zhì)量問(wèn)題,需從每個(gè)環(huán)節(jié)逐步進(jìn)行溯源,過(guò)程較為繁瑣,無(wú)法快速準(zhǔn)確定位責(zé)任主體。

2 區(qū)塊鏈技術(shù)

2.1 區(qū)塊鏈概述

區(qū)塊鏈?zhǔn)且环N分布式賬本技術(shù),是一串利用加密算法相關(guān)聯(lián)而產(chǎn)生的鏈?zhǔn)綌?shù)據(jù)結(jié)構(gòu),通過(guò)去中心化和去信任的方式集體維護(hù)一個(gè)可靠數(shù)據(jù)庫(kù),具有去中心化、共識(shí)機(jī)制、開放透明、匿名性四個(gè)特點(diǎn)[24-26],區(qū)塊鏈連接示意圖如圖2所示。

圖2 區(qū)塊鏈接示意圖

區(qū)塊鏈?zhǔn)且环N大家共同參與信息的記錄和存儲(chǔ)的技術(shù)。在之前,人們通過(guò)中心化的機(jī)構(gòu)進(jìn)行信息記錄和存儲(chǔ)的工作,區(qū)塊鏈技術(shù)的出現(xiàn)則允許系統(tǒng)中的每個(gè)節(jié)點(diǎn)都能夠參與信息的記錄和存儲(chǔ),即使系統(tǒng)中的部分參與節(jié)點(diǎn)失效或作假也不能改變區(qū)塊鏈的完整性,更不能篡改區(qū)塊鏈中的信息[27]。目前區(qū)塊鏈作為一種去中心化的核心技術(shù),被廣泛應(yīng)用于金融、政務(wù)、物聯(lián)網(wǎng)等領(lǐng)域。

2.2 關(guān)鍵應(yīng)用技術(shù)

2.2.1分布式存儲(chǔ)

區(qū)塊鏈分布式存儲(chǔ)是一種數(shù)據(jù)存儲(chǔ)的技術(shù),它將網(wǎng)絡(luò)上每臺(tái)機(jī)器的磁盤空間作為分散的存儲(chǔ)資源形成虛擬的存儲(chǔ)設(shè)備,數(shù)據(jù)被分散存儲(chǔ)在鏈的每一個(gè)節(jié)點(diǎn)中,并完整地保存下來(lái)。

區(qū)塊鏈的分布式存儲(chǔ)過(guò)程如圖3所示,可以分為以下六個(gè)步驟:(1) 創(chuàng)建數(shù)據(jù)分片;(2) 加密每個(gè)分片;(3) 為每個(gè)分片生成哈希;(4) 復(fù)制每個(gè)分片;(5) 分發(fā)復(fù)制的分片;(6) 記錄事務(wù)到分類帳。

圖3 區(qū)塊鏈分布式存儲(chǔ)過(guò)程

區(qū)塊鏈的分布式存儲(chǔ)打破了傳統(tǒng)溯源系統(tǒng)數(shù)據(jù)存儲(chǔ)中心化的局面,使信息分布式存儲(chǔ)在多個(gè)節(jié)點(diǎn),每個(gè)節(jié)點(diǎn)都保持完整的信息副本,鏈上信息對(duì)所有參與成員都是透明且可驗(yàn)證的,同時(shí)增強(qiáng)了產(chǎn)業(yè)鏈各環(huán)節(jié)的信息互通性,其去中心化、透明性、可恢復(fù)性和防篡改性的特點(diǎn)也使得其與農(nóng)產(chǎn)品溯源領(lǐng)域極為契合。

2.2.2智能合約

智能合約又稱為智能合同,是事件驅(qū)動(dòng)的、有狀態(tài)的、多方識(shí)別的、運(yùn)行在區(qū)塊鏈上的、能夠根據(jù)預(yù)設(shè)條件自動(dòng)處理資產(chǎn)的合約。智能合約的最大優(yōu)點(diǎn)是使用程序算法來(lái)代替仲裁和合同的執(zhí)行[28]。

如果說(shuō)區(qū)塊鏈?zhǔn)且粋€(gè)數(shù)據(jù)庫(kù),那么智能合約就是將區(qū)塊鏈技術(shù)應(yīng)用于現(xiàn)實(shí)的應(yīng)用層。智能合約是在區(qū)塊鏈數(shù)據(jù)庫(kù)上運(yùn)行的一種計(jì)算機(jī)程序,能在滿足源代碼編寫條件的情況下自動(dòng)執(zhí)行。智能合約為傳統(tǒng)農(nóng)產(chǎn)品溯源系統(tǒng)標(biāo)準(zhǔn)不同、流通性不強(qiáng)的問(wèn)題帶來(lái)了解決辦法,實(shí)現(xiàn)了信息的連續(xù)實(shí)時(shí)傳遞和跟蹤,且進(jìn)一步增強(qiáng)了系統(tǒng)的去中心化。目前,智能合約在選舉、供應(yīng)鏈優(yōu)化、電子商務(wù)等場(chǎng)景中都得到了有效應(yīng)用。

3 系統(tǒng)方案設(shè)計(jì)

3.1 區(qū)塊鏈應(yīng)用設(shè)計(jì)

農(nóng)產(chǎn)品溯源涉及種植、倉(cāng)儲(chǔ)、加工、物流、銷售、查詢等多個(gè)環(huán)節(jié),各環(huán)節(jié)之間的高效協(xié)作能夠保障農(nóng)產(chǎn)品信息的有效溯源。本文根據(jù)農(nóng)產(chǎn)品溯源的實(shí)際需求對(duì)區(qū)塊鏈技術(shù)在產(chǎn)業(yè)鏈各環(huán)節(jié)的應(yīng)用進(jìn)行了設(shè)計(jì),使區(qū)塊鏈中的智能合約和分布式存儲(chǔ)技術(shù)能夠確保產(chǎn)品信息流的正常傳遞,保證了產(chǎn)品的流通、溯源和信息的分布式存儲(chǔ)。

(1) 種植(生產(chǎn))環(huán)節(jié)。主要節(jié)點(diǎn)為農(nóng)場(chǎng)或企業(yè)。節(jié)點(diǎn)需要將生產(chǎn)資料和產(chǎn)品信息錄入并上傳到區(qū)塊鏈中,創(chuàng)建初始區(qū)塊。在此過(guò)程中系統(tǒng)調(diào)用智能合約實(shí)現(xiàn)對(duì)節(jié)點(diǎn)的認(rèn)證和信息上鏈,并通過(guò)數(shù)據(jù)分片的方式實(shí)現(xiàn)信息的分布式存儲(chǔ)。當(dāng)產(chǎn)品隨著產(chǎn)業(yè)鏈流動(dòng)進(jìn)入下一環(huán)節(jié)即倉(cāng)儲(chǔ)環(huán)節(jié)時(shí),當(dāng)前節(jié)點(diǎn)會(huì)向下一個(gè)節(jié)點(diǎn)發(fā)送交易請(qǐng)求,雙方利用密鑰對(duì)區(qū)塊進(jìn)行驗(yàn)證,并根據(jù)內(nèi)嵌在區(qū)塊鏈中的智能合約進(jìn)行交易過(guò)程,在全員審核通過(guò)后完成交易,倉(cāng)庫(kù)便成為新的授權(quán)角色。在交易過(guò)程中,監(jiān)管部門作為鏈中的節(jié)點(diǎn)有權(quán)對(duì)種植信息進(jìn)行訪問(wèn)及審查,審查合格后以私鑰方式簽名來(lái)認(rèn)證種植環(huán)節(jié)合乎規(guī)范。算法偽代碼如算法1所示。

算法1智能合約中的農(nóng)產(chǎn)品交易操作

已知節(jié)點(diǎn)編號(hào)為user_id,節(jié)點(diǎn)角色為user_name,交易編號(hào)為tran_id,時(shí)間戳為timestamp,產(chǎn)品信息為pro_info。

//注冊(cè)用戶并生成私鑰

user.id=user_id,user.name=user_name,;

newKeyPair() (user_id,[]byte);

//進(jìn)行產(chǎn)品信息的錄入和區(qū)塊的生成

protected List inputs;

pro_hash=sha256(pro_info),pro_time=timestamp;

generateBlock(pro_info);

//節(jié)點(diǎn)驗(yàn)證

if proving(user_id).equal==0 then

return false;

//區(qū)塊廣播及驗(yàn)證

else public boolean broadcast(Block pro_info);

isBlockValid(Block pro_info);

AddBlockchain();

return ture;

(2) 倉(cāng)儲(chǔ)環(huán)節(jié)。此環(huán)節(jié)的主要節(jié)點(diǎn)為倉(cāng)庫(kù)(冷庫(kù))。倉(cāng)庫(kù)接受了來(lái)自種植環(huán)節(jié)的產(chǎn)品之后,獲得訪問(wèn)和維護(hù)產(chǎn)品信息的權(quán)限,并且將該環(huán)節(jié)特定信息寫入?yún)^(qū)塊中,在轉(zhuǎn)移產(chǎn)品的過(guò)程中調(diào)用智能合約將變更的溯源編碼進(jìn)行更新。這個(gè)過(guò)程中節(jié)點(diǎn)之間通過(guò)共識(shí)算法進(jìn)行區(qū)塊的廣播和數(shù)據(jù)的同步,使得鏈中的其他節(jié)點(diǎn)也可以實(shí)現(xiàn)自身區(qū)塊的信息更新和對(duì)該環(huán)節(jié)區(qū)塊的訪問(wèn)。

(3) 加工環(huán)節(jié)。作為消費(fèi)者最關(guān)心的環(huán)節(jié),在收到來(lái)自于上一環(huán)節(jié)的產(chǎn)品后,需要寫入加工信息。其中:檢驗(yàn)合格信息需要有監(jiān)管部門參與檢驗(yàn)并通過(guò)數(shù)字簽名對(duì)產(chǎn)品的合格與否來(lái)進(jìn)行認(rèn)證,與產(chǎn)品信息一同寫入?yún)^(qū)塊中,同時(shí)生產(chǎn)資料的供應(yīng)商作為節(jié)點(diǎn)加入到鏈中,防止產(chǎn)品溯源過(guò)程中產(chǎn)生斷鏈現(xiàn)象。最后的產(chǎn)品包裝過(guò)程中,除了必要的包裝信息外,還需要為產(chǎn)品生成溯源碼或二維碼,便于消費(fèi)者進(jìn)行產(chǎn)品的溯源查詢。

(4) 物流環(huán)節(jié)。主要節(jié)點(diǎn)為物流公司。在更新產(chǎn)品信息時(shí)需要提供物流信息,運(yùn)輸中每個(gè)包裝上應(yīng)包含產(chǎn)品的標(biāo)識(shí),以便于當(dāng)前節(jié)點(diǎn)與下一節(jié)點(diǎn)的對(duì)接管理。

(5) 銷售環(huán)節(jié)。主要節(jié)點(diǎn)為超市等銷售企業(yè)。農(nóng)產(chǎn)品經(jīng)過(guò)物流環(huán)節(jié)的運(yùn)輸后,會(huì)發(fā)往不同地區(qū)的銷售企業(yè),所以區(qū)塊中的產(chǎn)品信息須添加當(dāng)前節(jié)點(diǎn)的企業(yè)信息;銷售企業(yè)同樣也需要明確產(chǎn)品的來(lái)源信息、銷售信息等,確保產(chǎn)品信息的完整性,由于以上環(huán)節(jié)的代碼邏輯與生產(chǎn)環(huán)節(jié)較為相似,故此處不再闡述。

(6) 查詢環(huán)節(jié)。主要節(jié)點(diǎn)是消費(fèi)者和監(jiān)管部門。消費(fèi)者可以通過(guò)掃描所購(gòu)買產(chǎn)品包裝上的一維碼和二維碼對(duì)產(chǎn)品進(jìn)行溯源,獲取產(chǎn)品的相關(guān)信息;在查詢過(guò)程中系統(tǒng)首先會(huì)對(duì)消費(fèi)者的身份進(jìn)行驗(yàn)證,通過(guò)驗(yàn)證后系統(tǒng)將通過(guò)溯源碼進(jìn)行區(qū)塊鏈地址查詢,查詢成功后返回地址,后臺(tái)接口將該地址的區(qū)塊信息反饋給消費(fèi)者,完成逆向溯源的過(guò)程。該算法偽代碼如算法2所示。

算法2智能合約中的農(nóng)產(chǎn)品信息查詢

已知節(jié)點(diǎn)編號(hào)為user_id,產(chǎn)品批次號(hào)為tran_id,時(shí)間戳為timestamp,產(chǎn)品信息為pro_info。

//節(jié)點(diǎn)驗(yàn)證

if proving(user_id).equal==0 then

return false;

//遍歷區(qū)塊

Else

mineTxList=blockStoreProvider.loadRelatedTransactions();

for

(TransactionStore.getTransactionStore:mineTxList)

If

(TransactionStore.getTransaction().getHash.equals(pro_hash))

Listoutputs=TransactionStore.getOutputs();

//遍歷查詢輸出

For(int i=0;i

TransactionOutput output=outputs.get(i);

Break;

return output;

3.2 區(qū)塊鏈溯源模型設(shè)計(jì)

基于傳統(tǒng)農(nóng)產(chǎn)品溯源和區(qū)塊鏈技術(shù)各自的特點(diǎn),本文設(shè)計(jì)了基于區(qū)塊鏈的農(nóng)產(chǎn)品溯源系統(tǒng)模型,如圖4所示。為便于敘述,本文將基于區(qū)塊鏈的農(nóng)產(chǎn)品溯源系統(tǒng)包含的產(chǎn)業(yè)鏈環(huán)節(jié)分為六個(gè),分別為種植、倉(cāng)儲(chǔ)、加工、物流、銷售、查詢環(huán)節(jié),考慮到產(chǎn)業(yè)鏈可能還存在眾多分支環(huán)節(jié),此處僅取主鏈進(jìn)行分析。

圖4 基于區(qū)塊鏈的農(nóng)產(chǎn)品溯源系統(tǒng)模型

從生產(chǎn)到銷售的流通過(guò)程中,農(nóng)產(chǎn)品會(huì)經(jīng)歷眾多環(huán)節(jié),而產(chǎn)品信息傳遞的關(guān)鍵在于其環(huán)節(jié)參與節(jié)點(diǎn)。本文給每個(gè)參與節(jié)點(diǎn)設(shè)置密鑰,密鑰就像是區(qū)塊鏈錢包,上面包含其農(nóng)產(chǎn)品的詳細(xì)信息,使得產(chǎn)業(yè)鏈每一環(huán)節(jié)的參與節(jié)點(diǎn)都能夠利用自身的密鑰對(duì)信息進(jìn)行加密;在兩個(gè)環(huán)節(jié)進(jìn)行產(chǎn)品交易時(shí),發(fā)起者首先通過(guò)自身密鑰進(jìn)行節(jié)點(diǎn)認(rèn)證,認(rèn)證通過(guò)后開始整個(gè)交易流程,此時(shí)兩節(jié)點(diǎn)需要利用非對(duì)稱加密技術(shù)達(dá)成一致協(xié)議,使產(chǎn)品所屬關(guān)系被轉(zhuǎn)移。通過(guò)共識(shí)算法保證交易的一致性,例如在某個(gè)節(jié)點(diǎn)進(jìn)行信息的存儲(chǔ)后,會(huì)對(duì)全網(wǎng)發(fā)送一個(gè)廣播,鏈上所有節(jié)點(diǎn)確認(rèn)廣播后,使產(chǎn)品信息分布式存儲(chǔ)于各節(jié)點(diǎn)的分布式賬本中,通過(guò)密碼學(xué)和共識(shí)算法的結(jié)合能夠保證信息不可篡改。通過(guò)編寫智能合約,保證農(nóng)產(chǎn)品的每一次信息傳遞、位置變更等都會(huì)被記錄在區(qū)塊鏈上,并且真實(shí)有效。比如:當(dāng)生產(chǎn)者將農(nóng)產(chǎn)品交付給物流環(huán)節(jié)的過(guò)程就是一個(gè)合同,物流將農(nóng)產(chǎn)品運(yùn)送到銷售店面同樣也會(huì)有一個(gè)合同。在整個(gè)流程過(guò)程中有無(wú)數(shù)個(gè)合同要簽約,把這一系列的合同通過(guò)代碼的形式在區(qū)塊鏈上實(shí)現(xiàn),就是通過(guò)智能合約來(lái)完成。通過(guò)此模型實(shí)現(xiàn)的產(chǎn)品溯源全過(guò)程信息透明且不可篡改,解決了傳統(tǒng)溯源的誠(chéng)信問(wèn)題。

若某個(gè)環(huán)節(jié)的參與節(jié)點(diǎn)發(fā)生了故障,系統(tǒng)仍然能夠正常運(yùn)行,且故障節(jié)點(diǎn)的數(shù)據(jù)可以恢復(fù)。這些參與節(jié)點(diǎn)在系統(tǒng)中都享有數(shù)據(jù)寫入和讀取的權(quán)限,并且鏈中的區(qū)塊能夠進(jìn)行數(shù)據(jù)同步,這意味著每個(gè)節(jié)點(diǎn)間可以共享產(chǎn)品信息,在保證數(shù)據(jù)真實(shí)的前提下,實(shí)現(xiàn)農(nóng)產(chǎn)品信息的有效跟蹤和溯源,真正達(dá)到系統(tǒng)去中心化的效果。

由于區(qū)塊鏈農(nóng)產(chǎn)品溯源系統(tǒng)所涉及到的參與節(jié)點(diǎn)眾多,并且這些節(jié)點(diǎn)都是特定的或是簽訂協(xié)議的組織,不同節(jié)點(diǎn)所享有的權(quán)限不同,因此每個(gè)節(jié)點(diǎn)都可以作為一個(gè)中心參與到溯源過(guò)程中,系統(tǒng)在運(yùn)行過(guò)程中所需要的數(shù)據(jù)承載能力也較高。結(jié)合不同類型區(qū)塊鏈技術(shù)特點(diǎn)的分析,本文選用聯(lián)盟鏈作為區(qū)塊鏈溯源系統(tǒng)的底層架構(gòu)支撐。

3.3 系統(tǒng)架構(gòu)設(shè)計(jì)

根據(jù)上述模型所設(shè)計(jì)的區(qū)塊鏈溯源系統(tǒng)的總體架構(gòu)如圖5所示,主要分為用戶層、系統(tǒng)層、數(shù)據(jù)存儲(chǔ)層、智能合約層、數(shù)據(jù)傳輸層、物理層。其中,區(qū)塊鏈技術(shù)主要用于數(shù)據(jù)存儲(chǔ)層和智能合約層。

圖5 區(qū)塊鏈農(nóng)產(chǎn)品溯源系統(tǒng)架構(gòu)圖

物理層主要包含物聯(lián)網(wǎng)傳感器和感知、處理和傳輸模塊等,承擔(dān)數(shù)據(jù)自動(dòng)采集與物聯(lián)網(wǎng)遠(yuǎn)程控制等功能,用于將環(huán)境感知信息、產(chǎn)品信息等通過(guò)協(xié)議上傳到區(qū)塊中,可以通過(guò)設(shè)備中的加密技術(shù)和完整性驗(yàn)證確保采集到的信息的安全性。

數(shù)據(jù)傳輸層提供網(wǎng)絡(luò)數(shù)據(jù)傳輸服務(wù),包含WLAN、數(shù)據(jù)網(wǎng)絡(luò)、藍(lán)牙等方式。主要目的是實(shí)現(xiàn)區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)之間的信息交互,區(qū)塊鏈的本質(zhì)是一個(gè)P2P(點(diǎn)對(duì)點(diǎn))網(wǎng)絡(luò),每一個(gè)節(jié)點(diǎn)既能夠接受信息,又能夠發(fā)布信息,節(jié)點(diǎn)之間通過(guò)維護(hù)一個(gè)共同的區(qū)塊鏈來(lái)保持通信。在區(qū)塊鏈的網(wǎng)絡(luò)中,每一個(gè)節(jié)點(diǎn)都可以創(chuàng)造出新的區(qū)塊,在新區(qū)塊被創(chuàng)造出以后會(huì)通過(guò)廣播的形式通知其他節(jié)點(diǎn),而其他節(jié)點(diǎn)則反過(guò)來(lái)會(huì)對(duì)這個(gè)節(jié)點(diǎn)進(jìn)行驗(yàn)證,當(dāng)區(qū)塊鏈網(wǎng)絡(luò)中超過(guò)半數(shù)的用戶驗(yàn)證通過(guò)以后,這個(gè)新的區(qū)塊就會(huì)被添加到主鏈上了。

智能合約層則根據(jù)企業(yè)間的商業(yè)合同編寫,定義了一系列的事務(wù)處理流程,包括數(shù)據(jù)操作模塊、資金周轉(zhuǎn)模塊、安全預(yù)警模塊。數(shù)據(jù)操作模塊是對(duì)數(shù)據(jù)的添加、查詢等操作;資金交易模塊是自動(dòng)執(zhí)行企業(yè)間事先協(xié)商好的資金交易過(guò)程,例如供貨企業(yè)向進(jìn)貨企業(yè)提供原料,原料到達(dá)后進(jìn)貨企業(yè)檢測(cè)無(wú)誤后會(huì)自動(dòng)支付供貨企業(yè)貨款;安全預(yù)警模塊是如果區(qū)塊鏈系統(tǒng)檢測(cè)到有非法訪問(wèn)或數(shù)據(jù)異常,會(huì)自動(dòng)向系統(tǒng)管理員發(fā)送警報(bào)。

數(shù)據(jù)存儲(chǔ)層中主要指對(duì)分布式數(shù)據(jù)庫(kù)的操作,系統(tǒng)將數(shù)據(jù)記錄到區(qū)塊主體的Merkle樹中后,會(huì)對(duì)其進(jìn)行Hsah求值,形成鏈?zhǔn)浇Y(jié)構(gòu),在對(duì)其進(jìn)行時(shí)間戳的加蓋后,區(qū)塊便開始生效,上傳到區(qū)塊鏈中的數(shù)據(jù)經(jīng)過(guò)完整性驗(yàn)證后都可以供任何鏈中的節(jié)點(diǎn)用戶進(jìn)行訪問(wèn)。而節(jié)點(diǎn)管理是指針對(duì)于不同類型的鏈,鏈中每個(gè)節(jié)點(diǎn)設(shè)置的訪問(wèn)權(quán)限不同,例如公有鏈中的信息可以對(duì)鏈中的所有節(jié)點(diǎn)公開,而聯(lián)盟鏈或私有鏈中各節(jié)點(diǎn)的訪問(wèn)權(quán)限可能不同,權(quán)限的設(shè)置根據(jù)實(shí)際的需求來(lái)決定。數(shù)據(jù)存儲(chǔ)層中的存儲(chǔ)介質(zhì)分為兩部分:普通數(shù)據(jù)庫(kù)和基于超級(jí)賬本的區(qū)塊鏈系統(tǒng)。非溯源數(shù)據(jù)存入?yún)^(qū)塊鏈會(huì)占用不必要的系統(tǒng)資源,所以此類數(shù)據(jù)會(huì)被存入各企業(yè)自己的數(shù)據(jù)庫(kù)中,而關(guān)鍵的溯源數(shù)據(jù)會(huì)上傳至區(qū)塊鏈系統(tǒng)中安全保存。

系統(tǒng)層和用戶層主要是面向用戶,而用戶分為政府、企業(yè)和公眾,不同用戶所擁有的職能和權(quán)限也不同,同時(shí)增加數(shù)據(jù)可視化的方式,提高溯源系統(tǒng)的實(shí)用性。

4 系統(tǒng)實(shí)現(xiàn)

本文研究基于上述的系統(tǒng)架構(gòu)和區(qū)塊鏈溯源模型,設(shè)計(jì)并實(shí)現(xiàn)了一個(gè)基于區(qū)塊鏈的農(nóng)產(chǎn)品溯源系統(tǒng),系統(tǒng)拓?fù)浣Y(jié)構(gòu)如圖6所示。該系統(tǒng)由區(qū)塊鏈后臺(tái)系統(tǒng)、溯源前臺(tái)系統(tǒng)兩個(gè)子系統(tǒng)組成,并利用組件式開發(fā),將視頻監(jiān)控、環(huán)境感知、政府管理、電商平臺(tái)等模塊融合,是一個(gè)面向政府、農(nóng)戶和消費(fèi)者的農(nóng)產(chǎn)品可信溯源系統(tǒng)。

圖6 區(qū)塊鏈農(nóng)產(chǎn)品溯源系統(tǒng)拓?fù)浣Y(jié)構(gòu)圖

4.1 環(huán)境部署

本文是在Ubuntu操作系統(tǒng)環(huán)境下,采用Hyperledger Fabric 1.0底層架構(gòu)和Docker、Git等工具,利用Go語(yǔ)言通過(guò)GoLand編譯器進(jìn)行區(qū)塊鏈后臺(tái)環(huán)境的部署,區(qū)塊鏈后臺(tái)環(huán)境部署成功如圖7所示。前臺(tái)系統(tǒng)的Web應(yīng)用是在Windows操作系統(tǒng)環(huán)境下,利用SSH框架、MySQL數(shù)據(jù)庫(kù)及Tomcat服務(wù)器,使用Java語(yǔ)言在MyEclipse編譯器中進(jìn)行部署。

圖7 區(qū)塊鏈環(huán)境部署

4.2 功能實(shí)現(xiàn)

系統(tǒng)查詢界面如圖8所示,消費(fèi)者可以點(diǎn)擊企業(yè)介紹和網(wǎng)上商城來(lái)了解企業(yè)信息和購(gòu)買農(nóng)產(chǎn)品。另外系統(tǒng)還提供政府和企業(yè)兩個(gè)不同的管理入口,政府能夠?qū)ζ髽I(yè)的資質(zhì)和操作規(guī)范進(jìn)行監(jiān)督,企業(yè)享有內(nèi)部人員和企業(yè)效益的管理權(quán)限。當(dāng)消費(fèi)者輸入產(chǎn)品包裝上的溯源碼或掃描二維碼后,即可跳轉(zhuǎn)到系統(tǒng)的產(chǎn)品信息溯源界面,獲取到該產(chǎn)品從種植到銷售的溯源信息,以及對(duì)應(yīng)的人員信息和區(qū)塊鏈地址等,如圖9所示。

圖8 系統(tǒng)查詢界面

圖9 產(chǎn)品信息溯源界面

5 結(jié) 語(yǔ)

區(qū)塊鏈技術(shù)的去中心化、不可篡改、分布式存儲(chǔ)的天然特性,使其在農(nóng)產(chǎn)品溯源系統(tǒng)中具有廣泛的應(yīng)用前景。本文分析了傳統(tǒng)農(nóng)產(chǎn)品溯源系統(tǒng)存在的問(wèn)題,提出了基于區(qū)塊鏈的農(nóng)產(chǎn)品溯源系統(tǒng)研究,對(duì)區(qū)塊鏈溯源系統(tǒng)模型和系統(tǒng)架構(gòu)進(jìn)行了構(gòu)建和分析,利用區(qū)塊鏈數(shù)據(jù)分片的方式實(shí)現(xiàn)信息的分布式存儲(chǔ),對(duì)智能合約進(jìn)行設(shè)計(jì)使其滿足農(nóng)產(chǎn)品產(chǎn)業(yè)鏈的實(shí)際需求,解決了傳統(tǒng)農(nóng)產(chǎn)品溯源系統(tǒng)中心化嚴(yán)重導(dǎo)致的信息易被篡改、信息不透明、存儲(chǔ)安全性低等問(wèn)題。在此基礎(chǔ)上利用HyperledgerFabric平臺(tái)實(shí)現(xiàn)了該區(qū)塊鏈系統(tǒng),該系統(tǒng)與傳統(tǒng)的溯源系統(tǒng)相比,具有去中心化、數(shù)據(jù)分布式存儲(chǔ)的特點(diǎn),且建立了新的信托機(jī)制,保障了信息的安全性及可信性,打破傳統(tǒng)溯源系統(tǒng)中的技術(shù)壁壘,為農(nóng)產(chǎn)品溯源提供了一個(gè)不依賴于第三方的可信平臺(tái)。

由于目前區(qū)塊鏈技術(shù)還處于尚未完全成熟的階段,區(qū)塊鏈溯源系統(tǒng)的性能和節(jié)點(diǎn)達(dá)成共識(shí)的效率亟待提高。因此,如何提高區(qū)塊鏈系統(tǒng)的性能和共識(shí)效率是后續(xù)研究中應(yīng)著重解決的問(wèn)題。

猜你喜歡
分布式區(qū)塊節(jié)點(diǎn)
基于RSSI測(cè)距的最大似然估計(jì)的節(jié)點(diǎn)定位算法
分區(qū)域的樹型多鏈的無(wú)線傳感器網(wǎng)絡(luò)路由算法
基于圖連通支配集的子圖匹配優(yōu)化算法
居民分布式儲(chǔ)能系統(tǒng)對(duì)電網(wǎng)削峰填谷效果分析
《紅樓夢(mèng)》的數(shù)字化述評(píng)——兼及區(qū)塊鏈的啟示
基于Paxos的分布式一致性算法的實(shí)現(xiàn)與優(yōu)化
基于點(diǎn)權(quán)的混合K-shell關(guān)鍵節(jié)點(diǎn)識(shí)別方法
一場(chǎng)區(qū)塊鏈引發(fā)的全民狂歡
區(qū)塊鏈助力企業(yè)創(chuàng)新
區(qū)塊鏈投機(jī)者
江陵县| 化州市| 葫芦岛市| 桑植县| 湘潭市| 东乌珠穆沁旗| 库尔勒市| 上高县| 刚察县| 济阳县| 聂荣县| 淮南市| 云龙县| 洮南市| 邓州市| 工布江达县| 婺源县| 江陵县| 丹江口市| 大英县| 南岸区| 郓城县| 瑞昌市| 铁力市| 漠河县| 阿克陶县| 阳春市| 克东县| 清原| 神农架林区| 固镇县| 沧源| 邛崃市| 九龙坡区| 辽宁省| 内乡县| 沙湾县| 慈溪市| 汝州市| 奉新县| 怀化市|