应用于食品追溯体系的区块链架构设计
2019-12-12仵冀颖马志远
仵冀颖 杜 聪 马志远 郑 刚
(国家市场监管总局信息中心 北京 100088)
0 引 言
改革开放以来,我国经济发展的特征属于发展型国家经济体制,国家在市场资源配置中起着关键性的决定作用,即资源配置、经济发展目标、发展策略等都由政府发挥核心作用,在市场监管领域中由政府驾驭市场。随着我国市场经济的不断发展,政府和市场之间的关系不断发生变化,政府在市场中的行为逐渐转变为公平监管、维护公平竞争、维持市场秩序、塑造良好营商环境等,我国的市场监管体系进入重构阶段。
2015年国务院办公厅下发《国务院办公厅关于加快推进重要产品追溯体系建设的意见》(以下简称《意见》),明确要求对食用农产品、食品、药品、稀土产品等重要产品建立追溯体系,利用现代信息技术,提升全过程的安全监管、风险控制水平,创新市场监管模式。《意见》要求,食用农产品、食品、药品、主要农业生产资料、特种设备和危险品、稀土产品等在统一规划下分类建设追溯体系。统一规划明确了“强化企业主体责任”和“发挥政府督促引导作用”的要求。根据《意见》要求,追溯体系要能够覆盖重要产品从原材料供应直至消费者的全链条,同时积极发挥第三方技术机构的作用,为监管部门提升监管水平提供技术支持。
近年来,互联网、信息技术不断发展,新技术、新产品、新成果不断涌现。云计算、大数据、物联网、5G、区块链等新的技术在各行各业中的应用不断推广,冲击了市场环境,也给市场监管体系重构带来了机遇和挑战[1-3]。食品安全是关系到国计民生的重中之重,加强对食品安全的监管、提高食品安全水平是国家的重要目标,也是市场监管总局以及各级市场监管机关的重要任务。
本文重点探讨区块链技术在追溯体系中的应用,以食品作为实例,探讨搭建链接食品的原材料供应商、生产商、仓储物流平台、经销商、分销商、零售商,以及技术机构、消费者和监管部门的区块链,实现食品相关生产、销售、监管信息全程共享、实时可追溯。以区块链平台为依托,根据不同参与方的需求开发应用端系统,构建完整的食品追溯体系。依托区块链技术,探索创新食品追溯体系的构建,完善监管手段,提升监管的科学化、规范化水平。
1 区块链技术在食品追溯中的应用
1.1 区块链技术背景
区块链是近几年来信息技术领域的重点研究内容,最初用于比特币交易,随后陆续应用在金融、供应链以及税务等行业中,成为了解决多参与方信任问题的有效技术手段[5-6]。区块链并不是一种全新的技术,其本质上是一个去中心化的数据库,基于非对称加密、共识机制、智能合约、分布式账本等传统的信息技术构建的新型应用架构。区块链网络架构通过合理利用各项技术,满足了去中心化的数据信任、数据安全以及通用性等要求。同时有效利用时间戳技术,实现了数据的可靠性保证及不可篡改,因此能够在跨主体的业务应用中解决以往只能通过业务协调解决的问题[4]。
早期区块链产品搭建完全去中心化的公有链,通过共识机制、智能合约实现多参与方的可靠数据交换,不执行实时事务处理[7-9]。后期区块链产品不断应用于事务交互处理的信息化中,通过联盟链、私有链等方式实现在一定范围内的去中心化,即有效去中心化[10-11]。这类区块链产品设有专门的管理机构或管理平台来控制链上节点的验证和授权,这种有效去中心化与区块链完全无中心化的初衷并不完全一致,但能够满足部门内部或行业内部的可靠性互联互通。
1.2 食品追溯中的应用
根据《意见》要求,近年来,各地区和有关部门利用信息化技术积极探索构建重要产品的追溯体系。各类产品生产及经营主体、技术机构等根据业务需要陆续建立了信息化系统,实现了业务流程的电子化处理和重要信息的电子化存档。同时部分产品根据需要已经构建追溯信息化系统,包括生产企业自建的追溯系统和第三方检验认证机构主导建立的追溯系统两类,实现了一定范围内、一定产品的可追溯。这些业务系统和追溯系统利用物联网、云计算等信息技术,同时运用大数据分析等技术手段不断提升风险预测、市场反应评估的水平,一定程度上为产品监管提供了有效手段。
以食品监管为例,市场监管部门依托现有的信息化手段,主要通过第三方检测机构出示证书、生产商或销售商向监管机构备案信息、监管机构抽检等方式实施市场监管。这种监管模式仍存在一些问题:(1) 监管以信息填报的信息化系统为基础,手工填报录入的数据存在人为主观错误录入和误操作输入等可能,信息化系统多为企业自建,数据的真实性、准确性不高;(2) 由不同业务主体主导开发的业务系统、追溯系统等,应用的开发技术不同、数据格式和数据标准不统一,针对同一产品的编号也不同,因此无法实现对同一产品的全流程追溯;(3) 传统的监管方式以执法、抽查为主要手段,这种监管手段以事后监督为主,不能做到有效的实时监控,一旦涉及仲裁,往往需要漫长的取证过程。
构建食品追溯体系涉及多参与方信任的问题,本文引入区块链技术,利用区块链不可篡改、数据一致性、可追溯性等特点,有效构建政府监管机构、企业主体、第三方监管机构等的联盟链,从而实现食品相关各类产品信息的全流程共享。由于区块链中对数据的产生、交易、流转、计算、分析、应用等过程全程留痕,因此数据质量具有前所未有的强信任背书,数据的分析效果、挖掘质量等都有保证。
2 食品追溯体系的区块链架构设计
《意见》要求,在重要产品监管过程中要“强化企业主体责任”和“发挥政府督促引导作用”,因此在追溯体系建设过程中既具有企业主体多参与方的特点,也依然保留政府市场监管机制的督促引导作用,并不是完全的无中心化。此外,完全无中心化的公有链的智能合约机制执行的实时性、处理速度等无法满足在线实时业务办理的要求。而纯私有链与现阶段的分布式架构、云平台架构等并无本质区别,只是增加了一个不可篡改、数据可信的功能,对于全链条、多参与方的应用并不适用。因此在食品追溯体系建设过程中应用区块链技术,应当构建以政府市场监管机构为核心的联盟链。本文提出一种区块链架构设计,包含用户层、应用系统层、接入层以及区块链平台四层。具体网络架构见图1。
图1 区块链网络架构
2.1 用户层
用户层主要指各参与方,具体到食品追溯系统中,包括原材料供应商、生产商、分销商、零售商,以及监管部门、技术机构、消费者等。不同参与方根据参与角色与系统进行不同的交互,有的作为数据产生者与区块链网络进行数据传输,有的则主要是数据查询的节点。用户层直接访问应用系统,从用户层的角度来说,整个基于区块链的追溯体系相当于一个沙箱,用户的体会、操作与访问一般信息化系统并无明显区别。
2.2 应用系统层
应用系统层通过接入层接入区块链平台,其作用类似于传统架构下的应用系统。应用系统层调用网关接入平台的方式主要有SQL和API两种,本文建议基于微服务架构进行应用系统开发,从而通过API方式接入区块链平台。微服务架构是一种全新的应用架构理念,通过对业务进行梳理,提炼出共性的服务,从而改变传统应用架构强耦合的特点,提供松耦合的服务支撑。微服务架构是一种分布式的应用架构,因此特别适合于分布式数据库架构的区块链。在追溯体系中,参与方往往具有多重角色,例如食品生产商掌握着食品的生产信息,同时也关注原材料、销售情况以及消费者反馈信息等,因此基于微服务架构的应用系统能够快速响应参与方需求,通过统一的API网关进行服务功能的调用。
(1) 数据生成问题。应用系统根据业务需要产生各类数据以及日志记录等,但并不是应用系统中生成的全部数据都需要上链,全量数据一般仍然保存在应用系统本地数据库中,本文称这些本地数据库为节点服务器。节点服务器的一部分作用类似传统架构中的应用服务器,其中存储了对应业务的全量业务数据,部署了基础操作系统、数据库等。用户层根据自身需要登录访问或直接处理节点服务器。用户层在自身的节点服务器中发布各类应用,满足自身各类业务处理需要。在区块链网络中,节点服务器除了上述一般性要求外,还部署应用了区块链技术,包括:节点之间的点对点网络传输技术、分布式账本技术、不对称加密及验证技术等。
针对食品追溯的应用需求,为了完整构建可靠、可用的食品追溯体系,本文梳理了各参与方必须提供的上链数据。生产企业上链信息包括产品配方信息、原辅材料管理记录、生产加工记录、成品管理记录、销售管理记录、风险信息收集记录以及产品召回信息等。
供应商是食品追溯的流通环节,作为整体追溯的重要环节需将流通的相关标准信息上链,具体包括:生产企业名称,生产批次信息,采购信息,资质审核记录,供应商审批记录,食品原料、食品添加剂和食品相关产品名称,规格,生产日期,保质期,进货数量,进货日期,使用信息等。
经营商是整个食品追溯的末端环节,直接对应消费者。经营商掌握了除食品基本信息外的重要客户评价信息,因此需按标准上链的信息有:产品名称,产品编码,规格,生产日期及批号,经营企业名称,数量,销售区域,销售记录,商品发货信息,出库时间,出库数量,责任人,发往单位及接收人,消费者点评信息,消费者投诉信息等。
技术机构是整个追溯流程中的第三方环节,能够将食品的抽样、采样、检测结果等信息按标准上链,为其他环节的安全追溯提供信息支撑。具体的上链信息包括:生产企业信息,供应商信息,经营企业信息,消费者点评和投诉举报信息,监管部门发布信息等。
(2) 数据一致性问题。对于区块链架构来说,数据一致性是应用的难点之一,即如何保证面向用户层的应用系统中存储的数据与区块链中的数据一致。由于区块链具有不可篡改性,数据一旦记账成功则不可能再修改,而区块链的记账结果也不是实时反馈的。
本文提出的微服务架构的应用系统采用异步处理模式,即发出数据上链记账的申请后会处于等待状态。当微服务得到上链记账成功的通知后执行节点服务器中的数据库更新操作,而一旦记账失败能够执行反交易处理。图2给出了基于本文架构实现食品追溯体系数据一致性的过程:应用系统层执行操作后完成业务流水的记录,启动调用区块链平台,同时在节点服务器中对应的事件表中留下此次调用的记录,完成操作。应用系统层等待区块链平台反馈,反馈记账成功则更新时间表,反馈记帐失误则执行业务补偿操作。
图2 数据一致性过程
为了保证链上数据的准确性,需要定期进行数据对账处理。由于区块链的不可篡改性,对账的过程以区块链平台中的数据为准。
具体对账流程见图3,由应用系统层发起对账操作请求,提供业务数据的ID和对账文件,区块链平台收到请求后查询对应的ID及对账文件,应用系统层执行对账操作,以区块链平台中的数据为依据对应用的结果做相应的处理。
图3 对账流程
由数据一致性和对账处理流程可以看出,基于区块链的食品追溯体系中数据以区块链平台中的数据为依据,一旦数据上链则不可再次更改,这就给应用系统的开发和用户层的使用提出了更高的要求。传统应用系统使用出错后允许操作员再次修改或由管理员修改后台数据库,这些操作在区块链架构的系统中都是不允许的。例如,原材料供应商录入材料有误,上传链上后生产商、销售商、消费者等能够查询的都是错误的材料。不可修改的系统架构给应用系统的日常使用、程序开发等都提出了更高的要求。
2.3 网关接入层
区块链网络和应用系统之间通过网关接入层连接。本文提出微服务架构的应用系统,因此通过API方式完成调用。网络接入层的主要功能包括通信网关、事件监听,同时会配合微服务应用框架,完成上文中提到的数据一致性、对账功能等。网关接入层的具体流程见图4。
图4 网关接入层流程
区块链平台受自身技术限制,包括共识机制、智能合约等,服务能力和处理速度有限,以太网等公有链甚至无法满足实时业务处理的要求。为了协调应用系统和区块链平台之间的服务能力,接入层采用异步处理的模式。应用系统层可多次调用接入层,而接入层只在一定时间内调用一次区块链平台。这种机制允许应用系统层在一定时间内对上链数据进行修改。
区块链平台中有新的数据上链、记账簿发生变化后,需要通过接入层的事件侦听机制通知应用系统。区块链平台本身为了保证数据一致性,不支持单独对外调用。轮询机制见图5。
图5 轮询机制
2.4 区块链平台
区块链平台是整个追溯体系的核心,主要包括协议层和扩展层。协议层是整个区块链网络最底层技术。早期区块链网络应用于事务处理,基于开源的区块链产品,一般封装为类似操作系统的成熟产品,对外提供API调用。
协议层中具体还可区分为数据层、网络层、共识层。数据层中创建规格相同的区块通过链式结构构成主链。本文为了保证食品追溯信息的安全、可信,不允许生成侧链。随着新的产品上链,区块链主链不断延长,网络层依靠P2P技术,每一个节点都可独立对外服务,节点能创造新的区块并对外广播。节点生成区块的有效性则通过共识层中的共识机制来判断,常用共识机制包括PoS、PoW等,本文应用拜占庭容错机制。
扩展层主要包括智能合约及针对具体应用的定制开发等。区块链中的标准智能合约一般包括资产一致性检验、多方确认信息交互等简单逻辑的合约。针对食品追溯区块链系统,要制定专门的智能合约约束业务过程。智能合约定义了生产者、供应商、技术机构以及监管方上链信息的数据格式,从食品的原材料采购、生产、销售、供应商、技术检验,直到监管机构获得的投诉反馈信息等全过程的业务状态以表单形式在智能合约中明确规定。此外,智能合约中还需明确不同业务状态之间发生转换的触发条件等。整个区块链的实现过程为:明确上链的各方身份账户,编写智能合约从而对完整的食品追溯的业务过程进行详细定义,通过触发业务初始条件后开始工作。
针对食品追溯体系在扩展层部署管理平台,包括了数据交换的目录体系以及查询模块、综合管理模块等,配合应用系统的微服务架构以API的方式提供对外服务的接口。其中:综合管理模块提供日常监控、接入管理、CA证书发放以及智能合约管理、公共账本浏览等功能。管理平台目录交换体系针对对应节点服务器中存储的业务数据进行编目,以生产商节点服务器为例,对产品的全量数据按照种类、生产日期、销售记录等进行分类编目,对用于交换的目录进行单独编目。在依托区块链进行数据查询时,一般先交换的查询模块中的信息,在确定是符合自己要求的数据后,再进行全量数据的下载,这种操作方式能够大大提升区块链处理实时业务的效率。
综上,基于区块链的食品追溯体系工作流程如下:各用户方根据自己的业务和权限访问节点服务器,根据上链信息要求将相关全量数据上传到节点服务器中。节点服务器中的目录体系记载全部上链数据目录,应用系统自动将上链数据同步到目录体系中,通过解密服务器进行加密后目录体系权限管理模块对外发布至链上的全部节点。同时,在节点服务器中生成新的索引节点。链上的每一个节点服务器都按此流程操作,将全部索引节点联系起来生成最终的食品追溯的完整索引链,从而实现食品相关信息的全面归集。通过检索索引节点,即可查询相关信息的分布情况,即实现快速跨区域、跨业务主体的信息检索。检索到的信息能够附加区块链中对应此次查询的哈希验证信息,所有区块链中的数据均具有数据发布主体的签名,具有不可篡改性。进一步,如果希望获取全量信息,则可通过跨链的接口调取对应的全量信息。
3 问题讨论与分析
区块链作为一种新兴技术应用于食品追溯仍有问题尚需进一步的讨论与分析。
(1) 区块链各参与方可信度问题。区块链中的上链数据由各个参与方提供,虽根据共识机制信息会自动上链,而非人工处理后主动上报,但仍存在虚假数据、人为错误数据等问题。区块链最终是解决“技术可信”而非“世界可信”。一旦甄别出虚假数据,整个区块链需要整体更新,从而影响区块链的工作效率。为解决可信度问题,一些专家提出与物联网结合的方式,即直接在原材料供应、生产商供应等环节自动采集数据,从而避免人为因素对原始数据的干扰。
(2) 应用系统开发问题。区块链技术要求数据一旦上链不可更改,应用系统中的数据变更、后台修改等都不再可行。区块链网络中链接了多个应用主体,传统IT架构模式下各应用主体使用独立的应用系统,通过ESB、MQ等机制完成数据交换共享,因此应用主体可以自主决定哪些数据可以交换,交换前是否做哪些处理,甚至交换后仍可重新交换覆盖前面的数据。应用区块链架构,不仅仅是上链区块链网络的问题,对原
有应用系统的开发、日常使用、维护等都是新的挑战。
(3) 跨链交易的问题。本文提出的食品追溯体系应用联盟链,随着追溯产品的不断增加、追溯体系的不断完善,甚至是跨境产品的不断纳入,相对独立的现有区块链网络与其他区块链网络之间的互联互通问题不可避免。不同区块链由于底层技术的不同,例如链结构、共识机制、智能合约等,跨链协作的难度很大,目前跨链技术是研究热点,但尚未能真正商用。目前主要的跨链技术有公证人机制、侧链中继机制以及哈希锁定等。这些机制需要引入第三方中介,或是只能用于传递信息不能转移数据资产等,在当前情况下无法应用于食品追溯体系中。
4 结 语
本文重点研究区块链技术在追溯体系中的应用,根据已有研究成果可知,物联网、5G、高清视频监控、人工智能、大数据分析等技术应用于追溯体系中也可获得较好效果。本文具体分析了用户层的构成、接入层的异步接入方式、应用系统的微服务架构和接口方式,以及区块链网络的主要技术等,最后对区块链在实际中应用存在的问题进行了讨论。
区块链在很多实际的应用场景中已经得到了较好的应用,例如区块链电子发票、区块链金融、区块链存证等,但目前主要集中于联盟链或私有链等方式。跨链技术还停留在理论研究的阶段,尚无实践应用。食品追溯体系涉及的产品种类多、产品链长,单纯的联盟链方式仍有局限,构建完整、统一的区块链追溯系统尚需进一步研究。