基于区块链的农产品追溯系统信息存储模型与查询方法

2019-02-21 04:24杨信廷王明亭徐大明孙传恒
农业工程学报 2019年22期
关键词:哈希区块数据库

杨信廷,王明亭,徐大明,罗 娜,孙传恒

·农产品加工工程·

基于区块链的农产品追溯系统信息存储模型与查询方法

杨信廷1,2,3,王明亭1,2,3,徐大明2,3,罗 娜2,3,孙传恒2,3※

(1. 上海海洋大学信息学院,上海 201306; 2. 国家农业信息化工程技术研究中心,北京 10097;3. 农产品质量安全追溯技术及应用国家工程实验室,北京 100097)

针对区块链追溯系统信息数据存储负载过大、查询效率低等问题,该文以果蔬菜类农产品为例,基于Hyperledger Fabric设计了一种区块链农产品追溯信息存储模型和查询方法。提出“数据库+区块链”的链上链下追溯信息双存储设计,本地数据库存储追溯明文数据,区块链上存储追溯数据加密后的哈希值,并在此基础上建立了外联数据库索引的查询方法。通过该方法与基于key键遍历查询和批次号字段查询的2种传统区块链数据查询方法进行对比测试,结果表明当区块链追溯记录总量达到11×104条,批次追溯记录条数为400时,该方法查询效率分别提高了70.56%和88.66%,有效解决了区块链链式结构中数据查询效率低的问题,保证了数据隐私安全,提高了追溯信息的可靠性与时效性。

农产品;追溯;区块链;Hyperledger Fabric;索引存储;快速查询

0 引 言

从农田到餐桌的农产品及食品供应链涉及生产、加工、包装、运输、仓储、销售等不同环节,每个环节都可能存在不安全因素。近年来被曝光的“镉大米”[1]、“过水蟹”、广东“走私冻肉”、鲈鱼“孔雀石绿”[2]、南京“小龙虾”[3]等事件,不仅损害了消费者的利益,食品生产企业也遭受沉重打击,引发了消费者与食品产业之间的信任危机[4-5]。追溯系统以其降低质量安全风险、提高产品召回效率、保障公众健康水平[6-8],成为农产品供应链质量管理的有效手段[9-11],研究并建立农产品质量追溯体系,实现从生产到消费全过程的有效监管,已经成为各国的共识和普遍关注的热点问题[12]。

农产品追溯涉及农资供应商、农户等生产商、加工商、中间商(包括物流服务提供商、批发商、分销商、零售商等)和末端消费者等,具有点多、线长、面广、错综交叉的特点[13-14],这使食品安全监管和追溯在操作中尤为困难[15]。传统的追溯系统在实际应用中数据中心化,依赖于权威机构来管理中心数据库,各个供应链节点上的追溯数据由企业自行管理,易被篡改。同时供应链中各角色间信息传递的可靠性问题尚有待解决。

区块链技术具有不可篡改、分布式、去中心化、可追溯、高可用等特点,利用区块链这些特性,将区块链技术与农产品追溯相结合,为解决目前传统的农产品追溯体系所存在的问题提供了可能。近几年国内外学者[16-20]在农产品追溯领域都进行了探索研究,现有的方法多基于现有的常用区块链系统如Bitcoin、Ethereum、Hyperledger Fabric系统进行应用开发,在数据存储方面存在查询效率低、数据存储压力大且数据安全性差等限制区块链系统在农产品追溯应用的瓶颈问题。实际应用过程中区块链作为追溯应用的数据管理平台时,随着节点和数据的增加,底层存储系统需要面对用户的频繁访问,这对数据存储系统的功能和性能均提出了较高的要求。

因此,本文从提高农产品追溯系统信息高效存储与快速查询效率的角度,设计了一种区块链农产品追溯信息存储模型,同时与传统查询优化方法进行了对比分析,为实现基于农产品追溯信息数据存储与快速查询提供参考。

1 区块链基本介绍

1.1 区块链概念

区块链是一种通过密码学算法将数据区块按照时间顺序组成的链式结构,能够实现去中心化、不可篡改、可追溯、多方共同维护的分布式数据库[21]。任何一方都必须按照事先约定的规则对更新数据达成共识,实现多方之间的信息共享和监督。区块链集成了P2P网络、密码学[22]、智能合约[23]、共识机制[24]、时间戳、块链结构等多种技术,无需依赖第三方,就能实现数据的自我验证与管理。

