APP下载

面向果蔬供应链深度溯源的图区块链模型研究

2023-10-17刘孝保阴艳超孙海彬顾文娟

食品科学 2023年17期
关键词:果蔬顶点区块

刘孝保,杨 林,易 斌,阴艳超,*,孙海彬,顾文娟

(1.昆明理工大学机电工程学院,云南 昆明 650500;2.云南中烟工业有限责任公司技术中心,云南 昆明 650231)

水果、蔬菜作为人类维生素和矿物质的重要来源,为人体提供大量的营养[1],但是近年来农药残留超标、过量使用食品添加剂、违规使用化学药品、生产环境不达标[2]等事件频发,严重危害了消费者的健康安全,造成社会公众信任度降低。食品质量安全溯源系统利用自动识别和IT技术记录食品从生产到餐桌整个过程的关键信息,当发生食品安全意外事件时,可以快速地定位到出现问题的环节,明确责任主体,及时召回问题产品,这是有效保障食品质量安全的方法之一[3-4]。然而传统农产品溯源系统依靠中心化数据库来存储、传输和共享信息[5-7],存在供应链数据不透明、信息易被篡改、监管效率低、社会公信力不足等问题[8-10]。区块链技术具有去中心化、无法篡改、可编程和安全可信等特点[11-14],将区块链技术融入到传统溯源体系中,能够有效保证食品追溯信息的安全性和可靠性[15]。

近年来,国内外学者利用区块链技术在农产品质量安全溯源领域进行了较为深入的探索。Abijaude等[16]提出了一种基于区块链的可可溯源方法,以提高可可行业的可持续供应链透明度。An等[17]提出了一种面向农产品供应链安全管理的区块链模型,通过以太坊平台设计了农产品追溯系统,有效解决了传统溯源系统数据易被篡改和透明度低的问题。陶启等[18]构建了基于区块链技术的食品质量安全管理系统,开发了基于危害因子的风险评估和安全溯源技术,有效提高了食品质量安全的监管效率。于丽娜等[19]分析了农产品供应链溯源需求,提出了基于区块链的农产品供应链信息追溯模型,用以保障供应链信息的安全存储和共享。孙俊等[20]为了解决传统水产品追溯系统数据存储不安全的问题,将区块链技术融入现有水产品溯源系统,提高了追溯数据的可靠性。许继平等[21]通过分析稻米供应链信息流转特点,构建了基于区块链的稻米供应链监管模型,定制化设计了多业务逻辑监管智能合约,并结合实际案例对系统进行验证分析。上述研究通过区块链技术实现了农产品质量安全溯源,有效解决了传统溯源系统存在的问题,但是将农产品追溯信息直接写入区块链后,随着节点数量的拓展和交易数据的剧增,区块链数据查询效率低和存储负载过大的问题也随之出现[22]。

为解决上述问题,部分学者将区块链技术与数据库相结合。杨信廷等[23]设计了基于区块链的果蔬溯源数据存储模型,提出了“区块链”+“数据库”链上链下协同存储架构,链上链下协同验证溯源数据的安全性,有效提高了区块链数据的查询效率。刘双印等[24]采用区块链技术构建了农产品质量安全追溯系统,提出了链上链下双模协同存储策略,解决了区块链网络中节点负载过大和查询效率低的问题。许继平等[25]构建了基于粮油供应链的链上链下双模存储机制,提高了区块链的运行效率。链上链下协同存储方案虽然缓解了存储压力,但系统中心化程度也随之提高[26]。部分学者通过多链架构扩充了区块链溯源总体容量。于华竟等[27]采用多链架构构建了杂粮区块链追溯系统,以追溯链为主链,各企业间多链为从链,将公开信息存储在主链,隐私数据存储在从链,缓解了单链存储压力。孙传恒等[28]将区块链多链架构运用到果蔬溯源应用场景中,在供应链各环节间创建多条追溯链,将追溯信息隔离存储在多条链上以缓解数据存储压力。此外,部分学者提出了有向无环图(directed acyclic graph,DAG)区块链[29-31],通过将传统区块链单链结构变成DAG的网状拓扑结构,有效提升了区块链的并发性和可扩展性。上述研究在果蔬质量安全溯源方面取得了一些显著的成果,利用区块链技术构建具有去中心化、数据不可篡改、安全可信的果蔬质量安全溯源体系,成功提高了农产品供应链的可追溯性和安全性。但目前基于区块链的食品溯源系统仅存储食品流通过程中的部分信息,溯源信息的深度不足,且传统区块链采用顺序表的存储结构,溯源数据无法关联地存储,导致了溯源数据间关联性缺失及数据查询效率低等问题。

