CN109034842B - 基于区块链的农产品供应链追溯系统及方法 - Google Patents

基于区块链的农产品供应链追溯系统及方法 Download PDF

Info

Publication number
CN109034842B
CN109034842B CN201810764444.0A CN201810764444A CN109034842B CN 109034842 B CN109034842 B CN 109034842B CN 201810764444 A CN201810764444 A CN 201810764444A CN 109034842 B CN109034842 B CN 109034842B
Authority
CN
China
Prior art keywords
tracing
module
information
result
uplink
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201810764444.0A
Other languages
English (en)
Other versions
CN109034842A (zh
Inventor
刘乃安
谢江涛
周坤
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Xidian University
Original Assignee
Xidian University
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Xidian University filed Critical Xidian University
Priority to CN201810764444.0A priority Critical patent/CN109034842B/zh
Publication of CN109034842A publication Critical patent/CN109034842A/zh
Application granted granted Critical
Publication of CN109034842B publication Critical patent/CN109034842B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q30/00Commerce
    • G06Q30/018Certifying business or products
    • G06Q30/0185Product, service or business identity fraud
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K17/00Methods or arrangements for effecting co-operative working between equipments covered by two or more of main groups G06K1/00 - G06K15/00, e.g. automatic card files incorporating conveying and reading operations
    • G06K17/0022Methods or arrangements for effecting co-operative working between equipments covered by two or more of main groups G06K1/00 - G06K15/00, e.g. automatic card files incorporating conveying and reading operations arrangements or provisions for transferring data to distant stations, e.g. from a sensing device

Landscapes

  • Engineering & Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Business, Economics & Management (AREA)
  • Marketing (AREA)
  • Strategic Management (AREA)
  • Finance (AREA)
  • Development Economics (AREA)
  • Economics (AREA)
  • Accounting & Taxation (AREA)
  • Entrepreneurship & Innovation (AREA)
  • General Engineering & Computer Science (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明提出了一种基于区块链的农产品供应链追溯系统及方法,主要解决现有技术中存在的追溯速度随着区块链中信息增多而大幅度下降以及追溯准确度较低的技术问题,主要步骤为:功能选择模块发送启源请求;数据上链模块响应启源请求,并发送启源结果;显示模块显示启源结果;功能选择模块判断售点是否将农产品售卖给消费者;数据上链模块接收功能选择模块发送的新增追溯请求,并向追溯模块发送追溯请求;追溯模块与数据上链模块信息交互;数据上链模块获取新增追溯结果并发送至显示模块;显示模块显示新增追溯结果;追溯模块响应功能选择模块发送的追溯请求,并发送追溯结果;显示模块显示追溯结果。

Description

基于区块链的农产品供应链追溯系统及方法
技术领域
本发明属于区块链及农业技术领域,涉及一种基于区块链的农产品供应链追溯系统及方法。
背景技术
区块链是一种按照时间顺序将数据区块以顺序相连的方式组合成的一种链式数据结构,并以密码学方式保证的不可篡改和不可伪造的分布式账本,其最基本的概念,是利用块链式数据结构来验证与存储数据、利用分布式节点共识算法来生成和更新数据、利用密码学的方式保证数据传输和访问的安全、利用由自动化脚本代码组成的智能合约来编程和操作数据的一种全新的分布式基础架构与计算方式,具有去中心化、信息不可篡改以及隐私保护的特点。
农产品供应链就是农产品从农场到顾客手中的整个过程,具体包括包装、运输、储藏、销售等环节。农产品供应链追溯的过程是农产品供应链追溯系统将农产品在供应链中各个环节的流通信息存入数据库,然后在消费者需要时根据农产品信息对数据库的进行搜索,并显示搜索出的信息,衡量农产品供应链追溯系统的标准主要有系统中心化程度、追溯信息信任率、追溯速度以及追溯准确度。
目前现有基于区块链的农产品供应链追溯系统及方法的主要流程是,供应链中的售点在功能选择模块中选择上链功能时,数据上链模块将产品在本环节的流通信息记录于区块链中,显示模块显示其上链结果,然后顾客在功能选择模块中选择追溯功能时,追溯模块根据扫描农产品二维码码获得的信息,搜索区块链所有区块中相匹配的追溯信息,显示模块显示其检索结果。此系统及方法利用区块链的分布式验证、不可篡改与隐私保护的特点,针对性地解决了普通农产品供应链追溯系统中中心化程度高、追溯信息信任率低的问题。
上述系统及方法的不足之处在于:在追溯时需要搜索所有区块,会导致追溯速度会随着区块链中信息的增加而大幅度下降,而且农场可以利用自己的私钥和数字证书伪造出其他农场的农产品的二维码,导致追溯的准确度降低。
发明内容
本发明的目的在于克服上述现有技术存在的不足,提出了一种基于区块链的农产品供应链追溯系统及方法,用于解决现有技术中存在的追溯速度随着区块链中信息增多而大幅度下降以及追溯准确度较低的技术问题。
为实现上述目的,本发明采用的技术方案为:
一种基于区块链的农产品供应链追溯系统,包括功能选择模块、追溯模块、数据上链模块和显示模块,其中:
所述功能选择模块,用于根据用户的功能请求向追溯模块发送追溯请求,或向数据上链模块发送启源请求或新增追溯请求;
所述追溯模块,用于响应功能选择模块发送的追溯请求,并将追溯结果发送至显示模块,或与数据上链模块进行信息交互;
所述数据上链模块,用于响应功能选择模块的发送的启源请求,并将启源结果发送至显示模块,和接收功能选择模块的发送的新增追溯请求,与追溯模块进行信息交互,根据追溯模块返回的追溯结果获取新增追溯结果,并将新增追溯结果发送至显示模块;
所述显示模块,用于显示追溯模块发送的追溯结果和数据上链模块发送的启源结果或新增追溯结果。
上述基于区块链的农产品供应链追溯系统,所述数据上链模块,包括启源子模块、新增追溯子模块和上链适配子模块,其中:
所述启源子模块,用于接收功能选择模块发送的启源请求,获取农产品编号和农产品二维码,并向上链适配子模块发送农产品编号和农场名;
所述新增追溯子模块,用于接收功能选择模块发送的新增追溯请求,向追溯模块发送追溯请求,根据返回的追溯结果获取农产品编号和新流通信息,并向上链适配子模块发送农产品编号和新流通信息;
所述上链适配子模块,用于接收启源子模块发送的农场名和农产品编号,获取启源上链信息,同时对启源上链信息进行上链操作,并将启源上链结果转发至显示模块,和接收新增追溯子模块发送的农产品编号和新流通信息,获取新增上链信息,同时对新增上链信息进行上链操作,并将新增追溯结果转发至显示模块。
一种基于区块链的农产品供应链追溯方法,包括以下步骤:
(1)功能选择模块向数据上链模块发送农场选择的启源请求;
(2)数据上链模块响应功能选择模块发送的启源请求,并将启源结果发送至显示模块:
(2a)启源子模块接收启源请求;
(2b)启源子模块获取农产品编号productHash和农产品二维码QR_Pic;
(2c)启源子模块将农产品编号productHash和农场名farmName发送至上链适配子模块;
(2d)上链适配子模块获取启源上链信息;
(2e)上链适配子模块对启源上链信息进行上链操作,并发送上链操作结果:
上链适配子模块利用委任权益证明DPOS的共识算法验证启源上链信息是否被篡改,若是,将上链失败信息作为启源结果,否则,将启源上链信息作为追溯信息发布于区块链中,并将上链成功信息作为启源结果,并将启源结果发送至显示模块;
(3)显示模块显示数据上链模块发送的启源结果;
(4)功能选择模块判断当前售点是否将农产品售卖给消费者:
功能选择模块判断当前售点是否将农产品售卖给消费者,若是,则向追溯模块发送消费者选择的追溯请求,并执行步骤(9),否则,当前售点发送农产品至下级售点,功能选择模块向数据上链模块发送下级售点选择的新增追溯请求,并执行步骤(5);
(5)数据上链模块接收功能选择模块发送的新增追溯请求,并向追溯模块发送追溯请求:
数据上链模块的新增追溯子模块接收功能选择模块发送的新增追溯请求,并向追溯模块发送追溯请求;
(6)追溯模块与数据上链模块进行信息交互:
(6a)追溯模块扫描农产品二维码,得到非对称解码信息:
追溯模块扫描农产品二维码QR_Pic,得到农产品二维码信息,访问农产品二维码信息中的农场数字证书地址farmDC_addr,利用其中农场的公钥对二维码信息中的加密信息encryptedInfo进行非对称解码,得到包括农产品品种variety、生产时间productedTime和产品编号productHash的非对称解码信息decodingInfo,解码公式为:
decodingInfo=farmPublicKeyUnlock(encryptedInfo)
其中,farmPublicKeyUnlock(*)表示农场公钥解析函数;
(6b)追溯模块根据decodingInfo对区块链进行搜索,得到搜索结果;
(6c)追溯模块对搜索结果进行防伪造验证,得到追溯结果,并将追溯结果发送至数据上链模块;
(7)数据上链模块获取新增追溯结果,并将新增追溯结果发送至显示模块;
(7a)新增追溯子模块判断追溯结果是否是成功的,若是,则执行步骤(7b),否则将失败的追溯结果作为新增追溯结果,执行步骤(7d);
(7b)新增追溯子模块根据追溯结果获取农产品编号productHash和新流通信息circulationInfo_new,并发送至上链适配子模块:
新增追溯子模块从验证信息中提取农产品编号productHash和流通信息circulationInfo,并将到货信息拼接在流通信息circulationInfo后,形成新的流通信息circulationInfo_new,然后将productHash和circulationInfo_new发送至上链适配子模块;
(7c)上链适配子模块获得新增追溯结果;
(7d)上链适配子模块将新增追溯结果发送至显示模块;
(8)显示模块显示数据上链模块发送的新增追溯结果,并执行步骤(4);
(9)追溯模块响应功能选择模块发送的追溯请求,得到追溯结果,并将追溯结果发送至显示模块;
(10)显示模块显示追溯模块发送的追溯结果。
本发明与现有技术相比,具有如下优点:
1.本发明在数据上链模块响应新增上链请求中增加了追溯模块与数据上链模块的信息交互,使每次农场品的上链信息中都包括了整个流通信息,因此保证了在追溯农产品全部流通流程信息时,只需要从区块链中搜索出最新的追溯信息,而不需要搜索区块链中所有的区块,与现有技术相比,有效减缓了追溯速度随着区块链信息增多的大幅度下降。
2.本发明在追溯模块获取到搜索结果后与追溯模块将搜索结果作为追溯结果并发送之间,增加了一个防伪造验证的过程,保证了其他农场伪造的农产品二维码不能使用,与现有技术相比,提高了追溯准确率。
附图说明
图1是本发明农产品供应链追溯系统的结构示意图;
图2是本发明农产品供应链追溯方法的实现流程图;
图3是本发明农产品供应链追溯方法的区块链中区块的数据内容结构示意图。
具体实施方式
以下结合附图和具体实施例,对本发明作进一步详细描述:
参照图1,一种基于区块链的农产品供应链追溯系统,包括功能选择模块、追溯模块、数据上链模块和显示模块,其中:所述功能选择模块,用于根据用户的功能请求向追溯模块发送追溯请求,或向数据上链模块发送启源请求或新增追溯请求;所述追溯模块,用于响应功能选择模块发送的追溯请求,并将追溯结果发送至显示模块,或与数据上链模块进行信息交互;所述数据上链模块,用于响应功能选择模块的发送的启源请求,并将启源结果发送至显示模块,和接收功能选择模块的发送的新增追溯请求,与追溯模块进行信息交互,根据追溯模块返回的追溯结果获取新增追溯结果,并将新增追溯结果发送至显示模块;所述显示模块,用于显示追溯模块发送的追溯结果和数据上链模块发送的启源结果或新增追溯结果。
其中所述数据上链模块,包括启源子模块、新增追溯子模块和上链适配子模块,其中:所述启源子模块,用于接收功能选择模块发送的启源请求,获取农产品编号和农产品二维码,并向上链适配子模块发送农产品编号和农场名;所述新增追溯子模块,用于接收功能选择模块发送的新增追溯请求,向追溯模块发送追溯请求,根据返回的追溯结果获取农产品编号和新流通信息,并向上链适配子模块发送农产品编号和新流通信息;所述上链适配子模块,用于接收启源子模块发送的农场名和农产品编号,获取启源上链信息,同时对启源上链信息进行上链操作,并将启源上链结果转发至显示模块,和接收新增追溯子模块发送的农产品编号和新流通信息,获取新增上链信息,同时对新增上链信息进行上链操作,并将新增追溯结果转发至显示模块;
参照图2,一种基于区块链的农产品供应链追溯方法,下面以一包新疆大枣的追溯为例,包括以下步骤:
(1)功能选择模块向数据上链模块发送农场选择的启源请求;
(2)数据上链模块响应功能选择模块发送的启源请求,并将启源结果发送至显示模块:
(2a)启源子模块接收启源请求;
(2b)启源子模块获取新疆大枣编号productHash和新疆大枣二维码QR_Pic:
(2b1)启源子模块获取新疆大枣编号productHash:
启源子模块对输入的农场名farmName、农场品品种variety和生产时间productedTime进行拼接,并对拼接结果进行哈希计算,得到新疆大枣编号productHash,哈希计算的公式为:
productHash=SHA256(farmName+variety+productedTime)
其中,SHA256(*)表示哈希256函数,生产时间productedTime取当前时间;
(2b2)启源子模块获取加密信息encryptedInfo:
启源子模块对新疆大枣品种variety、生产时间productedTime和新疆大枣编号productHash进行拼接,并通过农场私钥对拼接结果进行加密,得到加密信息encryptedInfo,加密的公式为:
encryptedInfo=farmPrivateKeyLock(variety+productedTime+productHash)
其中,farmPrivateKeyLock(*)表示农场私钥的加密函数;
(2b3)启源子模块获取农场品二维码QR_Pic:
启源子模块将农场数字证书地址farmDC_addr拼接在加密信息后,并通过二维码编码函数QR_Encode(*)对拼接结果进行转换,得到新疆大枣二维码QR_Pic,转换公式为:
QR_Pic=QR_Encode(encryptedInfo+farmDC_addr);
(2c)启源子模块将新疆大枣编号productHash和农场名farmName发送至上链适配子模块;
(2d)上链适配子模块获取启源上链信息:
(2d1)上链适配子模块获取农场数字签名farmDS:
上链适配子模块对启源子模块发送的农场名farmName和新疆大枣编号productHash进行拼接,并采用农场私钥对拼接结果的哈希运算值进行加密,得到农场数字签名farmDS,签名公式为:
farmDs=farmPrivateKeyLock(SHA256(productHash+farmName))
(2d2)上链适配子模块获取启源上链信息:
上链适配子模块将农场名farmName作为流通信息circulationInfo,将农场签名farmDS作为售点签名sellingDS,将农场数字证书地址farmDC_addr作为售点数字证书地址sellingDC_addr,并将circulationInfo、sellingDS、sellingDC_addr以及新疆大枣编号productHash封装成启源上链信息;
(2e)上链适配子模块对启源上链信息进行上链操作,并发送上链操作结果:
上链适配子模块利用委任权益证明DPOS的共识算法验证启源上链信息是否被篡改,若是,将上链失败信息作为启源结果,否则,将启源上链信息作为追溯信息发布于区块链中,其中区块链的区块数据内容结构如图3所示,并将上链成功信息作为启源结果,并将启源结果发送至显示模块;
共识算法包括POW、POS、PBFT、DPOS等,其中DPOS中文名叫做股份授权证明机制,它的原理是让每一个持股的人进行投票,由此产生101位代表,区块记录权也将由这些代表间投票胜出的代表获得,因为它弱中心化的特点,取得了中心化与无中心化之间的有效平衡,所以DPOS更适合农业供应链中既需要信息安全也需要不错效率的应用环境,所以本发明采用DPOS作为本发明中的共识算法;
(3)显示模块显示数据上链模块发送的启源结果;
(4)功能选择模块判断当前售点是否将新疆大枣售卖给消费者:
功能选择模块判断当前售点是否将农产品售卖给消费者,若是,则向追溯模块发送消费者选择的追溯请求,并执行步骤(9),否则,当前售点发送农产品至下级售点,功能选择模块向数据上链模块发送下级售点选择的新增追溯请求,并执行步骤(5);
(5)数据上链模块接收功能选择模块发送的新增追溯请求,并向追溯模块发送追溯请求:
数据上链模块的新增追溯子模块接收功能选择模块发送的新增追溯请求,并向追溯模块发送追溯请求;
(6)追溯模块与数据上链模块进行信息交互:
(6a)追溯模块扫描新疆大枣二维码,得到非对称解码信息:
追溯模块扫描新疆大枣二维码QR_Pic,得到新疆大枣二维码信息,访问新疆大枣二维码信息中的农场数字证书地址farmDC_addr,利用其中农场的公钥对二维码信息中的加密信息encryptedInfo进行非对称解码,得到包括农产品品种variety、生产时间productedTime和产品编号productHash的非对称解码信息decodingInfo,解码公式为:
decodingInfo=farmPublicKeyUnlock(encryptedInfo)
其中,farmPublicKeyUnlock(*)表示农场公钥解析函数;
(6b)追溯模块根据decodingInfo对区块链进行搜索,并得到搜索结果:
(6b1)追溯模块根据decodingInfo中的productedTime和productHash从区块链的最新区块往前进行搜索,判断所搜索区块的产生时间是否晚于productedTime,若是,则执行步骤(6b2),否则将搜索失败作为搜索结果,步骤(6b)结束;
(6b2)追溯模块判断追溯信息中的农产品编号与区块链中当前追溯信息的相匹配,若是,则将此条追溯信息取出作为成功的搜索结果,否则将搜索失败作为搜索结果。
(6c)追溯模块对搜索结果进行防伪造验证:
(6c1)追溯模块将搜索结果中的流通信息取出并截取农场名,作为农场名A;
(6c2)追溯模块访问新疆大枣二维码信息中的农场数字证书地址farmDC_addr,获取其中的农场名,作为农场名B;
(6c3)比较农场名A与农场名B,判断二者是否一致,若是,则将搜索结果作为成功的追溯结果,否则将失败的验证信息作为失败的追溯结果;
如果不一致则说明新疆大枣二维码是其他农场伪造的,并将伪造的信息作为追溯结果发送给显示模块显示,否则,将搜索信息作为追溯结果发送给显示模块显示,保证了其他农场伪造的农产品二维码不能使用,与现有技术相比,提高了追溯准确率;
(7)数据上链模块根据追溯模块发送的追溯结果,获取新增追溯结果,并将新增追溯结果发送至显示模块;
(7a)新增追溯子模块判断追溯结果是否是成功的,若是,则执行步骤(7b),否则将失败的追溯结果作为新增追溯结果,执行步骤(7g);
(7b)新增追溯子模块根据追溯结果获取新疆大枣编号productHash和新流通信息circulationInfo_new,并发送至上链适配子模块:
新增追溯子模块从验证信息中提取新疆大枣编号productHash和流通信息circulationInfo,并将到货信息拼接在流通信息circulationInfo后,形成新的流通信息circulationInfo_new,然后将productHash和circulationInfo_new发送至上链适配子模块;
因为circulationInfo_new包括了整个流通信息,因此保证了在追溯农产品全部流通流程信息时,只需要从区块链中搜索出最新的追溯信息,而不需要搜索区块链中所有的区块,与现有技术相比,有效减缓了追溯速度随着区块链信息增多的大幅度下降。
(7c)上链适配子模块获得新增追溯结果:
(7c1)上链适配子模块使用下级售点的私钥对新疆大枣编号和流通信息进行签名,得到售点数字签名sellingDS:
上链适配子模块接收新疆大枣编号productHash和新流通信息circulationInfo_new,将circulationInfo_new作为流通信息circulationInfo与productHash拼接,使用售点的私钥对此拼接结果的哈希的运算值进行加密,得到售点数字签名sellingDS,签名公式为:
sellingDS=sellingPrivateKeyLock(SHA256(productHash+circulationInfo))
其中sellingPrivateKeyLock(*)表示售点的私钥加密函数;
(7c2)上链适配子模块将productHash、circulationInfo、sellingDS以及售点数字证书地址sellingDC_addr封装成新增上链信息;
(7c3)上链适配子模块上链适配子模块对新增上链信息进行上链操作,得到新增追溯结果:
上链适配子模块利用委任权益证明DPOS的共识算法验证新增上链信息是否被篡改,若是,将上链失败信息作为新增追溯结果,否则,将新增上链信息作为追溯信息发布于区块链中,并将上链成功信息作为新增追溯结果。
(7d)上链适配子模块将新增追溯结果发送至显示模块;
(8)显示模块显示数据上链模块发送的新增追溯结果,并执行步骤(4);
(9)追溯模块响应功能选择模块发送的追溯请求,得到追溯结果,并将追溯结果发送至显示模块:
此处追溯模块响应功能选择模块发送的追溯请求,得到追溯结果的具体操作与步骤(6)中所述的追溯模块响应数据上链模块发送的追溯请求,得到追溯结果的操作一致;
(10)显示模块显示追溯模块发送的追溯结果,新疆大枣的追溯流程结束。

Claims (6)

1.一种基于区块链的农产品供应链追溯方法,其特征在于,是通过基于区块链的农产品供应链追溯系统实现的,该系统包括功能选择模块、追溯模块、数据上链模块和显示模块,其中,所述数据上链模块,包括启源子模块、新增追溯子模块和上链适配子模块,具体实现包括以下步骤:
(1)功能选择模块向数据上链模块发送农场选择的启源请求;
(2)数据上链模块响应功能选择模块发送的启源请求,并将启源结果发送至显示模块:
(2a)启源子模块接收启源请求;
(2b)启源子模块获取农产品编号productHash和农产品二维码QR_Pic;
(2c)启源子模块将农产品编号productHash和农场名farmName发送至上链适配子模块;
(2d)上链适配子模块获取启源上链信息;
(2e)上链适配子模块对启源上链信息进行上链操作,并发送上链操作结果:
上链适配子模块利用委任权益证明DPOS的共识算法验证启源上链信息是否被篡改,若是,将上链失败信息作为启源结果,否则,将启源上链信息作为追溯信息发布于区块链中,并将上链成功信息作为启源结果,并将启源结果发送至显示模块;
(3)显示模块显示数据上链模块发送的启源结果;
(4)功能选择模块判断当前售点是否将农产品售卖给消费者:
功能选择模块判断当前售点是否将农产品售卖给消费者,若是,则向追溯模块发送消费者选择的追溯请求,并执行步骤(9),否则,当前售点发送农产品至下级售点,功能选择模块向数据上链模块发送下级售点选择的新增追溯请求,并执行步骤(5);
(5)数据上链模块接收功能选择模块发送的新增追溯请求,并向追溯模块发送追溯请求:
数据上链模块的新增追溯子模块接收功能选择模块发送的新增追溯请求,并向追溯模块发送追溯请求;
(6)追溯模块与数据上链模块进行信息交互:
(6a)追溯模块扫描农产品二维码,得到非对称解码信息:
追溯模块扫描农产品二维码QR_Pic,得到农产品二维码信息,访问农产品二维码信息中的农场数字证书地址farmDC_addr,利用其中农场的公钥对二维码信息中的加密信息encryptedInfo进行非对称解码,得到包括农产品品种variety、生产时间productedTime和产品编号productHash的非对称解码信息decodingInfo,解码公式为:
decodingInfo=farmPublicKeyUnlock(encryptedInfo)
其中,farmPublicKeyUnlock(*)表示农场公钥解析函数;
(6b)追溯模块根据decodingInfo对区块链进行搜索,得到搜索结果;
(6c)追溯模块对搜索结果进行防伪造验证,得到追溯结果,并将追溯结果发送至数据上链模块;
(7)数据上链模块获取新增追溯结果,并将新增追溯结果发送至显示模块;
(7a)新增追溯子模块判断追溯结果是否是成功的,若是,则执行步骤(7b),否则将失败的追溯结果作为新增追溯结果,执行步骤(7d);
(7b)新增追溯子模块根据追溯结果获取农产品编号productHash和新流通信息circulationInfo_new,并发送至上链适配子模块:
新增追溯子模块从验证信息中提取农产品编号productHash和流通信息circulationInfo,并将到货信息拼接在流通信息circulationInfo后,形成新的流通信息circulationInfo_new,然后将productHash和circulationInfo_new发送至上链适配子模块;
(7c)上链适配子模块获得新增追溯结果;
(7d)上链适配子模块将新增追溯结果发送至显示模块;
(8)显示模块显示数据上链模块发送的新增追溯结果,并执行步骤(4);
(9)追溯模块响应功能选择模块发送的追溯请求,得到追溯结果,并将追溯结果发送至显示模块;
(10)显示模块显示追溯模块发送的追溯结果。
2.根据权利要求1所述的基于区块链的农产品供应链追溯方法,其特征在于,步骤(2b)中所述的启源子模块获取农产品二维码QR_Pic,实现步骤为:
(2b1)启源子模块获取农产品编号productHash:
启源子模块对输入的农场名farmName、农场品品种variety和生产时间productedTime进行拼接,并对拼接结果进行哈希计算,得到农产品编号productHash,哈希计算的公式为:
productHash=SHA256(farmName+variety+productedTime)
其中,SHA256(*)表示哈希256函数,生产时间productedTime取当前时间;
(2b2)启源子模块获取加密信息encryptedInfo:
启源子模块对农产品品种variety、生产时间productedTime和农产品编号productHash进行拼接,并通过农场私钥对拼接结果进行加密,得到加密信息encryptedInfo,加密的公式为:
encryptedInfo=farmPrivateKeyLock(variety+productedTime+productHash)
其中,farmPrivateKeyLock(*)表示农场私钥的加密函数;
(2b3)启源子模块获取农场品二维码QR_Pic:
启源子模块将农场数字证书地址farmDC_addr拼接在加密信息后,并通过二维码编码函数QR_Encode(*)对拼接结果进行转换,得到农产品二维码QR_Pic,转换公式为:
QR_Pic=QR_Encode(encryptedInfo+farmDC_addr)。
3.根据权利要求1所述的基于区块链的农产品供应链追溯方法,其特征在于,步骤(2d)中所述的上链适配子模块获取启源上链信息,实现步骤为:
(2d1)上链适配子模块获取农场数字签名farmDS:
上链适配子模块对启源子模块发送的农场名farmName和农产品编号productHash进行拼接,并采用农场私钥对拼接结果的哈希运算值进行加密,得到农场数字签名farmDS,签名公式为:
farmDs=farmPrivateKeyLock(SHA256(productHash+farmName))
(2d2)上链适配子模块获取启源上链信息:
上链适配子模块将农场名farmName作为流通信息circulationInfo,将农场签名farmDS作为售点签名sellingDS,将农场数字证书地址farmDC_addr作为售点数字证书地址sellingDC_addr,并将circulationInfo、sellingDS、sellingDC_addr以及农产品编号productHash封装成启源上链信息。
4.根据权利要求1所述的基于区块链的农产品供应链追溯方法,其特征在于,步骤(6b)中所述的追溯模块根据decodingInfo对区块链进行搜索,得到搜索结果,实现步骤为:
(6b1)追溯模块根据decodingInfo中的productedTime和productHash从区块链的最新区块往前进行搜索,判断所搜索区块的产生时间是否晚于productedTime,若是,则执行步骤(6b2),否则将搜索失败作为搜索结果,步骤(6b)结束;
(6b2)追溯模块判断追溯信息中的农产品编号与区块链中当前追溯信息的相匹配,若是,则将此条追溯信息取出作为成功的搜索结果,否则将搜索失败作为搜索结果。
5.根据权利要求1所述的基于区块链的农产品供应链追溯方法,其特征在于,步骤(6c)所述的追溯模块对搜索结果进行防伪造验证,得到追溯结果,实现步骤为:
(6c1)追溯模块将搜索结果中的流通信息取出并截取农场名,作为农场名A;
(6c2)追溯模块访问农产品二维码信息中的农场数字证书地址farmDC_addr,获取其中的农场名,作为农场名B;
(6c3)判断农场名A与农场名B是否一致,若是,则将搜索结果作为成功的追溯结果,否则将失败的验证信息作为失败的追溯结果。
6.根据权利要求1所述的基于区块链的农产品供应链追溯方法,其特征在于,步骤(7c)中所述的上链适配子模块获得新增追溯结果,实现步骤为:
(7c1)上链适配子模块使用下级售点的私钥对农产品编号和流通信息进行签名,得到售点数字签名sellingDS:
上链适配子模块接收农产品编号productHash和新流通信息circulationInfo_new,将circulationInfo_new作为流通信息circulationInfo与productHash拼接,使用售点的私钥对此拼接结果的哈希的运算值进行加密,得到售点数字签名sellingDS,签名公式为:
sellingDS=sellingPrivateKeyLock(SHA256(productHash+circulationInfo))
其中sellingPrivateKeyLock(*)表示售点的私钥加密函数;
(7c2)上链适配子模块将productHash、circulationInfo、sellingDS以及售点数字证书地址sellingDC_addr封装成新增上链信息;
(7c3)上链适配子模块上链适配子模块对新增上链信息进行上链操作,得到新增追溯结果:
上链适配子模块利用委任权益证明DPOS的共识算法验证新增上链信息是否被篡改,若是,将上链失败信息作为新增追溯结果,否则,将新增上链信息作为追溯信息发布于区块链中,并将上链成功信息作为新增追溯结果。
CN201810764444.0A 2018-07-12 2018-07-12 基于区块链的农产品供应链追溯系统及方法 Active CN109034842B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810764444.0A CN109034842B (zh) 2018-07-12 2018-07-12 基于区块链的农产品供应链追溯系统及方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810764444.0A CN109034842B (zh) 2018-07-12 2018-07-12 基于区块链的农产品供应链追溯系统及方法

Publications (2)

Publication Number Publication Date
CN109034842A CN109034842A (zh) 2018-12-18
CN109034842B true CN109034842B (zh) 2021-08-06

Family

ID=64642355

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810764444.0A Active CN109034842B (zh) 2018-07-12 2018-07-12 基于区块链的农产品供应链追溯系统及方法

Country Status (1)

Country Link
CN (1) CN109034842B (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111222895A (zh) * 2020-01-15 2020-06-02 河南智行科技有限公司 一种基于区块链的产品追溯系统及方法
CN111325564B (zh) * 2020-03-17 2024-02-02 河南佼荣网络科技有限公司 一种利用区块链实现供应链溯源的方法及系统
CN111431940A (zh) * 2020-04-28 2020-07-17 安徽农业大学 一种基于区块链技术的干果供应链信息防篡改实现方法
CN112435042A (zh) * 2020-11-30 2021-03-02 重庆文理学院 基于区块链的供应链服务平台

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101840538A (zh) * 2010-03-31 2010-09-22 华南理工大学 一种基于rfid技术的水产品供应链追溯系统及其方法
CN107122985A (zh) * 2017-05-09 2017-09-01 广东工业大学 一种基于物联网和区块链的农产品供应链追溯系统
CN107704493A (zh) * 2017-08-23 2018-02-16 中链科技有限公司 一种用于提供产品溯源的方法及系统
CN108108984A (zh) * 2017-12-25 2018-06-01 北京农业信息技术研究中心 一种农产品透明供应链系统及方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101840538A (zh) * 2010-03-31 2010-09-22 华南理工大学 一种基于rfid技术的水产品供应链追溯系统及其方法
CN107122985A (zh) * 2017-05-09 2017-09-01 广东工业大学 一种基于物联网和区块链的农产品供应链追溯系统
CN107704493A (zh) * 2017-08-23 2018-02-16 中链科技有限公司 一种用于提供产品溯源的方法及系统
CN108108984A (zh) * 2017-12-25 2018-06-01 北京农业信息技术研究中心 一种农产品透明供应链系统及方法

Also Published As

Publication number Publication date
CN109034842A (zh) 2018-12-18

Similar Documents

Publication Publication Date Title
CN109034842B (zh) 基于区块链的农产品供应链追溯系统及方法
CN110489485B (zh) 联盟区块链网络及在其中存储产品数据的方法和存储介质
US20220277301A1 (en) Secure tracking and transfer of items using a blockchain
CN109255622B (zh) 一种追溯防伪数据存储系统
CN108520293A (zh) 一种产品防伪溯源方法、装置、服务器及存储介质
CN103413227B (zh) 产品防伪追溯系统及其防伪追溯查验的实现方法
CN109905351B (zh) 存储数据的方法、装置、服务器和计算机可读存储介质
CN101778102B (zh) 一种传感器的安全认证方法、传感器及其认证系统
CN105849739B (zh) 验证系统和验证方法
CN112348535B (zh) 一种基于区块链技术的溯源应用方法及系统
CN110598433B (zh) 基于区块链的防伪信息处理方法、装置
US20220398601A1 (en) System and Method for Verifying Authenticity of Physical Goods
CN109191033A (zh) 物品信息追溯方法以及系统
CN110502922A (zh) 基于区块链的物品流通环节追溯方法、装置及电子设备
CN105373933A (zh) 一种基于电子检验报告的食品流通追溯方法
CN104050431A (zh) 一种rfid芯片的自签名方法及其装置
CN109146528A (zh) 基于区块链的商品防伪方法及系统
CN113610550B (zh) 一种基于区块链的产品溯源方法及系统
WO2008056105A1 (en) Verification method
CN116208632A (zh) 一种基于区块链、物联网和ipfs的消防产品追溯系统及方法
CN114996676A (zh) 一种基于历史数据分析的供应链金融平台的认证系统及方法
CN116029745A (zh) 一种基于区块链的数字标签防伪溯源方法、装置及系统
CN111737762A (zh) 一种基于区块链技术的数据管理方法、装置及系统
CN114830599A (zh) 使用加密锚管理物理对象
CN110070365B (zh) 基于区块链的商品存证方法和装置、电子设备

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant