劉丹 竇津津 胡建斌



摘 ?要:針對農產品易出現產地造假等質量監管方面的不足,將物聯網和區塊鏈結合起來,建立基于“區塊鏈+物聯網”的農產品溯源系統。在生產過程中,通過溫濕度傳感器、光照傳感器以及GPS模塊等采集信息,通過ZigBee技術進行節點布置。在運輸環節,通過二維碼技術對每件產品賦予唯一的身份信息,通過GPS和攝像頭來監控位置變化,收集到的信息通過區塊鏈技術進行數據存儲。當消費者購入產品時,只需掃描產品上的二維碼,就可以對產品進行全方位的追根溯源。結果表明,該方案覆蓋農產品的全生命周期,優化了農產品溯源信息的存儲與查詢,有一定的實用性。
關鍵詞:區塊鏈;物聯網;產品溯源
中圖分類號: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)
農產品不僅是人類生存和發展的基本物質條件,也是人們生活中不可或缺的必需品,從農場到餐桌,農產品經過了長時間的運輸和存儲過程。如果在某個環節中存在管理漏洞,將導致農產品安全問題逐步暴露[1]。國家市場監督管理總局建立了可追溯性政策,以確保對農產品的安全監控。以往的溯源系統存在兩個缺點[2-3]:一是溯源系統無法取得真正的信任,無法保證溯源信息的真假,也不能確定信息是否被人篡改;二是消費者無法成為食品鏈中的參與者,只能作為終端的消費者,這極大地疏遠了與生產者的關系。本文通過區塊鏈與物聯網的結合,使整個食品鏈都有證可查,每一個環節都能追根溯源,從而加強食品的可追溯性和安全性,提升食品供應鏈的透明度,保障食品安全。基于“區塊鏈+物聯網”的農產品溯源系統,使用傳感器技術來采集食品鏈上的生產數據,通過二維碼技術對食品賦予唯一的身份信息,利用區塊鏈不易篡改和去中心化等特性來存儲數據,存儲的數據真實并且無法被任何人修改,消費者只需掃描食品包裝上的二維碼就可以輕松地對食品進行溯源查詢。本系統依托物聯網提升傳統農產品監控和溯源效率,利用區塊鏈連接孤立的產業鏈環節,解決消費者和生產者之間的信任危機,為社會建立全新的信任體系作出巨大貢獻[4]。
2 ? 相關技術(Related technology)
2.1 ? 區塊鏈技術
區塊鏈可以理解為一項存儲技術[5],將存儲空間分割為多個以區塊為單位的存儲塊,每個區塊有固定的存儲值,每個區塊又分為多個節點,一個節點就是一個存儲空間,是一個交易過程。而區塊與區塊之間由鏈式結構連接起來,從而形成區塊鏈。每個節點包含哈希值、前一個區塊的地址、后一個區塊的地址和時間戳等信息,哈希算法作為一種交易的加密手段,可以實現理論上的不可篡改;而節點中包含的前一個和后一個區塊地址信息,就完美地保證了數據的可溯源性問題。自誕生之初,區塊鏈技術大約經歷了三次更新迭代。區塊鏈1.0可以說是比特幣1.0時代。區塊鏈2.0的代表是智能合約,是事前設置好的一些交易當中的規定,而智能是指在觸發這一協議系統時會自動執行的一些程序。區塊鏈3.0時代,也可以說是區塊鏈技術實現更多價值的一次迭代,已經超越了金融領域,涵蓋了社會生活的各個方面[6]。
2.2 ? 二維碼技術
二維碼是按照一些規律分布的由黑白兩色組成的符號信息,對應著計算機中的“0”“1”比特流的概念,通過一些可以識別信息的設備進行信息采集和查看。二維碼由于其成本低、信息容量大、易制作等優點,迅速從日本普及全世界,同時也在最開始的基礎上不停地更新迭代,二維碼的技術也在不停地進化,以滿足更多不同的應用場景。
2.3 ? ZigBee協議
ZigBee是一種短距傳輸數據的協議,比較適合的場景包括:采集信息的網絡節點多、成本低、傳輸性能高、設備體積略小、地形復雜;監測分布廣,需要監測點廣泛密集及收發密集的網絡覆蓋等[7]。
2.4 ? Wi-Fi技術
Wi-Fi使用的協議是IEEE 802.11b局域網協議,采用DSSS(直序列擴頻)和QPSK或BPSK(相移鍵控),通信范圍在100 米以上。Wi-Fi屬于WLAN無線局域網,支持多個終端設備同時傳輸。
3 ? 系統設計(System design)
3.1 ? 系統架構
本系統是基于物聯網和區塊鏈技術,融合傳感器采集、無線傳輸、Web應用和二維碼等技術構建的農產品溯源系統。該系統分為數據接入層、數據傳輸層、數據存儲層和數據展示層(客戶應用層)。
(1)數據接入層
數據接入層基于物聯網技術采集農產品生產過程中的數據信息,本系統涉及的數據包括農產品的生長環境、農產品的生產環境、農產品的運輸環境。其中,生長環境包括溫度、濕度、光照和生長日期等數據,生產環境包括加工過程和生產日期等數據,運輸環境包括運輸地點、時間等數據。
(2)數據傳輸層
數據傳輸層是數據通信的過程,即數據由傳感器節點到主節點再到服務端的過程。本系統主要采用的是ZigBee和Wi-Fi。ZigBee是一種低功耗并被廣泛應用的無線通信技術。通過編程,設置主節點和多個副節點的通信模式,定義單片機引腳和數據采集的實現原理,實現節點與節點之間的通信自由。Wi-Fi是現階段最常用的通信技術,覆蓋范圍廣,適用范圍廣,已經慢慢發展到工業、農業、醫療等多個社會領域。
(3)數據存儲層
數據存儲層采用區塊鏈技術,區塊鏈技術按照時間順序將數據以鏈式存儲的方式進行存儲,區塊體用作數據的載體,數據單元存放各種信息和類別,不同的區塊鏈應用對應不同的數據類型;如果數據修改,則所有的區塊信息都要進行修改,否則無法更新數據。確保數據的安全性[8]是本系統使用區塊鏈的主要原因,也符合當下食品安全所面臨問題的特征。
(4)數據展示層
數據展示層也是客戶應用層,主要應用二維碼技術,將溯源信息有序、合理地呈現給客戶。將二維碼應用到溯源系統中具有很多優勢:編碼類型多,信息容量大,可以展現產品名稱、生產地、生產日期、保質期、生長環境等信息。而且,二維碼還可以將圖片、文字鏈接等信息進行編碼,極大提高了溯源系統的多樣性。二維碼還可以引入加密手段,與區塊鏈技術形成強強聯合,是解決農產品安全問題的關鍵一步。
3.2 ? 系統功能
本系統分為基于物聯網的農產品采集和基于區塊鏈的農產品溯源兩部分。采集端主要包括傳感器部分和數據傳輸部分。傳感器部分包括溫度傳感器、濕度傳感器、光照傳感器、攝像傳感器和GPS傳感器等,用于采集數據;Wi-Fi模塊用于進行數據傳輸和服務器進行通信,具體功能如圖1所示。
區塊鏈溯源系統分為前端和區塊鏈后臺兩個模塊,前端模塊主要是向用戶展示的界面,即溯源信息;區塊鏈后臺模塊主要用于數據交互,把區塊鏈的數據獲取并展示到前端界面,具體功能如圖2所示。
3.3 ? 區塊鏈設計
本系統中的區塊鏈是基于Solidity開發的。Solidity是由Gavin Wood博士創建的以太坊上的主要編程語言,是一種可用于智能合約開發的面向對象的高級編程語言。Solidity也是一種“圖靈完備”語言,這意味著其擁有開發復雜用例的所有能力。具體開發流程如下:
(1)配置開發環境:要開發區塊鏈,首先要配置的開發環境為:Truffle.js、Ganache、Web3.js、Node.js、Npm。本系統使用一個模擬的內存區塊鏈(Ganache)代替真實的區塊鏈進行開發。
(2)編寫智能合約:使用Solidity編程語言來編寫智能合約,寫合約對象(含有構造函數初始化候選人數組),編寫項目的合約代碼。
(3)編譯合約:Node控制臺中使用這個庫來編譯合約。
(4)部署合約:使用Truffle部署智能合約。
(5)運行合約:運行已經部署的智能合約。
(6)編寫前端:按需求編寫前端代碼。
4 ? 系統的實現(Implementation of the system)
4.1 ? 硬件實現
硬件部分包括STM32F103C8T6開發板、傳感器采集模塊、無線通信芯片、LCD顯示屏和繼電器控制單元等。核心原理圖和硬件效果圖如圖3和圖4所示。
4.2 ? 軟件實現
(1)Truffle框架配置
Truffle是基于Solidity語言的一套開發框架,簡化了去中心化應用(DApp)的構建和管理流程。采用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)前端顯示界面
溯源系統的首頁界面如圖5所示。
(3)Solidity編程
Solidity編譯器獲取高級代碼并將其分解為更簡單的指令,Solidity代碼封裝在Contracts中。關鍵字為address,保存一個20字節的值。地址類型有members,作為所有合約的基礎。地址成員有balance與transfer,balance查詢地址的余額,transfer函數將以太網發送到地址。Solidity提供了一種以Struts形式定義新類型的方法。部署和運行智能合約如圖6和圖7所示,溯源結果如圖8所示。
5 ? 結論(Conclusion)
基于“區塊鏈+物聯網”的農產品溯源系統,通過傳感器的感知能力,可以對農產品從生長到生產、從物流到消費等的全過程進行數據采集、無線上傳,將所有信息以區塊鏈的形式進行存儲,實現了真正的溯源功能;而作為終端的消費者可以有效地參與并監督食品的生命周期,極大地加強了與種植者、生產者和物流等方面的信任關系。
參考文獻(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區塊鏈的農作物全產業鏈信息溯源平臺設計[J].農業工程學報,2020,36(3):279-286.
[3] 徐苗苗,孫小越,呂堯,等.基于5G-IoT和區塊鏈的農產品供應鏈溯源平臺研究[J].網絡空間安全,2020,11(11):91-97.
[4] 張浩.泛在網在食品安全領域的可行性研究——以建設泛在食品安全網為例[J].食品與機械,2019(11):89-93.
[5] 張志威,王國仁,徐建良,等.區塊鏈的數據管理技術綜述[J].軟件學報,2020,31(9):2903-2925.
[6] 賀海武,延安,陳澤華.基于區塊鏈的智能合約技術與應用綜述[J].計算機研究與發展,2018,55(11):112-126.
[7] 張少波,董思招,王亞龍,等.基于ZigBee與Android的城鄉智能公交系統[J].信息技術,2019(03):24-28.
[8] 韋智勇,周立廣.基于區塊鏈的身份認證系統設計與實現[J].軟件工程,2020,23(11):37-40.
作者簡介:
劉 ?丹(1982-),女,碩士,副教授.研究領域:區塊鏈,物聯網,數據處理.
竇津津(1989-),女,碩士,副教授.研究領域:區塊鏈,無線網絡.
胡建斌(1991-),男,本科生.研究領域:區塊鏈,物聯網.