基于联盟区块链的进口农产品溯源系统研究

2022-07-29 06:48王志瑞刘亚军
江苏农业科学 2022年14期
关键词:区块农产品节点

应 毅, 王志瑞, 刘亚军, 任 凯

(1.三江学院计算机科学与工程学院,江苏南京 210012; 2.东南大学计算机科学与工程学院,江苏南京 210096;3.南京工业大学浦江学院,江苏南京 211200)

1 研究现状和相关技术

1.1 传统的农产品溯源信息化技术

农产品溯源体系以生产、加工、仓储、运输、销售等流程为主线,记录和管理从田间到餐桌所有环节的产品信息。溯源体系涉及3类主体,第1类是产品质量的监管机构,包括各级市场监督管理局、各级卫生健康委员会;第2类是产业链相关企业,包括生产商、加工商、物流服务商、分销商、零售商等;第3类是末端消费者。

建立农产品溯源系统是对产品质量监督与控制行之有效的技术手段,一旦发生质量安全问题,通过各种信息化方法能够快速追溯到产品的来源和流通途径,定位责任主体,及时召回有问题产品。传统的农产品溯源系统是以中心数据库为基础,结合软件开发技术、网络通信技术、物联网技术构建的管理信息系统。产业链企业提交产品信息至溯源系统;质量监管部门调取产品信息监督质量安全;消费者查询溯源系统获取产品溯源信息(图1)。

无论是由政府主导,还是第三方承建,在传统的农产品溯源系统中,依赖单一中心数据库的数据存储方式都存在数据安全问题,无法从技术层面完全杜绝编造、篡改数据的可能。产业链上下游主体处于复杂的博弈关系中,在彼此无法完全信任的情况下,在产生纠纷时容易出现质疑溯源信息真实性的局面,进而举证困难,难以明确责任。与传统的溯源链条稍有不同,在进口农产品的溯源体系中,处在产业链上游的产品供应商通常是境外企业,它们与产业链上的其他主体之间仅仅是商业合作关系,而不是隶属关系。鉴于利益诉求不同,此类主体顾忌的不仅仅是硬件损坏、黑客入侵、数据丢失等意外情况,更多的是监守自盗的发生。

区块链技术具有非集中化、不可篡改、可追溯、高可信、高可用等特点,为构建非互信环境下的数据共享系统提供了新思路。将其应用于溯源系统中,可从技术层面保证溯源信息的真实性,提升溯源流程的透明度和可信度,有效保障“政府-企业-消费者”三方利益。

1.2 区块链技术

区块链技术起源于一篇署名“中本聪”所撰写的著名论文《Bitcoin:a peer-to-peer electronic cash system》,并以此为理论基础,实现了一种构筑在对等网络上又无需任何金融机构背书的数字货币和电子支付系统。经过近10年的发展,区块链技术逐步独立于比特币,宏观上看,它是利用加密链式区块结构来验证与存储数据、利用分布式节点共识算法来生成和更新数据、利用自动化脚本代码(智能合约)来编程和操作数据的一种全新的非集中化基础架构与分布式计算范式。在经历了区块链1.0“数字货币”、区块链2.0“数字金融”2个阶段后,区块链3.0“商业区块链”呈现出非集中化与集体维护、不可篡改与可追溯性、高可信、高可用等4个方面的技术价值。

根据节点参与方式和应用场景的不同,区块链又分为公有链和许可链。为了实现分布式数据的一致性,区块链的事务处理能力和区块生成速度是有限的。比特币是典型的公有链,任何节点都可以自由参与,并需要一个激励机制(挖矿),造成节点众多、效率低下,比特币网络的交易速度大约只有7笔/秒。私有链、联盟链、企业链都属于许可链。许可链引入身份验证机制,只有获得授权的节点才能加入网络,这使得许可链上的节点数大大减少,且不需要激励机制,系统的运行效率更高、交易成本更低。因此,许可链是当前商业应用领域的主流。

在溯源体系中,农产品产业链的参与者构成一个利益共同体,但同时又不能完全信任,在现实中存在合作关系或交易关系,但不是隶属关系,所以农产品溯源系统选用许可链中的联盟链。