1.2 区块结构

区块链是以区块为单位的有序链状数据块结构,每个区块由区块头和区块体组成[25],如图1所示,每个区块头都包含上一个区块头的Hash值,从创始区块开始连接到当前区块,形成链式数据存储结构。区块中利用Merkle树结构的特性以及时间戳和区块之间的联系,确保每个区块是按时间顺序相连且数据不易被篡改,一旦篡改,也能快速定位,为追溯系统数据的可靠性和可信度提供了保证[26]。

图1 区块数据结构图

1.3 哈希算法

哈希算法是通过哈希函数可以将任一长度的数据映射为较短的固定长度的二进制值[27],是一个从明文到密文的不可逆的映射,相同的输入永远得到的是相同的输出。利用哈希函数的特性,不仅可以用于校验追溯数据是否被篡改,还保证了数据的安全问题。本文采用的是MD5[28]算法,对于任意长度字符串的输入,会生成一个32位十六进制的序列值。

1.4 区块链分类

根据区去中心化程度,区块链主要分为公有链、联盟链和私有链三大类[29],如表1所示。在追溯系统中,农产品供应链的责任主体属于协作关系但同时又不能完全信任,在现实中原本就有关联,存在横向互联合作关系或者纵向交易关系,所以农产品追溯系统研究选用联盟链[30]。

表1 区块链分类

2 区块链追溯系统设计

2.1 总体框架设计

农产品追溯系统主要是对农产品从生产、加工、运输到销售过程中,通过物联网等各种采集方式,把农产品的生产信息、加工信息、运输信息以及销售信息按照一定的格式和方式存储并进行管理。通过追溯系统,向消费者展示农产品的详细信息,增加消费者的信任度,实现农产品安全消费。当出现农产品质量安全事故时,执法机构可以追溯到问题环节,确定责任主体。区块链追溯是在追溯系统中引入区块链技术,利用区块链的去中心化、不可篡改、可追溯等特性,保证了农产品追溯系统的追溯信息真实透明,实现了有效追溯的真实性和可靠性。

以果蔬类农产品为例,根据供应链每个环节的特点,构建了农产品追溯区块链结构体,确定种植、加工、物流、销售每个阶段追溯记录结构。如图2所示,将供应链中的生产、加工、物流、销售信息存储在本地数据库,并通过MD5算法对其进行哈希计算,将哈希值存储到区块链系统中,不仅能够验证数据是否能被篡改,还能减小区块链存储负载压力,提高数据隐私安全性。

图2 农产品区块链追溯系统存储结构图

2.2 数据存储设计

现有的区块链追溯系统的存储方式是将农产品各节点的追溯信息直接写入区块链,随着节点的数量的增加,交易数据越来越多,区块链存储负载压力也越来越大。由于区块链特有的链式结构,查询效率十分低下;在同一区块链网络的成员都可以访问账本上所有数据,对于竞争企业来说,存在数据安全问题。本文针对这些不足对农产品区块链追溯系统存储方式进行改进,设计了“数据库+区块链”的链上链下追溯信息双存储方法。

具体将溯源明文信息存储在各节点本地数据库,各自管理;将本地数据存储的溯源信息的每个字段作为字符串直接拼接起来,考虑到存储空间的问题,追溯信息加密中采用了位长较短的MD5算法,对于任意长度字符串的输入,经过MD5算法会生成一个32位十六进制的值,并将哈希之后的值写入区块链。查询时用同样的方式对本地数据库的溯源信息再次哈希,与从区块链上查询的哈希值进行对比,验证溯源信息是否被篡改。以果蔬类生产履历信息为例,存储在本地数据库溯源信息的字段包括:id、BatchNum、CropName、VarietyName、OperationContent、Amonut、OperationTime、Operator、Blocknum。其中id是作为记录信息的唯一标识,BlockNum是溯源信息的哈希值在区块链上的区块号,具体的本地数据库溯源字段如表2所示。

表2 本地数据库溯源字段

