基于智能合约和数字签名的马铃薯种薯防窜溯源研究

时间:2024-11-14 12:25:01 公文范文 来源:网友投稿

孙传恒 魏玉冉 邢 斌 徐大明 李登奎 张 航

(1.天津农学院计算机与信息工程学院, 天津 300384; 2.国家农业信息化工程技术研究中心, 北京 100097;3.农产品质量安全追溯技术及应用国家工程实验室, 北京 100097)

马铃薯在全球重要粮食作物中排名第4位,也是我国主要粮经作物[1]。近年来,我国产业结构调整,使得马铃薯产业在国民经济增长中的占比越来越重,马铃薯主粮化战略已经启动[2]。但我国马铃薯整体生产水平仍然较低,这主要是因为我国种薯质量不高,直接影响了马铃薯的最终产量和质量[3]。因此,研究马铃薯种薯的生产溯源,通过信息技术提高种薯的产量及质量,对加快我国马铃薯产业化、主粮化进程有着重大意义[4]。

我国马铃薯种薯生产全环节流程复杂、周期较长、品种繁多,对种薯生产溯源数据进行信息化记录的技术储备不健全,导致种薯溯源困难[5]。对此,相关研究人员提出了一些传统溯源解决方案。文献[6]采用数据库、二维码等技术创建溯源平台,实现对马铃薯种薯全供应链的溯源。文献[7]通过对马铃薯进行连续3年的跟踪监测,建立了基于稳定同位素和矿质元素的马铃薯产地溯源模型,并开发了马铃薯质量信息识别与产地溯源专家系统。文献[8]使用射频识别技术和二维码技术达到防伪防窜货目的,对整个供应链进行全过程监控。然而,传统质量溯源通过中心化平台来进行,生产溯源数据的存储方式为集中式存储,溯源数据易被篡改[9]。区块链技术是分布式的网络架构[10],网络中的所有节点遵守统一的共识机制,共同维护一个区块链账本,所有交易操作均会被记录,篡改某数据非常困难[11]。近年来,随着区块链技术在农业领域的迅速发展,文献[12]采用“区块链+数据库”的双存储模式,实现红茶从茶园到茶桌的全程可信溯源。文献[13]提出一种高效且低成本运行的方法,利用公有链和私有链两套区块链确保溯源数据的真实可靠。文献[14]设计出基于区块链智能合约的框架,用于记录农作物生长、流通等数据,旨在消除供应链企业间的信息孤岛。文献[15]使用嵌入式控制等物联网技术与区块链相结合实现防篡改、透明化、可溯源的农产品溯源系统。文献[16]结合以太坊智能合约和星际文件系统(InterPlanetary file system,IPFS)管理和控制供应链生态系统中所有参与者之间的交互和交易,并在大豆供应链方面实现了溯源应用。文献[17]设计出一种基于边缘计算和区块链的防伪溯源模型,并采用离散波长转换和遗传算法来提高系统的安全性,优化系统的性能。文献[18]提出了“On-Chain+Off-Chain”的农产品质量安全溯源策略,降低链上存储空间压力的同时实现了农产品供应链之间溯源信息的真实可靠。文献[19]通过智能合约实现果蔬农产品溯源模型,并提出了对称加密与椭圆曲线混合加密的隐私数据授权访问方法,实现供应链各企业间隐私数据的隔离存储。根据文献表明,众多区块链技术研究人员研究农产品和食品安全溯源相关领域[20-22],实现全食品业和农业生产信息透明化和共享数据精准化[23],从源头解决食品和农产品质量安全问题是未来的发展趋势[24]。然而,将区块链技术应用于马铃薯种薯的生产溯源方面的研究较少。此外,种薯生产期间的实物形态差异化明显[25],在生产过程中易出现品种、等级等窜货问题,将区块链技术应用于马铃薯种薯生产溯源时,还应考虑其生产窜货问题。