基于以上问题,本研究提出了一种图区块链模型。首先构建果蔬供应链深度溯源图区块链模型,利用图理论设计图状区块数据结构,将传统区块链结构中顺序表的存储结构改变为便于深度溯源信息存储的图结构,以实现深度溯源信息的关联存储。在此基础上,设计图区块链映射模型,通过该模型建立物理区块数据与图区块链模型之间的映射关系。然后根据果蔬供应链流程逻辑结构建立“图区块顶点”“图区块边”“图区块标签”以及“图区块属性”组成的图区块数据架构,设计并编写数据存储、查询与权限管理智能合约。最后,基于XuperChain平台开发图区块链模型,并与传统区块链进行性能对比。本研究可为实现基于区块链的果蔬供应链深度溯源、数据的快速查询和开销平衡的研究提供新的方法和思路。

1 面向果蔬供应链的区块链应用问题分析

果蔬供应链是在果蔬生产原料供应商、生产企业、收储企业、加工企业、物流公司、销售商、消费者等众多参与者之间建立的一种协作关系。果蔬供应链溯源信息具有高深度、高关联性的特点。供应链包括生产、收储、加工、运输、销售5 个环节,每个环节又包含多个亚环节,每个亚环节又包含多个步骤,例如生产环节包括选种、播种、施肥、打药、灌溉、修枝、采收等亚环节,其中施肥亚环节又包含一次施肥、追加施肥等多个步骤。供应链溯源信息主要由参与实体及产品之间复杂的关系构成[32],例如农民与农场之间是工作关系、肥料与农作物之间是施肥关系、各企业之间是交易关系等。因此,本研究提取了供应链各环节关键信息并将其划分为实体数据与关系数据,如表1所示。

表1 果蔬供应链关键信息分类Table 1 Key information classification of the fruit and vegetable supply chain

果蔬供应链深度溯源是对供应链全流程、全生命周期所涉及的数据以及数据之间的关系进行溯源。目前通过传统区块链构建的果蔬供应链溯源系统主要存在以下问题:1)溯源信息深度不足。果蔬供应链溯源信息具有高深度的特点。对于果蔬产品来说,亚环节所涉及的深度溯源信息较一般商品更为重要,但现有通过区块链技术构建的果蔬供应链溯源系统并没有存储供应链各环节的深度信息,多数仅限于上链单段果蔬产品流通过程中的部分数据。当发生食品安全问题时,难以实现全产业链的追踪溯源,无法快速确定出现问题的环节。2)溯源数据关联性不足。果蔬供应链追溯数据具有高信息关联性。传统区块链只能实现串行化的账本增加操作,数据存储具有随机性,无法将溯源数据之间的关联性很好地进行表征与存储,导致数据之间缺少关联关系,进而无法将供应链各环节数据和业务进行有效串联,增加了供应链数据处理和监管的难度。3)查询效率低。果蔬供应链溯源系统需要存储果蔬全生命周期的大量数据,消费者进行一次溯源查询操作涉及生产、收储、加工、运输、销售多个环节,需要查询多条记录。然而传统区块链系统查询功能较为单一,查询结果具有局限性[33],查询操作非常消耗系统资源和时间,相较于传统数据库查询效率低。

2 面向果蔬供应链深度溯源的图区块链模型

由于传统区块链在果蔬供应链区块链模型构建中存在问题,本研究提出基于图区块链的果蔬供应链深度溯源模型(图1)。其基本思路为:首先通过物联网设备采集供应链各参与主体溯源数据,并将其规整为实体数据和关系数据的形式来表征数据之间的关联性;然后调用智能合约将数据上传到区块链网络,网络中的节点对数据进行打包排序后生成物理图区块;最后通过图区块链映射模型建立物理区块数据与图区块链模型之间的映射关系,将物理区块中实体数据映射成图区块的区块顶点,关系数据映射成图区块的区块边。供应链各企业主体、监管部门与消费者都可以通过调用合约向图区块链网络发起溯源查询请求,不同主体可在权限范围内查询果蔬供应链信息,以实现果蔬产品的深度溯源。

