刘宗妹
(广东司法警官职业学院信息管理系,广东 广州 510520)
根据世界卫生组织数据显示,每年全球大约有10%的人患过食源性疾病[1]。2019年的人造鱼翅事件、农夫山泉“质量门”事件、老鼠肉冒充羊肉门事件、毒大米事件,一个个食品安全问题骇人听闻,引发了消费信任危机。食品从原材料到成为商品进行买卖,经历了较长的时间和空间跨度,易出现各种问题[2],是由于食品安全问题根源在于溯源系统不健全,法律惩罚力度不够。2019年5月,中共中央、国务院印发的食品安全工作意见中提出了构建食品安全追溯体系,实现食品信息化追溯和政府监管有效对接[3]。
区块链利用密码学技术、分布式存储技术、网络协议和共识机制实现了去中心化、不易篡改性、可追溯性和透明性。区块链的广泛应用在新的产业变革中将起着非常重要的作用,未来将成为一种创造信任的协议[4]。目前,区块链技术的发展不仅推动了产业创新,还推动了与经济社会的融合发展,已受到多个领域的极大关注,但食品溯源方面的成果较少,通过将区块链技术与食品供应链管理的创新融合,优化食品产业结构,保障消费者权益,实现从“田间到舌尖”的全程品质监管。
射频识别技术(RFID)利用无线电波将标签中的数据读取到阅读器,是一种数据捕获(AIDC)和自动识别技术[5]。RFID标签中天线负责获得读写器发射的电磁波,在标签芯片中作为电源,读取芯片中的数据,并返回给读卡器[6]。RFID读卡器接收标签返回的射频信号,通过解析数据完成目标识别,根据具体应用场景,将数据传送至数据库的SASS软件处理。RFID为商品从种植、采购、生产、运输、销售提供了精细化的跟踪,可实现信息流和物流的精准定位。
食品安全监管体系为食品信息化追溯和政府监管吹响了号角,技术层面的提升需依托先进的信息技术,通过系统的改善推广,借助于大数据分析手段,提升量化粒度,进而做归因分析,有效风险预警,拓展智慧监管,引领食品监管的风潮,政府监管层面需探索纳入政府监管体系,完善构建法律体系,改进监管措施,助力构建食品生态环境[3]。研究拟以优化食品溯源为主线,探索搭建基于区块链技术和RFID的去中心化、可溯源的应用平台,通过食品流通各个环节的互联互通[7],实现食品安全事件快速定位责任方,以期为食品溯源的有效开展提供技术支撑。
当前为保障食品安全采取了一系列措施,但由于不能保证溯源信息的准确性,缺少一种民众认可的信任共识,即便在食品中附上溯源码,也很少有顾客扫描查询。经调研,问题主要存在于以下方面:① 供应链管理的理念落后,甚至是“一个企业十几个用户”的模式,产品销售过多地依靠中间商,增加了投入成本,提高了商品的销售价,降低了民众购物的幸福指数。② 食品供应链需要信息流、资金流和物流的全面衔接,但企业和供应链各自为政,信息不能透明传播,信息孤岛现象严重,难以形成协同效应。③ 食品溯源系统通过电子产品代码系统(EPC)、RFID、物联网等实现信息的收集[8],但这种中心化的运作方式缺乏必要的可信度和公信力,出现安全事件较难查找根源,无法使民众“吃得放心”[9]。④ 生产商、供应商、零售商为自身私欲随意修改数据库记录,随便伪造防伪标识,真假难辨,进而降低消费者对信息的信任度。⑤ 目前已有部分应用于食品溯源中的区块链技术落地,如京东的“跑步鸡”“飞翔鸽”等项目[10],虽然现有成果解决了食品溯源中数据的永久记录和共享,但企业经济效益不高。
区块链中的数据利用链式结构存储,时间戳有效记录创建时间,数据验证上链则无法被篡改,实现食品供应链中数据的可靠存储;区块链是点到点的、去中心化的存储结构,节点地位平等,即使个别节点出现故障也不影响整个系统的使用,可保证系统7×24 h持续工作,实现食品供应链中数据的透明、安全传输;食品流通过程中利用链码记录原材料、生产、存储、流通过程的详细认证信息、食品质量检测报告也需上链保存,利用RFID标签实现数据的可溯源性,客户可根据自己的需求选择查看详细认证信息和质量检测报告,实现食品的有根可寻[11];利用非对称加密算法实现基于公钥的数据传送,匿名状态下完成工作,避免了食品供应链中经销商隐私的泄露;通过智能合约按制定的规则自动更新,通过共识机制保持系统的一致性,节省了食品供应链中的人力和物力资源[12]。
将农户、生产者、经销者、消费者加入Fabric网络,通过文件配置使其具备运行环境。在食品包装表面粘贴RFID标签,它是网络中标识虚拟身份的唯一的数字加密标识符[13],使用认证通过的账号将一系列RFID读写器收集的信息上传到区块链保存,区块链中的数据分为多个区块,区块之间利用哈希函数计算所得的哈希值互连。最后进行程序的开发,使消费者可在移动端利用扫描RFID标签来进行食品溯源,客户端利用账号查询网页[7]。
3.1.1 数据存证共享 食品原始数据在录入核心业务层后,自动发往区块链接口。区块链API和SDK接收并格式化数据,上链存证核心数据签名并生成生产、流通全过程证书。程序的表现形式有移动终端和电脑客户端。
3.1.2 数据追溯查验 用户可通过扫码RFID标签,获取食品溯源信息和食品质量检测证书,以校验食品是否绿色安全。食品溯源时进行数据批量调取,保证调证效率。实时监控交易过程,对客户反馈的违规信息及时处理,形成审计报告,及时召回不安全食品,并给予消费者适当补偿和对商家实施处罚。
3.1.3 信用监管机制 通过协同服务平台,浏览食品生产的各环节,包括商家信用承诺、生产环节信用分级评价、流通环节信用检测,实现监管的“视角”覆盖整个食品链流程。基于大数据形成食品的综合评价,出现安全问题的节点自动识别为黑节点。
区块链与传统的数据库有相似之处,但可以省去较多中间环节,简化开发流程。由于区块链的链上代码,需建立块,但建块的流程较复杂,执行过程中会浪费很多算力,因此研究将大多数的功能置于应用系统中,可进行增加、删除、修改、查询等操作,而使用哈希算法所得的摘要信息等少部分的功能置于链上代码中,只能进行增加和查询操作。区块链负责所有环节交易的索引信息,对外提供一个商品的ID,交易的哈希作为值上链,对于用户手机号码、身份证号码等易遭受暴力破解的数据需加上盐值再哈希上链。智能系统的运行中引入监管检查,制定黑名单,出现违规即刻停止,去除恶意节点的危害。区块链基础设施服务平台框架图如图1所示。
3.2.1 应用程序层 API是Fabric使用gRPC协议与底层通信提供的接口;事件是Fabric通过监听链码中的事件提供的事件通知,事件发生时执行相应的函数;SDK是Fabric在API之上安装了不同语言的接口,其是Fabric的开发工具,需配置通道名称、链码名称、配置文件路径、组织名称。
3.2.2 交易层 身份模块通过底层的成员服务模块验证用户的身份信息;交易模块分发各功能节点进行校验及记账;账本模块可查询区块链的交易,包括交易哈希、交易编号等;智能合约制定了资产的可执行代码。
3.2.3 底层 成员服务用于成员的注册和登录、交易加密及签名;共识服务中排序节点与组织中的主节点使用gRPC进行通信,各组织内部使用gossip通信;链码服务中使用docker运行链码,完全隔离用户数据。
图1 区块链基础设施服务平台框架图Figure 1 Blockchain infrastructure service platform framework
3.2.4 基础设施层 5G是第5代的移动通信系统,极大提升了带宽、降低了延时、实现了海量接入,基于5G网络为供应链提供实时高速的信息数据流传输,通过食品云服务器和高性能数据库实现流通数据的存储、转发。区块链采用P2P技术来组织网络节点,每个节点利用多播实现路由、数据传播和新节点识别等功能。
3.2.5 系统监管 监管措施快速接入,全网有效,为全网协同提供有效的可操作性。监管机构掌握合约的发布权限,运行过程中利用监管规则检查,对违规账号采取冻结措施,恶意节点直接剔除,对小概率的错误由监管审计处理,信誉良好则可利用积分来简化审核流程。
网络拓扑结构见图2。客户端加入区块链网络后,通过SDK构建一个交易提案。发送交易提案到指定的背书节点,背书节点使用成员服务提供者(MSP)验证签名并确定请求者是否被授权进行提案。背书节点按交易提案发送给智能合约模拟执行,并对执行结果签名,将交易签名并返回给客户端,客户端对背书结果进行校验。然后将所有背书结果、交易提案以及自己的签名打包成一个交易发送给排序节点(orderer)。排序节点将所有收到的交易按时间排序,然后打包成交易区块分发给通道中的所有节点。节点收到交易区块后验证其交易。当节点验证该区块中的所有交易无误后,写入账本中,节点发出事件通知客户端。
图2 网络拓扑结构Figure 2 Network topology
利用区块链技术实现原材料信息、加工信息、物流信息、销售信息、消费者评价信息均写入普通数据库,原材料认证信息、加工认证信息、流通认证信息等哈希算法所得摘要编码写入RFID标签的EPC编码体系中,每个RFID芯片有全球唯一编码(TID),使其不易被篡改[14]。系统流程示意图如图3所示。
图3 “区块链+RFID”系统流程示意图Figure 3 Schematic diagram of the “blockchain + RFID” system
3.4.1 数据信息录入 原材料供应商将RFID标签贴于食品上,农作物种植认证信息(种子、施肥次数、生长环境)均存于标签。生产商利用RFID标签将食品生产过程认证信息(原材料检验结果、员工健康状况、生产过程、食品批次、生产日期、有效期)录入区块链。商品运输过程中经销商将流通认证信息(发货地址、发货时间、收货地址、收货时间、流通过程中的检验及审核情况)录入区块链[5]。
3.4.2 数据信息共享 Fabric是基于证书认证的区块链平台,利用PKI公钥管理基础设施规范生成的证书[7]。区块链中所有信息都可通过公开接口进行查看,实现了公开透明,对隐私数据利用非对称加密算法来保护,只有授权用户才可查看。当通过移动端扫描RFID标签时,会发送食品溯源请求,利用哈希地址查找记录,消费者利用RFID标签快速获取信息。也可基于客户端通过注册时的ID进入区块链网络来实现信息溯源。
Web前端界面包括信息录入界面和信息查询界面,通过智能合约接口与区块链交互,协同服务平台与普通数据库交互;信息录入界面使用运行于服务器端的编程语言Node.js的中间件Passport.js来验证是否符合对应权限,消费者可用交易ID或扫描RFID标签来实现数据溯源[15]。后端代码使用Go语言编写,实现封装合约并存储数据于Fabric中[16]。
确定事务顺序,拒绝错误事务。只有当事务通过共识验证后才是有效的,该节点发布的信息才能被其他诚实节点记录在自己的区块链中,从而实现有效性。系统使用Kafka共识机制保证系统高效稳定运行。数据上链存储使用加密体系中国加密标准的SM3(哈希算法的国密)。
为了避免智能合约漏洞影响区块链的运行,需运行于隔离环境[16],虚拟机和容器的资源隔离优势相似,但容器实现的对操作系统的虚拟化,不仅更易移植,而且效率更高[17]。开发平台Hyperledger Fabric用Docker容器作沙盒环境,符合耦合设计原理,使用Linux运行环境[18]。启动网络中节点,需先安装 DockerCompose、Docker、Go语言环境,再通过配置Compose文件实现启动节点[19]。Hyperledger封装底层技术,在此基础上提供API接口,用chaincode编写智能合约,经验证后在区块链中运行[20]。代码层封装查询链码,管理层负责链码的安装和调用[21]。部分chaincode代码如下:
//商品
type Commodity struct {
ID string
Origin string //产地
}
//订单
type Order struct {
Commodity*Commodity //商品
ID string
Quantity int//数量
}
//实现Invoke接口调用智能合约
func (t *Food) Invoke(stub shim.ChaincodeStubInterface) pb.Response {
funcName, args:= stub.GetFunctionAndParameters()
switch funcName {
//创建商品
case "createCommodity":
return createCommodity(stub, args)
//创建订单
case "createOrder":
return createOrder(stub, args)
}
}
基于B/S系统架构、Windows下安装虚拟机VMware、操作系统为Ubuntu、内存为2 GB、硬盘为30 GB、IE浏览器进行仿真试验。溯源平台界面见图4,产品信息图举例说明见图5。
图4 溯源平台管理界面图Figure 4 Management interface of the traceability platform
图5 产品信息图Figure 5 Product information diagram
通过在未复杂化传统溯源监管平台的基础上,引入区块链技术,针对性地解决了数据不安全、系统易攻击等问题[22],系统性能对比见表1。虽然基于区块链的平台有诸多优点,但区块链与算力有较大关系,若算力遭受黑客攻击,也可能破坏去信任化[23]。
表1 系统性能对比分析表
“区块链+RFID+食品供应链”实现的科技与民生问题的结合,有利于进一步推动构建算法式的可信社会[22]。文章设计了“区块链+RFID”两位一体的食品溯源平台,利用区块链不易被篡改的特性,实现食品供应链流程的公正透明。利用食品附有的“身份证”实现客户端可查来源。利用RFID技术通过阅读器识别产品的ID并读取食品电子信息[24]。利用链上时间戳和哈希值实现可追去向。从终端追溯到出产地需20 h以上,而借助此技术只需10 s即可实现,极大提升了追溯性能,客户可以实时溯源数据变化的全流程,具有法律效力,保证了数据的可信度。后续将对食品溯源平台的数据进行探索分析,通过大数据、人工智能、数据挖掘等技术,进行风险预警和追责溯源,进一步向智慧监管迈进[25]。