针对上述问题,结合分析马铃薯种薯生产过程中的关键环节及溯源数据,本文提出一种基于智能合约[26-27]和数字签名[28-29]的马铃薯种薯防窜与溯源方法,为种薯整个生产环节设计一条溯源区块链。以智能合约和数字签名为实现方式,解决种薯的生产窜货问题,并保障种薯各项生产溯源数据的安全可靠,最终提高种薯生产基地的整体生产效率。采用Raft共识机制[30]实现区块链间的节点共识,每个环节作为种薯区块链中的联盟组织,每个联盟组织中都包含多个节点共同维护一个分布式账本,实现种薯生产溯源数据的真实可信;利用数字签名机制与种薯生产过程中的接收环节对应培育节点进行公私钥对绑定,用于防止种薯生产窜货的第1层保障;通过智能合约实现种薯培育目的地的防窜货报警设计,使种薯区块链网络中的所有节点背书完成后共同遵守统一的逻辑规则,用于防止种薯品种、等级等生产窜货的第2层保障;同时将报警信息进行上链存储,更高效地解决种薯生产窜货数据的溯源问题;最后对本文所提出的马铃薯种薯生产溯源模型通过应用案例进行验证分析。

1.1 种薯生产全环节及溯源数据分析

马铃薯种薯生产过程中涉及的关键环节包括种苗资源保存、脱毒苗扩繁、原原种培育、原种培育和仓储环节。种薯生产环节众多,实物形态在不同的环节有所不同,生产基地同时培育的品种繁多,极其容易发生窜货问题。因此,本文在深入分析种薯生产全环节及关键溯源数据的基础上,在区块链网络中设计种薯生产窜货报警环节,一旦发生窜货,将进入该环节进行窜货报警处理,同时将对应窜货报警数据进行上链存储。各环节的关键溯源数据如表1所示。

表1 种薯生产全环节关键溯源数据

1.2 种薯区块链网络模型

马铃薯种薯生产全环节的溯源数据参差不齐,目前尚且没有种薯生产业务集成技术和手段,也没有统一的生产溯源信息接口和标准规范,造成了种薯生产全环节的信息孤岛,不仅影响种薯生产基地的总体生产效率,还使消费者和相关监管部门可信溯源困难。区块链技术具有去中心化、篡改存储数据困难、多节点共同维护、数据透明等特点,通过分布式网络中的各节点数据备份实现溯源数据的安全存储。本文通过开源许可区块链框架Hyperledger Fabric使种薯生产全环节共同维护一个区块链账本,每个相关环节安装不同的智能合约,利用智能合约完成溯源数据的更新上链,不相关的环节无法相互之间进行种薯转送交易操作和溯源数据更新上链,以此来规范化种薯生产流程,最终提高可信溯源。种薯生产溯源区块链网络模型如图1所示。

图1 种薯生产溯源区块链网络模型

种薯生产全过程的溯源数据通过一条综合区块链进行存储,将种薯生产溯源中的全部环节映射为区块链中的相关组织,即种苗资源保存组织、脱毒苗扩繁组织、原原种培育组织、原种培育组织和仓储组织,将防窜报警环节映射为窜货报警处理组织,并将各个环节的关键溯源数据均通过智能合约进行上链存储,非关键溯源数据使用传统数据库存储,可以从源头减轻区块链的存储压力。同时,将消费者、相关监管部门等溯源用户映射为外部组织,作为查询相关溯源数据的组织节点。区块链中的每个组织都有自己的peer节点来分布式存储对应溯源数据,每批种薯都有一个唯一的批次编号,种薯在全部生产环节流通时都需关联此唯一批次编号上传所有关键溯源数据。此外,本文还利用区块链种薯全生产链全连接溯源编码设计为每个生产环节对应产生一个与批次编号相关联的二级编号,如资源编号对应种苗资源保存环节、扩繁编号对应脱毒苗扩繁环节等。

2.1 区块链种薯全生产链全连接溯源编码设计

在种薯区块链溯源模型中,需通过种薯溯源编码在区块链网络中获取该编码所对应的全部生产溯源数据。为了使区块链种薯溯源编码具有唯一溯源性,设计区块链种薯全生产链全连接编码,并利用该编码与对应种薯生产全环节溯源数据相关联。种薯溯源编码在马铃薯种苗资源保存环节进行批次编码初始化处理,包含种苗资源保存环节在内的种薯生产全环节开始培育时,顺序连接对应环节的溯源编码,在仓储环节实现种薯溯源编码的全环节连接,最终聚焦到以箱为单位的种薯溯源编码,实现一箱一码,保证种薯溯源编码的唯一性,为利用区块链技术实现种薯防窜生产溯源打下源头基础。