图1 果蔬供应链深度溯源图区块链模型Fig.1 In-depth traceability graph blockchain model of the fruit and vegetable supply chain

2.1 图区块模型构建

2.1.1 图区块结构

图区块由区块顶点集和区块边集组成(图2)。在此基础上,定义属性集P=(Property1,Property2,…,Propertyn)来扩展区块顶点和区块边,定义标签对区块顶点进行分类,标签的类型由具体的业务场景定义,例如果蔬供应链不同环节顶点定义为不同类型标签。每个区块顶点集中的元素在基于业务交易的图区块账本中对应一笔实体型交易,而在基于图区块的账本中对应一个区块顶点。区块边集中的每个元素可以用一个二元组(m,n)表示,其中m代表起始区块顶点,n代表目标区块顶点,区块边定义的属性集表示两顶点之间的关系,每个区块边集中的元素在基于业务交易的图区块账本中对应一笔关系型交易,而在基于图区块的账本中对应一个区块边。

图2 图区块结构Fig.2 Graph block structure

在一个图区块G=(V,E)(E为区块边集(edge))中,区块边具有方向性,区块顶点集中任意两元素之间的边存在单向和双向两种情况,单向情况时,每个区块顶点m&V拥有一个出度或一个入度。出度Sout=|{e=(m,n)|e∈E}|,表示区块顶点引用数量(m“引用”了n),入度Sin=|{e=(m,n)|e∈E}|,表示m被引用的次数。当Sin=0时,称m为一个端区块顶点。双向情况时,每个区块顶点m&V∪n&V拥有一个出度或一个入度。图区块G=(V,E)具有复杂性,一般而言,基于图区块的账本对每个区块顶点的出度和入度没有要求,通常一个区块顶点能够同时被多个新生成区块顶点引用,从而能够清晰地存储具有复杂业务关系场景的数据。同时,新生成的区块顶点可以引用图区块中任意一个端区块顶点。

2.1.2 图区块链存储模型

由于图区块链存储了深度溯源信息,较传统单一溯源信息在数据量上有所增加,所以存储冗余率有所增加。因此,本研究设计了图区块链存储模型,该模型的核心思想是在保证图区块链安全性的前提下,减少图区块链网络中的副本数量以减少存储冗余。图区块链存储模型中包含用户节点、验证节点、排序节点、全节点4 种角色(图3)。用户节点为原始数据的拥有者,需要对原始数据进行标准化和规范化处理;验证节点负责验证交易的合法性;排序节点负责交易的排序打包;全节点负责存储所有用户节点的数据;一个节点可以同时拥有多种角色。其中最核心的是全节点,其是完整副本的保存者,其余节点只存储部分副本数据,网络中只有一少部分节点为全节点。图区块链网络中完整副本的数量减少,攻击者只需要在控制少于50%节点数的情况下即可篡改图区块链数据,在一定程度上降低了图区块链的安全性。但果蔬供应链场景有海量的节点不断地加入图区块链系统,攻击者想控制图区块链系统中少部分节点也几乎不可能实现。

图3 图区块链存储模型Fig.3 Graph blockchain storage model

2.1.3 物理图区块结构

果蔬供应链各节点通过物联网设备采集数据,并基于此数据构建物理图区块链模型。如图4所示,物理图区块分为两部分。第1部分包含前一图区块哈希(pre hash)、图区块身份(graph block ID)、图哈希根(graph hash root,GR)、图区块哈希(graphblock hash)、数字签名(digital signature)以及时间戳(timestamp)等。其中Graph block hash=Hash(Pre hash+Graph block ID+Graph hashroot+Digital signature+Timestamp),采用SHA-256哈希算法计算出图区块哈希值,无论图区块中任何部分发生细微的改变,均会引起输出值(graph block hash)的明显改变。第2部分包含若干业务数据,业务数据分为实体数据(标注为V1,V2,……)和关系数据(标注为R1,R2,……)两类。

图4 物理图区块结构Fig.4 Physical graph block structure

2.1.4 图区块加密算法