尽管存在名称使用差异、甚至混用概念的现象,但是应该看到,相当一些学者对美国学的起源、发展、理论与方法等方面的认识趋于一致。美国学作为一个独立学科,是随着美国综合国力的强盛,随着美国文化的独特性逐渐得到认可才在美国学界兴起并得以发展。跨学科、关注文化研究被认为是美国学的基本特征。

Hyperledger Fabric是超级账本(hyperledger)下的一个开源框架项目,其前身为IBM Open BlockChain项目。不同于比特币和以太坊,Fabric是专门面向企业的联盟链开发平台,特别提供了完备的身份认证和权限管理、可插拔的共识协议、即插即用的模块化组件和可配置架构,智能合约的编写支持主流计算机语言(Java、Go、Node.js)。这些差异化设计使得Fabric具有较强的业务需求适配性,被广泛应用于金融、医疗、政务(公证、征信、审计、投票)、物流供应链(供应链管理、产品溯源)等多个领域。

1.3 账本数据和状态数据

商业区块链要求以区块链平台作为基础,构建1个企业级应用系统,必然离不开数据存储的支持。fabric网络中的每个合法参与者都可以持有完整的数据副本,包括账本数据(ledger)和状态数据(state database)。账本数据以链式结构保存一系列有序的、不可变的交易记录,它基于二进制文件的形式存储,默认的区块文件大小上限为64 MB,一个账本能保存的最大数据量约为61 TB。状态数据用于记录交易执行的结果(类似于比特币的账户余额),它基于Key-Value分布式数据库的形式存储,支持插件化的数据访问,可选用谷歌 LevelDB或Apache CouchDB。LevelDB支持主键查询、复合主键查询、主键范围查询、主键历史查询;CouchDB除了支持以上查询外,还支持富查询(非主键属性查询)及分页。

1.4 节点

Fabric网络由众多节点构成,按照功能不同,节点主要分为2类:对等节点(peer节点)、排序节点(orderer节点)。每个对等节点都拥有1份完整的数据副本和智能合约程序,它具有记账功能(committer)和背书功能(endorser)。背书服务主要执行智能合约;记账服务主要持久化账本数据和状态数据。排序节点只包含账本数据,不包含状态数据,排序服务主要对形成共识的交易记录进行排序并生成区块。共识行为由所有对等节点参与形成,智能合约触发的交易执行由对等节点和排序节点协作完成。

2 进口农产品溯源系统的架构设计

进口农产品溯源系统采用5层架构模型,自底向上依次是数据源、数据层、网络层、服务层、应用层(图2)。

数据源来自进口农产品产业链上的生产商、加工商、海关、物流服务商、销售商等在各自环节获取到的与溯源相关的产品信息。数据层的功能是对数据源提供的产品信息进行存储。账本区块以Merkle树为基础保存交易记录,区块头包含时间戳并采用Hash算法进行加密;区块体的内容是以非对称加密算法处理后的交易记录。选择CouchDB保存农产品的状态数据。网络层是区块链平台信息传输的基础。在对等网络环境中,每一个节点都具有相同的信息地位,网络信息的传播以点对点的方式进行,这是区块链非集中化特点的体现。共识机制是网络中多个节点对一笔交易记录是否提交到账本以及提交的顺序达成一致的过程,它可以解决分布式环境下如何保持数据存储一致性的问题。服务层是系统功能实现的核心。智能合约是能在区块链平台上执行的业务代码或数字化协议,它是应用层与数据层交互的接口,提供数据上链、数据读取等功能。同时,服务层也规定了节点接入、身份验证的规则,它根据PKI(公钥基础设施)规范由CA(证书授权中心)为授权节点颁发数字证书和密钥文件,以确保节点之间的安全通信。应用层通过Web浏览器页面、移动端APP、微信小程序、可用于二次开发的API等多种形式满足用户使用溯源系统的需求,包括监管部门激活溯源码初始化产品信息、产业链企业记录各环节产品信息、消费者查询产品溯源信息等。