具体编码设计如表2所示,例如,在种苗资源保存环节进行批次编码初始化处理,此时的种薯批次编码为B001。在种苗资源保存环节开始对该批次编码所对应的种苗进行培育时,顺序连接种苗资源保存环节的溯源编码R001,此时对应种薯溯源编码为B001R001,直至对应种薯顺利进入仓储环节,形成最终种薯溯源编码为B001R001D001YY001Y001WH001。当对应种薯在其生产过程中发生窜货报警时,将不继续连接当前发生窜货环节的对应环节编码,种薯溯源编码的连接停留在上一环节,同时生成对应窜货报警编码。例如,对应种薯在脱毒苗扩繁环节发生窜货报警,则此时的种薯溯源编码为B001R001,对应窜货报警编码为W001。此外,所有环节的溯源编码数字项顺序生成。例如,批次编码为B001的下一批次编码为B002。

表2 区块链种薯全生产链全连接溯源编码设计

2.2 数字签名机制

种薯生产各环节的培育节点众多,生产基地繁育品种数量庞大,由于对应种薯被送往错误接收环节培育节点而引发的生产窜货问题频繁出现,严重降低整体生产效率。椭圆曲线数字签名算法(Elliptic curve digital signature algorithm,ECDSA)是一种非对称加密算法,使用私钥签名、公钥验证确保数据的真实性并防止交易数据被篡改,使用公钥加密、私钥解密确保可验证节点的唯一性。同时,ECDSA具有在已知公钥的情况下,无法推导出该公钥对应私钥的特点,本文利用该特点对种苗/薯转送交易进行公钥数字签名加密,相关接收环节对应培育节点使用本节点私钥进行解密验证,确保该种苗/薯转送接收环节对应培育节点的唯一正确性。该方法是种苗/薯接收环节对应培育节点的归属证明,实现防止种薯生产窜货的第1层保障。椭圆曲线公式为

y2=x3+ax+b(modp) (4a3+27b2≠0(modp))

(1)

式中a、b——椭圆曲线参数

p——质数 mod——取模运算符

以资源保存环节培育完毕,需要将种苗送往脱毒苗扩繁环节对应培育节点进行培育为例,椭圆曲线数字签名加密、解密过程如下:

(1)脱毒苗扩繁环节对应培育节点选定一条椭圆曲线Fp(a,b),同时选取椭圆曲线上一点作为基点G,其中n为椭圆曲线的阶,即nG=∞。

(2)脱毒苗扩繁环节对应培育节点选择一个随机数作为私有密钥k,并根据离散点计算原则生成公有密钥K=kG。

(3)脱毒苗扩繁环节对应培育节点将椭圆Fp(a,b)和点G、K传送给种苗资源保存环节对应节点。