区块链技术的安全性通常从数据、网络、共识、合约4 个方面分析。图区块链基于传统区块链的技术架构对区块数据结构进行改进,保留了传统区块链网络、共识、合约技术的底层框架。因此,本研究主要考虑图区块链数据的安全性,根据图区块数据结构构建图区块加密算法,图区块内所有业务数据根据图区块加密算法得到最终的哈希值,称之为图哈希根。任意一个业务数据被篡改时,图哈希根均会发生改变,通过此方式保障图区块链数据的安全。以图4物理图区块为例,图区块加密运算过程为:

步骤1)首先计算图区块中某个实体数据V1的哈希值,称为hash VI。

V1→Hash V1

步骤2)找到刚访问的实体数据V1的第一个未被访问的邻接实体数据,计算出该实体数据与两实体数据之间连接的关系数据的哈希值,然后将计算得到的哈希值进行串接,再进行哈希运算,得到新的哈希值。接着再遍历V1未被访问到的邻接实体数据,重复此步骤,直到V1所有邻接实体数据全部被访问为止。

V2→Hash V2

R1→Hash R1

步骤3)依次访问步骤2未被访问的邻接实体数据,然后依次访问各邻接实体数据未被访问的邻接实体数据,直到所有实体数据都被访问为止,并计算出最终的图哈希根。

Hash V1V2R1V3R2V4R3R4V5R5R6→GR

2.2 图区块链映射模型

在图区块链网络中,用户节点发起交易提案请求后,交易被提交至验证节点进行合法性验证后签名;将带有签名的交易发送给排序节点进行排序打包;打包的交易被发送到全节点,全节点接收交易并将其放入缓存区中,当缓存区中交易达到一定数量时,将交易写入自己账本并通过映射机制将交易信息映射到图区块中。映射过程主要由以下2 个部分组成:1)建立物理图区块到图区块的数据映射协议;2)通过区块顶点映射和区块边映射配置方案构建图区块链。具体映射规则和映射流程如下。

物理图区块和图区块数据类型和格式存在一定的差异,会影响图区块链构建的完整性和一致性。因此,首先需要设计物理图区块数据到图区块的数据映射协议,保证图区块链构建前后数据的一致性和完整性。在物理图区块中,追溯数据以JSON文档的形式存储,因此本研究设计的映射协议中,物理图区块JSON文档中的键名称在图区块中映射为属性名称,值字段类型映射为该属性的类型,每一行用来描述该属性的具体值映射为对应区块顶点或区块边该属性的具体值。除此之外,还需解决数据类型和格式异构问题。本研究通过对物理图区块中存在的属性类型进行整理分析后,定义了图区块数据映射协议(表2),以最大程度地保留元数据。特别地,本研究对物理图区块中数组数据类型进行了特殊处理,数组用于将多个值存为一个键。在映射到图区块之后,对于作为属性的数组,将数组数据用逗号隔开作为字串存储,表示其属性值。

表2 物理图区块-图区块数据映射Table 2 Physical graph block-graph block data mapping

根据图区块的映射协议进行图区块的模式构建,包括区块顶点模式构建和区块边模式构建。区块顶点模式构建:获取选定的物理图区块账本中实体数据的元数据,按照映射协议建立所有的属性字段,实体数据的所有属性映射成为区块顶点的所有属性,实体数据的lable字段属性映射成为区块顶点的lable属性。以图5中JSON文档为例,以JSON数据中label字段来创建区块顶点的标签,其区块顶点为生产类区块顶点。JSON数据中属性对象3 个属性映射为该区块顶点的所有属性,其对应的属性值一一映射为区块顶点属性的具体属性值。

图5 图区块顶点映射Fig.5 Graph block vertex mapping

区块边模式构建:基于关系数据字段配置构建区块边模式,提取关系中的指向信息,明确关系的起始区块顶点信息。以图6中施肥区块边为例,首先建立一个施肥的关系类型,然后根据基于字段配置的方法(如图7中账本的start字段指向施肥边的起始区块顶点,end字段指向施肥边的目标区块顶点),确定施肥区块边的指向信息,从平衡复合肥17-17-17区块顶点指向阳光玫瑰葡萄区块顶点。JSON数据中relationship(关系)对象3 个属性映射为该区块边的所有属性,其对应的属性值一一映射为区块边属性的具体属性值。

图6 图区块边映射Fig.6 Graph block edge mapping

