劉丹 竇津津 胡建斌
摘 ?要:針對農(nóng)產(chǎn)品易出現(xiàn)產(chǎn)地造假等質(zhì)量監(jiān)管方面的不足,將物聯(lián)網(wǎng)和區(qū)塊鏈結(jié)合起來,建立基于“區(qū)塊鏈+物聯(lián)網(wǎng)”的農(nóng)產(chǎn)品溯源系統(tǒng)。在生產(chǎn)過程中,通過溫濕度傳感器、光照傳感器以及GPS模塊等采集信息,通過ZigBee技術(shù)進行節(jié)點布置。在運輸環(huán)節(jié),通過二維碼技術(shù)對每件產(chǎn)品賦予唯一的身份信息,通過GPS和攝像頭來監(jiān)控位置變化,收集到的信息通過區(qū)塊鏈技術(shù)進行數(shù)據(jù)存儲。當(dāng)消費者購入產(chǎn)品時,只需掃描產(chǎn)品上的二維碼,就可以對產(chǎn)品進行全方位的追根溯源。結(jié)果表明,該方案覆蓋農(nóng)產(chǎn)品的全生命周期,優(yōu)化了農(nóng)產(chǎn)品溯源信息的存儲與查詢,有一定的實用性。
關(guān)鍵詞:區(qū)塊鏈;物聯(lián)網(wǎng);產(chǎn)品溯源
中圖分類號:TP311.5 ? ? 文獻標識碼:A
Agricultural Product Traceability System based on
Integration of "Blockchain + Internet of Things"
LIU Dan, DOU Jinjin, HU Jianbin
(Department of Internet of Things Engineering, Dalian Neusoft University of Information, Dalian 116023, China)
liudan_j@neusoft.edu.cn; doujinjin@neusoft.edu.cn; hujianbin@126.com
Abstract: Aiming at quality supervision deficiencies of agricultural products like fake origins, this paper proposes to establish a traceability system for agricultural products based on "Blockchain + Internet of Things" by integrating the Internet of Things and blockchain. In production process, product information is collected through temperature and humidity sensors, light sensors, and GPS modules, etc., and collection nodes are distributed by ZigBee technology. In transportation process, each product is given unique identity information through QR (Quick Response) code technology, and its location changes are monitored through GPS and cameras. The collected information is stored through blockchain technology. When consumers purchase a product, they just scan the QR code and all-around information about the product can be traced. Results show that this practical solution covers entire life cycle of agricultural products, and optimizes storage and query of agricultural product traceability information.
Keywords: blockchain; Internet of Things; product traceability
1 ? 引言(Introduction)
農(nóng)產(chǎn)品不僅是人類生存和發(fā)展的基本物質(zhì)條件,也是人們生活中不可或缺的必需品,從農(nóng)場到餐桌,農(nóng)產(chǎn)品經(jīng)過了長時間的運輸和存儲過程。如果在某個環(huán)節(jié)中存在管理漏洞,將導(dǎo)致農(nóng)產(chǎn)品安全問題逐步暴露[1]。國家市場監(jiān)督管理總局建立了可追溯性政策,以確保對農(nóng)產(chǎn)品的安全監(jiān)控。以往的溯源系統(tǒng)存在兩個缺點[2-3]:一是溯源系統(tǒng)無法取得真正的信任,無法保證溯源信息的真假,也不能確定信息是否被人篡改;二是消費者無法成為食品鏈中的參與者,只能作為終端的消費者,這極大地疏遠了與生產(chǎn)者的關(guān)系。本文通過區(qū)塊鏈與物聯(lián)網(wǎng)的結(jié)合,使整個食品鏈都有證可查,每一個環(huán)節(jié)都能追根溯源,從而加強食品的可追溯性和安全性,提升食品供應(yīng)鏈的透明度,保障食品安全。基于“區(qū)塊鏈+物聯(lián)網(wǎng)”的農(nóng)產(chǎn)品溯源系統(tǒng),使用傳感器技術(shù)來采集食品鏈上的生產(chǎn)數(shù)據(jù),通過二維碼技術(shù)對食品賦予唯一的身份信息,利用區(qū)塊鏈不易篡改和去中心化等特性來存儲數(shù)據(jù),存儲的數(shù)據(jù)真實并且無法被任何人修改,消費者只需掃描食品包裝上的二維碼就可以輕松地對食品進行溯源查詢。本系統(tǒng)依托物聯(lián)網(wǎng)提升傳統(tǒng)農(nóng)產(chǎn)品監(jiān)控和溯源效率,利用區(qū)塊鏈連接孤立的產(chǎn)業(yè)鏈環(huán)節(jié),解決消費者和生產(chǎn)者之間的信任危機,為社會建立全新的信任體系作出巨大貢獻[4]。
2 ? 相關(guān)技術(shù)(Related technology)
2.1 ? 區(qū)塊鏈技術(shù)
區(qū)塊鏈可以理解為一項存儲技術(shù)[5],將存儲空間分割為多個以區(qū)塊為單位的存儲塊,每個區(qū)塊有固定的存儲值,每個區(qū)塊又分為多個節(jié)點,一個節(jié)點就是一個存儲空間,是一個交易過程。而區(qū)塊與區(qū)塊之間由鏈式結(jié)構(gòu)連接起來,從而形成區(qū)塊鏈。每個節(jié)點包含哈希值、前一個區(qū)塊的地址、后一個區(qū)塊的地址和時間戳等信息,哈希算法作為一種交易的加密手段,可以實現(xiàn)理論上的不可篡改;而節(jié)點中包含的前一個和后一個區(qū)塊地址信息,就完美地保證了數(shù)據(jù)的可溯源性問題。自誕生之初,區(qū)塊鏈技術(shù)大約經(jīng)歷了三次更新迭代。區(qū)塊鏈1.0可以說是比特幣1.0時代。區(qū)塊鏈2.0的代表是智能合約,是事前設(shè)置好的一些交易當(dāng)中的規(guī)定,而智能是指在觸發(fā)這一協(xié)議系統(tǒng)時會自動執(zhí)行的一些程序。區(qū)塊鏈3.0時代,也可以說是區(qū)塊鏈技術(shù)實現(xiàn)更多價值的一次迭代,已經(jīng)超越了金融領(lǐng)域,涵蓋了社會生活的各個方面[6]。
2.2 ? 二維碼技術(shù)
二維碼是按照一些規(guī)律分布的由黑白兩色組成的符號信息,對應(yīng)著計算機中的“0”“1”比特流的概念,通過一些可以識別信息的設(shè)備進行信息采集和查看。二維碼由于其成本低、信息容量大、易制作等優(yōu)點,迅速從日本普及全世界,同時也在最開始的基礎(chǔ)上不停地更新迭代,二維碼的技術(shù)也在不停地進化,以滿足更多不同的應(yīng)用場景。
2.3 ? ZigBee協(xié)議
ZigBee是一種短距傳輸數(shù)據(jù)的協(xié)議,比較適合的場景包括:采集信息的網(wǎng)絡(luò)節(jié)點多、成本低、傳輸性能高、設(shè)備體積略小、地形復(fù)雜;監(jiān)測分布廣,需要監(jiān)測點廣泛密集及收發(fā)密集的網(wǎng)絡(luò)覆蓋等[7]。
2.4 ? Wi-Fi技術(shù)
Wi-Fi使用的協(xié)議是IEEE 802.11b局域網(wǎng)協(xié)議,采用DSSS(直序列擴頻)和QPSK或BPSK(相移鍵控),通信范圍在100 米以上。Wi-Fi屬于WLAN無線局域網(wǎng),支持多個終端設(shè)備同時傳輸。
3 ? 系統(tǒng)設(shè)計(System design)
3.1 ? 系統(tǒng)架構(gòu)
本系統(tǒng)是基于物聯(lián)網(wǎng)和區(qū)塊鏈技術(shù),融合傳感器采集、無線傳輸、Web應(yīng)用和二維碼等技術(shù)構(gòu)建的農(nóng)產(chǎn)品溯源系統(tǒng)。該系統(tǒng)分為數(shù)據(jù)接入層、數(shù)據(jù)傳輸層、數(shù)據(jù)存儲層和數(shù)據(jù)展示層(客戶應(yīng)用層)。
(1)數(shù)據(jù)接入層
數(shù)據(jù)接入層基于物聯(lián)網(wǎng)技術(shù)采集農(nóng)產(chǎn)品生產(chǎn)過程中的數(shù)據(jù)信息,本系統(tǒng)涉及的數(shù)據(jù)包括農(nóng)產(chǎn)品的生長環(huán)境、農(nóng)產(chǎn)品的生產(chǎn)環(huán)境、農(nóng)產(chǎn)品的運輸環(huán)境。其中,生長環(huán)境包括溫度、濕度、光照和生長日期等數(shù)據(jù),生產(chǎn)環(huán)境包括加工過程和生產(chǎn)日期等數(shù)據(jù),運輸環(huán)境包括運輸?shù)攸c、時間等數(shù)據(jù)。
(2)數(shù)據(jù)傳輸層
數(shù)據(jù)傳輸層是數(shù)據(jù)通信的過程,即數(shù)據(jù)由傳感器節(jié)點到主節(jié)點再到服務(wù)端的過程。本系統(tǒng)主要采用的是ZigBee和Wi-Fi。ZigBee是一種低功耗并被廣泛應(yīng)用的無線通信技術(shù)。通過編程,設(shè)置主節(jié)點和多個副節(jié)點的通信模式,定義單片機引腳和數(shù)據(jù)采集的實現(xiàn)原理,實現(xiàn)節(jié)點與節(jié)點之間的通信自由。Wi-Fi是現(xiàn)階段最常用的通信技術(shù),覆蓋范圍廣,適用范圍廣,已經(jīng)慢慢發(fā)展到工業(yè)、農(nóng)業(yè)、醫(yī)療等多個社會領(lǐng)域。
(3)數(shù)據(jù)存儲層
數(shù)據(jù)存儲層采用區(qū)塊鏈技術(shù),區(qū)塊鏈技術(shù)按照時間順序?qū)?shù)據(jù)以鏈式存儲的方式進行存儲,區(qū)塊體用作數(shù)據(jù)的載體,數(shù)據(jù)單元存放各種信息和類別,不同的區(qū)塊鏈應(yīng)用對應(yīng)不同的數(shù)據(jù)類型;如果數(shù)據(jù)修改,則所有的區(qū)塊信息都要進行修改,否則無法更新數(shù)據(jù)。確保數(shù)據(jù)的安全性[8]是本系統(tǒng)使用區(qū)塊鏈的主要原因,也符合當(dāng)下食品安全所面臨問題的特征。
(4)數(shù)據(jù)展示層
數(shù)據(jù)展示層也是客戶應(yīng)用層,主要應(yīng)用二維碼技術(shù),將溯源信息有序、合理地呈現(xiàn)給客戶。將二維碼應(yīng)用到溯源系統(tǒng)中具有很多優(yōu)勢:編碼類型多,信息容量大,可以展現(xiàn)產(chǎn)品名稱、生產(chǎn)地、生產(chǎn)日期、保質(zhì)期、生長環(huán)境等信息。而且,二維碼還可以將圖片、文字鏈接等信息進行編碼,極大提高了溯源系統(tǒng)的多樣性。二維碼還可以引入加密手段,與區(qū)塊鏈技術(shù)形成強強聯(lián)合,是解決農(nóng)產(chǎn)品安全問題的關(guān)鍵一步。
3.2 ? 系統(tǒng)功能
本系統(tǒng)分為基于物聯(lián)網(wǎng)的農(nóng)產(chǎn)品采集和基于區(qū)塊鏈的農(nóng)產(chǎn)品溯源兩部分。采集端主要包括傳感器部分和數(shù)據(jù)傳輸部分。傳感器部分包括溫度傳感器、濕度傳感器、光照傳感器、攝像傳感器和GPS傳感器等,用于采集數(shù)據(jù);Wi-Fi模塊用于進行數(shù)據(jù)傳輸和服務(wù)器進行通信,具體功能如圖1所示。
區(qū)塊鏈溯源系統(tǒng)分為前端和區(qū)塊鏈后臺兩個模塊,前端模塊主要是向用戶展示的界面,即溯源信息;區(qū)塊鏈后臺模塊主要用于數(shù)據(jù)交互,把區(qū)塊鏈的數(shù)據(jù)獲取并展示到前端界面,具體功能如圖2所示。
3.3 ? 區(qū)塊鏈設(shè)計
本系統(tǒng)中的區(qū)塊鏈是基于Solidity開發(fā)的。Solidity是由Gavin Wood博士創(chuàng)建的以太坊上的主要編程語言,是一種可用于智能合約開發(fā)的面向?qū)ο蟮母呒壘幊陶Z言。Solidity也是一種“圖靈完備”語言,這意味著其擁有開發(fā)復(fù)雜用例的所有能力。具體開發(fā)流程如下:
(1)配置開發(fā)環(huán)境:要開發(fā)區(qū)塊鏈,首先要配置的開發(fā)環(huán)境為:Truffle.js、Ganache、Web3.js、Node.js、Npm。本系統(tǒng)使用一個模擬的內(nèi)存區(qū)塊鏈(Ganache)代替真實的區(qū)塊鏈進行開發(fā)。
(2)編寫智能合約:使用Solidity編程語言來編寫智能合約,寫合約對象(含有構(gòu)造函數(shù)初始化候選人數(shù)組),編寫項目的合約代碼。
(3)編譯合約:Node控制臺中使用這個庫來編譯合約。
(4)部署合約:使用Truffle部署智能合約。
(5)運行合約:運行已經(jīng)部署的智能合約。
(6)編寫前端:按需求編寫前端代碼。
4 ? 系統(tǒng)的實現(xiàn)(Implementation of the system)
4.1 ? 硬件實現(xiàn)
硬件部分包括STM32F103C8T6開發(fā)板、傳感器采集模塊、無線通信芯片、LCD顯示屏和繼電器控制單元等。核心原理圖和硬件效果圖如圖3和圖4所示。
4.2 ? 軟件實現(xiàn)
(1)Truffle框架配置
Truffle是基于Solidity語言的一套開發(fā)框架,簡化了去中心化應(yīng)用(DApp)的構(gòu)建和管理流程。采用JavaScript編寫,支持智能合約的編譯、部署和測試。
Truffle配置代碼如下:
module.exports = {
// See
// for more about customizing your Truffle configuration!
networks: {
development: {
host: "127.0.0.1",
port: 7545,
network_id: "*" // Match any network id
},
develop: {
port: 5777
}}};
(2)前端顯示界面
溯源系統(tǒng)的首頁界面如圖5所示。
(3)Solidity編程
Solidity編譯器獲取高級代碼并將其分解為更簡單的指令,Solidity代碼封裝在Contracts中。關(guān)鍵字為address,保存一個20字節(jié)的值。地址類型有members,作為所有合約的基礎(chǔ)。地址成員有balance與transfer,balance查詢地址的余額,transfer函數(shù)將以太網(wǎng)發(fā)送到地址。Solidity提供了一種以Struts形式定義新類型的方法。部署和運行智能合約如圖6和圖7所示,溯源結(jié)果如圖8所示。
5 ? 結(jié)論(Conclusion)
基于“區(qū)塊鏈+物聯(lián)網(wǎng)”的農(nóng)產(chǎn)品溯源系統(tǒng),通過傳感器的感知能力,可以對農(nóng)產(chǎn)品從生長到生產(chǎn)、從物流到消費等的全過程進行數(shù)據(jù)采集、無線上傳,將所有信息以區(qū)塊鏈的形式進行存儲,實現(xiàn)了真正的溯源功能;而作為終端的消費者可以有效地參與并監(jiān)督食品的生命周期,極大地加強了與種植者、生產(chǎn)者和物流等方面的信任關(guān)系。
參考文獻(References)
[1] KABALA C, GALKA B, JEZIERSKI P. Assessment and monitoring of soil and plant contamination with trace elements around Europe's largest copper ore tailings impoundment[J]. Science of The Total Environment, 2020, 738(10):1-13.
[2] 任守綱,何自明,周正己,等.基于CSBFT區(qū)塊鏈的農(nóng)作物全產(chǎn)業(yè)鏈信息溯源平臺設(shè)計[J].農(nóng)業(yè)工程學(xué)報,2020,36(3):279-286.
[3] 徐苗苗,孫小越,呂堯,等.基于5G-IoT和區(qū)塊鏈的農(nóng)產(chǎn)品供應(yīng)鏈溯源平臺研究[J].網(wǎng)絡(luò)空間安全,2020,11(11):91-97.
[4] 張浩.泛在網(wǎng)在食品安全領(lǐng)域的可行性研究——以建設(shè)泛在食品安全網(wǎng)為例[J].食品與機械,2019(11):89-93.
[5] 張志威,王國仁,徐建良,等.區(qū)塊鏈的數(shù)據(jù)管理技術(shù)綜述[J].軟件學(xué)報,2020,31(9):2903-2925.
[6] 賀海武,延安,陳澤華.基于區(qū)塊鏈的智能合約技術(shù)與應(yīng)用綜述[J].計算機研究與發(fā)展,2018,55(11):112-126.
[7] 張少波,董思招,王亞龍,等.基于ZigBee與Android的城鄉(xiāng)智能公交系統(tǒng)[J].信息技術(shù),2019(03):24-28.
[8] 韋智勇,周立廣.基于區(qū)塊鏈的身份認證系統(tǒng)設(shè)計與實現(xiàn)[J].軟件工程,2020,23(11):37-40.
作者簡介:
劉 ?丹(1982-),女,碩士,副教授.研究領(lǐng)域:區(qū)塊鏈,物聯(lián)網(wǎng),數(shù)據(jù)處理.
竇津津(1989-),女,碩士,副教授.研究領(lǐng)域:區(qū)塊鏈,無線網(wǎng)絡(luò).
胡建斌(1991-),男,本科生.研究領(lǐng)域:區(qū)塊鏈,物聯(lián)網(wǎng).