王丽娟
(上海市水产研究所,上海 200433)
水产品的安全严重威胁到消费者的身体健康,建立一套水产品质量追溯体系具有迫切的现实意义。目前,存在的溯源系统在数据安全、系统参与主体管理等方面存在问题。近年来,区块链技术的发展为水产品溯源提供了技术保证。因此,本文提出了基于区块链技术的水产品质量追溯体系课题。
区块链是由区块构成的一种有序链型数据结构,链中每个区块都包含前区块的哈希值,可以由链上任意区块追溯到第一个区块(创始块),结构如图1所示。
图1 区块链结构
系统中区块链中的数据源通过人工录入后,数据被记录在区块体中,并且采用HASH加密算法保存。这种算法使得互联网上其他用户难以解密数据,可以确保区块链信息的安全性和完整性。图2为溯源区块链结构形式。
基于区块链的追溯系统架构包括应用层、合约层、网络层和数据层,如图3所示。
应用层主要包括用户管理、追溯信息管理、密钥管理、权限管理、用户管理、密钥管理和权限管理,如图4所示[1]。应用层解决了如何使用区块链技术的问题,即构成了“区块链+水产品”的各种应用场景。记录水产品的养殖过程相关信息,如养殖地点、放养起捕时间、放养期间的投入品、使用鱼药、使用饲料和换水记录等信息;记录水产品加工过程中,各个用料的含量、包装材料、保质期等信息;记录加工后的水产品最后的销往场所、销售价格、销售时间。各个应用场景中产生的数据,最后都要写入区块链。
图2 溯源区块链结构形式
图3 基于区块链的追溯系统架构
图4 用户、密钥、权限管理
智能合约层包括合约的注册、触发、执行、注销4个部分。合约注册是将用户编写好的合约安全检查处理后共识存储到区块链的过程。合约触发是在合约注册后通过外部条件触发合约执行的过程。合约执行是合约代码在独立环境中运行的过程。合约注销是对已经执行过、过期作废或者业务需求不在需要的合约进行清理。
网络层承担数据的传播和验证,维护区块链网络的稳定运行,通过共识算法保证节点的安全。
传统的水产品质量追溯体系与基于区块链的水产品质量追溯体系进行比较,如图5、6所示。可见,基于区块链的水产品质量追溯系统具有一定的创新性。
①基于区块链的水产品追溯系统采用P2P的分布式网络架构,使数据分布式存储于各节点,所有节点通过共识算法保证交易的一致性。任意单个节点故障或者少数节点故障,系统能正常运行,且故障节点数据可以恢复。所有参与方在区块链中通过加密后的ID进行标识,不需要所有交易者提供身份隐私信息,保证交易者的隐私不被泄露。同一个交易者可通过多个ID进行多次交易来达到隐私保护的目的。
②基于区块链的水产品质量追溯系统数据是一个共享式的分布式数据库。用户通过系统界面注册后会自动获取一对密钥(一个公钥和一个私钥)[2],区块链网络根据密钥所属类型开放对应权限。养殖户、水产专管员、加工商、销售商可进行数据的录入和查询,消费者只能查询和追溯水产品数据。基于区块链的系统允许全球范围内任何节点成为区块链网络的成员之一,享受与其他节点同等的权利,从而实现数据信息共享,提高数据的利用率,减少数据资源的浪费。
本文采用区块链技术实现水产品质量追溯,大量使用反对称加密技术来验证基于公网的消息可靠性,基于哈希算法实现如快速验证数据未被篡改等诸多特性。
图5 传统追溯系统
图6 基于区块链的追溯系统