胡 敏
基于Fabric区块链技术的农产品质量安全追溯体系的研究
胡 敏1,2
(1. 江西省计算技术研究所,江西 南昌 330003;2. 江西省软件工程技术研究中心,江西 南昌 330003)
传统的农产品追溯系统因数据储存在单一的数据库节点上,容易导致差错的出现和篡改的风险,这在一定程度上降低了消费者对于追溯结果的信任。文章在农产品溯源体系中运用区块链技术,采用联盟链超级账本(Hyperledger fabric)实现以区块数据结构的形式记录农产品全流程数据,利用区块链技术自身的技术特点如智能合约、分布式账本、防篡改等,可确保农产品溯源的真实可靠。
区块链;联盟链;超级账本;农产品;溯源
目前,许多发达国家已将农产品全程可追溯列为食品安全管理的基本要求,建设农产品质量安全追溯体系已然成为现代社会应对农产品质量安全突发事件的重要途径和手段。从发展的趋势来看,我国未来也应当逐步全面推行农产品溯源制度。但传统的农产品追溯系统主要还是通过人工操作实现各环节数据的录入,且数据储存在单一的数据库节点上,易导致差错的出现和篡改的风险。这些原因一定程度上降低了消费者对于追溯结果的信任度。这种追溯体系因中心化数据库导致的信任危机[1]、认证难、成本高等问题,严重影响了农业信息化的发展进程。
区块链(Blockchain)通过运用分布式共识、数据加密、时间戳、智能合约等手段,具备集体维护、高度透明、去中心化、去信任等性质,能够为基于区块链的各种应用提供目前最为可靠的安全性和可信度[2]。区块链技术与农产品溯源的结合能够有效改善溯源系统的不足[3]。
在分布式系统中应用区块链技术,在节点无须互相信任的情况下通过去中心化的交互方式,将农产品全链条信息保存在区块链中,形成可信的数据来源。利用区块链的数据加密、验证机制可有效地维护各节点方隐私并保护数据安全,即使遭遇攻击者侵入网络,也无法对真实数据进行窃取和篡改[4]。
目前区块链的发展已经进入3.0时代,可应用于各行各业,支持个性化地组织联盟链、私有链网络,其中超级账本(Hyperledger fabric)最具代表性,Hyperledger fabric是由IBM公司牵头,联合Intel、思科等大牌公司开发,是企业与企业之间的联盟链。本文将采用开源的Hyperledger fabric框架进行农产品质量安全追溯体系的构建,实现对农产品从源头到消费的全程监控。
区块链最初是比特币用来存储大量交易信息的一项底层技术,按照时间从后向前有序链接的方式记录,具有公开透明、无法篡改、方便追溯的优点。区块链架构带来的改变:
(1)区块链使每一个商业网络的参与方都具有一个共享账本,当交易发生时,通过点对点的方式复制更改所有账本;
(2)使用密码学,确保网络上的参与者仅仅可以看到和他们相关的账本内容,交易是安全的、授权的、验证的;
(3)区块链将资产转移、账本修改相关的合同条款嵌入交易数据库,确保条件满足的情况下才发生;
(4)网络参与者基于共识机制来保证交易的共同验证。
相较于比特币等公有链,Hyperledger fabric无须进行加密挖掘操作,交易确认时间短,克服了公有链项目的吞吐量低、无隐私性、无最终确定性以及共识算法低效等缺陷,是具有高度模块化和可配置体系结构的企业级许可分布式账本技术平台,主要表现在:
(1)支持以通用编程语言(例如Java,Go和Node.js)而非受约束的领域特定语言编写的智能合约;
(2)参与者之间是信任关系,是通过受信任的成员资格服务提供商(MSP)注册;
(3)支持可插入共识协议,更有效地进行定制,以适应特定的用例和信任模型;
(4)是一个要许可的平台,通过其通道(channel)架构实现机密性。
Hyperledger fabric的逻辑架构如图1所示。
图1 Fabric逻辑架构图
Fabric底层提供的服务有:成员管理、共识服务、链码服务等,在此基础之上,可通过API、SDK等方式提供可编程的接口服务。
(1)Fabric身份管理模块为整个区块链平台提供成员注册、身份隐私管理、内容保密、交易审计等服务,通过公钥基础设施(PKI)和去中心化的共识机制实现许可制区块链。
(2)Fabric账本管理模块提供了多种查询账本数据的方式,可根据区块号、区块哈希值、交易号、通道名称等查询区块、交易、区块链信息。
(3)Fabric交易管理模块为应用程序提交提案(proposal)获取交易背书(Endorsement),再提交给排序服务节点(order)后打包生成区块。SDK提供接口,根据用户证书在本地生成交易号,通过背书节点和记账节点校验交易是否重复。
(4)Fabric智能合约模块基于区块链实现个性化的业务逻辑,验证各个分布式交易,通过自动执行定义的业务规则来更新账本信息的状态。
本文以江西特色农畜产品质量追溯为研究主体,构建基于物联网的江西特色农畜产品质量追溯与综合服务云平台,为种植、养殖、加工企业提供物联网接入服务和产品质量溯源服务,完善农产品质量安全信息服务通道。本农产品质量追溯系统需要实现的功能如图2所示:
图2 农产品质量追溯系统功能图
本追溯系统集成应用物联网实时感知数据,基于标准化生产操作规程建立健全农产品生产经营档案,智能监控产业链条各环节的生产经营活动,将农产品从生产、加工、流通等各环节的数据存储在区块链平台,提升各环节参与者的生产经营管理水平,推进全链条质量跟踪和节点追溯,实现农产品的全程信息化监管。
本文提出的基于Fabric区块链技术的农产品质量安全追溯系统的总体架构如图3所示,分为数据接入层、区块链平台和用户应用层。数据接入层主要实现溯源系统对于农产品的数据记录和存储,利用传感器前端网络和人工录入的方式实现数据采集和上传,并将数据载入区块链平台。用户应用层主要实现用户与区块链平台之间的交互。
图3 基于Fabric区块链技术的农产品质量追溯体系
农户、生产加工企业、物流运输企业等相关生产经营单位以区块链注册节点的身份加入到区块链,对溯源信息进行接入、传播、记录以及验证。各区块链节点间形成对等式网络结构并在此基础上建立联盟链网络[5]。通过各节点的物联网设备与网络,产品的生产信息等数据基于TCP/IP协议传输到区块链节点。这些数据是实现农产品质量安全溯源的基础,按照区块数据结构的方式存储到区块链的数据区块中,并采用哈希算法、时间戳以及区块间的传递机制来工作。在传统比特币系统中,交易的确认和共识是需要由矿工来完成。但在联盟链结构中,交易信息由全网各节点共同确认,保证了交易确认的效率[6]。
消费者以游客身份权限[7]请求后,系统根据请求数据从后台数据库查询到相应的区块链地址,并根据地址信息从区块中进行数据的获取和展示。
本文采用Hyperledger Fabric进行农产品溯源,编码流程如下:
2.3.1 部署Fabric开发环境、搭建区块链网络
(1)在VirtualBox下安装Linux环境,本文采用的是Ubuntu系统;
(2)下载必需的工具并安装,包括Go语言环境、Docker-ce、python-pip,Docker Compose、Git、curl、node.js、npm;
(3)通过git clone命令从github复制fabric源码,在fabric-samples文件夹下安装特定的二进制文件;
(4)在first-network文件夹下采用命令“./byfn.sh -m generate”创建证书和镜像;
(5)采用命令“./byfn.sh -m up”创建第一个网络;
(6)在fabcar目录下安装node模块、grpc模块并启动fabcar的Hyperledger Fabric网络;
(7)注册管理员,然后注册用户,经过许可的用户可以查询并调用fabcar网络。
2.3.2 构建Fabric-sdk-java客户端、进行应用的开发与实现
通过git clone命令下载fabric-sdk-java项目,maven导入项目及相关依赖。采用Fabric-sdk-java开发包实现对链码的访问,该开发包封装了Fabric区块链的GRPC链码访问协议,有助于软件开发人员聚焦于业务逻辑模块。
2.3.3 调用过程
配置节点服务器FabricConfig,设置相关属性值如排序服务器对象orders、节点服务器对象peers、智慧合约对象chainCode、crypo-config路径。在节点服务器配置的基础上,创建节点服务器管理器FabricManager对象,实现对链码的查询、提交操作。
Hyperledger fabric以模块化架构为基础,具备高度的安全性、灵活性和可扩展性,是目前联盟链框架最成熟的代表。本文采用Hyperledger fabric实现农产品质量安全溯源体系,以区块数据结构的方式记录农产品全流程数据,可确认加入联盟链的农产品生产、加工等企业的数字身份,生成基于区块链的农产品电子履历、检验报告,具有去中心化、不可篡改、可追溯等特性,使得农产品从生产、加工、销售、流通等全过程更加公开透明且真实可信,为区块链技术在溯源领域的应用提供了依据。
[1] 钱建平, 范蓓蕾, 史云. 基于区块链的农产品可信追溯系统框架构建[J]. 中国农业信息, 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] 张延华, 杨兆鑫, 杨睿哲. 基于区块链的农产品溯源系统[J]. 情报工程, 2018, 4(3): 4~13.
[4] 刘亚南. 创新推动区块链技术在美国快速发展[J].金融世界, 2020(1): 46~48.
[5] 安庆文. 基于区块链的去中心化交易关键技术研究及应用[D]. 上海: 东华大学, 2017.
[6] 邓文萍. 基于Hyperledger区块链的数字资产管理系统[J].科学技术创新, 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—),女,江西高安人,工程师,研究方向:计算机应用。
TP399;TP311
A
2095-9249(2020)03-0075-04
〔责任编校:范延琛〕