图7 某果蔬供应链图区块数据架构示意图Fig.7 Schematic diagram of graph block data architecture of the fruit and vegetable supply chain

2.3 果蔬供应链图区块数据架构

果蔬供应链参与主体主要是生产企业、收储企业、加工企业、物流企业、销售企业等。根据果蔬供应链涉及的主体,本研究按照区块顶点、区块边、区块顶点标签、区块顶点与区块边属性集进行时间和空间层面的划分,果蔬供应链图区块数据架构如图7所示。

按照实体数据建立图区块顶点。果蔬供应链各参与主体将采集的业务数据解析成实体数据和关系数据,图区块顶点由实体数据构建,如在图7中有农民、农场、种子、农作物等图区块顶点,并根据实体数据具体内容构建图区块顶点的属性集合,例如农场顶点包含名称、地址、联系方式3 个属性。

按照流程建立图区块顶点标签。根据果蔬供应链的流程环节,将图区块顶点分为“生产”“收储”“加工”“运输”“销售”5 个类型。它们以不同颜色进行区分,如图7所示。

按照关系数据建立图区块边。不同区块顶点之间通过具有方向的区块边连接起来组成复杂的图区块,根据关系数据的内容构建图区块边,例如施肥边由肥料顶点指向农作物顶点,其中剂量、人员、时间组成施肥边的属性集。

2.4 智能合约设计

智能合约是一种用算法和程序来编制合同条款部署在区块链上且可按照规则自动执行的计算机协议[34],可为去中心化的果蔬供应链主体之间搭建自信任的交易环境,通过智能合约将传统供应链上通过人的信任主导的业务往来替换为以计算机信任的交易模式。在图区块链模型中,用户的业务信息存储和查询操作都通过智能合约来实现。本研究根据限值数据结构设计了溯源数据存储智能合约,智能合约读取果蔬溯源数据并与限值进行对比,通过判断溯源数据是否在限值内来严格管控果蔬产品质量安全,最终得到的判断结果与溯源数据一起打包写入图区块链,写入成功后,返回当前交易哈希,其伪代码设计如算法1所示。

算法1 溯源数据存储算法输入:溯源数据TraceData(农药残留抑制率inhibition ratio)输出:交易哈希Tx 1.节点peer调用合约的invoke上链请求2.ctx->arg(admin) //获取节点公钥地址3.if(!isadmin(id)) //判断是否拥有写入权限4.if(admin!=fetcher)5.return false//返回失败6.ctx->put_object(inhibition ratio) //读取上链数据7.if(!isarg(inhibition ratio)) //ctx->arg(inhibition ratio) //判断上链数据格式是否符合要求8.return format error //返回上链失败原因9.elseif (!isarg(inhibition ratio)> inhibition ratio limit) //判断上链数据是否在限制内10.return“抑制率超标”//返回上链失败原因11.return ok(id) //上链成功返回交易id

数据成功写入图区块链系统后,供应链各企业主体、监管部门与消费者通过查询合约读取图区块链中数据及用户的查询请求信息,查询请求信息包括区块顶点和区块边的属性集合,根据查询请求信息遍历图区块链后返回查询结果,其伪代码设计如算法2所示。

算法2 溯源数据查询算法输入:数据查询请求request list[]输出:查询结果result 1.节点peer调用合约的query查询请求2.ctx->arg(admin) //获取节点公钥地址3.if(!isadmin(id)) //判断是否拥有写入权限4.if(admin!=fetcher)5.return false 6.ctx->arg(list[MATCH(N:lable)-[key value]]) //获取查询请求7.procedure BFS(graph,start_vertex) //根据属性值进行深度优先遍历区块顶点8.if start vertex in end vertices[]//遍历起始顶点9.return true 10.for temp vertex in currentN vertex//遍历目标顶点11.if !visit[temp_vertex]//判断已遍历顶点12.set visit ture(temp vertex)//标记以遍历顶点13.DFS(temp_vertex,end_vertices[])14.set_visit_true(temp_vertex)//遍历成功15.return true 16.End procedure//结束遍历17.traceinfo:= QueryState(records) //遍历全部数据18.return result

身份权限管理算法是图区块链重要的组成部分,直接关系到图区块链的数据安全管理。合约根据访问者身份信息来判断节点权限,其伪代码设计如算法3所示。