(4)种苗资源保存环节对应节点接到信息后,将待传输的明文编码到Fp(a,b)上的一点A,并产生一个随机整数r(r

(5)种苗资源保存环节对应节点通过椭圆曲线公钥K加密:C1=A+rK,C2=rG,加密后的数字签名密文C是一个点对。

(6)脱毒苗扩繁环节对应培育节点接收到数字签名密文C后,可通过私钥k解密C1-kC2,计算A+rK-k(rG)=A,对点A解码就可以得到明文。以种苗资源保存环节和脱毒苗扩繁环节为例,数字签名机制如图2所示。

图2 数字签名机制

在种薯生产溯源区块链网络中,每个节点都拥有所有节点的公钥以及本节点的私钥,通过公私钥对严格匹配的策略确保种苗/薯转送接收环节对应培育节点的唯一正确性。例如,种苗在资源保存环节培育完毕,需要将其送往脱毒苗扩繁环节进行下一步培育,资源保存环节对应培育节点会在区块链网络中产生一个种苗转送交易,并使用脱毒苗扩繁环节对应接收节点的公钥对该交易进行数字签名加密。脱毒苗扩繁环节对应培育节点接收到需要进行下一步培育的种苗后,需使用本节点的私钥对该种苗转送交易进行数字签名解密验证。解密验证成功,则说明接收节点正确,可以记录脱毒苗扩繁环节相关上链数据;解密验证失败,则说明接收节点错误,可能发生窜货,此时会触发窜货报警处理,给予相关窜货报警提示,并将对应报警信息进行上链存储。

2.3 种薯防窜报警溯源模型

种薯生产基地培育品种繁多,除接收环节对应培育节点易发生窜货问题外,培育节点因错误识别种薯品种、等级等信息,致使种薯的培育方式发生改变、种薯成品混杂的情况也频繁发生,最终导致种薯整体生产效率和质量水平低下。解决种薯生产窜货问题是本文的研究重点,通过智能合约与数字签名相结合的方式实现防止种薯生产窜货的双层保障。在种薯生产溯源区块链中,每个相关环节间都需安装部署对应的区块链智能合约,在数字签名验证接收环节对应培育节点正确后,通过智能合约将当前种苗/薯与对应链上存储信息进行对比,符合窜货条件时触发窜货报警处理,实现防止种薯生产窜货的第2层保障。实物数据采集通过种薯生产全环节安装部署各种物联网设备获取,通过二维码等标识技术结合区块链种薯全生产链全连接溯源编码将实物数据对应转化为数字数据并存入区块链中,所有生产环节都进行上述实物与链上数据的锚定。

智能合约是运行在区块链网络中的一种计算机协议,以代码的形式体现出该协议去中心化、自动执行、高确定性、高自治性等特点,区块链中的相关节点均安装部署对应智能合约则可以达到网络环境高度自治的效果。在本文所提出的种薯防窜报警溯源模型中,智能合约可以实现种薯全生产环节溯源数据的安全上链、按合约条件触发防窜报警机制、查询具体溯源数据等功能,实现对种薯生产全环节溯源数据的全方位正向记录、逆向溯源,为种薯生产基地提供强大的数据记录与查询、防止种薯生产窜货的技术支撑。利用智能合约完成种薯开始培育前的品种、等级等自动化确认,与前生产环节的上链信息进行对比验证,有效防止种薯生产窜货的问题,也为生产基地、消费者和相关监管部门等追溯用户提供安全可信的溯源信息。种薯防窜报警溯源模型如图3所示。

图3 种薯防窜报警溯源模型

在该模型中,由于种苗资源保存环节是种薯生产全环节的初始环节,不存在生产窜货的发生,因此不在该环节中设计窜货报警智能合约,仅利用智能合约将相关生产溯源数据进行上链存储。脱毒苗扩繁及其后环节将对接收种苗/薯的实际情况与前环节上传的溯源数据进行对比分析,作为判断当前环节是否发生窜货的数据依据,同时将该溯源数据作为全部种薯生产溯源数据的一部分。种薯生产全环节将本环节培育完毕的种苗/薯送往至下一生产环节进行培育时,需要使用接收环节对应培育节点的公钥对种苗/薯转送交易进行数字签名加密,接收环节对应培育节点收到该种苗/薯时,需要使用本节点私钥对已加密的前环节种苗/薯转送交易进行数字签名解密验证。解密验证失败,则说明接收环节对应培育节点错误,此时通过智能合约触发相关窜货报警处理;解密验证成功,则说明接收环节对应培育节点正确,此时会自动调用智能合约要求该节点通过各种物联网设备获取并录入对应培育节点当前接收种苗/薯的品种、等级等信息,并与前环节相关节点存入区块链网络中的信息进行对比,全部符合则说明种苗/薯送至正确培育节点目的地,同时正确识别该种薯的品种、等级等信息,并正确安排其对应培育方式;有一项及以上不符合则说明种薯送至正确培育节点目的地,但错误识别该种苗/薯的品种、等级等信息,无法正确安排其对应培育方式,此时进行窜货报警处理,将种薯溯源编号、报警编号、报警时间、报警环节等相关窜货报警信息存储至区块链网络中,并给予相关窜货报警提示。此外,利用区块链存储数据的不可篡改等特性,使得种薯生产溯源数据在区块链溯源网络中得以可信存储,并利用不同数据查询智能合约实现不同追溯用户的溯源查询,种薯生产基地、消费者和相关监管部门可通过溯源节点调用对应数据查询智能合约获取区块链中对应种薯的相关溯源信息。

2.4 智能合约设计

本文使用Hyperledger Fabric平台,结合种薯种植领域专家意见、种薯生产基地的实际情况等制定相关的智能合约规则和一系列合约触发条件。智能合约业务逻辑设计如表3所示。

表3 智能合约设计

将种薯各生产环节的溯源信息写入区块链均由智能合约实现。在各环节上传对应生产溯源信息时,如果发生窜货则会触发防窜报警智能合约,接续进行防窜报警处理。具体算法如下:

算法1:发送方数据上链智能合约

输入:以种苗资源保存环节为例,批次编号BatchId,资源编号ResourceId,种苗名称SeedName,品种名称BreedName等

输出:上链成功返回交易ID,区块高度numBlock,数据哈希dataHash,前一个区块哈希previousHash,上链失败返回错误原因

区块链中的种苗资源保存环节对应peer节点发起invoke上链请求

if len(args)∥判断请求中的数组长度是否符合规定长度标准

return shim.Error;∥数组长度不符合标准,上链失败,返回具体错误原因

else∥符合上链要求,请求上链

ECDSA_Encode();∥使用接收节点公钥加密

APIstub.PutState(args[2],resourceGrowInfoAsBytes);

return success;∥返回交易基本信息

算法2:接收方数据上链智能合约

输入:以脱毒苗扩繁环节为例,批次编号BatchId,种苗名称SeedName,扩繁编号DetoxificateId,品种名称BreedName等

输出:上链成功返回交易ID,区块高度numBlock,数据哈希dataHash,前一个区块哈希previousHash,上链失败返回错误原因

区块链中的脱毒苗扩繁环节对应peer节点发起invoke上链请求

if len(args)∥判断请求中的数组长度是否符合长度标准

err := ECDSA_Decode;∥使用本节点私钥解密

if err != nil∥判断私钥是否解密成功

recordWarn();∥解密失败,触发防窜报警合约

return shim.Error;∥返回具体错误原因

else∥解密成功

if args[1]!= resourceBatchIdGrow∥判断请求中的批次ID是否与前生产环节对应上链数据相符

recordWarn();∥如果批次ID不符则触发防窜报警合约

return shim.Error;∥上链失败,返回具体错误原因

elseif args[2]!= resourceResourceIdGrow∥判断请求中的资源ID是否与前生产环节对应上链数据相符

recordWarn();∥如果资源ID不符则触发防窜报警合约

return shim.Error;∥上链失败,返回具体错误原因

elseif args[3]!= resourceSeedNameGrow∥判断请求中的种苗名称是否与前生产环节对应上链数据相符

recordWarn();∥如果种苗名称不符则触发防窜报警合约

return shim.Error;∥上链失败,返回具体错误原因

elseif args[4]!= resourceBreedNameGrow∥判断请求中的品种名称是否与前生产环节对应上链数据相符

recordWarn();∥如果品种名称不符则触发防窜报警合约

return shim.Error;∥上链失败,返回具体错误原因

else∥符合上链要求,请求上链

APIstub.PutState(args[5],detoxificateGrowInfoAsBytes);

return success;∥返回交易基本信息

窜货报警智能合约将触发窜货报警时的相关报警信息进行上链存储。具体算法如下:

算法3:窜货报警智能合约

输入:种薯当前编号NowSeedPotatoId,报警时间WarnTime,报警环节WarnLink等

输出:上链成功返回交易ID,区块高度numBlock,数据哈希dataHash,前一个区块哈希previousHash,上链失败返回错误原因

触发防窜报警时发起报警数据上链请求

if len(args)∥判断请求中的数组长度是否符合规定长度标准

return shim.Error;∥数组长度不符合标准,上链失败,返回具体错误原因

var warnInfo = WarnInfo{BatchId: args[1], NowSeedPotatoId: args[2], WarnId: args[3], WarnTime: args[4], WarnLink: args[5], WarnPoint: args[6], WorkerId: args[7], WorkerName: args[8]};∥将报警信息存入待上链数组

APIstub.PutState(args[2], warnInfoAsBytes);∥请求上链

return success;∥返回交易基本信息

数据查询智能合约在区块链中通过用户输入的查询编号进行对应的数据查询。具体算法如下:

算法4:数据查询智能合约

输入:以查询窜货报警信息为例,报警编号WarnId

输出:报警编号对应的具体信息

if len(args)∥判断请求中的数组长度是否符合规定长度标准

return shim.Error;∥查询失败,返回具体错误原因

warnInfoAsBytes, _ := APIstub.GetState(args[0]);∥通过当前Key值获取对应Value值

retrun success;∥查询成功,返回数据

3.1 系统架构设计

本研究基于Hyperledger Fabric构建面向种薯生产全环节溯源的模型架构,通过区块链技术对溯源数据进行管理和维护,实现种薯生产全环节溯源数据的高度共享;种薯各生产环节分布式上传本环节内的溯源数据,并利用数字签名结合智能合约的方式高效防止生产窜货的发生,保证各生产环节种薯溯源数据的真实性、实时性以及安全性。种薯生产溯源模型架构如图4所示,共分为4层,由下至上分别为存储层、服务层、接口层和应用层。

图4 种薯生产溯源模型架构

存储层利用区块链技术不可篡改等特点,实现所有相关节点共同维护同一个数据账本,且所有交易操作均记录对应时间戳,确保生产溯源数据的真实可靠。同时,为减少种薯溯源的查询时间,溯源数据通过面向文档的数据库管理系统(Cluster of unreliable commodity hardware database,CouchDB)存储,并通过Key-Value键值索引进行数据查询;服务层采用Raft共识机制,以智能合约为具体实现方式,结合ECDSA椭圆曲线数字签名算法,保证种薯生产全环节溯源数据的成功上链,实现防止生产窜货的自动处理;接口层面向种薯生产过程中的5个关键溯源环节和1个窜货报警环节,封装相关溯源数据公钥加密接口、私钥解密接口以及对于种薯生产溯源数据和窜货报警数据上链接口和查询接口,满足种薯生产全环节的溯源数据共享、查询以及防止生产窜货的发生等需求;应用层通过系统为种薯生产全环节的相关方提供不同的便捷服务。

3.2 系统实现

本文所提出的马铃薯种薯防窜溯源模型应用于云南省马铃薯种薯质量溯源系统,种薯生产全环节节点通过对应区块链接口在该系统中实现种薯生产溯源数据的上传及查询功能,系统网络中的所有节点共享一个区块链分布式帐本,共同参与全网的共识记账。如图5a所示,种薯生产过程中的5个关键环节均可以上传相关溯源信息。上传成功,则会在系统中生成相应的环节编号,并在状态栏显示成功,同时会显示该上传操作交易在区块链网络中生成的区块高度以及区块交易ID;上传失败,则会在系统中生成相应的窜货报警编号,在状态栏中显示失败,并给出窜货报警提示。如图5b所示,可根据窜货报警编号查询对应窜货报警的详细信息。在该系统中设有用户节点权限机制,用户节点只能进行本环节内的相关种薯生产溯源信息上传等操作,不能进行其他环节的相关操作。同时,所有生产环节生成的交易操作信息、种薯溯源信息和窜货报警信息的详情全部用户节点均可查看,可用来监督种薯生产全环节间共享原始数据。

图5 云南省马铃薯种薯质量溯源系统界面

同时,为满足相关用户溯源需求,种薯质量溯源系统提供扫码溯源功能,可通过扫描种薯外包装上的二维码获取相关生产溯源数据。如图6所示,经过查询后,可获取产品介绍信息、企业信息、溯源信息和防伪信息。其中溯源信息展示种薯生产全环节的关键数据,防伪信息展示区块链地址、追溯Hash值、区块高度等信息。

图6 扫码溯源界面

4.1 测试环境

本研究的测试环境基于Hyperledger Fabric 1.4.4、Hyperledger Explorer 1.1.8搭建,使用虚拟机系统版本为Ubuntu 16.04 LTS。性能测试将智能合约通过balance-transfer接口进行封装,使用外部接口测试工具Postman 9.31.0进行30轮次的测试。硬件配置为:4 GB内存、8核处理器、50 GB硬盘。区块链通过16个节点存储种薯生产溯源数据,其中包含种苗资源保存节点、脱毒苗扩繁节点、原原种培育节点、原种培育节点、窜货报警节点、外部溯源节点各2个,另外包含仓储节点4个。种薯区块链中的所有节点均采用状态数据库CouchDB存储上链数据,通过Key-Value键值对检索状态数据库查询相应数据。具体测试环境配置如表4所示。

表4 区块链配置信息

4.2 窜货报警功能分析

测试以脱毒苗扩繁环节接收种苗进行下一阶段培育,将该接收种苗的相关信息进行上链为例。如图7a所示,如果脱毒苗扩繁环节对应培育节点私钥解密失败,或申请入培养室时上传的种苗相关信息与区块链账本中存储的该种苗对应品种、等级等信息不符时,则将该上链申请给予窜货报警处理,并给出窜货报警原因提示。如图7b所示,通过Hyperledger explorer显示该窜货报警交易所在区块信息,其中区块高度(区块号)为2701,区块哈希为6939b143ab66e4db59e89ee9c6c9612461fbf1daba8523 6ac0e1b2908341fa8b,前一区块哈希为99bc65133e 24ad81bf3cbdcc7a87e97084aee88d0081ad4e67cbdc19 11018371。窜货报警交易详情如图7c所示,其中交易ID为b3a2c205f71c2fd17c58e3c9cae0e4262fd946f 3be6019e86f87b0838948c12d,调用链码为alarmcc,写入账本的Key为“W230”(窜货报编号)、Value为“batch_id:B288,trace_seed_potato_id:B288R016,warn_id:W230,warn_time:2022-11-25 11:50:18,warn_link:脱毒苗扩繁环节,warn_point:私钥解密失败,worker_id:DW018,worker_name:袁艺”(种薯溯源编号、窜货报警时间、环节、触发点)等信息。

图7 防窜报警功能测试

4.3 数据上链与查询性能分析

4.3.1种薯生产溯源数据上链与查询

数据上链性能测试结果如图8a所示,种薯生产溯源数据的平均上链时间为2 566 ms,能够满足种薯生产基地全环节实时更新种薯溯源数据的需求;数据查询性能测试结果如图8b所示,种薯生产溯源数据的平均查询时间为95 ms,能够满足相关溯源用户快速查询种薯各项生产信息的需求;由测试结果可以得出,该种薯防窜溯源区块链的数据上链和数据查询效率较高,可以满足各相关用户的日常需求。

图8 数据上链与查询性能测试

4.3.2窜货报警触发上链与查询

种薯生产溯源防窜设计是基于智能合约和数字签名实现的,在某种程度上,这两种方式的结合可以在种薯生产过程中高度防止窜货的发生。因此,本研究在防窜货的报警触发与报警信息上链和查询的平均时间方面进行性能分析。测试结果如图9所示,报警触发与报警信息上链的平均时间为2 562 ms,查询具体报警信息的平均时间为77 ms。由测试结果可以得出,该种薯防窜溯源区块链的防窜报警性能较好,可以满足种薯生产基地的相关需求。

图9 防窜货性能测试

(1)提出了基于智能合约和数字签名的马铃薯种薯防窜溯源模型,对种薯的整个生产环节建立溯源区块链,使种薯生产全环节共同维护一个区块链分布式帐本,保证种薯生产溯源数据的统一共享;通过数字签名公私钥对验证和智能合约联合解决种薯生产过程中的窜货问题,防止生产窜货,提高生产溯源效率和准确率,满足种薯生产基地的标准化生产需求。

(2)提出的防窜溯源模型能够实现种薯溯源数据的安全存储,并高度防止生产窜货的发生。相关测试结果表明,种薯生产溯源数据的平均上链时间为2 566 ms,平均查询时间为95 ms,报警触发与报警信息上链的平均时间为2 562 ms,查询具体报警信息的平均时间为77 ms,模型性能较高,可以满足种薯生产溯源数据的上链与查询需求,在防止种薯生产窜货方面具有一定的参考价值。

猜你喜欢 种薯种苗报警 马铃薯种薯退化的原因及预防现代畜牧科技(2021年11期)2021-12-21鼎牌种苗有限公司长江蔬菜(2021年19期)2021-11-16《园艺与种苗》征稿启事园艺与种苗(2021年5期)2021-06-30LKD2-HS型列控中心驱采不一致报警处理铁道通信信号(2018年5期)2018-06-28马铃薯种薯贮藏性能和贮藏技术分析蔬菜(2016年8期)2016-10-10小小种苗不简单 一年赚回上百万新农业(2016年23期)2016-08-162015款奔驰E180车安全气囊报警汽车维护与修理(2016年10期)2016-07-10高锰酸钾在种苗上的应用林业与生态(2016年2期)2016-02-27死于密室的租住者小学生·多元智能大王(2015年3期)2015-05-25奔驰E260车安全气囊报警汽车维护与修理(2015年6期)2015-02-28

推荐访问:数字签名 溯源 马铃薯