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

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张图片

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

你可能感兴趣的:(区块链优化方案)