基于区块链的茶叶可信溯源系统的设计与实现

2020-05-06 03:34汪家伟饶元常仲禹
黑龙江八一农垦大学学报 2020年2期
关键词:茶园二维码区块

汪家伟,饶元,常仲禹

(安徽农业大学信息与计算机学院,合肥230036)

针对商品的安全性及供应链存在的问题[1],当前已有一些应对措施,颜波等[2]运用RFID电子标签和EPC物联网技术,实现对产品的全程跟踪与追溯。王振辉[3]将二维码技术与溯源相结合,并采用混合加密算法防止二维码伪造。但是在这些追溯系统中,数据的采集录入主要依赖于地方监管部门或者产业核心企业,其中心化的特点无法根除,即仍然存在数据的不对称性以及其被主观修改的可能,且不易实现溯源信息共享[4]。

而区块链技术则为溯源提供了有力的技术支撑[5]。2008年,一位化名为“中本聪”(Satoshi Nakamoto)的学者发表了关于比特币奠基性论文,并于2009年1月实现了其最初版本,开始在一个开源的区块链上运行[6]。十一年来,区块链已发展出不同的结合模式,如今的区块链3.0,与物品追溯、医疗信息管理等领域有机结合。尚文倩等[7]基于区块链的分布式存储以及其他特征以跟踪新闻,实现新闻来源的可查性。Asaph Azaria等[8]利用区块链的独特属性,为医院患者提供全面、不可变的日志,并可在供应商和治疗站点访问其医疗信息,实现身份验证,机密性,问责制和数据共享。Marco Conoscenti等[9]研究区块链和点对点方法与促进分布式和私有设计的物联网之间的关系。Nir Kshetri[10]分析并论证了基于区块链的解决方案在许多方面优于当前的物联网生态系统,区块链的分布式特点使恶意参与者操纵和伪造的可能性降低。

在食品与区块链结合方面,Frank Yiannas[11]表明区块链驱动了食品透明度的新时代,指出区块链的去中心化、不可变、共识机制等特点是提高食品的可信度和透明度的原因。可见,区块链对于来源追溯、提高可信程度方面具有较大的优势和发展应用前景[12-17],并且现今在建立食品溯源可信追溯体系及多节点产品同步追溯方面存在一定的研究空间。针对上述问题,文章以茶叶为溯源对象,设计并实现了基于区块链的茶叶可信溯源系统。

1 系统设计

1.1 可信溯源系统总体框架

基于区块链的茶叶可信溯源系统围绕茶叶种植、加工和销售,从供应链涉及企业、消费者不同角度设计该系统[18]。如图1所示,系统包括供应链信息维护系统和可信溯源系统两部分,供应链信息维护系统提供茶园信息、施肥信息、病虫害信息、采摘信息、加工信息、销售信息的记录输入,并将其保存在各企业维护的本地数据库和区块链中、形成茶叶产品档案;本地数据库中的记录会定期上传数据到溯源中心数据库;在产品包装时,通过一定的编码规则,生成溯源信息的二维码,并将销售编号打印在茶叶包装上;消费者购买到茶叶产品时,可以通过计算机、智能手机、平板电脑等终端接入溯源系统,实现茶叶可信追溯源。

图1 茶叶可信溯源系统基本框架Fig.1 The basic framework of the trusted tea traceability system

1.2 可信溯源系统体系结构

如图2所示,可信溯源系统包括数据采集层、数据存储层、功能模块层和提供各种业务接口的应用层。应用层主要是与用户交互的部分,该层主要包括茶园信息、施肥信息、病虫害信息、采摘信息、加工信息、销售信息等管理和录入以及溯源查询等。数据层包含关系型数据库中的各条记录,区块链节点与交易的数据。而数据采集层支持物联网设备、智能手机、数据导入和手工录入等方式进行溯源信息的收集。

系统通过集成各模块接口实现管理员信息更改、日志消息查看,对茶园、茶叶批次、施肥记录、加工记录、采摘记录、销售记录等信息的查询和录入等功能,并提供溯源接口,输入产品溯源编号或扫描溯源二维码,即显示该产品对应批次的茶叶在供应链上各个环节的详细信息。在系统的数据可视化模块中,茶叶数据模块包括茶园、批次、产量、销量数据等,茶叶的销售渠道以动态地图的形式展示,各个茶园以饼图的形式直观展示其产量对比及所占百分比,销量统计以及施肥数据则以柱状图或折线图等形式显示给用户,且两种图表可以相互转化,并且将所需的图表信息保存至本地。