3 进口农产品溯源系统的功能实现

3.1 网络部署

根据上述系统架构模型的设计和农产品产业链流程的分析,构建基于联盟区块链的进口农产品溯源系统,系统依托Hyperledger Fabric实现,其网络拓扑结构见图3,涉及到的主要软件及版本包括Hyperledger Fabric 1.4.11、Hyperledger Fabric CA 1.4.2、Ubuntu 16.04、Docker 18.06社区版、Docker Compose 1.22、Go 1.10、区块链性能测试工具Hyperledger Caliper 0.4.2及Node.js 8.17。

系统总计部署9个网络节点,其中5个对等节点、3个排序节点、1个CA服务器节点,对等节点和排序节点组成Fabric对等网络。CA服务器负责完成针对网络节点和用户的注册、鉴权、身份管理、证书颁发/更新/撤销等安全许可工作;对等节点负责背书、记账和数据存储;排序节点借助于Apache Kafka组件实现交易排序,并在排序服务接口中加入基于BFT(拜占庭容错)协议的算法。

3.2 存储结构的设计

在生产到销售的流通过程中,农产品会经历众多环节,每个环节关注的产品信息是不同的,存储结构规定了各个环节需要提交到溯源系统中的产品信息的内容,具体要求见表1。产业链各环节企业需要正确提交该环节的产品信息,其中主要产品信息是消费者查询溯源信息时的展现内容,它多与时间、产品质量、源端/末端企业有关;次要产品信息用于当产品出现安全问题时追溯问题环节、定位责任主体使用,也关注中间商的业务情况。

表1 产品信息在溯源系统中的存储结构

3.3 溯源码的设计

进口农产品的产业链冗长且复杂,对于同一个产品,虽然有众多不同环节的产品信息,但仍然须要选用格式统一且唯一的溯源码,才能便于产品数据的采集和管理。溯源码是产品销售时承载追溯信息、直接展现给消费者的统一代码。当前,条形码标签仍然是使用最广泛的普通农产品标志方式。

EAN·UCC全球统一标识系统是全球范围内通用的商业语言,可有效用于对农产品的标志。它通过对农产品从生产到加工、从仓储到销售各环节对象的标志,使产业链有效衔接。一旦出现安全问题,可以通过条码标志进行追溯,查出问题出现的环节,基至可以追溯到产品生产的源头。所以,溯源码采用EAN·UCC-128条码作为数据载体,条码设计方案为GTIN(全球贸易项目代码)+产品日期+产品产地,共32位(图4)。溯源码具体的编码结构见表2。

表2 溯源码编码结构

出于规范使用的目的,溯源码应由监管机构统一规划和管理。农产品产业链源头企业向监管机构申请溯源码;监管机构审核申请后在溯源系统中激活溯源码、初始化产品信息,并在线下分配溯源码;产业链各环节企业根据溯源码更新溯源系统中的产品信息;消费者购买商品后根据溯源码在溯源系统中查询产品的溯源信息。可见,溯源码贯穿于追溯管理的全流程。

3.4 智能合约的实现

智能合约在Fabric中也被称为链码(chaincode),它是实现用户定制功能的可编程协议。在区块链金融应用中,智能合约定义了交易规则,可按照规则自动运行而不受人为干预,相当于使用程序和算法来代替仲裁和合同的执行,实现“代码即法律”的目标。农产品溯源系统通过调用智能合约来操作账本数据和状态数据,主要包括查询操作和更新操作(增加、更改)。在Fabric中使用Go语言编写智能合约,Fabric提供的Init()方法用于系统初始化,Invoke()方法用于交易执行或数据访问。在Invoke()方法下定义3个参数:功能类型functionType、溯源码tracingCode、产品信息productInfo,functionType对应3种接口完成功能不同的业务需求(表3)。

表3 进口农产品溯源系统中的智能合约设计