存储在区块链上的追溯信息数据结构包括区块头和区块体,区块头主要有当前区块号、前一个区块哈希值、时间戳等信息。区块体主要是追溯相关信息,采用Key-Value的方式进行存储,其存储格式如表3所示(以id为例),Value是写入区块链的值,包括docType、id、Infohash。docType是对Value自定义的结构体的名称,id是溯源信记录的id,与本地数据库存储的溯源信息的id 一一对应,InfoHash是对溯源信息哈希计算之后的值。Key键是Value值中对应的id作为索引和唯一标识。

表3 区块链上追溯信息数据结构

2.3 追溯防伪流程

农产品区块链溯源系统流程图如图3所示,溯源信息通过物联网设备或者人工采集,用户将生产、加工、物流、销售等溯源信息存储到供应链各节点本地数据库中,通过MD5算法对溯源信息进行Hash计算,将得到的Hash值存储到区块链系统中,并返回其所在的区块号,将区块号更新至本地数据库对应的溯源信息记录中,若需要对农产品信息进行修改,需要对溯源信息的哈希值重新写入区块链,更新其区块号。消费者可以通过扫描二维码从本地数据库中获取溯源信息和区块号,对获取的溯源信息进行哈希计算,并与通过区块号获取存储在区块链上的哈希值进行一致性对比,判断产品溯源信息是否被篡改。

图3 农产品区块链溯源防伪流程图

3 追溯查询方法

在实现了上述追溯系统设计的基础上,最终需要将农产品生长、加工、流通等信息展现给消费者,因此需要对农产品批次的信息进行快速追溯查询。根据区块链追溯数据存储方式的不同,常用的查询方法有以下3种。

第1种方法是Key键遍历查询,将农产品生长、加工、物流和销售的数据信息逐一写入区块链,将追溯信息的id作为Key值,追溯信息作为Value值存储到区块链中;查询时,把Key键作为索引,从最新区块依次向前一个区块遍历,获得相匹配的Value值。结合果蔬类农产品追溯业务,农产品批次的追溯信息上传记录存在多条,通常在查询时获取批次信息,需要多次根据Key对区块进行遍历,遍历次数与农产品批次追溯记录条数有关。

第2种方法是按批次号字段查询,具体是将农产品生长、加工、物流和销售信息都写入区块链,将追溯信息的id作为Key值,追溯信息作为Value值存储到区块链中;而查询时利用CouchDB的富查询,通过对Value里面的批次号字段来从最新区块依次向前一个区块遍历,获取农产品一批次的所有追溯信息,只需要对所有区块遍历一次就可以得到农产品一批次所有的追溯信息。

第3种方法是本文设计外联数据库索引查询,将追溯信息的ID作为Key值,追溯信息的哈希值作为Value值存储到区块链中,并得到其所在区块的区块号;同时,将追溯信息和区块号一一对应存储在本地数据库。查询时通过从本地数据读取农产品一批次的追溯信息和区块号,将追溯信息逐条进行哈希计算,并通过区块号获得存储在区块链上的哈希值,将每条追溯信息的两个哈希值进行比较,从而判断信息被篡改。

4 结果与分析

试验是在虚拟机中进行模拟测试,其环境基础为Centos 7.5、Docker 18.09、fabric-sdk-node 1.4。系统运行内存为4GB,硬盘为20GB,带宽为100Mb/s。Fabric联盟网络包括4个Peer节点,1个Orderer节点。Fabric中的默认数据库LevelDB查询形式单一,而CouchDB能满足现实需求,支持富查询, 对组合键进行建模,以支持针对多个参数的等价查询,因此本文试验数据库选择CouchDB。在具体实现中采用Node SDK开发测试程序,采用REST接口对资源进行调用。

本文分别对以上3种方法查询进行测试并对比,在试验过程中,在相同情况下执行相同查询操作,查询时间都会在一定区间上下浮动,为了保证数据的客观性,对每组数据都执行10次,计算出其平均值作为最终值。

通过上述方法对试验进行测试,对试验结果进行相关性分析,如图4所示。图4 a-f为追溯记录总量分别为104、3×104、5×104、7×104、9×104、11×104条记录情况下3种不同方式查询时间对比图,横坐标为批次追溯记录条数,分别为1、200、400、600、800条,纵坐标表示查询所需要的时间。key表示通过对Key键遍历查询,content表示通过批次号进行查询,block表示外联数据库索引存储方法。表示相关系数,表示显著性水平0.05情况下的显著性值。其中相关性系数计算公式为

