1. 技术背景

溯源技术中产品溯源是将当前先进的物联网技术、自动控制技术、自动识别技术、 互联网技术结合利用,通过专业的机器设备对单件产品赋予唯一的二维码或条形码等作为防伪身份证,实现“一物一码”,然后可对产品的生产、仓储、分销、物流运输、市场稽查、销售终端等各个环节采集数据并追踪,构成产品的生产、仓储、销售、流通和服务的一个全生命周期管理。传统的溯源行业由于中心化存储、信息不共享等原因,易导致信息丢失或被篡改,商家恶意窜货等问题,影响市场良性发展。受溯源技术的限制,目前溯源产业还处于初级阶段,商品溯源覆盖率较低。

信息读写技术中读写产品信息一般有两种方法:

  1. 一是将带有二维码或条形码的标签印在袋上,再将袋套在产品上,或直接将标签贴在产品上,以苹果为例,苹果和袋、苹果和标签本身的绑定性不强,造成信息可信度低,同时也易造成信息丢失。
  2. 另一种方法是将信息以芯片等方式嵌入到产品中,这种方法解决了产品与袋绑定性弱的问题,在一定程度上保证了产品信息的真实性。但是,这种侵入式的标记方式,会对苹果的生长造成不利影响,给供应链上各方造成损失,对苹果不适用。

本文提出一种农产品区块链溯源方法,包括:

  1. 对农产品以及所述农产品在生产、代理、销售各环节的参与单位进行分布式身份标识DID注册;通过各DID为每个农产品签发或验证可验证声明,并将每个农产品的可验证声明放到区块链上;
  2. 根据农产品印字技术在所述农产品表面打印二维码,以使用户扫描所述二维码后可获取到包含所述农产品的信息的区块链证书,以实现对所述农产品进行溯源。
  3. 根据农产品采摘农产品负责人的DID身份为农产品创建第一声明,所述第一声明用于说明农产品的采摘时间及产地;
  4. 根据农产品代理商的DID身份为农产品创建第二声明,所述第二声明用于说明农产品的物流信息;
  5. 根据农产品销售商的DID身份为农产品创建第三声明,所述第三声明用于说明农产品的售卖价格;
  6. 根据农产品检验机构的DID身份从区块链上获取农产品的所述第一声明、所述第二声明和所述第三声明,对所述第一声明、所述第二声明和所述第三声明进行检验,若通过检验,则分别创建所述第一声明、所述第二声明和所述第三声明的已签署声明;
  7. 根据各参与单位的DID身份在区块链进行持有、创建、签名、验证和撤销可验证声明;
  1. 注册模块,用于对农产品以及所述农产品在生产、代理、销售各环节的参与单位进行分布式身份标识DID注册;
  2. 声明模块,用于通过各DID为每个农产品签发或验证可验证声明,并将每个农产品 的可验证声明放到区块链上;
  3. 二维码生成模块,用于根据农产品印字技术在所述农产品表面打印二维码,以使用户扫描所述二维码后可获取到包含所述农产品的信息的区块链证书,以实现对所述农产品进行溯源;
  4. 第一声明创建模块,用于根据采摘农产品负责人的DID身份为农产品创建第一声明,所述第一声明用于说明农产品的采摘时间及产地;
  5. 第二声明创建模块,用于根据农产品代理商的DID身份为农产品创建第二声明,所述第二声明用于说明农产品的物流信息;
  6. 第三声明创建模块,用于根据农产品销售商的DID身份为农产品创建第三声明,所述第三声明用于说明农产品的售卖价格;
  7. 区块链声明模块,用于根据各参与单位的DID身份在区块链进行持有、创建、签名、 验证和撤销可验证声明;

