巫光福 ,王蒙蒙
(江西理工大学 信息工程学院,江西 赣州 341000)
生鲜农产品从采摘下来,并最终到达消费者手里,需要经过包装、加工、冷链、物流运输等多个环节[1]。然而,在这些环节中极易出现氧化腐蚀的现象,不仅容易造成大量的浪费,而且容易发生食品安全事故[2]。因此,对生鲜农产品供应链要求严格,不仅要求生鲜农产品本身的品质好,而且要对生鲜农产品供应链系统进行统筹规划和优化整个链条功能,才能保证优质的生鲜农产品到达消费者手里[3]。
目前,已有的生鲜农产品供应链已经初具规模,能够完成运输、仓储等基本的任务。但是存在不同参与者间信任度不够、信息不对称和产品安全无法保证等问题。这些问题会导致供应链中不同环节之间的协调效率低下,影响产品的生产和销售。为了解决这些问题,可以通过建立信任机制、建立信息共享平台等措施来实现生鲜农产品全产业链溯源,以提高整个供应链的运作效率和产品的质量[4]。
现有的生鲜农产品供应链溯源系统通常使用中心化架构和传统的数据库记录交易和企业间的交换数据,这会产生很大的弊端。首先,中心化系统只有一个可信赖的控制中心,面对大量的分级供应商,把大量的存储和管理负担放在一个中央组织上,存在中心化、溯源信息容易被篡改的问题。此外,每个公司为了信息安全和保守商业机密,只使用和管理自己独立的数据库,导致供应链中严重的信息缺口,信息难以在系统内流通[5],给数据共享带来障碍,影响了整个供应计划[6]。生鲜农产品供应链溯源系统亟需解决如实时调度能力差、信息易被操纵、供应链透明度不高、溯源机制不够完善和监管不到位[7]等问题,以实现完全的数据透明和保护机密性。
使用区块链技术对生鲜农产品供应链进行升级,并通过物联网等技术收集生鲜农产品生产到最终消费者的可靠数据[8],能有效改善生鲜农产品供应链溯源监管难、成本高、效率低和安全性差的问题。因此,该文将设计一种基于区块链技术的生鲜农产品供应链溯源系统,将生鲜农产品的全生命周期信息存储在区块链上,以实现信息不变性和可追溯性。并实现生鲜农产品供应链的交易系统,实现生鲜农产品的线上交易,确保交易安全可控。
区块链技术[9]是一种利用加密算法将数据生成按时间顺序组成链的数据存储手段。一个区块是一个包含数据以及来自前一个区块的哈希信息的记录,这将导致一个代表其自身唯一哈希的值。区块体中存储的是各个交易信息的交易记录,然后通过Merkle树的根节点校验区块中的数据判断是否被篡改或者攻击。这种验证方式保证了区块链的数据不可篡改性和安全性。正如文献综述[10]中所解释的,区块链技术应用于生鲜农产品供应链中有诸多好处,比如透明性、可追溯性、信息共享、统一调度、合约自动执行、监控以及不可篡改等。有望解决生鲜农产品供应链中几个不受信任的参与者之间的交易资源分配问题。
智能合约是在区块链上运行的一种不可随意纂改的计算机程序,同时是上层应用程序和底层区块链系统之间的媒介,可以实现处理和存储交易的信息和价值,也可以将信息和价值发送给其他账户,允许在没有第三方参与的情况下进行可信交易。智能合约的运行原理[11]一般是:区块链上部署并由所有节点共识确认后,按照预设的规则和条件执行和管理合约,自动化地执行和记录所有交易和操作信息,确保交易的可信和安全,最终完成合约执行。目前主流的智能合约设计包括Ethereum和Fabric[12]。其中在Hyperledger Fabric中,智能合约又称为链码(Chaincode),是将具体条款以计算机语言而非法律语言记录的智能化合同,运行在分布式的区块链的多个节点上,新建和调用都是由区块链的交易触发。
由于生鲜农产品供应链的复杂性,没有完美的模型可以代表生鲜农产品供应链。为了解决这些问题,该文采用区块链技术作为开发框架,提出一个基于区块链技术的生鲜农产品信息共享和可追溯框架(Blockchain-based Information Sharing and Traceability Framework for the Fresh Agricultural Produce Supply Chain,BIST-FAPSC)模型方案。
一般情况下,生鲜农产品供应链可按业务关系划分为供应链内部主体和外部主体。其中,内部主体包括农民、加工企业、物流公司、经销商等,外部参与主体是消费者和政府监管部门等[13]。
农民:农民是生鲜农产品供应链中的第一个调用智能合约进行交易的实体。农民生产大量作物,并负责确保和监控作物的生长细节,以及所有农业活动的其它信息,并由农民签署和确认之后,再将作物卖给加工企业。
加工企业:加工企业主要负责对作物消毒、清洁、挑选、保鲜、打蜡、分级和包装等操作,转化为最终产品,并进行详细的记录,然后通过数字标签将信息聚合到网络,再将成品卖给经销商。
物流公司:物流公司主要承接生鲜农产品的冷链物流。通过温度、湿度、压力和GPS系统等传感器,记录生鲜农产品的运输方式、时间、地点、发货人/收货人信息,上传生鲜农产品的环境条件和行驶轨迹。最终实现产品从产品所有者到购买者的可审核交付。
经销商:经销商主要分为分销商和零售商,负责从加工企业购买成品并销售给消费者。分销商通过从加工企业处购买成品来存入仓库,使用传感器和其他设备用于记录生鲜农产品的储存条件、时间和基本生理指标等信息,并负责将其分发给零售商。接着零售商再小批量销售给消费者。
消费者:消费者是消费产品的最终用户。消费者在购买商品之前,可以通过溯源系统验证生鲜农产品质量安全的可信度。
政府监管部门:政府监管部门是一个链下实体,主要用来监控管理整个网络和处理纠纷,对生鲜农产品供应全过程进行监管,制定质量标准,对交易纠纷、产品欺诈、涉及虚假数据等违法行为进行追查和责任划分。
生鲜农产品供应链的参与者中的农民、加工企业、物流公司、经销商必须记录生鲜农产品的来源等产品信息以及生鲜农产品金融交易信息。在所有记录的信息通过数字技术,比如条形码、RFID、NFC、二维码、在线认证和数字签名,以及传感器和执行器等授权后,互联网/网络作为连接基础设施传输信息,通过API将信息传输到网络,最后上传到区块链,所有信息经过验证和共识后,由整个供应链共享,确保生鲜农产品的真实性和透明度。
为了对生鲜农产品的质量安全进行全方位的溯源监管,该文设计了基于区块链技术的生鲜农产品溯源系统架构[14],如图1所示,包括基础设施层、数据传输层、数据存储层、智能合约层和应用接口层五个部分。
基础设施层:由部署智能合约的各种智能传感器、RFID和GPS等物联网设备组成。以区块链技术为核心,将物联网与产品的研发过程相结合,通过智能传感器设备对农产品的生产环境、存储状态、生产过程、运输过程等信息进行记录,并为其提供远程电子合同签署的底层基础框架,将采集的信息上传到数据库。
数据传输层:完成数据权限的审查,通过点对点网络进行节点间的数据传输通信,使用通信验证机制进行广播和验证数据的真实性。并通过加密技术和身份验证机制保护本地数据的安全性和隐私性,对数据上传者进行身份识别,验证通过才有权限上链采集到的数据。
数据存储层:通过物联网传感器设备对农产品的生产、加工、仓储和运输采集的数据进行完整记录,利用哈希算法将生鲜农产品的信息存储到区块链中并盖上时间戳,保证了信息数据不可篡改和数据的安全性。并将纳入区块链中的非公开性的隐私数据需要通过加密技术进行数据加密,只有在产品溯源时需要对整个流程进行全面检测时,通过加密解密技术进行隐私数据进行查询。
智能合约层:引进智能合约流程机制。生鲜农产品的流通过程都要通过智能合约进行记录和管理,并且规定供应链系统中各个环节的行为和规则,在满足特定条件时自动执行相应的操作。每个参与者都有一个独特的身份标识,通过该标识在区块链上进行身份验证和溯源查询。同时,专门的机构负责制定符合条件的上链规则,并确保规则的正确执行。随着生鲜农产品在供应链中的流动,参与者要通过智能合约记录和更新产品的状态,并将这些信息永久记录在区块链上,供后续查询和审计。
图1 BIST-FAPSC模型中的生鲜农产品溯源系统架构
应用接口层:为了多方企业用户方便操作业务,通过浏览器、客户端、网络服务为平台提供各种应用API和开发者工具,根据需求进行数据定制和软件开发,提高系统的可扩展性和灵活性,使用者只要在移动端进行身份认证,便可随时随地使用该平台操作业务。比如,供应链各参与方可以在经过授权中心认证的情况下,进行供应过程信息的输入和查询,各个参与方之间实行相互监督;政府等监管部门则还要对输入的加密信息,例如生产线及录入信息的人员进行身份权限验证,并对录入的信息进行核验和审查,确保录入信息的准确性与真实性,在产品出现问题时,及时溯源到出现问题环节,并进行责任认定处理;消费者可以通过系统网页端或者产品上的溯源二维码对产品的全供应过程进行溯源信息查询。
为了实现提案模型可追溯信息共享的目的,该文将采用Hyperledger Fabric平台构建BIST-FAPSC模型,选取多个重要信息存储到账本中,作为BIST-FAPSC模型的生鲜农产品信息。采用开发语言Golang进行智能合约的编写,智能合约算法如表1所示。在生鲜农产品供应链中,首先对生产商和供应商的结构体进行定义,然后验证两者间的交易过程,只有在合同内容和交易申请的执行条件达成一致时,才能将该智能合约部署到区块链上。最后,使用区块链客户端软件进行区块地址的连接,并且由Hyperledger Fabric实现交易提案模型的接口交互,完成智能合约部署,具体的步骤如下所示:
表1 BIST-FAPSC模型中的链码
(1)在实现过程中,首先引入包和shim库,其中shim层是节点与链码交互的中间层。通过使用shim包,可以获得链码和Fabric交互的接口,并且在链码中执行赋值、查询等功能都需要通过shim进行。同时,还使用peer包来获取链码执行后的响应信息。
(2)定义智能合约结构体和组件结构体,客户端可以通过使用函数名称和参数来初始化交易,从而实现Init函数和5个操作函数:queryFAP,produceFAP,processFAP,transportFAP以及deliverFAP。
(3)对等端可以通过链码来访问或修改账本,通常涉及到初始化和调用两种操作。在初始化或升级链码时,将调用init函数;根据参数调用相应的操作函数时,Invoke函数用于响应交易请求、查询或更新账本。
(4)在可追溯信息共享提案模型中,"invoke"功能主要由六个模块组成:initledger,queryFAP,produceFAP,processFAP,transportFAP和deliverFAP。每个操作函数具体实现功能,其中,initledger函数用于创建多个FAP记录的初始输入,queryFAP函数用于实时获取FAP信息和属性值,后面四个函数分别是在FAP生产、加工、运输和交付的过程中进行调用,用于修改组件状态和更新操作的时间。
(5)最后在main函数中调用shim.Start函数运行智能合约。
该文采用了区块链联盟[15]技术,以实现生产工厂、仓储中心、加工供应商、经销商和物流供应商之间的信息共享。生鲜农产品供应链的主要流程包括生鲜农产品的生产阶段、加工阶段、物流管理阶段和产品销售阶段。该文研究主要在供应的生产阶段和物流管理阶段。经销商首先订购FAP并根据其应有的时间安排FAP的生产。当生产出来的FAP达到交货标准时,加工工厂需要联系经销商和物流公司来安排运输。一旦参与者达成一致意见,FAP就会被运送到加工中心进行加工。经销商可以通过系统上的实时信息面板监控所有的操作过程。这个交易信息代表了生鲜农产品交易供应链中所有的供应信息,包括FAP信息、生产信息、发货信息和到货信息。所有与交易有关的数据通过数据层传输到区块链网络上,这种类型的区块链可以提供对参与者的信息控制和隐私保护,想要验证交易过程必须经过注册。图2展示了文中模型的交易流程,生鲜农产品供应链中的每一个操作都视为一种提案类型,区块链网络交易过程共五个步骤:
(1)提出交易。生鲜农产品需要在监管部门对原材料供应、农产品采购、农产品加工等一系列监管过程通过的情况下完成生产。同时运输业务也需要在此前提下开始进行,供应商通过客户申请将运输提案提交给受认可节点,即仓储、加工企业、供应商、经销商、零售商和物流方。所有参与节点必须记录生鲜农产品的种类、来源、规格、运输时间、运输状态和交易记录等信息。在所有记录的信息通过数字技术授权后,互联网/网络作为连接基础设施来传输提案信息。提案信息包括被调用的函数名称和输入参数,例如和“09/22/2022”,被调用的链码也应在提案中告知。
(2)执行提案。在执行提案时,认可的同行检查提案的有效性,负责将响应与签名一起发送回提案。通过节点验证供应商是否被合法授权执行提议,检查运输时间是否与订单进度一致等。只有在所有相关利益方的确认下,交易的真实性才能得到提升。此外,交易建议作为参数输入,以invoke命名链码来获得执行结果。每个执行捕获响应值、读集和写集。除了背书节点的签名外,这些信息还作为“提案响应”传回给供应商的客户应用程序。注意,此时账本并没有更新,这个过程可以看作是模拟执行交易以获得执行结果。
(3)订购交易。在完成执行提案后,将进行订购交易,该过程将对响应进行验证,检查背书节点的签名以及是否遵循了背书政策。为了避免作弊,下一步还会进行验证。随后,提案响应被组装为订购服务的事务,在该服务中,特定时间段内来自应用程序的所有事务都被订购。订购服务按时间顺序订购交易,并按通道将它们收集到新的区块中。订购服务无权访问详细的交易内容,也无权更新账本,这保证了操作的公正性和账本的安全性。
(4)验证交易。收集的交易区块会被广播到通道中所有对等节点,验证交易。每个对等方标记每个事务。经过验证和共识后的交易上传到区块链网络,通过预言机应用程序接口将交易信息传输到智能合约的链码上,并在分类账中更新世界状态,该信息由整个供应链共享,确保生鲜农产品的真实性和透明度。如果运输建议有效,FAP001在世界状态中的状态更改为“运输”,运行时间更新为“09/22/2022”。每个节点持有的账本同时被修改。
(5)通知交易。发出验证事件以通知客户端运输交易是否成功执行。如果提案获得批准,则可以进行运输交易。此外,节点将被告知新区块已添加到区块链,交易不再可编辑。
图2 BIST-FAPSC模型中的交易流程
该文设计的系统将在Hyperledger Fabric平台上进行仿真实验,通过对不同操作和系统配置下的交易时延进行测试分析,验证该原型系统的可行性,最后与现有几个农产品溯源应用系统进行对比,分析该系统模型的优势。
(1)参与者之间的信息共享。
生鲜农产品信息存储在BIST-FAPSC模型的分布式账本中,每个参与者都持有一份账本副本,可以在任何时候使用该账本访问FAP状态信息,信息存储在BIST-FAPSC模型的共享账本中。在FAP供应开始时,通过使用链码调用“initledger”函数添加到总账中,每个FAP的状态被设置为“空”。在此之后,账本中的FAP信息将根据生鲜农产品供应链的处理情况,由“orderFAP”,“produceFAP”,“transportFAP”,“deliverFAP”功能进行更新。请求客户端需要输入每个提案中的参数:args=[“函数名称”“FAPSP”“状态”“操作时间”],就可以修改账本中FAP的状态和操作时间。在每个流程中,当交易提案被批准时,FAP的属性就会根据输入参数进行修改。在BIST-FAPSC模型中,所有同行的账本都会进行同步更新,生鲜农产品信息会在不同的利益相关者之间进行共享。
图3 交易详情和FAP001订单的实际执行情况
(2)调度的实时控制。
通过提出“查询”交易,生鲜农产品供应链的参与者可以随时访问FAP信息。消费者和政府监管部门可实时信息了解FAP销售的详细过程。生产农场、物流供应商和生鲜农产品经销商等其他参与者可查询FAP信息获得详细的操作时间,以便监控并及时调整计划。例如,如果任何客户端发送带有输入参数的提案:Args=[“queryFAP”,“FAP001”],可获得SP=FAP001的FAP信息。交易详情如图3上所示,FAP001的实时状态是“发货”,2022年9月21日完成,而此前计划的发货时间是2022年9月22日,当上述提案被执行时,这一过程提前了。同样可以发送“订单”“生产”和“运输”的提案,获得每个流程的操作细节。这样就可以与计划进度进行对比,分析FAP001订单的实际执行情况,如图3下所示,计划从生产作业开始就提前了。通过使用BIST-FAPSC模型,每个进程的操作时间可由任何参与者查询,并与计划进度比较,可指示实际执行是否符合最初的订单需求。如果提前查询FAP订单交易的状态,这种变动情况可以立即得到解决。因此可以证明,所提出的模型可以方便地获取FAP订单交易的实时信息,并控制生鲜农产品生产运输交付计划的执行,以提前应对一些生产供应过程中潜在的干扰。
(3)信息的可追溯性。
系统中记录了所有的提案客户、提案运行时间和交易SP等信息。从FAP订单订购开始,FAP流通的细节会在系统模型中自动存储和更新,在任何FAP上执行的所有操作都可以在任何时候被追踪。每分钟的交易次数在图4中呈现,并且可以自动更新。图5呈现了系统中所有FAP完成的操作序列,包括每分钟的交易数量和区块数量都在平台上显示出来,以随时跟踪操作。
图4 每分钟的交易次数
图5 区块链网络示例
图3上展示了一笔特定交易的交易细节,在账本中,FAP001的状态和操作时间分别为“交付”和“09/21/2022”,这说明要求物流公司在2022年9月22日上午6点48分交付FAP001。此功能可以通过追踪FAP操作细节,追溯出导致FAP订单延迟交付或FAP质量缺陷的原始错误,解决FAP的溯源难题,大大提升生鲜农产品供应链的溯源管理,有助于解决食品安全问题,保证监管力度,减少欺诈行为。
区块链中的交易时延指的是从交易提交到交易被确认和写入区块链中所经过的时间。在区块链中,交易需要经过一系列的验证和确认,包括验证交易的有效性、验证交易费用、验证交易的合法性等。这些验证和确认的过程需要参与区块链网络中的节点共同完成,因此交易时延会受到网络拥堵、交易量、区块大小等因素的影响。较长的交易时延会影响用户的体验,并且也会影响交易的可靠性和安全性。在客户端节点上使用Caliper向测试网络提交不同数量的交易示例,在验证节点上监控区块链网络,记录和统计每个交易的确认时间和写入区块链的时间,测试最大延迟、最小延迟,并计算平均交易时延。实验结果如图6所示。
图6 交易时延
从实验结果可知,在处理不同交易量时,交易时延结果不同,随着输入量的增加,最大延迟逐渐增加,但增长的速度减缓,从125到130的输入量,最大延迟反而有所下降。平均延迟随着输入量的增加而减少,但不是单调的,有些输入量增加平均延迟反而降低。在输入量为25到100的范围内,最大延迟、最小延迟和平均延迟的变化范围较小,输入量对延迟的影响比较小,而在输入量超过100之后,平均时延变化不大,输入量对延迟的影响并不显著。综上,表明输入量对溯源系统的交易延迟有影响,但平均交易时延并不会随着交易输入量的增加而增加,由此分析得知,该生鲜农产品供应链的溯源系统具有较好的性能优势。
传统的生鲜农产品供应链系统通常采用中心化管理,其溯源数据易被篡改,交易系统安全性不高,且查询速度较慢,这些特点很大程度上限制了消费者的信息查询和监管方的管理能力。相比之下,基于BIST-FAPSC模型的生鲜农产品供应链溯源系统具有可靠且安全的溯源数据,由多参与方共同维护,并且信息查询方便高效。在与其他现有的区块链生鲜农产品供应链溯源系统进行性能对比分析后,结果如表2所示。
通过对比可以发现,现有的基于区块链技术实现的农产品供应链溯源系统,大多数只满足了供应链系统的可追溯性,尤其是在信息共享、实时调度控制、透明可追溯性以及供应链各环节的节点间数据交互性方面,则或多或少存在一些缺陷。而文中系统在供应链各环节的交互性、数据可追溯性、信息共享、监管能力、实时调度以及交易可靠性等方面均达到要求。
表2 生鲜农产品供应链系统性能对比分析
首先,详细介绍了溯源系统的框架及其开发过程,提出了一种基于区块链技术的BIST-FAPSC模型,以一个可视化平台展示该模型的功能,并对模型性能进行了评估,通过增强不同利益相关者之间的实时信息共享,提高供应链溯源管理效率,解决了生鲜农产品供应链中自动化信息共享、信息可追溯性和供应环节透明度等问题。同时,通过对智能合约的调整,该系统也可以用于解决其他传统供应链中的问题,验证了该原型系统的高可用性。
最后,总结了该模型的局限性和未来的研究方向。在未来的工作中,将质检中心、监管部门进一步整合到模型中,以建立一个完整的支持生鲜农产品供应链溯源系统,同时继续完善原型系统,例如开发一个功能完备的前端页面,对共识算法进行研究和改进,将基于区块链技术的生鲜农产品供应链行业的具体数据应用于实际,进一步验证该模型的性能。