式中(,)为,的协方差,()、()分别为、的方差。

4.1 相关性分析

从批次追溯记录角度分析,如图4所示,为3种方法在特定的追溯记录总量下,查询时间与批次追溯记录条数的关系对比图。key方法和block方法的查询时间和批次追溯记录条数正相关,相关系数均>0.89,显著检验值均<0.05(=0.05)。而content方法的查询时间与批次追溯记录的相关系数均<0.5,呈弱相关。

从追溯记录总量角度分析,如图5所示,为3种方法在特定的批次追溯记录条数下,查询时间与追溯记录总量的关系对比图。content方法的相关系数均>0.9,显著检验值均<0.05(=0.05),反映content方法的查询时间与追溯记录总量呈显著正向相关关系。而key方法和content方法的相关系数绝对值均<0.4,呈弱相关。

从以上不同角度分析得出:key方法和block方法的查询时间与批次追溯记录条数正相关,content方法的查询时间与追溯记录总量正相关。

4.2 查询效率分析

在分析上述相关性的基础上,进一步分析了3种方法的查询效率提升率,其计算公式为

式中A,B表示A比B的效率提升率,%;A,B分别表示A,B所需要的时间,ms。

注:Key:通过对Key键遍历查询;Content:通过CouchDB数据库的富查询对批次号进行查询;Block:外联数据库索引存储方法。:相关系数,:显著性水平=0.05情况下的显著性值。下同。

Notes: Key: traversal query performed using the value of key attributes; Content: query performed using the batch number of agricultural products through the rich query of the CouchDB database; Block: index storage method for the outreach database;: correlation coefficient;: probability value of the significance test when significance levelis 0.05.The same below.

图4 3种方法在不同追溯记录总量情况下的查询时间对比图

Fig.4 Comparison chart of query time for different total traceability records of three methods

图5 3种方法在不同批次追溯记录条数下的查询时间对比图

从结果表4中可以看出,当查询单条追溯记录时,block方法比content方法效率提升在97.70%~99.78%之间,block方法比key方法的查询效率提升呈波动状态,这是由于单条查询需要时间值较小,数据波动区间大造成查询时间差异较大;当批次追溯记录条数大于200条时,block方法比key方法的查询效率提升基本呈稳定在59.76%~72.32%之间,而block方法与content方法相比,提升效率是随着追溯记录总量增加,随着批次追溯记录条数减小的。在实际应用中,农产品批次记录在200-400条左右,而区块链系统中的追溯记录总量是随着节点和时间的增加而增加。当批次追溯记录条数为200时,追溯记录总量为104、3×104、5×104、7×104、9×104、11×104时,block方法比key方法查询效率提升分别为69.76%、70.42%、68.52%、68.57%、68.19%和66.72%,block方法比content方法查询效率提升分别为16.28 %、73.86%、84.46%、88.65%、91.65%、93.33%;当批次追溯记录条数为400时,追溯记录总量为104、3×104、5×104、7×104、9×104、11×104时,block方法比key方法查询效率提升分别为69.34%、72.32%、69.90%、68.81%、68.15%和70.56%,block方法比content方法查询效率提升分别为−57.74%、51.44%、71.97%、78.14%、83.73%、88.66%。从批次追溯记录条数角度看,block方法查询效率随着追溯记录总量的增加而增加。

表4 效率提升对比表

4.3 应用案例分析

本方法成功应用于山东烟台某苹果公司的区块链追溯系统设计过程中。通过对该企业苹果供应链进行实地调研,从种植和仓储环节、加工环节、运输和销售环节分设计了苹果追溯系统采集方法,并采用本文提出的“数据库+区块链”的链上链下追溯信息双存储设计,当区块链系统追溯记录总量达到7×104时,查询响应平均时间为5001.09 ms,实现了苹果区块链追溯信息的高效存储和查询。

系统运行页面如图6所示,图6为系统工作界面图,为供应链各节点提供信息采集服务和产品溯源服务,其中图6a~d为种植、仓储、加工、运输信息采集界面,用户可以通过信息采集功能上传供应链数据信息,系统会自动对数据进行相应处理,将溯源信息和其Hash值分别存储到本地数据库和区块链系统中。图6e为消费者通过扫描二维码查询产品溯源信息以及数据的存证信息。

图6 系统工作界面