系统管理端对记录的录入和查询有操作权限,可随时查询某条记录在区块链中对应的哈希密钥,依据该密钥查询区块链中的数据,用户直接访问浏览器使用销售编号即可进行茶叶信息的溯源查询,扫描二维码即可在手机端显示茶叶供应链详细信息。对于权限的合理分配,一方面使数据的安全性、真实性得到保障,另一方面便于主体各尽其责、责不逾界。

图2 系统体系层次图Fig.2 System hierarchy diagram

2 关键技术

2.1 数据可信获取技术

对于传统的交易流程来说,由于商家与用户之间存在信任问题,需要第三方的中心机构或者企业进行背书,通过这样的形式,用户会徒增证明自己符合交易规则的资本和花费,使交易效率大大降低,交易成本居高不下,安全性也无法得到有效保证。使用区块链技术解决传统信任问题,即在区块链系统中的多个参与方无需第三方信用机构的佐证便可完成各种交易等行为,低成本地实现价值转移和信用转移[19]。

包含茶园所有人、采摘加工等阶段的负责人信息的数据字段都会以其加密形成的十六进制字串的形式存储在区块链中,以备溯源时的查询和事故责任追究,供应链过程中各环节的企业单位都与供应流程绑定,实现“有源可溯,有据可查”。在出厂过程中,各个包装袋上将打印销售编号和二维码,二者都唯一对应于产品,用户依据此二维码即可扫描查询出该产品在整个茶叶供应链流程中的所有信息。

图3 数据快速存取方案Fig.3 Data fast access scheme

溯源系统的总体方案结构如图3所示,种植信息、采摘信息、加工信息、销售信息各自扮演着区块链中节点的角色,大数据获取层信息采集物联网设备只进行数据加密和传输,通过部署在农业生产、流通关键环节的数据采集物联网边缘验证节点维护股权证明机制PoS(Proof of Stake),并把信息数据摘要作为交易向整个区块链网络广播,从源头解决数据信任问题。这些节点之间是相互平等的,且统一遵守区块链的共识机制。这些溯源信息将分别以传统数据库和区块链的方式分别进行存储。主要流程为:

对于节点而言,在流通各环节中,供应链上的节点通过RFID等硬件设备读取数据,以种植茶园节点为例,种植茶园将种植过程中的相关信息同时录入传统数据库和种植茶园区块链节点中。该节点通过加密算法,将溯源信息转化为十六进制字串,作为数据摘要存储至区块链网络中。当信息写入区块成功后,将会返回该条交易所对应的唯一哈希值,该哈希值作为表中的hash字段存入MySql数据库,便于取出进行溯源信息进行对比等后续操作。同样地,茶园和其他各单位将施肥信息、病虫害信息、采摘信息、加工信息和销售信息等录入到MySql中,加密后经对应节点发送至区块链中,并将返回值存入MySql数据库。在此过程中,茶园、加工单位、销售单位等节点相互监督、相互制约,共同参与区块链系统的维护,同样遵从共识机制,区块链中的信息都将同步至每个节点。

通过上述的系统整体架构以及基于区块链的数据存储方案,解决了溯源系统数据易被篡改的问题,能够保证数据一旦存入系统就无法更改。同时利用区块链分布式、去信任的特点,各个供应链环节对应节点之间相互平等且存在制约关系,数据多节点同步备份,大大削弱了现存追溯系统的中心化问题。

2.2 基于二维码的追溯码编码技术

茶叶溯源过程中供应链流程复杂、信息量大,且在运输时外包装存在破损的可能性,因此根据二维码的特点及应用方式[20-21],选择其进行追溯码编码与茶叶溯源过程十分契合。