算法3权限管理算法输入:节点身份ID输出:权限等级1.节点peer调用合约的permissions权限判断请求2.ctx->arg(admin) //获取节点公钥地址3.if(!is企业节点(id)) //判断是否是企业节点4.可查询相邻企业的全部产品关联信息5.elseif(!is消费者节点(id)) //判断是否是消费者节点6.可查询其购买产品的关联信息7.elseif(!is监管节点(id)) //判断是否是监管节点8.可查询全部信息

3 实验分析

3.1 实验环境

实验开发环境为Intel®CoreTMi7-10875H CPU@2.30GHz的主机,利用VMware Workstation16软件建立虚拟机来模拟真实节点。其中,图区块链系统基于百度的超级链系统(XuperChain v5.1软件)开源项目搭建环境,选择go、C++语言作为测试的主要编程语言,具体的环境配置如表3所示。为了更好地验证所提图区块链模型的性能,选择百度超级链系统进行对比实验,图区块链系统和百度超级链系统在同一环境下运行,图区块链和百度超级链网络均包含3 个节点、2 个Orderer节点,且均采用Tdpos共识排序服务,本实验数据来自广西某农业有限公司阳光玫瑰葡萄溯源档案。

表3 实验环境配置Table 3 Experimental environment configuration

3.2 图区块链网络搭建

首先准备好百度超级链编译运行的环境,然后在此基础上建立图区块链网络。图8A展示了图区块链的区块配置信息,包括图区块链名称、图区块链账本信息、节点IP信息等。图8B展示了图区块链节点配置信息,包括图区块链版本、图区块链共识方法、排序节点信息等。图8C展示了图区块链P2P网络配置信息,主要包括节点端口、节点cert目录、种子节点netUrl信息等。图8D展示了图区块链智能合约账号配置信息,包括账号名称、账号访问控制列表(access control lists,ACL)等。图8E、F分别展示了图区块链存储智能合约和查询智能合约的部分代码。

图8 图区块网络配置Fig.8 Graph block network configuration

3.3 图区块生成验证

通过构建供应链生产环节的图区块链验证本研究提出的面向果蔬供应链图区块链的可行性。实验通过加入图区块链网络的2 个节点(peer1、peer2)进行,peer1节点测试写入生产环节的实体数据信息,peer2节点测试写入生产环节的关系数据信息。通过测试节点终端发出相应的指令,如图9所示。其中peer1节点发出写入“实体数据信息”指令,上传所涉及到的实体数据信息,经过图区块链网络验证节点验证提案信息的合法性。验证通过后,由存储智能合约将提交的业务信息写入物理图区块链中,随后通过映射模型将相关的实体数据信息生成图区块链中对应的区块顶点。peer2节点发出写入“关系数据信息”指令,首先需要对提案信息进行验证,验证通过后,仍由存储智能合约将提交的业务信息写入物理图区块链中,随后通过映射模型将相关的关系数据信息生成图区块中对应的区块边。

图9 图区块终端发出测试指令Fig.9 Graph block terminal issue for test instruction

农场提供的阳光玫瑰葡萄供应链生产环节部分信息如表4所示。将表4生产环节信息明细作为物理图区块链的基础数据。

表4 阳光玫瑰葡萄供应链生产环节相关信息Table 4 Information about Shine Muscat production

生产环节用户节点向相关信息发起提案,经过验证排序之后写入物理图区块账本,通过映射机制将实体数据映射成图区块中的顶点,关系数据映射成图区块中的边,各顶点和边连接形成供应链生产环节的图区块,如图10所示。

图10 图区块生成Fig.10 Graph block generation

由于果蔬供应链溯源信息具有高深度、高关联性的特点,因此对果蔬供应链的深度信息进行关联存储是实现深度溯源的关键。然而传统区块链并没有存储全供应链的深度信息,且只能实现串行化的账本增加操作,数据的写入具有随机性,导致数据之间缺失关联关系。图区块链利用图理论对区块数据结构进行改进,将传统区块链结构中顺序表的存储结构改变为便于深度溯源信息存储的图结构。如图10所示,该图区块存储了阳光玫瑰葡萄生产环节的深度信息,包含农场、农民、农作物、肥料等15 个顶点和工作、生长、施肥、施药等16 个边,分别代表存储了15 条实体数据和16 条关系数据,其中施肥边关联肥料与农作物顶点、工作边关联农民与农场顶点,溯源数据在区块中以图的形式存储,通过区块边将区块顶点连接在一起,实现数据的关联存储,关系数据直接地将各环节实体数据整合集成起来。用户进行一次追溯查询操作可以快速遍历供应链过程中涉及的全部实体数据和关系数据,从而实现对果蔬供应链的深度溯源。