与传统苹果供应链管理系统相比,区块链驱动的苹果供应链追溯系统具备去中心化的特性,不依赖某个组织和个人,解决了苹果供应链管理中的“信任问题”,同时采用本文提出的外联数据库索引存储方式,在一定程度上缓解了因数据不断增加带给区块链系统的存储压力,使查询效率明显提升。

5 结 论

本文主要探讨基于区块链的农产品安全防伪追溯系统存储与查询设计,针对区块链追溯系统随着数据的增长存在的数据负载压力大、查询效率低以及数据安全性差等问题,提出了一种外联数据库索引存储方式:对追溯信息的哈希值进行数字签名后写入区块链,同时返回哈希值所在区块链上的区块号,然后将追溯信息和区块号存储在各个节点的本地数据库中。查询时从本地数据库读取追溯信息和区块号,对获取的追溯信息进行哈希计算,并与通过区块号获取存储在区块链上的哈希值进行一致性对比,从而判断追溯信息是否被篡改。通过将该方法与现有的两种区块链追溯系统存储查询方法进行试验对比,结果表明:

1)针对区块链数据不可删除,随着节点和数据的增加,区块链存储负载容量也要求越来越高的现状,本文提出了“数据库+区块链”的链上链下追溯信息双存储设计,本地数据库存储原始数据,链上存储原始数据的哈希值,减轻了存储负载压力,解决数据隐私安全问题,同时能够保证数据的真伪性。

2)本文提出的MD5加密是在数据上链之前对数据内容加密,将加密后的数据再传入区块链系统中,配合现有的区块链系统中的用于CA认证的底层加密技术如SHA256,一方面解决了追溯信息造成的存储负载压力,另一方面解决了追溯数据的隐私安全问题。同时采用MD5加密成32位十六进制的密文,在一定程度上,节省了区块链的存储空间。

3)随着追溯记录总量的增加,本文提出的外联数据库索引方法效率明显提升,当追溯记录总量11×104条,批次追溯记录条数400时为例,本文方法的查询效率较key查询方法和content查询方法效率分别提高了70.56%和88.66%。

本文的方法对建立完善区块链农产品追溯系统具有一定的参考依据,存在不足之处是本文的研究是以文本数据的结构化数据为研究对象,对于视频等非结构化数据存储和查询是下一步研究重点。在下一步研究中,将结合物联网技术重构完善区块链农产品追溯系统模型,在实际应用中不断提高完善现有方法和系统。

[1]李国庆. 从广东“镉大米”事件看我国粮食质量安全的监管[J].河南工业大学学报:社会科学版,2013,9(3):20-23.

Li Guoqing. On Chinese supervision of grain quality safety from “Cadmium Rice” event in Guangdong[J]. Journal of Henan University of Technology: Social Science Edition, 2013, 9(3): 20-23. (in Chinese with English abstract)

[2]傅武胜,邱文倩,郑奎城. 养殖鱼孔雀石绿及其代谢物残留量的调查与溯源[J]. 食品安全质量检测学报,2013,4(1):177-182.

Fu Wusheng, Qiu Wenqian, Zheng Kuicheng.Investigation and traceability of residual malachite green and its metabolite in freshwater fish[J]. Food Safety and Quality Detection Technology, 2013, 4(1): 177-182. (in Chinese with English abstract)

[3]韩丽岚,徐荣靖. 南京“小龙虾事件”调查处理分析[J].中国卫生监督杂志,2012,19(1):75-78.

Han Lilan, Xu Rongjing. Investigation and analysis of “Crayfish” in Nanjing[J]. Chinese Journal of Health Inspection, 2012, 19(1): 75-78. (in Chinese with English abstract)

[4]Jin S, Zhang Y, Xu Y. Amount of information and the willingness of consumers to pay for food traceability in China[J]. Food Control, 2017, 77: 163-170.

[5]Kim Y G , Woo E . Consumer acceptance of a quick response (QR) code for the food traceability system: Application of an extended technology acceptance model (TAM)[J]. Food Research International, 2016, 85: 266-272.

[6]Wang J, Yue H, Zhou Z. An improved traceability system for food quality assurance and evaluation based on fuzzy classification and neural network[J]. Food Control, 2017, 79: 363-370.

