基于“区块链+物联网”融合的农产品溯源系统
2021-08-05刘丹窦津津胡建斌
刘丹 窦津津 胡建斌
摘 要:针对农产品易出现产地造假等质量监管方面的不足,将物联网和区块链结合起来,建立基于“区块链+物联网”的农产品溯源系统。在生产过程中,通过温湿度传感器、光照传感器以及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-),男,本科生.研究领域:区块链,物联网.