张国荣 周琪云
摘 要:由于假药事件层出不穷,药品的安全问题成为了公众关注的重点。在传统供应链模式下,供应链各主体相对独立,没有进行信息交互,数据存储在中心数据库中,这导致了药品数据不透明、中心数据被篡改等问题。文章针对传统的供应链系统存在的问题,提出了基于区块链的药品供应链系统,采用Hyperledger Fabric作为联盟链开发平台。供应链各主体作为联盟链中的节点加入区块链网络,进行药品数据的上链以及区块的共识操作;在药品运输过程中采用物联网技术,利用RFID标签对运输的数据进行双重验证,确保了数据的安全性和真实性;在数据存储方面,引入IPFS文件系统,将上链数据存入IPFS,对返回的哈希值进行上链,实现数据的“链下存储,链上索引”。
关键词:区块链;联盟链;物联网;供应链;药品溯源系统
中图分类号:F274;F49文献标志码:ADOI:10.13714/j.cnki.1002-3100.2024.10.027
Abstract: Due to the endless incidents of counterfeit drugs, the safety of drugs has become an important issue of public concern. In the traditional supply chain model, each main body of the supply chain is relatively independent, there is no information interaction, and the data is stored in a central database, which leads to problems such as drug data being opaque and central data being tampered with. In view of the existing problems of the traditional supply chain system, this article proposes a blockchain-based pharmaceutical supply chain system, using Hyperledger Fabric as the alliance chain development platform. Each main body of the supply chain joins the blockchain network as a node in the alliance chain to upload drug data and perform consensus operations on the block; during the drug transportation process, Internet of Things technology is used, and RFID tags are used to double verify the transported data to ensure the security and authenticity of the data; in terms of data storage, the IPFS file system is introduced, the on-chain data is stored in IPFS, and the returned hash value is uploaded to the chain to achieve "off-chain storage and on-chain indexing" of data.
Key words: blockchain;alliance chain;Internet of Thing;supply chain;drug traceability system
0 引 言
随着人们生活质量不断提高,人们对健康方面的意识也在不断提高,因此,与健康息息相关的药品的市场规模不断扩大,导致了供应链的快速增长,涵盖药品的生产、流通、销售等方面。药品供应链追踪对保证药品质量有着至关重要的作用[1],然而传统药品供应链模式也暴露了信息流通不畅、缺乏可追溯性以及数据造假等问题,因此,国家和企业也在考虑采用先进的技术来改善药品供应链的管理,以提高药品的质量和安全性。例如,引入区块链、物联网以及大数据分析等技术,这些技术经过广泛的应用,提高了药品的可追溯性和透明性,有助于减少药品假冒、欺诈和流通等问题。
在药品供应链方面,从一般供应链到运用物联网技术再到运用区块链技术,越来越多的学者针对如何加强药品的安全性以及真实性做了研究,李诗杨等[2]构建了药品双渠道供应链模型分散式与集中式决策下的理论模型。黄莉娟等[3]将第三方物流服务商引入到药品供应商链系统,并对药品供应链的博弈进行了分析。曹允春等[4]通过区块链技术的特征定性分析药品逆向供应链的可行性,并结合系统动力学方法对药品逆向供应链构建仿真模型。黄哲等[5]针对传统供应链流通环节冗余、供应链主体间信息不能共享的问题提出基于SCOR模型的药品供应链评价指标体系,并与区块链结合,解决了信息共享及资金流等问题。Alam等[6]通过区块链技术与二维码的结合来验证市场上的缺陷,增强了药品安全性。Musamih等[7]利用智能合约和去中心化的链下存储消除了对中介结构的需求,提高了产品的可追溯性。
1 相关理论介绍
1.1 区块链概述
区块链是一种去中心化的分布式账本技术,它将交易记录以及其他数据以块的形式链接在一起来实现安全、透明和不可篡改的数据存储。每个数据块都包含了前一个块的哈希值,形成了一个链式结构。区块链的应用领域非常广泛,最著名的是加密货币(比特币)的底层技术,但它还可以应用于数字交易、供应链管理、身份验证等领域。由于其具有安全性和透明性,区块链被认为具有革命性的潜力,有助于提高交易效率、降低成本,并促进可信的数据交换,因此受到企业,尤其是金融、供应链等机构的追捧[8]。
1.2 相关技术
1.2.1 Hyperledger Fabric
Hyperledger是一个开源项目,由Linux基金会于2015年发起,旨在促进区块链技术的进步。它涵盖了全球各个领域,包括金融、银行、物联网、供应链、制造等行业,致力于建立一个开放的平台,以满足不同行业的需求,并简化业务流程。本文在药品供应链主体之间利用Hyperledger搭建联盟链,生产厂商、物流商以及销售商作为联盟链内的一个节点加入区块链网络。
1.2.2 IPFS
IPFS是一种点对点的分布式文件系统,其目标是建立一个全球性的、能够通过内容哈希地址访问的文件储存和传递系统。与传统的基于中心服务器的Web架构不同,IPFS采用分布式网络协议和技术,将文件分散储存在网络的多个节点上,从而提高数据的可靠性和可用性。这意味着无论文件在何处,其内容都是可验证和可访问的,而且没有单一故障点,为用户提供更加去中心化和弹性的数据存储和访问方式。本文在供应链各主体数据上链时将数据存储到IPFS中,通过返回的哈希值经过联盟链内节点共识后存储在区块链网络中。
1.2.3 RFID
RFID是一项自动识别技术,旨在追踪、识别和有效管理物品、动物或个人。它依赖射频通信原理,允许数据的传输和接收,以实现对物品的独特标识和跟踪。这一技术可以帮助实现对物品的智能管理和监控,而无需直接接触它们,从而提高效率和安全性。本文在药品出厂时贴上RFID标签,各供应链主体将要上链的数据存储至RFID标签内,收货方通过扫描RFID标签的内容与上链数据对比,实现对药品数据的双重验证。
2 供应链系统的流程分析
基于区块链的药品供应链管理系统涉及3个关键环节:生产厂商(包括加工厂)、物流商以及销售商(医院或药店),覆盖了整个药品供应链的流程,从药品的生产包装到物流运输再到最后的医院或药店,覆盖了整条供应链流程,从而确保了药品的可追溯性和安全性。在这个系统中,消费者能够使用药品编号来溯源他们所购买的药品。如图1所示,各个供应链主体通过建立区块链形成联盟链,在这个联盟链中,每个主体都被视为联盟链中的一个节点,供应链主体可以拥有多个节点,意味着生产厂商、物流商和医院可以有多家参与者,他们负责将自己的数据通过智能合约上传到联盟链中,经过各节点共识后形成区块,最终保存在区块链中。
生产厂商:在药品生产阶段,生产厂商负责生产药品,然后贴上RFID标签,将药品存放在仓库中等待分发。在RFID标签上,生产厂商需要把上链的数据写入标签内,并附带上自己的签名,私密数据需要进行加密处理。随后,生产厂商将同样的药品数据通过节点客户端打包,调用智能合约接口进行药品数据上链操作。
物流商:物流商主要负责的是按照医院和药店的订单需求进行配送,当物流到达指定地点或者中转站时,对RFID标签进行读取,验证标签内的数据是否与区块链上的数据一致,能够保证源头数据的真实性。同样需要将物流信息写入标签,同时要上链的信息通过节点客户端调用智能合约接口进行药品数据上链操作。
销售商:销售商也就是购药方,包括医院和药店,销售商也是供应链环节中的目的地,销售商在拿到药品后首先验证信息是否与链上数据一致,然后将药品进行存储及出售。当药品出售后,销售方需要对销售信息以及用户信息进行上链操作,涉及到用户的隐私信息时需要进行加密处理。
消费者:消费者是整个药品溯源过程中的最终用户,消费者有权了解所购药品的基本信息和质量。如果消费者只是希望追溯药品的来源和历史,他们可以作为游客使用系统,输入药品编号来查询相关数据;但如果消费者希望对所购买的药品进行反馈,则需要在用户注册后,登录系统进行药品反馈操作。
监管部门:监管部门作为系统中拥有最高权限的节点,能够实时监控药品的流通情况以及最终药品的详细交易信息,如果发现假冒伪劣的药品或者在药品流通过程中出现了违规情况,监管部门人员可以及时通知消费者,并收回有问题的药品以保证消费者的权益。
3 区块链药品供应链系统的设计
3.1 架构设计
总体架构设计是复杂系统开发过程中一个至关重要的环节。它不仅要考虑系统的整体组织和结构,还需要将理论概念转化为具体的设计方案,以满足需求分析阶段所确定的需求和目标。这一阶段的任务是将抽象的概念转变为实际可行的计划,确保系统能够以有效的方式满足用户的期望。因此,将系统的总体架构分为用户层、应用层、合约层、区块层和数据存储层五层,系统架构图如图2所示。
其中,用户层主要由生产厂商、物流商、销售商、监管部门和消费者及系统管理员组成,他们根据各自的需求进行相关的工作。应用层是用户与区块链系统互动的平台,在使用系统之前,用户需要完成注册并进行身份验证,管理员对系统中的用户进行管理及权限操作,供应链的各主体可以进行数据上传和溯源操作。合约层则是客户端节点与区块链交互的中介,供应链各主体可以通过调用合约接口录入信息,也可以调用查询接口进行溯源操作。在区块链中选用Hyperledger Fabric联盟链作为底层平台支撑,每个供应链主体都是联盟链网络内的一个节点,完成数据的上链、共识等操作。数据存储层包含支撑业务流转的Mysql数据库、联盟链内状态数据库以及存储上链数据的IPFS文件系统。
3.2 系统功能设计
根据对系统需求的分析,将系统的功能设计分为3个模块,分别是系统管理模块、信息上链模块和信息查询模块,见图3。
3.2.1 系统管理模块设计
系统管理模块包括用户管理和权限管理,在区块链网络中,用户必须经过授权才能加入网络并执行相关操作。用户在注册完成后,系统管理员会进行初步审核,审核通过后调用智能合约,请求联盟链中的成员进行共识验证。一旦验证成功,系统会为该用户分配一个唯一的地址,这个地址将作为该用户的唯一标识,同时,该用户也将被添加为新的节点,成为联盟链网络的一部分。
3.2.2 信息上链模块设计
信息上链模块由药品生产厂商、物流商以及销售商根据不同的业务需求在系统内录入信息;当有信息录入时,各供应链主体首先进行身份认证,登录药品系统,然后调用智能合约接口,传入需要上链的数据。生产厂商需要上链的信息主要包括药品编号、药品详细信息(如生产日期、批次号、出库时间、相关质量检验报告、负责人信息)以及企业的工商信息等;物流商需要上链的信息主要包括药品编号、物流信息(包括拿到药的时间、中转地点、药品批次号、负责人信息等)和企业工商信息等;销售商上链的数据包括药品编号、药品信息(包括药品批次号、拿到药的时间、销售时间、销售地点、负责人信息、购买人)、销售商工商信息等。
3.2.3 信息查询模块设计
药品系统中各供应链主体将各自的数据上传后,系统将所有上链信息进行整合。由于角色的不同,拥有的溯源权限也不同,监管部门拥有全部的溯源权限,可以查看上传的隐私信息以及购药用户的加密信息,溯源的主体主要为消费者,可以通过唯一的药品编号查询药品的整个流通信息。
3.3 数据存储设计
药品供应链系统中涉及大量的溯源数据,区块链是一个去中心化的账本,需要对每个交易和数据块进行永久存储。随着时间的推移,这将导致存储成本逐渐增加,并给区块链系统带来巨大的存储压力。为了缓解存储压力,引入了IPFS文件系统,实现了数据的“链下存储,链上索引”。存储模式如图4所示。
3.4 智能合约设计
智能合约是一种基于区块链技术的自动化合同,它们是一系列编程代码的规则和条件,智能合约的代码在事先定义的条件得到满足时会自动执行,无需中介或第三方干预,在去中心化应用中扮演重要角色,供应链中的节点通过部署智能合约链码与区块链进行交互。在本系统中,链码主要有两种功能,主要实现药品数据的上链和查询操作,客户端节点通过调用已经部署在通道内的链码进行相关的操作,调用的流程图如图5所示。
由图5可知,需要调用发布合约接口的有生产厂商、物流商和销售商,他们需要将各自的数据通过合约接口上传至区块链网络,经过联盟链内的节点共识后形成区块,永久保存在区块链上。而调用查询合约接口包含药品生产信息、物流信息、销售信息以及查询全部信息。在供应链系统中,供应链主体、监管部门以及消费者,他们可以通过唯一的药品编号对指定的药品进行溯源查询。
3.5 联盟链网络结构设计
根据业务的需求,系统采用Fabric搭建联盟链平台,环境部署在Docker容器中,采用java语言编写智能合约链码。首先生成网络拓扑结构,通过配置模板信息定义组织成员的结构,根据联盟链网络的设计规则编写网络配置文件,用于生成创世区块和通道。把配置好的节点加入到通道中,节点由order节点和peer节点组成,每个供应链主体对应一个组织且一个组织内有一个节点,因此该节点同时充当背书节点、记账节点和锚节点的角色,不同组织间通过锚节点进行交互。每个供应链主体需要根据各自的业务需求在通道内部署智能合约链码,进行药品数据的上链以及查询操作。在部署智能合约链码时,通道中的成员需要对链码的参数进行投票,决定是否通过链码,当链码安装完成后,节点客户端就可以通过java sdk调用链码的功能。联盟链中的节点配置如表1所示。
4 总结与展望
本文先对传统的供应链系统所存在的问题进行了分析,针对存在的不足提出了基于区块链的药品供应链系统,并对此系统进行了分析与设计,在药品运输过程中引进物联网技术,实现药品供应链、区块链和物联网的结合。其中区块链的去中心化和防篡改的特性为药品供应链系统带来了高度的透明性,使各方能够实时查看和验证药品的流动和状态,这有助于防止假药、伪造和滥用情况的出现,提高了药品的安全性;通过引入无线射频技术,在接收方收到货时通过扫描RFID标签上的内容与链上的数据对比,可以对药品信息进行双重验证,从而实现药品数据的真实性。在数据存储方面通过引入IPFS文件系统,对药品数据进行链下分布式存储,减轻了区块链的存储压力。在未来的日子里,笔者将在系统分析与设计的基础上,进行以下两部分工作:第一,结合实际需求,完成系统的实现工作;第二,对联盟链内的pbft共识算法进行优化,通过减少节点间的通信量加快上链数据的共识速度,提高系统的用户体验。
参考文献:
[1] 荣俊美,朱立龙.政府管制下双渠道药品供应链质量控制策略[J].系统工程,2019,37(5):99-108.
[2] 李诗杨,但斌,周茂森,等.限价政策与公益性影响下药品双渠道供应链定价与协调策略[J].管理工程学报,2019,33(2):196-204.
[3] 黄莉娟,彭涛,许泰宁,等.第三方物流服务商参与下的药品供应链博弈分析[J].物流工程与管理,2022,44(7):58-61.
[4] 曹允春,林浩楠.区块链视角下过期药品逆向供应链构建研究[J].中国药房,2019,30(24):3342-3349.
[5] 黄哲,徐阳,徐凤翔.区块链技术背景下药品供应链评价模型的构建[J].沈阳药科大学学报,2021,38(2):211-216.
[6] ALAM N,TANVIR M R H,SHANTO S A,et al.Blockchain based counterfeit medicine authentication system[C]//2021 IEEE 11th IEEE Symposium on Computer Applications & Industrial Electronics(ISCAIE),Penang,Malaysia,April 3-4, 2021, IEEE,2021:214-217.
[7] MUSAMIH A,SALAH K,JAYARAMAN R,et al. A blockchain-based approach for drug traceability in healthcare supply chain[J]. IEEE Access,2021,9:9728-9743.
[8] 曾诗钦,霍如,黄韬,等.区块链技术研究综述:原理、进展与应用[J].通信学报,2020,41(1):134-151.