[7]曾祥卫,李引,郭畅. 分布式水产品流通全环节追溯体系的设计与实现[J]. 计算机与现代化,2018(6):108-110,115,126.

Zeng Xiangwei, Li Yin, Guo Chang. Design and realization of distributed traceability system of aquatic products’ circulation[J]. Computerand Modernization, 2018(6): 108-110, 115, 126. (in Chinese with English abstract)

[8]Aung M M, Chang Y S. Traceability in a food supply chain: Safety and quality perspectives[J]. Food Control, 2014, 39: 172-184.

[9]涂传清,王爱虎. 我国农产品质量安全追溯体系建设中存在的问题与对策[J]. 农机化研究,2011,33(3):16-20.

Tu Chuanqing, Wang Aihu. Problems and suggestions on the construction of traceability system for quality and safety of agricultural food in China[J]. Journal of Agricultural Mechanization Research, 2011, 33(3): 16-20. (in Chinese with English abstract)

[10]傅泽田,邢少华,张小栓. 食品质量安全可追溯关键技术发展研究[J]. 农业机械学报,2013,44(7):144-153.

Fu Zetian, Xing Shaohua, Zhang Xiaoxuan. Development trend of food quality safety traceability technology[J]. Transactions of The Chinese Society of Agricultural Machinery, 2013, 44(7): 144-153. (in Chinese with English abstract)

[11]杨信廷,钱建平,孙传恒,等. 农产品及食品质量安全追溯系统关键技术研究进展[J]. 农业机械学报,2014,45(11):212-222.

Yang Xinting, Qian Jianping, Sun Chuanheng, et al. Key technologies for establishment agricultural products and food quality safety traceability systems[J]. Transactions of the Chinese Society for Agricultural Machinery, 2014, 45(11): 212-222. (in Chinese with English abstract)

[12]钱建平,杨信廷,吉增涛,等. 农产品追溯系统的追溯粒度评价模型构建及应用[J]. 系统工程理论与实践,2015,35(11):2950-2956.

Qian Jianping, Yang Xinting, Ji Zengtao, et al. Model for traceability granularity evaluation of traceability system in agricultural products[J]. System Engineering Theory and Practice, 2015, 35(11): 2950-2956. (in Chinese with English abstract)

[13]刘晓云,王晓春. “物联网+区块链”的农产品质量溯源体系研究[J]. 常州工学院学报,2018,31(5):60-65.

Liu Xiaoyun, Wang Xiaochun. Research on the traceability system of agricultural product quality based on “Internet of Things + Block Chain”[J]. Journal of Changzhou Institute of Technology, 2018, 31(5): 60-65. (in Chinese with English abstract)

[14]杨信廷,孙传恒,钱建平,等. 基于流程编码的水产养殖产品质量追溯系统的构建与实现[J]. 农业工程学报,2008,24(2):159-164.

Yang Xinting, Sun Chuanheng, Qian Jianping, et al. Construction and implementation of fishery product quality traceability system based on the flow code of aquaculture[J]. Transactions of the Chinese Society of Agricultural Engineering (Transactions of the CSAE), 2008, 24(2): 159-164. (in Chinese with English abstract).

[15]Juan F Galvez, Mejuto J C, Simal-Gandara J. Future challenges on the use of blockchain for food traceability analysis[J]. TrAC Trends in Analytical Chemistry, 2018, 107: 222-232.

[16]于立娜,张国锋,贾敬敦,等. 基于区块链技术的现代农产品供应链[J]. 农业机械学报,2017,48(S1):387-393.

Yu Lina, Zhang Guofeng, Jia Jindun, et al. Modern agricultural product supply chain based on block chain technology[J]. Transactions of the Chinese Society for Agricultural Machinery, 2017, 48(S1): 387-393. (in Chinese with English abstract)

[17]李明佳,汪登,曾小珊,等. 基于区块链的食品安全溯源体系设计[J]. 食品科学,2019,40(3):279-285.

Li Mingjia, Wang Deng, Zeng Xiaoshan, et al. Food safety tracing technology based on block chain[J]. Food Science, 2019, 40(3): 279-285. (in Chinese with English abstract)

[18] 赵磊,毕新华,赵安妮. 基于区块链的生鲜食品移动追溯平台框架重构[J/OL].食品科学. [2019-01-11]. http://kns.cnki. net/kcms/detail/11.2206.TS.20190110.1258.010. html.