系统基于QR Code进行了溯源码设计,将产品本身与溯源流程结合起来,商品使用追溯码编码技术,以“一物一码”作为解决方案,从而避免商品的仿冒,实现可信溯源。供应链流程标识码分为00、01和10,分别代表销售流程、批次信息和种植流程,以标识码为截取线将数据段按供应链流程分割,标识码后方为所对应流程的溯源信息数据段。在销售流程中,商家和产品拥有其对应的标识码,销售时间也是其中一个十分重要的数据段,将绝对时间转换为十位,即精确到秒的时间戳的数据格式。使用时间戳能够加大仿冒的难度,并且与绝对时间相比具有较短的位数,以防二维码数据点过多而造成扫描不易的情况。批次信息中选取出厂时间作为数据段。而在种植流程中,茶园编号为种植茶园溯源的检索条件,以此唯一确定茶园的各项信息。图4中的数据段表示001号茶园种植的猴魁茶叶产品于2019年6月5日19点53分17秒出厂,2019年6月10日7点41分32秒在安徽省合肥市某茶叶销售商售出。

图4 追溯码编码示意图Fig.4 Trace code coding diagram

基于此编码方法所生成的追溯码将唯一对应于茶叶产品,提供所处茶园位置、负责人等数据,以及供应链上对茶叶安全具有关键性作用的时间节点等信息。作为多平台溯源查询的重要组成部分,二维码会与销售编号一同打印在产品包装袋上,用户使用智能手机扫描二维码即可方便快捷地进行溯源查询,了解茶叶的基本信息和流通过程相关数据。

2.3 多平台溯源查询

系统对于多平台溯源查询,即数据的完整性及真实性验证进行了设计实现[22],用户在查询界面输入产品上所标识的销售编号或者直接扫描产品包装袋上的二维码即可进行溯源查询。系统提供网页溯源、手机二维码溯源、微信小程序溯源等多平台溯源查询。

用户在计算机、平板电脑、智能手机端访问溯源网页,输入唯一销售编号,相关溯源信息将返回给用户。使用平板电脑和智能手机端扫描二维码同样也可实现溯源信息的查询功能,以实现多平台产品真实性验证。在微信小程序端,用户可随时随地免下载进行产品信息追溯。

溯源查询方案设计模式如图5所示。

用户可借此直观地对比商家提供的数据和原始数据之间是否存在某环节信息的错误,并且了解产品所属茶园、批次信息、销售记录及关键流程时间等重要数据。

3 系统实现

系统实现了茶叶产品个体标识与种植、施肥、采摘、加工流程、产品流通等环节的集成,采用分布式去中心化的溯源信息系统维护形式,各供应链节点组成区块链网络,达成溯源信息真实可信的目标。

3.1 技术特征

系统主要由区块链技术、数据库技术、Java Web、微信小程序四部分作为技术依托。

3.1.1 区块链技术(以太坊)

作为成熟稳定、更新开发活跃、SDK接口丰富的区块链平台,以太坊是系统最为重要的组成部分之一。通过创建genesis.json文件,将系统所依赖的区块链设定为私链,以此与公网上的主链区分,增强系统的稳定性和可维护性。使用以太坊官方轻量级SDK web3.js可以调用暴露在外的RPC接口与本地以太坊节点相通信,并进行供应链其他节点的添加。在添加成功后,节点便参与至区块链系统的共识机制之中,区块链上各节点的交易信息、挖矿信息都将同步至其他所有的节点,在任意节点都可进行溯源查询,这也是该系统实现多节点同步追溯的基础。

系统通过SDK接口实现与以太坊区块链平台的交互,如图6所示。

图5 溯源查询方案设计Fig.5 Traceability query design

图6 数据与以太坊交互Fig.6 The interaction of data and ethereum

供应链节点通过jsp页面进行数据录入,并将溯源数据按照某种规则组合成固定格式的字符串后经加密形成相应数据摘要,将其作为input参数字段,使用节点默认账号调用sendTransaction方法,经由区块链网络广播和共识机制验证后永久写入区块链中,为溯源查询提供不可篡改的原始数据。交易在所需余额和气体限制等要求满足的情况下发起成功,返回一条十六进制字串,即交易的哈希值,该值唯一标识一笔交易。以该交易哈希作为索引,可在区块链中通过getTransaction方法检索到其所对应的交易,并返回该交易所存储在的区块的哈希值和编号,发送交易的账号、在交易中附带的十六进制格式数据摘要等重要内容。提取其中的input字串并进行解密,即可获得溯源信息,对溯源信息进行格式处理与操作,与jsp页面进行交互,对用户进行展示。

