胡 敏
基于Fabric區(qū)塊鏈技術(shù)的農(nóng)產(chǎn)品質(zhì)量安全追溯體系的研究
胡 敏1,2
(1. 江西省計(jì)算技術(shù)研究所,江西 南昌 330003;2. 江西省軟件工程技術(shù)研究中心,江西 南昌 330003)
傳統(tǒng)的農(nóng)產(chǎn)品追溯系統(tǒng)因數(shù)據(jù)儲(chǔ)存在單一的數(shù)據(jù)庫節(jié)點(diǎn)上,容易導(dǎo)致差錯(cuò)的出現(xiàn)和篡改的風(fēng)險(xiǎn),這在一定程度上降低了消費(fèi)者對(duì)于追溯結(jié)果的信任。文章在農(nóng)產(chǎn)品溯源體系中運(yùn)用區(qū)塊鏈技術(shù),采用聯(lián)盟鏈超級(jí)賬本(Hyperledger fabric)實(shí)現(xiàn)以區(qū)塊數(shù)據(jù)結(jié)構(gòu)的形式記錄農(nóng)產(chǎn)品全流程數(shù)據(jù),利用區(qū)塊鏈技術(shù)自身的技術(shù)特點(diǎn)如智能合約、分布式賬本、防篡改等,可確保農(nóng)產(chǎn)品溯源的真實(shí)可靠。
區(qū)塊鏈;聯(lián)盟鏈;超級(jí)賬本;農(nóng)產(chǎn)品;溯源
目前,許多發(fā)達(dá)國(guó)家已將農(nóng)產(chǎn)品全程可追溯列為食品安全管理的基本要求,建設(shè)農(nóng)產(chǎn)品質(zhì)量安全追溯體系已然成為現(xiàn)代社會(huì)應(yīng)對(duì)農(nóng)產(chǎn)品質(zhì)量安全突發(fā)事件的重要途徑和手段。從發(fā)展的趨勢(shì)來看,我國(guó)未來也應(yīng)當(dāng)逐步全面推行農(nóng)產(chǎn)品溯源制度。但傳統(tǒng)的農(nóng)產(chǎn)品追溯系統(tǒng)主要還是通過人工操作實(shí)現(xiàn)各環(huán)節(jié)數(shù)據(jù)的錄入,且數(shù)據(jù)儲(chǔ)存在單一的數(shù)據(jù)庫節(jié)點(diǎn)上,易導(dǎo)致差錯(cuò)的出現(xiàn)和篡改的風(fēng)險(xiǎn)。這些原因一定程度上降低了消費(fèi)者對(duì)于追溯結(jié)果的信任度。這種追溯體系因中心化數(shù)據(jù)庫導(dǎo)致的信任危機(jī)[1]、認(rèn)證難、成本高等問題,嚴(yán)重影響了農(nóng)業(yè)信息化的發(fā)展進(jìn)程。
區(qū)塊鏈(Blockchain)通過運(yùn)用分布式共識(shí)、數(shù)據(jù)加密、時(shí)間戳、智能合約等手段,具備集體維護(hù)、高度透明、去中心化、去信任等性質(zhì),能夠?yàn)榛趨^(qū)塊鏈的各種應(yīng)用提供目前最為可靠的安全性和可信度[2]。區(qū)塊鏈技術(shù)與農(nóng)產(chǎn)品溯源的結(jié)合能夠有效改善溯源系統(tǒng)的不足[3]。
在分布式系統(tǒng)中應(yīng)用區(qū)塊鏈技術(shù),在節(jié)點(diǎn)無須互相信任的情況下通過去中心化的交互方式,將農(nóng)產(chǎn)品全鏈條信息保存在區(qū)塊鏈中,形成可信的數(shù)據(jù)來源。利用區(qū)塊鏈的數(shù)據(jù)加密、驗(yàn)證機(jī)制可有效地維護(hù)各節(jié)點(diǎn)方隱私并保護(hù)數(shù)據(jù)安全,即使遭遇攻擊者侵入網(wǎng)絡(luò),也無法對(duì)真實(shí)數(shù)據(jù)進(jìn)行竊取和篡改[4]。
目前區(qū)塊鏈的發(fā)展已經(jīng)進(jìn)入3.0時(shí)代,可應(yīng)用于各行各業(yè),支持個(gè)性化地組織聯(lián)盟鏈、私有鏈網(wǎng)絡(luò),其中超級(jí)賬本(Hyperledger fabric)最具代表性,Hyperledger fabric是由IBM公司牽頭,聯(lián)合Intel、思科等大牌公司開發(fā),是企業(yè)與企業(yè)之間的聯(lián)盟鏈。本文將采用開源的Hyperledger fabric框架進(jìn)行農(nóng)產(chǎn)品質(zhì)量安全追溯體系的構(gòu)建,實(shí)現(xiàn)對(duì)農(nóng)產(chǎn)品從源頭到消費(fèi)的全程監(jiān)控。
區(qū)塊鏈最初是比特幣用來存儲(chǔ)大量交易信息的一項(xiàng)底層技術(shù),按照時(shí)間從后向前有序鏈接的方式記錄,具有公開透明、無法篡改、方便追溯的優(yōu)點(diǎn)。區(qū)塊鏈架構(gòu)帶來的改變:
(1)區(qū)塊鏈?zhǔn)姑恳粋€(gè)商業(yè)網(wǎng)絡(luò)的參與方都具有一個(gè)共享賬本,當(dāng)交易發(fā)生時(shí),通過點(diǎn)對(duì)點(diǎn)的方式復(fù)制更改所有賬本;
(2)使用密碼學(xué),確保網(wǎng)絡(luò)上的參與者僅僅可以看到和他們相關(guān)的賬本內(nèi)容,交易是安全的、授權(quán)的、驗(yàn)證的;
(3)區(qū)塊鏈將資產(chǎn)轉(zhuǎn)移、賬本修改相關(guān)的合同條款嵌入交易數(shù)據(jù)庫,確保條件滿足的情況下才發(fā)生;
(4)網(wǎng)絡(luò)參與者基于共識(shí)機(jī)制來保證交易的共同驗(yàn)證。
相較于比特幣等公有鏈,Hyperledger fabric無須進(jìn)行加密挖掘操作,交易確認(rèn)時(shí)間短,克服了公有鏈項(xiàng)目的吞吐量低、無隱私性、無最終確定性以及共識(shí)算法低效等缺陷,是具有高度模塊化和可配置體系結(jié)構(gòu)的企業(yè)級(jí)許可分布式賬本技術(shù)平臺(tái),主要表現(xiàn)在:
(1)支持以通用編程語言(例如Java,Go和Node.js)而非受約束的領(lǐng)域特定語言編寫的智能合約;
(2)參與者之間是信任關(guān)系,是通過受信任的成員資格服務(wù)提供商(MSP)注冊(cè);
(3)支持可插入共識(shí)協(xié)議,更有效地進(jìn)行定制,以適應(yīng)特定的用例和信任模型;
(4)是一個(gè)要許可的平臺(tái),通過其通道(channel)架構(gòu)實(shí)現(xiàn)機(jī)密性。
Hyperledger fabric的邏輯架構(gòu)如圖1所示。
圖1 Fabric邏輯架構(gòu)圖
Fabric底層提供的服務(wù)有:成員管理、共識(shí)服務(wù)、鏈碼服務(wù)等,在此基礎(chǔ)之上,可通過API、SDK等方式提供可編程的接口服務(wù)。
(1)Fabric身份管理模塊為整個(gè)區(qū)塊鏈平臺(tái)提供成員注冊(cè)、身份隱私管理、內(nèi)容保密、交易審計(jì)等服務(wù),通過公鑰基礎(chǔ)設(shè)施(PKI)和去中心化的共識(shí)機(jī)制實(shí)現(xiàn)許可制區(qū)塊鏈。
(2)Fabric賬本管理模塊提供了多種查詢賬本數(shù)據(jù)的方式,可根據(jù)區(qū)塊號(hào)、區(qū)塊哈希值、交易號(hào)、通道名稱等查詢區(qū)塊、交易、區(qū)塊鏈信息。
(3)Fabric交易管理模塊為應(yīng)用程序提交提案(proposal)獲取交易背書(Endorsement),再提交給排序服務(wù)節(jié)點(diǎn)(order)后打包生成區(qū)塊。SDK提供接口,根據(jù)用戶證書在本地生成交易號(hào),通過背書節(jié)點(diǎn)和記賬節(jié)點(diǎn)校驗(yàn)交易是否重復(fù)。
(4)Fabric智能合約模塊基于區(qū)塊鏈實(shí)現(xiàn)個(gè)性化的業(yè)務(wù)邏輯,驗(yàn)證各個(gè)分布式交易,通過自動(dòng)執(zhí)行定義的業(yè)務(wù)規(guī)則來更新賬本信息的狀態(tài)。
本文以江西特色農(nóng)畜產(chǎn)品質(zhì)量追溯為研究主體,構(gòu)建基于物聯(lián)網(wǎng)的江西特色農(nóng)畜產(chǎn)品質(zhì)量追溯與綜合服務(wù)云平臺(tái),為種植、養(yǎng)殖、加工企業(yè)提供物聯(lián)網(wǎng)接入服務(wù)和產(chǎn)品質(zhì)量溯源服務(wù),完善農(nóng)產(chǎn)品質(zhì)量安全信息服務(wù)通道。本農(nóng)產(chǎn)品質(zhì)量追溯系統(tǒng)需要實(shí)現(xiàn)的功能如圖2所示:
圖2 農(nóng)產(chǎn)品質(zhì)量追溯系統(tǒng)功能圖
本追溯系統(tǒng)集成應(yīng)用物聯(lián)網(wǎng)實(shí)時(shí)感知數(shù)據(jù),基于標(biāo)準(zhǔn)化生產(chǎn)操作規(guī)程建立健全農(nóng)產(chǎn)品生產(chǎn)經(jīng)營(yíng)檔案,智能監(jiān)控產(chǎn)業(yè)鏈條各環(huán)節(jié)的生產(chǎn)經(jīng)營(yíng)活動(dòng),將農(nóng)產(chǎn)品從生產(chǎn)、加工、流通等各環(huán)節(jié)的數(shù)據(jù)存儲(chǔ)在區(qū)塊鏈平臺(tái),提升各環(huán)節(jié)參與者的生產(chǎn)經(jīng)營(yíng)管理水平,推進(jìn)全鏈條質(zhì)量跟蹤和節(jié)點(diǎn)追溯,實(shí)現(xiàn)農(nóng)產(chǎn)品的全程信息化監(jiān)管。
本文提出的基于Fabric區(qū)塊鏈技術(shù)的農(nóng)產(chǎn)品質(zhì)量安全追溯系統(tǒng)的總體架構(gòu)如圖3所示,分為數(shù)據(jù)接入層、區(qū)塊鏈平臺(tái)和用戶應(yīng)用層。數(shù)據(jù)接入層主要實(shí)現(xiàn)溯源系統(tǒng)對(duì)于農(nóng)產(chǎn)品的數(shù)據(jù)記錄和存儲(chǔ),利用傳感器前端網(wǎng)絡(luò)和人工錄入的方式實(shí)現(xiàn)數(shù)據(jù)采集和上傳,并將數(shù)據(jù)載入?yún)^(qū)塊鏈平臺(tái)。用戶應(yīng)用層主要實(shí)現(xiàn)用戶與區(qū)塊鏈平臺(tái)之間的交互。
圖3 基于Fabric區(qū)塊鏈技術(shù)的農(nóng)產(chǎn)品質(zhì)量追溯體系
農(nóng)戶、生產(chǎn)加工企業(yè)、物流運(yùn)輸企業(yè)等相關(guān)生產(chǎn)經(jīng)營(yíng)單位以區(qū)塊鏈注冊(cè)節(jié)點(diǎn)的身份加入到區(qū)塊鏈,對(duì)溯源信息進(jìn)行接入、傳播、記錄以及驗(yàn)證。各區(qū)塊鏈節(jié)點(diǎn)間形成對(duì)等式網(wǎng)絡(luò)結(jié)構(gòu)并在此基礎(chǔ)上建立聯(lián)盟鏈網(wǎng)絡(luò)[5]。通過各節(jié)點(diǎn)的物聯(lián)網(wǎng)設(shè)備與網(wǎng)絡(luò),產(chǎn)品的生產(chǎn)信息等數(shù)據(jù)基于TCP/IP協(xié)議傳輸?shù)絽^(qū)塊鏈節(jié)點(diǎn)。這些數(shù)據(jù)是實(shí)現(xiàn)農(nóng)產(chǎn)品質(zhì)量安全溯源的基礎(chǔ),按照區(qū)塊數(shù)據(jù)結(jié)構(gòu)的方式存儲(chǔ)到區(qū)塊鏈的數(shù)據(jù)區(qū)塊中,并采用哈希算法、時(shí)間戳以及區(qū)塊間的傳遞機(jī)制來工作。在傳統(tǒng)比特幣系統(tǒng)中,交易的確認(rèn)和共識(shí)是需要由礦工來完成。但在聯(lián)盟鏈結(jié)構(gòu)中,交易信息由全網(wǎng)各節(jié)點(diǎn)共同確認(rèn),保證了交易確認(rèn)的效率[6]。
消費(fèi)者以游客身份權(quán)限[7]請(qǐng)求后,系統(tǒng)根據(jù)請(qǐng)求數(shù)據(jù)從后臺(tái)數(shù)據(jù)庫查詢到相應(yīng)的區(qū)塊鏈地址,并根據(jù)地址信息從區(qū)塊中進(jìn)行數(shù)據(jù)的獲取和展示。
本文采用Hyperledger Fabric進(jìn)行農(nóng)產(chǎn)品溯源,編碼流程如下:
2.3.1 部署Fabric開發(fā)環(huán)境、搭建區(qū)塊鏈網(wǎng)絡(luò)
(1)在VirtualBox下安裝Linux環(huán)境,本文采用的是Ubuntu系統(tǒng);
(2)下載必需的工具并安裝,包括Go語言環(huán)境、Docker-ce、python-pip,Docker Compose、Git、curl、node.js、npm;
(3)通過git clone命令從github復(fù)制fabric源碼,在fabric-samples文件夾下安裝特定的二進(jìn)制文件;
(4)在first-network文件夾下采用命令“./byfn.sh -m generate”創(chuàng)建證書和鏡像;
(5)采用命令“./byfn.sh -m up”創(chuàng)建第一個(gè)網(wǎng)絡(luò);
(6)在fabcar目錄下安裝node模塊、grpc模塊并啟動(dòng)fabcar的Hyperledger Fabric網(wǎng)絡(luò);
(7)注冊(cè)管理員,然后注冊(cè)用戶,經(jīng)過許可的用戶可以查詢并調(diào)用fabcar網(wǎng)絡(luò)。
2.3.2 構(gòu)建Fabric-sdk-java客戶端、進(jìn)行應(yīng)用的開發(fā)與實(shí)現(xiàn)
通過git clone命令下載fabric-sdk-java項(xiàng)目,maven導(dǎo)入項(xiàng)目及相關(guān)依賴。采用Fabric-sdk-java開發(fā)包實(shí)現(xiàn)對(duì)鏈碼的訪問,該開發(fā)包封裝了Fabric區(qū)塊鏈的GRPC鏈碼訪問協(xié)議,有助于軟件開發(fā)人員聚焦于業(yè)務(wù)邏輯模塊。
2.3.3 調(diào)用過程
配置節(jié)點(diǎn)服務(wù)器FabricConfig,設(shè)置相關(guān)屬性值如排序服務(wù)器對(duì)象orders、節(jié)點(diǎn)服務(wù)器對(duì)象peers、智慧合約對(duì)象chainCode、crypo-config路徑。在節(jié)點(diǎn)服務(wù)器配置的基礎(chǔ)上,創(chuàng)建節(jié)點(diǎn)服務(wù)器管理器FabricManager對(duì)象,實(shí)現(xiàn)對(duì)鏈碼的查詢、提交操作。
Hyperledger fabric以模塊化架構(gòu)為基礎(chǔ),具備高度的安全性、靈活性和可擴(kuò)展性,是目前聯(lián)盟鏈框架最成熟的代表。本文采用Hyperledger fabric實(shí)現(xiàn)農(nóng)產(chǎn)品質(zhì)量安全溯源體系,以區(qū)塊數(shù)據(jù)結(jié)構(gòu)的方式記錄農(nóng)產(chǎn)品全流程數(shù)據(jù),可確認(rèn)加入聯(lián)盟鏈的農(nóng)產(chǎn)品生產(chǎn)、加工等企業(yè)的數(shù)字身份,生成基于區(qū)塊鏈的農(nóng)產(chǎn)品電子履歷、檢驗(yàn)報(bào)告,具有去中心化、不可篡改、可追溯等特性,使得農(nóng)產(chǎn)品從生產(chǎn)、加工、銷售、流通等全過程更加公開透明且真實(shí)可信,為區(qū)塊鏈技術(shù)在溯源領(lǐng)域的應(yīng)用提供了依據(jù)。
[1] ?錢建平, 范蓓蕾, 史云. 基于區(qū)塊鏈的農(nóng)產(chǎn)品可信追溯系統(tǒng)框架構(gòu)建[J]. 中國(guó)農(nóng)業(yè)信息, 2019, 31(3): 48~57.
[2]? Noshina Tariq, Ayesha Qamar, Muhammad Asim. Blockchain and Smart Healthcare Security: A Survey[J]. Procedia Computer Science, 2020(175):? 615~620.
[3]? 張延華, 楊兆鑫, 楊睿哲. 基于區(qū)塊鏈的農(nóng)產(chǎn)品溯源系統(tǒng)[J]. 情報(bào)工程, 2018, 4(3): 4~13.
[4]? 劉亞南. 創(chuàng)新推動(dòng)區(qū)塊鏈技術(shù)在美國(guó)快速發(fā)展[J].金融世界, 2020(1): 46~48.
[5] ?安慶文. 基于區(qū)塊鏈的去中心化交易關(guān)鍵技術(shù)研究及應(yīng)用[D]. 上海: 東華大學(xué), 2017.
[6]? 鄧文萍. 基于Hyperledger區(qū)塊鏈的數(shù)字資產(chǎn)管理系統(tǒng)[J].科學(xué)技術(shù)創(chuàng)新, 2019(31): 88~89.
Research on Traceability System of Agricultural Product Quality and Safety Based on Fabric Blockchain Technology
HU Min1, 2
(1. Jiangxi Institute of Computing Technology, Nanchang Jiangxi 330003; 2. Software Engineering and Technical Research Center of Jiangxi, Nanchang Jiangxi 330003, China)
The usual agricultural product traceability systems store data in a single database node, which is prone to errors and data tampering, thus reduce consumers’ trust in traceability results. In the paper, blockchain technology is applied to agricultural products traceability system, and Hyperledger fabric is used to record the whole process data of agricultural products in the form of block data structure, and the technical features of blockchain technology, such as smart contract, distributed ledger, tamper-proofing, are utilized to ensure the authenticity and reliability of agricultural products traceability.
blockchain; union chain; Hyperledger fabric; agricultural product; traceability
2020-06-05
胡敏(1987—),女,江西高安人,工程師,研究方向:計(jì)算機(jī)應(yīng)用。
TP399;TP311
A
2095-9249(2020)03-0075-04
〔責(zé)任編校:范延琛〕
萍鄉(xiāng)學(xué)院學(xué)報(bào)2020年3期