Zhao Lei, Bi Xinhua, Zhao Anni. Frame reconstruction of mobile traceability information system for fresh food based on blockchain[J/OL]. Food Science. [2019-01-11]. http://kns.cnki. net/kcms/detail/11.2206.TS.20190110.1258.010. html.

[19]Tian F. An agri-food supply chain traceability system for China based on RFID & blockchain technology[C]// 2016 13th International Conference on Service Systems and Service Management (ICSSSM). Kumming, China, IEEE, 2016: 1-6.

[20]Tian F. A supply chain traceability system for food safety based on HACCP, blockchain & Internet of things[C]//2017 14th International Conference on Service Systems and Service Management (ICSSSM). Dalian, China, IEEE, 2017.

[21]邵奇峰,金澈清,张召,等. 区块链技术:架构及进展[J].计算机学报,2018,41(5):969-988.

Shao Qifeng, Jin Cheqing, Zhang Zhao, et al. Blockchain: Architecture and research progress[J]. Chinese Journal of Computers, 2018, 41(5): 969-988. (in Chinese with English abstract)

[22]吴明航. DES和RSA混合加密算法的研究[D]. 哈尔滨:哈尔滨工业大学,2013.

Wu Minghang. Reseach on DES and RES Hybrid Encryption Algorithm[D]. Harbin: Harbin Institute of Technology, 2013. (in Chinese with English abstract)

[23]贺海武,延安,陈泽华. 基于区块链的智能合约技术与应用综述[J]. 计算机研究与发展,2018,55(11):2452-2466.

He Haiwu, Yan An, Chen Zehua. Survey of smart contract technology and application based on blockchain[J]. Journal of Computer Research and Development, 2018, 55(11): 2452-2466. (in Chinese with English abstract)

[24]李剑锋. 基于拜占庭容错机制的区块链共识算法研究与应用[D]. 郑州:郑州大学,2018.

Li Jianfeng. Research and Application of Blockchain Consensus AlgorithmBased on Byzantine Fault Tolerance Mechanism[D]. Zhengzhou: Zhengzhou University, 2018. (in Chinese with English abstract)

[25]袁勇,王飞跃. 区块链技术发展现状与展望[J]. 自动化学报,2016,42(4):481-494.

Yuan Yong, Wang Feiyue. Blockchain: The state of the art and future trends[J]. Journal of Automatica Sinica, 2016, 42(4): 481-494. (in Chinese with English abstract)

[26]何蒲,于戈,张岩峰,等. 区块链技术与应用前瞻综述[J].计算机科学,2017,44(4):1-7,15.

He Pu, Yu Ge, Zhang Yanfeng, et al. Survey on blockchain technology and its application prospect[J]. Computer Science, 2017, 44(4): 1-7, 15. (in Chinese with English abstract)

[27]焦通,申德荣,聂铁铮,等. 区块链数据库:一种可查询且防篡改的数据库[J]. 软件学报,2019,30(9):2671-2685.

Jiao Tong, Shen Derong, Nie Tiezheng, et al. Blockchain DB: a querable and immutable database[J]. Journal of Software, 2019, 30(9): 2671-2685. (in Chinese with English abstract)

[28]张裔智,赵毅,汤小斌. MD5算法研究[J]. 计算机科学,2008,35(7):295-297.

Zhang Yizhi, Zhao Yi, Tang Xiaobin. MD5 algorithm[J]. Computer Science, 2008, 35(7): 295-297. (in Chinese with English abstract)

[29]张亮,刘百祥,张如意,等. 区块链技术综述[J]. 计算机工程. 2019,45(5):1-12 .

Zhang Liang, Liu Baixiang, Zhang Ruyi, et al. Overview of blockchain technology[J]. Computer Engineering, 2019, 45(5):1-12 .

[30]王千阁,何蒲,聂铁铮,等. 区块链系统的数据存储与查询技术综述[J]. 计算机科学,2018,45(12):12-18.

Wang Qiange, He Pu, Nie Tiezheng, et al. Survey of data storage and query techniques in blockchain systems[J]. Computer Science, 2018, 45(12): 12-18. (in Chinese with English abstract)

Data storage and query method of agricultural products traceability information based on blockchain