2. 业务流程

  1. 对农产品以及所述农产品在生产、代理、销售各环节的参与单位进行分布式身份标识DID注册。
  2. 通过各DID为每个农产品签发或验证可验证声明,并将每个农产品的可验证声明放到区块链上。
  3. 根据农产品印字技术在所述农产品表面打印二维码,以使用户扫描所述二维码后可获取到包含所述农产品的信息的区块链证书,以实现对所述农产品进行溯源。
  4. 可验证声明是某个或某些DID对其他DID所具有的某种属性的描述。参与方通过各自的DID身份在区块链(本实施例使用持有、创建、签名、验证和撤销可 验证声明。可验证声明包括声明和已签署声明,声明指某个或某些DID为其他DID创建的声 明,包括声明ID、声明主体、声明内容、声明类型;已签署声明指某个或某些DID基于已有声明而重新创建的带有自己签名的声明,包括已签署声明id、声明类型、签名者DID、签名者公钥、签名时间、声明过期时间、原声明id、意见(包括“support”或”decline”或“revoke”三个 选项)、签名、签名算法。
  5. ,区块链溯源架构包括区块链服务、传输感知、商品管理(生产到销售各环节)、权威机构认证以及最终应用。对于数据的记录、监督和追溯,采用区块链技 术,数据真实可信。通过CA管理确认加入区块链的节点,保证参与方的真实性;对于数据的查询,采用在苹果等农产品上印二维码的方式,用户可通过手机扫描二维码(二维码链接到链上数据) 查询苹果信息。

下面以一个苹果为例:

  1. 第一,在苹果生长过程中通过套袋贴字方法在苹果表面印上二维码。
  2. 第二,苹果生产、代理、销售等各环节参与单位通过 Fabric CA授权加入区块链网络, 并注册证书。
  3. 第三,为每个苹果注册DID,并将苹果属性信息放到Document 结构体中。
  4. 第四,各环节负责人通过DID为每个苹果签发或验证可验证声明,并放到链上。

苹果的溯源流程:

  1. 采用Fabric CA 认证对苹果每个环节的参与方(包括生产方、代理 方、销售方)以及第三方权威检测机构进行认证,保证参与方的真实性。
  2. 各环节参与方和检测机构在链上注册DID,同时生产方为每个苹果注册唯一可识别的DID。由于苹果在生长过程中被印上的二维码与苹果的DID一一对应不可篡改, 因此二维码可作为苹果在链上的唯一标识。此外,苹果的DID Document中包括公钥类型、公 钥值、产地、产出时间等基本属性。
  3. 代理方和销售方通过DID给苹果签发可验证声明,声明内容包括其所涉及环节的具体内容(包括所属环节经手人和价格)。
  4. 检验机构通过从链上获取苹果的可验证声明,并对声明内容和签名进行 验证核实。

各参与单位若要验证声明,则需要从区块链上获取声明:

  1. 创建声明:对于某个苹果而言,采摘苹果的负责人为这个苹果创建声明: 声明包括声明id(根据声明主体、声明内容及声明类型三者)声明主体(即该苹果的did)、声明内容(举例:“该苹果产地为甘肃天水”)及声 明类型(举例:“生产过程”)。
  2. 持有声明:负责人为某个苹果创建了声明,则该苹果持有这个声明。
  3. 签名声明:检验机构对负责人创建的声明进行验证,若声明内容属实,则创建已签署声明,包括已签署声明id(根据声明类型、签名者DID、签名者公钥、签名时间、过期时间、 原声明id、意见这七者的值采用SHA3(keccak-256)哈希算法得来),声明类型(举例:“生产 过程检验”),签名者DID(即该检验机构DID),签名者公钥(即该检验机构的公钥),签名时间 (举例:“2018-08-29”),声明过期时间(举例:“never”) ,原声明id(即负责人创建的原声明 的id),意见(举例:“support”),签名(即该检验机构的签名),签名算法(即该检验机构签名 所使用的算法)。
  4. 撤销声明:针对已签署声明,可通过将声明意见值改为“revoke”的方式来撤销该已签署声明。
  5. 验证声明:任一参与方(除苹果)可对任一声明进行验证,验证内容包括:声明是否在区块链上,声明中的签名是否正确,声明是否过期,是否已被撤销。
    上述涉及到的参与方均指参与方所使用的did身份。

本文解决农业领域中苹果等农产品从生产到销售整个流程的数据真实可信问题,采用区块链技术溯源农产品产业,利用区块链的共识机制、时间戳特性、CA认证,并加 入了DID身份标识和可验证声明,用户可直接、方便的获取真实可信的数据,解决了苹果从生产到销售各个环节数据易篡改、不可信的问题;将信息放到产品上,在不对产品造成破坏 的前提下尽可能保证信息的完整、真实和高信任度,同时保证信息与产品强绑定,不会轻易 被删除或篡改。以苹果为例,苹果上印出完整的二维码,且同批苹果贴二维码失败的比例低,用户可通过苹果上的二维码直接准确获取苹果信息,设置合理大小和容错率的二维码, 使得信息存储空间足够,且不易受损坏,将苹果贴字技术应用于贴二维码场景,准确度要求更高,同时还需考虑二维码图案的编码类型及容错率设置,解决由于容错率过高而导致存储信息太少的问题,解决了苹果上二维码因不可抗原因部分损坏而无法读取的问题。

注: 本文摘自 西安纸贵互联网科技有限公司的专利 《一种农产品区块链溯源方法及装置》,仅作为个人学习。

(区块链溯源)基于Hyperledger Fabric 的农产品区块链溯源方法相关推荐

  1. 搭建区块链浏览器——基于hyperledger fabric 1.0,MySQL容器

    搭建区块链浏览器--基于hyperledger fabric 1.0,MySQL容器 区块链 hyperledger fabric 浏览器 MySQL docker  Contents 环境要求 分支 ...

  2. 基于Hyperledger Fabric实现药品溯源

    基于Hyperledger Fabric实现药品溯源的demo功能简介,涉及药厂节点,代理商节点,零售商节点等多机构间的上链查询. 更多区块链技术与应用分类: 区块链应用    区块链开发 以太坊 | ...

  3. “Hyperledger Fabric 是假区块链!”

    作者 | Stuart Popejoy 编译 | 王国玺 出品 | 区块链大本营(blockchain_camp) 自 Libra 发布以来,沉寂已久的区块链社区又活跃了起来,一些探索区块链业务的公司 ...

  4. Hyperledger Fabric项目搭建区块链浏览器Hyperledger-blockchain-explorer

    Hyperledger Fabric项目搭建区块链浏览器 1.下载配置文件 区块链浏览器官网:https://github.com/hyperledger/blockchain-explorer # ...

  5. 基于Hyperledger Fabric的学位学历认证管理系统

    基于Hyperledger Fabric的学位学历认证管理系统 项目源码:https://github.com/Pistachiout/Academic-Degree-BlockChain 一.选题背 ...

  6. 【我的区块链之路】- Hyperledger fabric的简单入门(四)链码的编写及调试

    [我的区块链之路]- Hyperledger fabric的简单入门(四)链码的编写及调试       之前的文章中我们有讲过了fabric的一些核心的配置文件的选项说明,讲过fabric 的网络启动 ...

  7. (区块链溯源)基于Hyperledger Fabric 区块链的产品溯源( 化妆品 )

    1. 技术背景 随着互联网的普及,网络购物的优点更加突出,网购与海购成为了越来越多消费者的选择.但是消费者们对于所购买的产品是否安全合格并不了解,诸如化妆品.食品等产品的质量会直接影响到消费者的身体健 ...

  8. 区块链技术入门(基于Hyperledger Fabric)

    文章目录 1.具体名词解释 2.区块链优势 3.区块链网络的构建 3.1.创建网络 3.2.添加网络管理员 3.3.定义联盟 3.4.为联盟创建通道 3.5.节点和账本 3.6.应用程序和智能合约链码 ...

  9. Hyperledger Fabric 超级账本 区块链技术 概述 优点

    超级账本概述 区块链的第一个也是最被广泛认可的应用是比特币,另一种加密货币以太坊采取了不同的方法,它集成了许多与比特币相同的特征,添加了智能合约来创建分布式应用程序的平台.比特币和以太坊属于区块链,我 ...

最新文章

  1. jstack 脚本 自动日志_用jstack自动化捕抓异常java代码脚本
  2. 浮点数能够表示的数的范围是由其()的位数决定的。
  3. ASP.NET MVC 开源项目 收集
  4. Ajax updatepanel用法
  5. DOM-13 【实战】输入及状态改变事件、京东搜索框
  6. stm32l0的停止模式怎么唤醒_Mac外接显示器的显示模式怎么设置
  7. mysql每次查询1000条数据库_30多条mysql数据库优化方法,千万级数据库记录查询轻松解决...
  8. firstchild.data与childNodes[0].nodeValue意思
  9. 全国大学生数学建模竞赛中,哈工大被禁用 MATLAB!
  10. Java回调函数实现案例
  11. MATLAB遗传算法调试
  12. 四位一体数码管介绍、扫描原理、应用电路和共阳共阴码段编写成都电路板设计
  13. 【WiFi】WiFi信道(2.4G、5G及5G DFS)及国家码和电话代码和时区对应表
  14. Opencv之threshold
  15. 计算机硬件系统(一)—计算机硬件系统的组成
  16. Exp6 信息搜集与漏洞扫描 20164302 王一帆
  17. 《新科学家》:十大最不可思议计算机
  18. 从开辟蓝海到保卫蓝海(一)
  19. 多卡聚合通信设备在广电视频传输行业解决方案
  20. linux与windows文件互传(scp指令)

热门文章

  1. strstr 函数介绍
  2. 使用ViKey加密狗实现Windows登陆的方法
  3. TensorFlow入门教程(30)车牌识别之整合EAST+DenseNet进行车牌识别(六)
  4. OpenCV Mat与uchar*指针相互转换赋值
  5. 计算机控制系统康波答案,计算机控制系统部分习题参考答案1
  6. vim autoformat php,将Vim打造成Python IDE(二):代码格式化的一些问题
  7. CSS设置 background-image透明度小技巧
  8. windows下nslookup命令
  9. dau、mau、pcu、dnu、wau、acu、uv的意思是什么?
  10. python 将列表按指定长度拆分