基于区块链技术的海产品溯源系统的设计与实现
作者: 王珍珍 巫湘林 刘小丰
关键词:区块链;海产品供应链;溯源;食品安全
随着消费者对食品安全问题的日益关注,海产品溯源系统的需求也愈发强烈[1]。传统的溯源系统往往存在数据易被篡改、可信度不高等问题,而区块链技术以其去中心化、数据不可篡改的特性,为海产品溯源提供了有效的解决方案[2]。
本文将从系统解决方案、系统设计、系统实现3个方面阐述基于区块链技术的海产品溯源系统实现全过程。
1 系统解决方案
本系统解决方案主要从业务流程优化、系统目标实现、功能需求3个方面着手,构建一个高效、可靠的海产品溯源系统,以提升行业的透明度和可信度,保障消费者的权益和安全。
1.1 业务流程优化
对海产品的捕捞、加工、运输、销售等各环节制定标准化操作流程[3],确保每个步骤有明确的规范和流程,各环节的数据格式、内容和质量保持一致;利用物联网技术减少人工干预,实时采集各环节的关键信息,确保信息的准确性和完整性。
1.2 系统目标实现
为提高数据的安全性和可靠性,该系统采用分布式存储技术,将数据分散存储在多个节点上;为防止数据丢失或损坏,系统提供定期备份数据功能,并建立数据恢复机制。
为确保数据的不可篡改性并保证数据在传输和存储过程中的完整性和真实性,引入区块链技术[4],将数据以链式结构进行存储和传输。
为验证数据的可信度并防止数据在传输过程中被篡改或窃取,采用数字签名和加密技术,验证数据的来源和完整性,对数据进行加密处理。
为确保系统的合规性和有效性,引入第三方监管机构定期对溯源系统进行审计和评估,并对违规行为进行处罚和纠正。
为保证数据对消费者、政府监管部门和企业三方透明可追溯,建立溯源信息查询平台,使用者可以通过产品溯源码查询产品的完整溯源信息。
1.3 功能需求
1) 信息采集:利用GPS、视频监控设备和各类传感器,实时采集捕捞、养殖、加工、运输、销售等各个环节的时空信息、环境参数和质量数据,并由各环节参与企业手工录入各环节基本信息。
2) 行为监控:政府监管部门上传水源检测和产品抽检报告,并对违规行为进行处罚和通报。
3) 追溯与反馈:消费者通过溯源码验证海产品的原产地、加工地、品质认证等信息,确保购买到安全、高品质的产品;消费者提供产品反馈,为生产者和监管部门提供改进产品质量和市场营销的依据。
4) 平台运营:系统管理员对申请加入联盟链的企业进行审核,若审核通过则为其分配角色权限,并对平台数据进行备份存储管理。
2 系统设计
2.1 系统架构设计
基于区块链技术的海产品溯源系统采用分布式架构,其核心内容包括区块链网络、溯源数据存储和海产品溯源系统[5]。区块链网络是系统的核心基础,负责存储和验证溯源数据;溯源数据存储负责全部溯源数据的收集、整理和存储;海产品溯源系统则是为方便用户使用而提供的基于区块链网络和溯源数据存储的应用平台。
2.1.1 溯源数据存储
溯源数据存储采用链上/链下协同工作的方式,以满足不同数据类型的存储需求,同时确保数据的完整性、安全性和可追溯性。链上部分,即区块链数据库,主要存储交易ID及与当前交易相关的全部数据的哈希值。链下部分包括分布式文件系统和MySQL数据库,前者存储体积较大、数量较多的多媒体文件以提高访问速度,后者存储结构化数据以便于查询和分析。此外,通过区块链上的哈希值也能快速地索引和验证链下数据。
2.1.2 海产品溯源系统
海产品溯源系统采用B/S三层架构,如图1所示。页面表现层借助浏览器,为用户提供直观、友好的操作界面。业务逻辑层是海产品溯源系统的核心,主要包括根据业务规则对数据进行处理,与区块链网络进行交互。数据访问层负责存储和管理海产品溯源系统的所有数据,确保链上数据和链下数据的一致性。
2.2 数据库设计
为确保数据的完整性、真实性、透明性以及可追溯性,海产品溯源系统的全部溯源数据按供应链关键环节分为七大模块信息,分别是通用信息、渔获信息、加工信息、运输信息、销售信息、溯源信息和监管信息。
2.2.1 通用信息
通用信息模块是供应链各环节参与者都需要涉及的数据,如账号表、企业表和设备表。
账号表:包括用户名、密码、上次登录日期、企业ID和权限等级等字段。
企业表:包括企业ID、企业名称、注册号、成立日期、法人代表、公司地址、联系方式、经营许可证和链上哈希值等字段。
设备表:包括设备ID、设备名称、设备类型、固件版本、MAC地址、IP地址、安装位置、数据存储位置和链上哈希值等字段。
2.2.2 渔获信息
渔获信息模块记录渔获环节的完整数据,包括渔船表和渔获表。
渔船表的字段:包括渔船ID、渔船名称、渔船类型、渔船图片、船舶注册号、船籍港、船长、船宽、吨位、发动机功率、企业ID、捕捞许可证和链上哈希值等。
渔获表的字段:包括渔获ID、渔船ID、捕捞日期、捕捞地点、捕捞方式、渔获种类、渔获重量、渔获质量、捕捞人员名单、渔船轨迹、渔获照片/视频和链上哈希值等。其中,渔船轨迹、照片/视频字段仅记录文件存放位置,格式为“IP地址:文件路径”。
2.2.3 加工信息
加工信息模块记录加工环节的完整数据,包括加工工段表、产品基本表和产品生产表。
加工工段表的字段:包括加工ID、产品ID、加工批次、加工起始时间、加工结束时间、原材料、加工设备、操作人员、加工工艺、加工参数和链上哈希值等。
产品基本表的字段:包括产品ID、产品名称、企业ID和链上哈希值等。
产品生产表的字段:包括生产ID、产品ID、生产批次、生产日期、有效期限和链上哈希值等。
2.2.4 运输信息
运输信息模块记录运输环节的完整数据,包括车辆表、运输基本表和产品运输表。
车辆表字段:包括车辆ID、车牌号码、车型、企业ID、车辆照片、运输许可证和链上哈希值等。
运输表字段:包括运输ID、车辆ID、物流单号、驾驶员、收货方、发货方、运输轨迹、仓储条件和链上哈希值等。
产品运输表字段:包括运输ID、产品ID、生产批次和链上哈希值等。
2.2.5 销售信息
销售信息模块记录销售环节的完整数据,包括仓库表、产品存储表和产品销售表。
仓库表字段:包括仓库ID、仓库名称、仓库地址、仓库类型、仓库面积、企业ID和链上哈希值等。
产品存储表字段:包括存储ID、仓库ID、产品ID、生产批次、负责人、存储条件和链上哈希值等。
产品销售表字段:包括销售ID、产品ID、生产批次、销售数量、销售日期和链上哈希值等。
2.2.6 溯源信息
溯源信息模块记录溯源环节消费者对产品的反馈信息,该表的主要字段包括反馈ID、产品ID、生产批次、问题描述、处理结果、提交时间和链上哈希值等。
2.2.7 监管信息
监管信息模块记录监管环节的完整数据,包括召回产品表、违法行为表和质量检测表。
召回产品表字段:包括召回ID、产品ID、生产批次、召回原因、发布时间和链上哈希值等。
违法行为表字段:包括违法ID、违法主体、违法行为、处罚结果、处罚时间和链上哈希值等。
质量检测表字段:包括检测ID、检测物品、检测报告和链上哈希值等。
2.3 权限管理设计
为了确保数据的安全性和隐私性,该溯源系统采用分级权限管理方式。不同的参与方(如生产者、运输商、销售商等)具有不同的权限,只能访问和修改自己负责环节的数据,从而实现权限的有效控制和管理。同时,监管部门应具有更高的权限,能够查看整个供应链的溯源信息。根据其执行业务的不同,权限等级分为1~7级。
3 系统实现
3.1 区块链节点部署
本文采用FISCO搭建单群组的区块链网络,该网络由海产品供应链中的参与企业及政府部门等组织作为节点共同组成,形成一个紧密的联盟链网络[6]。
假设渔获企业、加工企业、运输企业、销售企业及政府监管部门的节点IP 地址分别为192.168.0.1 至192.168.0.5,则区块链网络配置文件ipconfig如图2所示。每个节点都需要根据配置文件ipconfig,使用build_chain.sh工具生成节点配置并启动区块链系统,如图3所示。
3.2 智能合约开发与部署
本文借助WeBASE 平台以及SmartDev-Contract 智能合约库,成功实现了智能合约的快速开发、编译和部署。根据功能需求,使用CRUD在FISCO链上创建数据表,并对表进行增删改查操作,从而实现了数据上链、更新和查询功能,对应接口如图4所示。
3.3 海产品溯源系统实现
本文采用SSM框架实现海产品溯源系统。每个用户类别必须经过身份认证才能使用该系统所提供的功能,例如提交或查看各环节的数据。图5展示了用户新增数据时,系统的完整处理流程。
4 总结
基于区块链技术的海产品溯源系统利用区块链技术解决了传统溯源系统存在的问题。通过合理规划数据模型,确保了海产品溯源数据的完整性、透明度和可追溯性;同时,通过权限管理机制,保证了数据的安全性和隐私性。