Yang Xinting1,2,3, Wang Mingting1,2,3, Xu Daming2,3, Luo Na2,3, Sun Chuanheng2,3※

(1.,,201306,; 2.,100097,; 3.,100097,)

Food safety has become an important topic in people’s daily lives. In recent years, the frequent occurrence of food safety incidents have caused a crisis of trust between consumers and the food industry. Accordingly, there is an urgent need to establish an efficient and trusted traceability system for agricultural products. In the practical application of the traditional traceability system, the data of the production, processing, packaging, transportation, storage and sales of agricultural products are stored in the local database of each node, data in traditional traceability systems is centralized, and authoritative agencies manage the central database of the traceability system. Because the traceability data of each supply chain node is managed by the enterprise itself, the data is easy to be tampered with. Therefore, it is necessary to improve the reliability of information transmission between different roles in agricultural supply chain.Blockchain has the characteristics of decentralization, non-tampering, traceability, and high availability. Using these characteristics of blockchain and using blockchain technology to trace agricultural products, it is possible to solve the problems existing in the current traditional traceability system.At present, Scholars in China and abroad have studied the application of blockchain in the field of traceability. However, the traceability system of blockchain have some problems, such as low query efficiency, high data-storage load, and poor data privacy and security. In order to solve the above problems, this study designed a storage structure for a blockchain-based traceability system for agricultural products based on Hyperledger Fabric and proposed an index storage and query method for gtraceability information. In this method, “On chain and off chain” data storage technology is used, the enterprise first digitally signs the hash value of the traceability information of agricultural products, writes the hash value into the blockchain, and returns the block number to the blockchain where the hash value is located. Then, the traceability information of agricultural products and the block number are stored in the local database of each node. If the information of agricultural products needs to be modified, it is necessary to rewrite the hash value of the traceability information to the blockchain and update the block number. When consumers scan the QR code of agricultural products, the traceability information and block number is obtained from the local database, the value is calculated by hash algorithm for the acquired traceability information, and compare it with this newly acquired hash value with the hash value stored in the blockchain by block number to verify the authenticity of traceability information of agricultural products. The result showed that, when the number of total traceability records reached 11×104in the blockchain and the number of batch traceability records was 400 respectively, the query efficiency of the newly proposed method was increased by 70.56% and 88.66% compared to two traditional blockchain-based data query methods of query performed using the value of key attribute and querying performed using the batch number of agricultural products through the rich query of the CouchDB database, respectively. The approach of this paper effectively solves the problem of excessive load pressure of blockchain data storage, ensures data privacy and security, and improves the reliability and timeliness of traceability information.

agricultural products; traceability; blockchain; Hyperledger Fabric; index storage; efficient query

杨信廷,王明亭,徐大明,罗 娜,孙传恒. 基于区块链的农产品追溯系统信息存储模型与查询方法[J]. 农业工程学报,2019,35(22):323-330.doi:10.11975/j.issn.1002-6819.2019.22.038 http://www.tcsae.org

Yang Xinting, Wang Mingting, Xu Daming, Luo Na, Sun Chuanheng. Data storage and query method of agricultural products traceability information based on blockchain[J]. Transactions of the Chinese Society of Agricultural Engineering (Transactions of the CSAE), 2019, 35(22): 323-330. (in Chinese with English abstract) doi:10.11975/j.issn.1002-6819.2019.22.038 http://www.tcsae.org

2019-07-23

2019-11-05

国家自然科学基金项目(31871525);北京自然科学基金面上项目(4182023);广东省农业科技创新及推广项目(2018LM2168)

杨信廷,博士,研究员,主要从事农产品质量安全关键技术研究。中国农业工程学会会员(E041200352S)。Email:yangxt@nercita.org.cn

孙传恒,博士,副研究员,主要从事农业信息化及农产品质量安全控制研究。Email:sunch@nercita.org.cn

10.11975/j.issn.1002-6819.2019.22.038

TP311.13

A

1002-6819(2019)-22-0323-08

猜你喜欢
哈希区块数据库
基于特征选择的局部敏感哈希位选择算法
哈希值处理 功能全面更易用
区块链:一个改变未来的幽灵
文件哈希值处理一条龙
区块链:主要角色和衍生应用
《红楼梦》的数字化述评——兼及区块链的启示
一场区块链引发的全民狂欢
数据库
数据库
数据库