李莹 ,瞿红红,王佳,何自芬
(昆明理工大学 机电工程学院,云南 昆明 650504)
烟草行业是高税利行业,在国家财政中一直扮演着重要角色,但其容易滋生制假造假、走私等问题.2017 年至2021 年期间,我国共办理涉烟犯罪案件4.3万起,案值超千亿元.如何保证烟草产品质量,遏制涉烟违法犯罪活动,对维护消费者权益和国家经济利益有着重要意义.烟草产品需要可追溯性来明确其身份[1],在种植、加工环节一旦发现质量问题就可以追溯到具体责任主体,在销售环节更需要可追溯性来验证销售主体和产品的合法性.烟草行业在追溯系统构建上已经进行了很多探索和应用,并取得了积极成效,如吴亮等[2]在烟叶物流过程中嵌入RFID 电子标签进行信息采集,提高数据采集效率,实现过程追溯;刘宇晨[3]基于二维码技术设计了烟叶质量追溯系统.但其大多是针对烟草供应链中某一环节的追溯,效果比较局限,未能解决各环节间的“信息孤岛”、数据不透明、质量管控精准性差等问题.此外目前烟草追溯大多是基于物联网范畴内的二维码、RFID 等技术和传统的中心化追溯系统,其数据安全性不高,极易被篡改,构建可信的去中心化烟草产品供应链追溯系统至关重要.
区块链由于其去中心化、不可篡改、分布式存储等特点,受到了越来越多人的关注[4].目前区块链技术已经广泛应用于金融、食品安全、医疗健康等领域.基于区块链的溯源技术也是当前研究的热点,近年来,国内外学者对区块链在产品追溯方面做了很多探索,如许继平等[5]提出“链上+链下”双模存储机制来保证食品追溯数据安全;于合龙等[6]基于Hyperledger Fabric 平台设计实现了水稻全供应链信息溯源系统.对于烟草行业而言,基于区块链的追溯技术也有大量学者在积极探索:余坤[7]提出利用区块链构建烟叶质量追溯体系能够保证信息安全,避免对信息的篡改;樊海峰[8]表明了区块链技术在烟草质量追溯中的重要性,并对区块链在烟叶质量追溯中的应用进行了展望;林浩瀚[9]针对卷烟销售市场假烟、劣质烟屡禁不止现象,运用区块链技术设计了卷烟质量追溯技术流程和架构,解决卷烟质量追溯难题.然而目前还未真正实现区块链技术在烟草产品追溯中的应用.本文利用区块链技术弥补现有追溯技术的不足,设计并开发了烟草供应链追溯系统,实现了烟草产品防伪溯源、监管部门精准监管.
烟草供应链应从原材料生产开始,即烟农种植环节.烟叶由烟农采收后会进行初步烘烤处理,为后续加工做准备.经过初烤的烟叶会由复烤企业收购,复烤加工涉及打叶、复烤、分级等工序,并根据国家标准生成质检报告[10].复烤后的烟叶会送往卷烟企业进行后续加工,卷烟加工工序也极为复杂[11],可分为制丝工艺、卷包工艺两大工序.加工完成的条烟、箱包会发送到烟草专卖局授权的销售网点进行售卖.烟草制品在各个环节间流通涉及的物流环节也属于供应链一员.因此本文将烟草供应链分为农户种植、复烤加工、卷烟加工、物流流通、销售五个环节,为保证各个环节信息共享同时保护企业隐私数据安全,将供应链环节数据信息分为追溯数据和隐私数据两大类,具体如表1所示.
表1 烟草供应链追溯信息Tab.1 Traceability information of tobacco supply chain
我国烟草供应链涉及环节多,追溯数据采用物联网设备采集,各个环节数据海量异构.目前传统的追溯系统通过企业的中心化数据库存储追溯信息,而各个企业间互不信任无法共享信息,即使有信息流通也因传送时间差导致信息时效性较差,并且中心化追溯系统极易造成企业为维护自身利益恶意篡改追溯信息.基于区块链技术的追溯系统拥有去中心化、不可篡改、分布式存储等特点[12].区块链技术使追溯系统中的每个参与者都有相同的账本副本,除了共享账本信息外,还共享更新账本的过程,这样不仅可以减少信息传递的时间和成本,还可以提高信任度和可见性.共享账本和区块结构保证区块中存储的信息不可篡改.如今,在共享信息的同时还将面临如何保护企业隐私数据的难题,隐私数据包括除追溯信息外的企业生产数据、工艺配方等信息.
针对上述问题,结合烟草追溯实际情况,搭建区块链多链烟草追溯系统.考虑供应链环节、监管部门、消费者对产品追踪溯源需求,由农户节点、复烤节点、卷烟节点、物流节点、销售节点、消费者节点、监管节点建立供应链区块链(主链),并将供应链区块链作为追溯区块链.利用通道技术建立数据隔离和保密的农户链、复烤链、卷烟链、物流链、销售链五条企业区块链,每条企业区块链都由企业自身和监管部门两个组织构成,用于存储隐私数据,如图1 所示.以供应链区块链追溯、企业链存储隐私数据、监管部门多链监管的结构形式组建烟草区块链追溯系统,实现了追溯系统去中心化、产品信息不可篡改、数据存储扩容、企业追踪产品、消费者溯源查询、监管部门穿透监管.供应链区块链作为主链追溯,将产品可公开信息共享,打破企业间信息壁垒;企业区块链将隐私信息隔离保密,保护企业权益.
图1 烟草追溯区块链多链架构Fig.1 Tobacco traceability blockchain multi-chain architecture
在深入分析烟草供应链后,组建区块链多链烟草追溯系统的多链数据存储与监管模型,如图2 所示.追溯数据由供应链环节依次补充完整并与消费者和监管部门共享;隐私数据由企业上传至企业链,监管部门实时监管.数据追溯与监管过程如下.
图2 多链数据存储与监管模型Fig.2 Multi-chain data storage and supervision model
1)数据上链:追溯数据上链利用供应链区块链智能合约,通过供应链节点共识将数据记录在共享账本上.隐私数据加密存储于企业链,只面对企业自身和监管部门,将隐私数据上链时不同企业调用企业自身区块链上的智能合约存储数据到账本上.
2)数据存储:模型中的账本数据存储在CouchDB 数据库中,CouchDB 数据库是以键值对的形式存储数据的文档对象数据库[13],它允许使用JSON 格式对数据建模,这样不仅可以进行键查询,还可以使用值进行富查询.
3)数据追溯:以溯源码(产品ID)作为关键字,企业名称、时间信息、商品名称等追溯数据为值来更新世界状态.溯源码作为追溯数据的载体,是依据“一号工程”32位码及国家标准制定的,在产品流转过程中,溯源码记录各个环节的追溯信息,最后生成追溯二维码,消费者通过扫描追溯二维码可以获取产品追溯信息.
4)数据监管:监管部门实时接收供应链区块链及企业区块链的实时上链信息,监督产品质量,利用富查询可以更加快速查到产品精确信息,鉴别真伪.
区块链基于P2P 网络协议搭建去中心化网络.利用Fabric 通道机制组建1 个供应链区块链和5 个企业区块链,企业区块链为农户区块链、复烤区块链、卷烟区块链、物流区块链、销售区块链.通道是一个联盟中的成员彼此通信的主要机制.供应链区块链成员包括农户、复烤企业、卷烟企业、物流企业、销售商、监管部门、消费者;农户区块链成员包括农户、监管部门;复烤区块链成员包括复烤企业、监管部门;卷烟区块链成员包括卷烟企业、监管部门;物流区块链成员包括物流企业、监管部门;销售区块链包括销售商、监管部门.供应链区块链网络搭建流程如图3 所示,在网络中根据网络配置授权监管部门为网络管理员,网络配置的网络管理规则集合中允许监管部门启动排序服务节点、证书中心(CA).由证书中心颁发的X.509 证书通过MSP 验证能够识别组织身份,还可以为交易提供签名来进行背书.由监管部门定义供应链区块链联盟成员,供应链上的各成员在供应链区块链的通道内互相通信,任何成员加入供应链区块链应由监管部门授权.农户、复烤企业、卷烟企业、物流企业、销售商加入供应链区块链中就是将各成员的节点加入区块链中,节点上包括追溯账本、智能合约.客户端应用与对应节点连接,通过节点之间的通信来完成数据共享、信息交互.此外通过修改网络配置在供应链区块链中加入监管节点和消费者节点,监管部门客户端和消费者客户端分别连接监管节点、消费者节点与供应链区块链通信.
图3 烟草供应链区块链网络搭建Fig.3 Blockchain network construction of tobacco supply chain
Fabric是授权区块链,组织节点加入网络需要监管部门授权,可以有效防止恶意节点加入,Raft 共识算法[14]可以解决节点宕机问题,它可以允许系统中存在(N-1)/2 的故障节点(N为节点总数),因此区块链网络安全性能、容错率都很高.
智能合约(chaincode)是部署在Hyperledger Fabric 网络节点上的用来与分布式账本交互的程序代码.智能合约在节点上的Docker 容器中执行,通过gRPC 协议被相应的节点或客户端调用和查询[15].本文针对供应链各组织需求设计存储智能合约和查询智能合约,实现各个组织追溯信息上链存储、产品质量管控.根据供应链组织需求与国家质量标准制定合约细则,其中存储智能合约包括:信息录入、信息保存、存储交易、权限核验、成功上链.查询智能合约包括:溯源码核验、权限核验、查询交易、信息解析与展示.图4 描述了存储智能合约算法将数据上链存储的具体流程,图5 描述了查询智能合约算法查询并获取数据的具体流程.
图4 存储智能合约算法流程图Fig.4 Storage smart contract algorithm flowchart
图5 查询智能合约算法流程图Fig.5 Query smart contract algorithm flowchart
区块链追溯系统客户端是去中心化应用(DAPP),通过智能合约封装的外部接口与前端API连接,用户操作客户端网页就可以实现数据的上链与查询.客户端网页开发语言采用HTML、CSS、JavaScript,项目框架为SpringBoot.前端追溯系统功能模块包括用户个人信息管理、节点用户管理、环节信息管理、产品信息溯源.用户个人信息管理负责用户账号注册、密码修改、系统登录.节点用户管理负责用户身份认证、机构认证、权限设置,供应链成员主体通过节点用户管理进行机构认证、身份认证后由系统授权后,加入烟草产品追溯系统中.环节信息管理负责各环节信息采集、录入,首先输入与产品对应的溯源码,溯源码按照监管部门规定生成,是产品的唯一标识[16].接下来输入产品的追溯信息如烟草种类、批次号、施肥情况、生长环境、生长周期、登记时间、操作人员等,用户可以根据溯源码追踪产品流向及产品在后续环节的质量、销售情况.产品信息溯源负责追溯产品生产及质量信息,如图6(a)所示,供应链成员根据追溯码可以实现追踪产品流向,监管部门也可以由产品信息溯源模块管控各环节产品质量.为了能够更加直观地监控区块链情况,将区块链浏览器(Fabric Explorer)嵌于前端追溯系统中,如图6(b)所示,在Fabric Explorer 中可直接查看区块链网络组成、区块、交易信息、智能合约、通道信息等.
图6 烟草区块链追溯系统产品信息溯源及监管详情Fig.6 Tobacco blockchain traceability system product information traceability and regulatory details
系统测试环境基于服务器搭建,服务器CPU2核、内存4 GB,操作系统Ubuntu 20.04,64 位,网络带宽6 Mbps,Fabric 版本为2.4,Docker 版本为2.4,Fabric 数据库选用CouchDB,共识机制采用Raft,chaincode 采用Java 编写,所有测试均是通过Hyperledger Caliper 进行,Caliper 版本为0.50.环境配置如表2 所示.
表2 测试环境配置Tab.2 Test environment configuration
利用Caliper固定负载控制器测试区块链追溯系统网络性能,将被测系统事务负载设置为5,将起始速率依次固定为50~250 tps,测试时间为30 s,Populate Workers 设置为2.如图7 所示,吞吐量与实际发送速率基本上保持一致,起始速率从50 tps 递增到250 tps时,区块链网络吞吐量稳定维持在150 tps;且分布式网络共识算法Raft 是故障容错类算法,因此区块链网络可以允许故障节点存在同时可以保持网络稳定.
为测试系统可信度,确保追溯信息上链存储成功、信息查询无误,本文对数据写入和读取进行了测试,通过修改测试工具配置文件,在不同区间的交易数量下,分别测试写入交易、读取交易的成功次数.结果如图8 所示,随着交易数量大幅度增加,交易成功率一直维持在100%.交易成功的信息都会被存储在区块链中,系统提供修改、删除操作,但这些操作仅仅改变其世界状态,并不会改变区块链中的信息.这正是区块链不可篡改的特性,保证了追溯信息的真实可信.
图8 系统可信度测试Fig.8 System reliability test
为验证本系统写入、查询效率,分别在区块高度为1 000、2 000、3 000、4 000、5 000 时测试存储智能合约、查询智能合约的效率.图9中点值均采用10次测试的均值作为测试结果.调用本文设计的存储智能合约将追溯信息写入区块链中的效率,如图9(a)所示,在区块高度较小(1 000~2 000以内)时,其实际发送速率与吞吐量均在200 tps 以上;随着区块高度增加,其吞吐量与实际发送速率线性下降,到达150 tps平缓稳定下来.验证查询智能合约的查询效率,如图9(b)所示,随着区块高度增加,最小延时稳定在0.01 s,最大延时在3 000~4 000区块高度时达到最大值0.07 s,随后开始下降,系统平均延时0.02 s,合约查询平 均延时0.026 s.本研究设计的智能合约的吞吐量较高,交易增多后也能稳定在150 tps,查询平均延时0.026 s也完全满足实际应用要求.
图9 数据存储与查询效率Fig.9 Data storage and query efficiency
本文设计并实现了烟草区块链多链追溯系统,利用多链技术提高区块链的网络性能、提升区块链容量.供应链区块链可实现对烟草产品追本溯源,验明正身,防范非法产品流通,打破了各个环节之间的信息孤岛,使追溯信息真实可靠.企业区块链保护了企业的隐私数据安全,完成监管部门对产品质量的精准监控,使得假冒伪劣产品无所遁形,维护国家利益,为烟草行业追溯提供了参考.
未来,考虑改善实验环境、扩大实验规模,提高系统鲁棒性;融合边缘计算技术来做数据处理,提升区块链追溯模型的数据处理效率,加快追溯系统响应速率;融合深度学习技术,对链上数据进行分析,通过迭代训练预测企业隐私数据中的异常数据并警告通知,也可预测追溯信息中是否存在欺诈数据.