所以,采用区块链技术能够实现如下目标,即使当数据库中的数据被整体或者局部更改,区块链上的数据受约束于其一致性算法无法被修改,如对消费者而言至关重要的出厂时间等信息。而在去中心化方面,区块链网络由各节点共同维护,实现数据信息的分布式存储,信息不再由单一的中心节点进行维护,一定程度上提高了数据的真实性。

3.1.2 数据库技术

使用关系型数据库MySql提供基础信息的存储,维护系统在管理运行过程中产生的各类数据,为溯源查询提供数据支持。

3.1.3 Java Web

基于Java Web技术开发用户与系统间的交互界面,对普通消费者用户提供溯源接口,对管理员用户提供信息录入、信息可视化分析等功能。数据流经控制层、业务逻辑层、数据持久层等,实现溯源信息由前端至传统数据库MySql的存储。

3.1.4 微信小程序

小程序是一种无需下载安装即可使用的应用,以最低成本即可触及用户。目前的溯源系统基本不包含微信小程序端,系统包含微信小程序端顺应程序更为轻量级、低门槛的发展趋势,也为用户提供了更多的选择和更佳的使用体验。以微信小程序端实现对溯源信息的“即用即查”,对系统进行接入方式和使用维度的拓展。

3.2 具体实现与功能演示

系统主要以Java为开发平台。其中供应链管理系统部分采用B/S架构,而供应链溯源系统为消费者提供多终端溯源接口,其中网页溯源使用计算机、智能手机、平板电脑等即可访问溯源,通过智能设备扫描二维码后也可获取溯源信息,并实现微信小程序端的信息录入与溯源查询。

3.2.1 供应链节点管理

供应链节点位于同一条区块链上,其信息相互之间同步,可以在一个节点实现供应链全程信息追溯,并负责信息的录入和维护,如图7。

图7 茶园管理界面Fig.7 Tea garden management interface

供应链中茶园、企业单位等可以利用该系统的溯源机制降低成本与风险,提升产品质量安全的可信度,为其提供可靠的产品竞争力。

3.2.2 消费者用户查询

在网页端溯源信息查询界面中,消费者通过输入包装上唯一标识的销售编号,查询出MySql中的商家数据和区块链中的原始数据,便可直观地看到该产品的茶园种植采摘信息、供应链流通加工信息以及产品自身特点等具体数据。同样,用户可使用手机扫描二维码获取如图8的溯源信息,显示茶叶产品供应链信息以及数据是否已通过区块链校验。

3.2.3 微信小程序端

借助微信小程序优秀的生态环境,实现无需下载应用即可进行信息录入和溯源查询,使溯源和节点管理更加高效快捷。如图9所示为微信小程序端的信息录入界面。

图8 二维码溯源查询Fig.8 QR code traceability query

图9 微信小程序信息录入Fig.9 WeChat applet information entry

对于用户而言,用户在溯源查询页面中输入茶叶产品包装上具有唯一性的销售编号,即在网页端显示供应链的详细流程信息,用户可对比分别从区块链和数据库中获得的原始信息和商家信息,若二者内容表现一致,则数据库中的信息自录入以来没有被篡改过,数据可信、真实、完整。用户可在手机端扫描产品二维码查看溯源信息,界面为响应式布局,溯源信息显示清晰、便于对比。

4 总结

在分析茶叶从采摘到杯中的供应链过程的基础上,设计与开发了茶叶溯源系统,实现了溯源信息录入至传统数据库和区块链、信息检索、多平台溯源查询等功能,用户可通过多样方式追溯到产品的信息。系统通过调用以太坊SDK接口将数据存储在区块链中,充分利用区块链的去中心化、去信任、数据不可篡改等特点和优势,在多台计算机上部署节点并进行功能测试,实现溯源信息同步可查,溯源系统的中心化程度得到有效降低,提高了数据的安全性和真实性,并能在发生事故时快速责任追究至负责人,达到了预定目标。系统的不足之处主要在于goethereum客户端的部署及兼容性问题,节点同步稳定性有待加强,优化节点配置将是下一步的研究重点。

猜你喜欢
茶园二维码区块
茶园飘香
二维码
小康二维码
周宁生态茶园
《红楼梦》的数字化述评——兼及区块链的启示
区块链助跑财资管理
红六军团威震茶园渡
一场区块链引发的全民狂欢
区块链助力企业创新
茶园观色