3.4 查询性能分析

分别在图区块链和百度超级链系统上进行多组对比实验,通过查询数据,对比分析图区块链模型的查询效率性能。图区块链和百度超级链系统分别写入相同的溯源数据,然后分别进行查询操作,记录一次查询的响应时间,进行对比实验,再通过更改查询数量,观察分析图区块链模型在不同查询数量情况下的查询效率是否比传统区块链系统有所优化。

图11中横坐标是查询数量,纵坐标是查询时间,能够反映图区块链和百度超级链进行查询操作的响应时间,为了减小随机误差的影响,每次实验均测试10 次取平均值。通过对实验结果进行分析,当查询数量为100 条时,百度超级链查询时间为750 ms,而图区块链查询时间为65 ms,当查询数量增加至1 000 条时,超级链查询时间为6 273 ms,而图区块链查询时间仅为425 ms,图区块链模型比超级链模型查询效率提升大约13 倍,可以看出图区块链系统的查询效率比传统区块链系统明显提升。

图11 数据查询时间Fig.11 Data query time

通过Stress软件测试查询数量1~1 000 条期间图区块链系统和传统区块链环境下系统查询开销的情况,结果如表5所示。图区块链系统在查询操作时,查询效率相对传统区块链环境大幅提升,且查询开销不但没有明显增加,甚至比传统区块链环境更低。因此本研究提出的图区块链模型实现了数据快速查询和开销的平衡。

表5 1~1 000 次查询期间区块链系统查询开销Table 5 Query overhead of blockchain system during the period of 1–1 000 queries

3.5 应用案例分析

本研究在果蔬供应链图区块链深度溯源模型的基础上,以某阳光玫瑰葡萄供应链为应用对象,构建了果蔬图区块链信息溯源系统。该葡萄供应链包含葡萄的生产、收储、加工、运输、销售多个环节,记录了葡萄的生长信息、环境信息、人员信息、农事信息、加工信息、存储信息、保鲜信息、运输信息、销售信息等。若采用传统结构区块存储溯源信息,存在溯源数据关联性不足、查询效率低等问题,因此采用本系统进行优化。本系统部分运行页面如图12所示,图12A为用户登录页面,用户通过上传个人信息注册账号即可登录本系统,图12B为数据上链页面,用户可通过该页面上传溯源数据,图12C为信息查询页面,用户可通过该页面查看历史上链数据。

图12 系统运行界面Fig.12 System working interface

4 结 论

针对传统区块链构建的果蔬溯源系统存在追溯信息不全面、数据关联性不足、查询效率低等问题,本研究提出了一种基于图区块链的果蔬深度溯源模型,设计了图状结构的区块数据结构与物理图区块链模型,并由映射模型建立物理图区块与图区块中区块顶点和区块边的对应关系。根据果蔬供应链流程逻辑结构建立“图区块顶点”“图区块边”“图区块标签”以及“图区块属性”组成的图区块数据架构,并定制化设计智能合约,保障果蔬供应链上各主体之间正常的业务协作。该模型解决了传统果蔬供应链区块链模型存在的溯源信息深度不足、溯源数据关联性不足、查询效率低等问题,实现了对果蔬供应链的深度溯源。

目前的研究获得了阶段性的成果,但仍然存在一些问题需要进一步探讨,如还需要对图区块链所涉及的共识机制算法进行深入研究,从而克服图区块链的安全性、可扩展性障碍,相较于传统区块链,图区块共识要求难度有所提升,实现图区块共识应是未来重点研究的方向之一。

猜你喜欢

果蔬顶点区块
过非等腰锐角三角形顶点和垂心的圆的性质及应用(下)
区块链:一个改变未来的幽灵
区块链:主要角色和衍生应用
奇思妙想的果蔬们
关于顶点染色的一个猜想
清洗果蔬农残 你做对了吗
区块链+媒体业的N种可能
读懂区块链
这些果蔬能保护呼吸道
果蔬大作战