王岩林,杨卫东,2,3,刘 洋
(1.河南工业大学 信息科学与工程学院,河南 郑州 450001;2.河南省粮食光电探测与控制重点实验室,河南 郑州 450001;3.粮食信息处理与控制教育部重点实验室,河南 郑州 450001)
粮食储备安全涉及国计民生,关乎国家安全。粮食安全是目前全球关注的热点问题,随着国家对粮食的重视,通过运用物联网、云计算、大数据等信息技术手段,使粮食储备体系的数字化、网络化和信息化水平得到全面提升,但是目前仍存在不少问题:监管压力大,信息共享度低[1];管理中心化,数据可信度差;溯源成本高,追溯精准度低。鉴于上述原因,目前仍旧不能把粮食储备说清、说全和说准,从而造成极大的人力、物力和财力的浪费,破解粮食储备安全监管难题成为亟待解决的问题。
本文由分析储粮体系下监管问题入手,从粮食储备的痛点问题——粮食溯源体系中监管困难出发,结合区块链的优势,通过哈希函数、非对称加密、时间戳等方法来实现用户的匿名、交易确认和交易数据不可篡改;通过共识机制[2]对共同维护的数据账本进行统一管理,提出一种基于区块链的多链模式下的安全监管架构模型。设计面向大众的基于区块链事件溯源系统,监管后台对提交数据进行管理和统筹溯源全过程,通过智能合约对溯源数据进行上链监管,突破粮食储备周期各环节信息共享壁垒,构建安全的粮食储备监管体系。
区块链作为新兴产业,能够创新监管方式[3]。区块链通过综合分布式账本[4]、密码学[5]、共识算法、智能合约等核心技术[6],保障在不需要可信第三方的情况下,实现数据的不易篡改、难以伪造、可追溯、可审计等特点[7-8],其中不易篡改的属性适合粮食监管特性,其固有特性具备破解粮食储备安全监管难题的优势。
基于两者的特性所在,近年来国内外学者在这方面展开了广泛研究,美国和欧盟已提出相关粮食安全预警和监管方案,构建了基于大数据分析的预警监管机制和信息发布体系,并应用于美国及欧盟各国检测机构和防控部门,如美国农业部食品安全检验局基于危害分析与关键控制点(Hazard Analysis Critical Control Points, HACCP)的供应链风险预警决策机制等。
国内学者从溯源与区块链结合的角度研究居多。陶启等[9]基于区块链构建了大米全产业链质量全息数据库,采用基于危害因子的食品风险评估与质量溯源技术,设计不同角色、不同环节和多种要素的智能管理系统。然而,该溯源方法是针对危害因子源头及其所影响范围进行,存在一定误差。Lin等[10]提出了一个基于区块链和电子产品码(Electronic Product Code, EPC) 信息服务的食品安全追溯系统,并开发了原型系统。文献[11-13]基于区块链技术构建不同的供应链安全管理模型,分别用不同存储机制和智能合约构建区块链模型,搭建追溯链与企业的交互平台,保证信息存储和传输安全可信。文献[14-16] 提出了不同的存储管理架构方案来缓解物联网与区块链结合产生的数据爆炸问题。
Liu等[17]针对异构区块链中跨域互操作的问题,设计了一个提供具有互操作性和可编程的异构区块链平台HyperService,创新性地为开发人员在统一编程模型中构建跨链应用程序,证明在加密的安全区块链上实现协议的可证明性。文献[18-20] 用区块链对设备身份进行可信记录和访问控制,实现对物联网设备管理,分别对增强数据共享、处理和服务过程中的安全问题做出针对性方案。
现有的粮食监管体系都是对基础数据进行操作,不能保证用户信息以及追溯数据的安全性与可操作性,对粮食溯源体系中监管的多方操作问题较少涉及,对完整展现溯源体系具有局限性。本文的区块链中多链模式监管架构模型是在区块链溯源系统上进行改进,全程从监管角度溯源监管事件,对溯源过程中的数据真伪实时进行监管,从监管环节的公示中倒推事件溯源,提高溯源链中监管环节的效率。
我国粮食储备点多线长,呈现“跨地域、多环节、大流通”等特点,监管压力大;粮食储备管理体系以中心化的、各部门自建平台的方式为主,缺乏统一数据交换标准,信息共享程度低。粮食储备信息管理系统为自下而上集中式管理方式,由于存在数据隐私泄露的可能,各级监管部门、储粮企业、农户之间难以产生信任,且存在人为篡改数据的可能。粮食储备业务数据缺乏共享,一旦粮食储备过程中发生异常事件,需要协调储备环节中多级管理系统取证,往往还存在数据丢失或不完整的情况,溯源成本高、误差大、效率低;粮食储备安全监管体系因管理机构集中化、建设标准不统一、互联互通不足等带来粮情数据可信性低、共享程度低、事件溯源复杂等问题。
一条完善的溯源体系包括农户种植、仓储存储、物流运输、销售环节、消费者查询与监管组织监管等共同构成。根据粮食行业中目前存在的问题进行分析,粮食溯源体系中各环节隐私数据的保存问题,溯源环节中数据是否会被篡改是粮食溯源体系中监管的重点,针对该问题结合区块链系统进行设计粮食储备多链监管体系。粮食监管体系的结构主要是对粮食溯源链上事件的监管问题,从监管的角度去溯源事件。本文采用把上链数据进行区分,把各个环节的粮食储备管理体系中企业敏感数据与基础可公开数据进行区分,并分开存储到区块链上。
结合区块链账本不可篡改和可追溯的特点,把隐私数据与可公开数据分开,保证数据安全。可公开数据与隐私数据分别通过智能合约安装到不同通道,由于通道的自然隔离,使得重要数据得到保护。如表1所示,把上链数据进行区分,既保证了企业隐私的安全性,也保证了基础可公开数据的不可篡改性。
表1 监管供应链各环节信息Table 1 Monitoring the supply chain information
完善的粮食储备溯源体系不仅包含数据的处理,还要全程在政府部门的监管下进行。本文采用多链的设计,用来隔离溯源体系中各个环节的粮食储备管理体系中企业敏感数据与基础可公开数据,通过Fabric联盟链的多通道构建多链环境,设置监管链为主链的形式,由监管部门动态进行管理,监管每个环节并公示。
Fabric联盟链中多通道的自然隔离功能对链上数据隔离存储,如图1所示,在通道内分别创建生产链、仓储链、物流链以及加工链4个私有企业链用来存储各个企业的隐私信息,并在监管通道建立事件可追溯的监管主链,用来监管公开可追溯信息和用户查询,获取公开信息后进行公示,实现监管方与查询信息用户的交互。
图1 区块链网络的多链监管模型Fig.1 A multi-chain regulatory model of blockchain network
溯源体系中的各环节种植企业、仓储企业、物流企业、加工企业都需要先经过监管部门授权,验证权限后,企业的隐私信息将上传到区块链网络以及云数据库中。用5条联盟链多组织来模拟区块链网络环境,其中1条为公共链,4条企业私有链。每个企业为一个组织,每个组织设置两个节点,子链上节点通过智能合约参与记账,管理链上数据。主链为监管链,监管链上为多组织参与链,由各个企业私有组织的成员参与到主链共同记账,达到私有数据和公开可追溯数据的区分,使数据安全得到有效保证。
区块链网络配置如表2所示,监管主链成员由监管组织(Org1)的节点及溯源体系中各组织的节点通过监管智能合约共同参与监管链记账,维护监管账本。主链多组织中各个节点通过智能合约向消费者提供粮食溯源链上基础可公开数据查询接口。子链分别是生产链、仓储链、物流链和加工链,参与的组织分别是生产组织(Org2)、仓储组织(Org3)、物流组织(Org4)以及加工组织(Org5)。子链为单组织构成,模拟私有链来隔离隐私数据和主链公共数据。
表2 区块链网络配置Table 2 Block chain network configuration
对于区块链网络上不能保证数据不遗漏、缺失等问题,数据的隐私问题以及上链数据的准确性十分关键。本文采用链上链下数据存储模式,链上用联盟链中的CouchDB状态数据库,链下采用云数据库。上传到区块链上的基础可公开数据要先调用合约判断授权信息、数据格式信息以及身份认证信息是否正确;然后通过监管智能合约中上链方法把数据写在监管链中进行共识记账,节点数据库和产生的区块信息进行更新;同步更新到客户端监管界面进行公示。根据Map-Reduce特性,CouchDB状态数据库生成键值对方式存储,并更新到区块链的世界状态。如图2是物联网设备采集和人工输入等形式上传的公开可追溯数据,在其通过验证后,上传到监管链时CouchDB状态数据库中存储的信息。key为事件溯源关键字,对应的value为所存储的数据键值对。以监管链上信息举例,内容包括事件溯源参与节点上传的公开可追溯数据信息、区块高度信息和交易哈希值等。
图2 CouchDB内存储数据Fig.2 CouchDB storing data in memory
链上链下双存储模式会更有效节省链上存储空间,加快上链以及查询链上数据的速度,有效提高效率;链上数据监管更高效地保证用户身份的正确和上链数据格式的准确无误,为客户端针对事件进行质疑时能够高速溯源监管数据提供支撑。
智能合约是交易参与方进行交互的业务模型,用可执行的代码定义组织间的规则,使不同组织在触发条件后自动根据智能合约执行并记录在账本中。智能合约中的不同方法是多链多组织粮食监管体系中区块链部分的核心,以InspectContract为例,合约中的业务逻辑主要是基础可公开数据的上传和不同用户的数据查询。
监管数据上传是粮食参与企业将公开可查询数据上传到监管主链,包括判断授权身份认证、数据采集、数据格式判断、数据上链,如算法1所示。监管查询算法包含判断授权和事件溯源查询,如算法2所示。
算法1 监管数据上传算法
算法2 不同用户查询监管数据算法
基于粮食追溯链的多链监管模型,设计区块链粮食监管多链系统。该系统架构分为应用层、接口层、数据存储层和感知数据采集层。
应用层以网页形式面向监管部门提供监管人员动态抽查,授权企业权限等功能;事件溯源中各企业的隐私数据上传授权及可追溯查询;消费者对公开可追溯信息的数据查询及数据问题反馈等。
接口层封装4个私有企业链和监管主链中各自账本的写入以及查询接口;区块链网络中节点身份与客户端身份认证的接口;对消费者、监管者、企业用户提供查询数据的接口。
数据存储层是指链上链下双存储形式存储数据。区块链网络是用CouchDB数据库,链下用云数据库,对参与事件追溯企业的敏感信息与监管主链中公开可追溯信息进行存储,采用链上存证链下备份的方式保证对数据可追溯。
物理感知采集层主要是采集企业链和监管链上多种业务的基础数据。
区块链粮食监管多链系统是基于Hyperledger Fabric联盟链搭建的区块链网络结构,主要用Golang、Java、JavaScript等语言作为编程语言开发系统,智能合约的运行环境为Docker,链上数据库为CouchDB,链下采用云数据库。系统主要分为4个部分:客户端、服务器端、区块链网络端以及链下服务器端。业务逻辑以及用户操作如图3所示。
图3 粮食储备的多链监管系统Fig.3 Multi-chain supervision system for grain reserves
消费者的事件溯源业务逻辑是消费者通过监管部门公示,查看公开可溯源信息,对公示信息进行质疑,向监管部门进行反馈。监管部门收到事件反馈后对问题事件进行溯源,已授权监管用户通过关键值取链下数据库中对应数据,与区块链网络中对应数据进行对比,最后把回执反馈给消费者。
事件追溯企业通过感知层采集器收集相关数据,通过Web网页进行用户注册,待监管部门进行用户授权后将信息传到云数据库和区块链网络,区块链服务器判断授权用户信息,将上传数据的请求调用智能合约,通过智能合约审核用户信息,调用数据上传的方法,向网络发起交易,服务器端对数据进行排序、验证和共识,当校验完成后,参与记账节点更新账本,更新世界状态,完成数据上链。图4为监管链数据上链后的交易界面和监管交易数据界面。
图4 监管链上链信息Fig.4 Information on the chain of custody data
测试环境是基于Hyperledger Fabric联盟链,搭建在CentOS系统的虚拟机上,虚拟机配置为2.5GHz CPU、4核处理器和8GB内存。采用Hyperledger Caliper测试溯源系统,用户在输入数据到区块链上时,调用智能合约记账和查询数据过程中产生的时延和吞吐量。
为保证测试数据的普遍有效性,避免单次存储数据对区块链网络和粮食多链监管模型的影响,实验均采用30次执行结果的平均值,统一设置测试的数据数。图5是分别写入数量为100~1 500条数据时,事件溯源参与方用户写入和查询数据的吞吐率,由图可知一次性上链数据在100~1 300条间,吞吐量与上链数据成正相关,在1 300~1 500条数据时的查询吞吐率维持在160 T/s左右,写入吞吐率维持在40 T/s。从测试结果可以看出单次涌入大量数据,粮食追溯链的多链监管模型可以满足写入和查询吞吐量的基本需求。
图5 单次上链数据的读写吞吐量Fig.5 Read and write throughput of a single-link data
图6和图7是验证数据共识写入账本时,追溯链上多链粮食监管体系模型中产生的时延与查询账本产生的时延,是事件追溯参与企业上传信息通过监管智能合约上链和查询产生的时延。根据测试结果可知,由于监管链上公开可追溯数据由多组织多节点参与,共识记账上链的平均时延是1.171 s,公开可追溯数据查询的平均时延是0.05 s,能够满足粮食事件追溯数据上链以及查询的时间需求。
图6 共识记账时延Fig.6 Delay of consensus entry into account
图7 查询记账时延Fig.7 Delay of query account
(1) 通过对粮食溯源业务的流程分析以及对粮食监管的痛点分析,提出基于区块链的粮食储备多链监管模型。模型通过设置多链来分开存储私有信息与公开可追溯信息,保障数据安全,实现隐私保护;设计区块链网络中智能合约,实现判断授权信息、信息上链数据及查询功能等;设计实现客户端数据与区块链数据事件可追溯等功能。
(2) 基于联盟链Hyperledge Fabric搭建的粮食储备多链监管模型及系统,能够解决监管主链与企业数据的隐私与安全存储、授权管理、多节点管理等问题,实现了上链数据全程可监管,问题事件高效处理可追溯。
本文就粮食监管中的痛点问题进行分析,对更新粮食溯源系统中的数据安全方面有着重要意义。接下来会从模型的实用性角度分析系统的可行性,完善搭建粮食储备多链监管系统。