智能合约程序会部署在每一个对等节点上,对等节点保存有完整的数据副本,所以查询操作在本地即可完成,无需牵涉到其他节点。由于共识机制,更新操作需要网络中的其他对等节点和排序节点参与工作(图5)。由图5可知,对于更新数据的共识达成是在模拟执行过程中完成的,任一对等节点模拟执行失败都会导致本次更新数据无法提交,系统使用预处理的方式保证各个对等节点数据的一致性。

4 应用与试验分析

为了提高进口农产品溯源系统的实用性,还应向使用者提供界面友好、操作便捷的可视化交互方式,包括基于浏览器的Web应用、移动端APP、微信小程序等。图6为Android端APP进行溯源信息查询的结果界面,消费者输入溯源码,即可浏览该产品的生产、通关、仓储、物流、销售各环节信息。

Fabric平台的出块参数在一定程度上会影响系统的整体性能。设置出块超时时间(BatchTimeout)为20 s、区块最大交易数量(MaxMessageCount)为 5 000 笔、区块首选规模(PreferredMaxBytes)为 2.5 MB、区块最大规模(AbsoluteMaxBytes)为 100 MB,设置出块条件为“新交易触发”。在上述参数条件下,系统满负荷运行1年,每个对等节点最多产生数据为3.76 TB,该数据规模完全可以被商业应用接受。

采用区块链性能测试工具Hyperledger Caliper对进口农产品溯源系统进行负载测试,从吞吐量和延迟时间2个维度评估系统的可用性和工作效率。Caliper模拟大量用户,以并发提交业务的方式,自动化重复执行测试用例,获取不同负载情况下的性能指标测量值,确定系统所能提供的最大服务级别。

设计更新操作(label:transfer)和查询操作(label:query)2类测试:更新操作进行5轮,总计提交2 000笔/轮,每轮并发提交分别为50、100、150、200、250笔/s;查询操作进行2轮,总计提交 5 000笔/轮,每轮并发提交分别为200、400笔/s。测试结果(系统吞吐量、平均延迟时间)如表4所示。对于更新操作,系统吞吐量随着并发提交量逐步增长,当并发提交量为150笔/s时,系统吞吐量达到峰值112笔/s,此时平均延迟时间为4.06 s(图7)。对于查询操作,并发提交量为200笔/s时性能最佳,系统吞吐量为196笔/s、平均延迟时间为 1.47 s。由于查询操作只需要1个对等节点负担,而更新操作的过程波及全网络,所以查询操作的性能要好于更新操作。在实际应用中,查询溯源信息要远远多于更新产品信息,这与溯源系统业务基于区块链技术来设计是相符合的。

表4 性能测试结果数据

总体来看,进口农产品溯源系统的吞吐量为110~200笔/s,平均延迟时间为1.5~4.0 s,在可用性上,具有较好的用户体验,在工作效率上,具备承载企业级应用的能力。

5 结语

近期,传染性更强的新冠病毒变异株(Delta、Delta+、Lambda)导致境外多个国家和地区的疫情反弹。国内的疫情防控工作从“人防”转变为“人物同防”,对进口农产品的有效追溯成为保障人民群众健康安全的重要手段。本研究以Hyperledger Fabric为基础平台,构建基于联盟区块链的进口农产品溯源系统,系统利用区块链非集中化、不可篡改、可追溯等技术特性,不仅可以实现进口农产品从境外产地到境内消费者的全流程跟踪管理,还解决了产业链上下游之间的“信任问题”。

区块链是与生俱来的信任机器,是在完全不信任的环境下建立信任机制的技术,本研究将区块链技术成功应用于进口农产品溯源系统,并证明了不借助第三方平台建立数据共享体系的可行性,以期为区块链技术在其他领域的应用提供新的思路和方法。

猜你喜欢
区块农产品节点
农产品网店遭“打假”敲诈 价值19.9元农产品竟被敲诈千元
CM节点控制在船舶上的应用
Analysis of the characteristics of electronic equipment usage distance for common users
打通农产品出村“最先一公里”
基于AutoCAD的门窗节点图快速构建
区块链:一个改变未来的幽灵
各地农产品滞销卖难信息(二)
区块链:主要角色和衍生应用
区块链+媒体业的N种可能
读懂区块链