基于区块链的药品供应链溯源系统设计与实现
2022-08-18陈良娟叶春明
陈良娟,叶春明
(上海理工大学 管理学院,上海 200093)
0 引言
随着社会稳步向前发展,人们对于药品的安全意识也在不断提高。然而药品供应链所涉及的复杂程序使得消费者购买药品很难直观判断药品是否存在安全问题,更无法确定是在哪一环节出现了问题。为了保障消费者的身体健康免受不良药品的影响,提高公众对药品行业的信心,应用区块链技术建立安全可信的药品溯源系统,将提高药品在供应链中的信息透明度,有效地解决当前药品溯源领域所面临的一些问题,例如药品数据的真实性和完整性问题、监管追责问题、商业隐私数据保护问题、信息共享效率问题等。区块链所具备的技术特征使其在溯源领域拥有天然优势,从去中心化方面看:参与方可通过智能合约自动执行交易且需多方达成共识,交易自治,去中心化程度高;从信息防篡改方面看:所有交易信息均存储在区块中,需多个参与节点共同确认且每个区块都有交易信息副本,数据透明,信息防篡改;从数据安全性方面看:数据使用非对称加密技术处理,只有用对应的私钥才能解密,数据安全性高;从监管追责方面看:所有区块链上的信息都可以查询到,当产品出现质量问题时,监管部门可及时定位责任人,精准追责。因此将区块链应用到药品溯源有助于建立来源可查、去向可追、责任可究的药品全链条追溯体系,筑牢药品安全底线。
溯源技术是目前供应链管理的关键技术,其发展经历了从二维码、无线射频识别技术(RFID)再到区块链技术等。蔡勇等探索并设计了基于二维码的中药溯源体系,对中药在生产、流通等过程中的外在信息进行追溯。Liu P等着眼于追溯时重要信息的编码问题,设计了一种基于RFID的溯源方案,对解决产业链的数据追溯问题具有重要指导意义。Ding J等考虑将二维码和RFID相结合,设计出一种可实现药品安全追溯的技术方案。Lu Qinghua等通过使用区块链技术构建了数据应用平台,能够兼顾数据的可追溯和可信任。可见从溯源技术出现之后国内外学者就进行了相应的研究。
而在药品溯源方面,传统的药品追溯相关研究主要集中于对药品溯源体系的构建、防伪以及监管等方面。谈慧利用RFID的技术特点设计了药品供应链管理系统的总体框架和业务功能,并将其应用于南京医药集团部分企业,同时详细介绍该系统中RFID标签信息设计和信息采集体系。徐海飞、文光俊等为加强药品监管力度,创新性地提出将RFID技术应用于药品供应链管理系统,增强药品供应链管理的效率。胡漾等通过综合已开展的药品电子监管工作探讨药品监管新模式,得出物联网技术将有助于提升药品监管效率和优化药品监管工作格局的结论。孙婷等通过实例对国内药品电子监管模式进行研究,分析目前监管体系存在的若干问题和形成原因,并给出相应的改善建议。
区块链技术的兴起使得学者们尝试将该技术引入到溯源研究中,主要集中在食品、医疗以及价格昂贵的奢侈品领域,实现溯源性能的提升和改善。比如刘耀宗等结合区块链技术与射频识别技术构建多方参与的溯源模型,很大程度上改善了数据信息的透明性和安全性。赵磊等着眼于分析生鲜食品行业的用户需求,应用区块链技术重新搭建了生鲜食品行业的信息链。丁庆洋等引入区块链技术,与物联网技术相融合建设电商产品信息溯源平台,有效解决了B2C销售网络中产品防伪的问题。由此可见可以借助区块链技术来改善传统药品溯源模式和体系的不足,对此国外学者研究相对国内较早。Wang Deng等提出基于区块链技术的药品追溯方案,构建出药品可追溯系统。QI LIN等为了解决药品质量安全的监管问题,设计出一个基于以太坊的药品溯源系统,对药品在生产、流通、销售等过程中的数据进行存储。而国内的医药溯源多以理论阐述和系统架构搭建为主。肖丽等针对中药材供应来源广导致数据被分散存储,各方信任度低等问题,构建了基于区块链的中药溯源体系。刘鹏飞等就建立基于区块链的药品溯源管理系统,指出其技术架构和设计方案,同时系统支持。禹忠等利用超级账本的Fabric平台开发了医药防伪溯源系统,便于消费者全面获取药品溯源信息。封啸等建立的信息可溯源体系不仅保障药品安全,也在一定程度上打击药品造假的违法行为。综上所述,区块链应用于溯源领域的发展潜力被普遍看好,利用区块链的有关特性来改善药品供应链的溯源模式,是对旧问题采取新方法的探索。本文的目标是建立一种基于区块链的药品供应链溯源系统,创新性地融入投诉与召回模块,综合药品的溯源、防伪和监管功能于一体。选择Ethereum(以太坊)作为开发平台,根据药品生产、流通各环节节点的功能模块需求设计智能合约,开发相应的前端页面,并验证系统的有效性,为医药行业的药品溯源提供参考。
1 区块链技术
1.1 区块链相关概述
区块链作为一种新兴的分布式数据库技术,链上发生的交易都会产生时间戳,它记录了交易发生的时间,而通过一定的哈希算法生成的哈希值与其前后区块串联,由此可对发生的交易进行追溯。在区块链网络中,节点间的数据交换采用基于加密算法的数字签名技术进行验证,无需双方互信即可保证数据的安全可信。根据去中心化程度的高低,区块链可分为公有链、联盟链和私有链。基于区块链的药品供应链溯源系统需要加入供应链上代表性参与主体,同时需要隐私性好、交易速度快、成本低等特点,因此综合考虑联盟链更适合应用于药品供应链溯源体系当中。
1.2 开发平台
目前区块链技术相继应用于各大领域,出现了许多去中心化应用和区块链平台,但目前成熟的区块链平台主要有Bitcoin、Ethereum和Hyperledger Fabric三种。在进行选择时应尽可能综合考虑规模、活跃度、稳定性以及节点部署难度。既要避免平台软件漏洞的产生,不会发生平台瘫痪,又要在区块链平台开发过程中出现技术问题的情形时,可以与其他开发者进行交流沟通来解决问题。Ethereum(以太坊)是具备编程功能的区块链开发平台,通过智能合约可以实现任何的业务逻辑。目前支持多种编程语言,但其官方主推的是图灵完备的Solidity编程语言,它可以更好的在EVM(以太坊虚拟机)中运行。同时采用Gas机制来计费,有效减少无用的交易产生,或者防止有人恶意持续的转移极小账目导致网络瘫痪。此外以太坊拥有大量的用户和开发人员并且代码开源、平台接口丰富。综上所述,相对于Bitcoin和Hyperledger Fabric,Ethereum平台更适合作为本文的区块链开发平台
2 溯源系统设计
2.1 药品溯源体系架构
药品供应链是指核心制药商从药品原料商处采购原料,按照研发生产方法制造出药品,包装完成后通过各级经销商流向销售商,包括药店、医疗机构等,最终到达消费者手中。药品供应链整体呈现多节点、多层级的特点,简化流程图如图1所示。药品追溯系统也就是对药品研发生产、流通分销和销售环节有关药品质量安全的信息进行真实可靠地记录和传递。如图2所示为药品供应链在区块链上的体系架构,从下到上依次包括数据层、业务层和应用层。数据层包括原料供应、研发制造、流通分销和最终销售等各阶段需要采集的药品有关信息上传至区块链的工作,这是药品溯源数据的重要来源;业务层主要处理客户端的服务请求,通过不同的接口程序来获取,由Web3.js和JavaScript进行数据录入与查询请求以及结果反馈。Web3.js封装了以太坊的RPC通信API,是基于Node.js和JavaScript的JSON-RPC封装,把接收到的数据调用智能合约完成相应的服务请求。应用层是可以让用户操作,通过Web网页进行药品信息的查询,本系统汇集了生产信息、销售信息、溯源信息以及监管信息的记录和查询。
图1 药品供应链简化流程图
图2 溯源体系架构
2.2 药品溯源方案设计
药品供应链的流程一般有以下几个主要环节:原料供应环节、研发制造环节、流通分销环节以及销售环节。这些环节分别对应不同的供应链主体,依次为:原料供应商、制药企业、分销商、销售单位(医院或药店)。不同的主体之间存在的物流、信息流与资金流的交互,包括单向和双向的交互。如图3所示为基于区块链的药品溯源拓扑结构图。根据药品生产涉及的主体依次采集数据,生成信息摘要并上传区块链系统,由供应链上的节点企业共同维护这个分布式数据库。基于区块链的药品供应链溯源,首先要对接各参与方系统对应的数据库,将相关药品的产地、生产日期、商品编码、生产企业名称及对应的工商注册号等信息录入区块链系统。消费者和监管部门输入药品的溯源码便可查询药品的生产及流通信息,一旦药品出现质量安全问题可以及时向监管部门报告,通过系统提供的交互窗口查询药品的生产过程,进行逆向溯源,同时可以请求监管机构详细查询生产数据,进一步查询出现问题的节点,进行精准定位。同时由于区块链保证数据不可篡改,一旦参与节点信息录入有人为失误,便无法进行数据更正。引入药监局不仅可以管理药品召回信息,同时也能接受参与节点的数据更正请求,更正药品数据。
图3 药品供应链拓扑结构图
3 溯源系统功能模块
3.1 系统环境
本文旨在设计并实现基于区块链的药品溯源系统,因此需要将计算机部署区块链环境。首先从官方网站下载安装Node.js,Npm是其一起下载的管理工具,下载完成后可在Windows PowerShell窗口输入node-v和npm-v来验证是否安装成功,同时需要在高级系统设置中点击环境变量进行相应的设置,在Node.js安装完成后需要安装Truffle框架,在命令行输入npm install-g truffle@5.0.38,如果出现安装错误可以尝试输入set-executionpolicy remotesigned,再输入y解决。之后还需要安装Metamask和Ganache。Metamask是一款去中心化的以太坊轻钱包,它主要以浏览器插件的方式为用户和开发者提供服务,通过Metamask,开发者可以轻松编写基于区块链的智能合约系统的用户界面。Ganache是用于开发和测试的本地内存区块链,它模拟了真实的以太坊网络的功能,包括由测试以太币资助的多个账户的可用性,可以通过RPC HTTP://127.0.0.1:7545接口实现Ganache和Metamask的连接。一切准备就绪后重新打开命令行输入命令便可以启动项目。合约的编译命令是:truffle compile,合约的部署命令是:truffle migrate,项目的执行命令是:npm run dev。
3.2 系统功能及测试结果
药品溯源系统需要满足供应链上不同参与主体角色的功能需要,因此设计不同功能模块,下面对主要模块功能和测试结果进行介绍。
3.2.1 创建药品
创建药品即给每一个药品生成唯一的溯源码,这个功能是由超级管理员调用。在基于区块链的药品供应链溯源系统中,给每个生产出来的药品生成唯一的溯源码,将生产过程的相关数据绑定唯一的溯源码,通过溯源码来查询生产药品的企业信息以及对应的原料供应和分销信息。在Metamask中切换到超级管理员的区块链地址,输入药品的名称,点击创建,即可调用智能合约中的creatNewCargo函数为这件药品生成唯一的溯源码。
3.2.2 信息录入
信息录入模块的功能是实现相关数据的录入,针对药品供应链不同的参与角色,分别设置原材料商信息录入、制药厂信息录入和分销商信息录入、销售单位(医院)信息录入等子模块。以原料供应商为例,将账户切换区块链地址为0xAcf03817a93E 792246f13CF3566B78Ff06005Ca2,如图4所示分别输入溯源ID,原料商名称、产品数据以及企业工商注册号,点击发布将会调用智能合约中creatOem函数,在Metamask中确认交易信息,这些信息将会记录到区块链上,任何人不可删除修改。其他参与主体信息录入程序与此类似,不再一一赘述。所有录入的信息都可以在溯源查询页面进行查询。
图4 信息录入界面
3.2.3 溯源转移
溯源转移模块的功能是实现药品所有权的转移。药品的流通涉及所有权的变更,从生产到分销最后到达最终消费者的手中,药品的制药商和分销商可以实现药品的转移。
3.2.4 对公转账
对公转账模块的主要功能是进行供应链资产的转移,使供应链资金流动更加便捷,利用以太坊区块链的代币体系进行支付。这种转账方式,避免了传统汇款时繁琐的票据手续,解决资金流动效率低下问题,如图5所示。原材料供应商的区块链地址为0xAcf03817a93E792246f13CF3566B78Ff06005Ca2,制药厂的区块链地址为0xe4d69aeE2Ae0E7BBe752fd47473d9eedF8C25 FB0,在进行转账时,需要在Metamask上切换至制药厂的区块链地址,制药厂便可以通过以太坊的代币系统向原材料供应商转账60ETH。
图5 对公转账页面
3.2.5 链上查询
链上查询模块分为两种查询方式:基本查询和溯源查询。通过基本查询的方式,获取药品生产完成后所有权的流转变更,即消费者通过基本查询的方式获取药品经过了几次轮转到自己手中。溯源查询的方式用于查询药品生产过程涉及的原料供应商、制药厂、分销商、销售单位等信息,以及厂家对应的名称、工商注册号、信息录入时间以及生产资料等数据,如图6所示。
图6 溯源信息查询页面
3.2.6 消费者投诉服务模块
消费者服务模块的主要功能是实现消费者对于反应大的不良药品的投诉需求,如图7所示,以消费者陈三为例,对溯源码为5833432651药品有发烧等不良反应需要进行药品投诉,便可以在系统上进行投诉信息登记,登记后监管部门就可以在查询投诉页面,如图8查看相应的投诉信息。
图7 投诉信息登记页面
图8 投诉信息查询页面
3.2.7 监管部门模块
监管部门模块的功能是对于问题药品的召回信息录入,以及通过溯源码查询药品召回信息和召回状态,其中召回状态0为待召回,1为召回中,2为已召回。如图9所示,输入溯源码,召回的开始和结束时间,召回原因,召回方式以及召回状态,进行药品召回信息的录入。同时消费者也能在查询召回界面对溯源码验证药品是否有召回的相关信息,避免使用问题药品,如图10所示。
图9 药品召回信息录入界面
图10 药品召回信息查询界面
4 结束语
本文针对传统药品供应链溯源体系存在的不足,设计了一种面向药品溯源的区块链技术系统体系,以以太坊平台为基础,对药品在原料供应、生产制造、流通分销以及最终销售等过程进行数据录入及追溯,引入消费者和监管部门服务,包含召回和投诉功能模块。首先采用分布式存储模式,保障数据真实完整,不可篡改,提高各参与方信息共享效率,有利于监管追责。其次在溯源系统设计方面使用智能合约,减少交易成本,保证交易的高效、精确和可信,最后对溯源系统平台的各个功能模块进行测试和结果展示,证实溯源系统的可行性。总之正确运用区块链技术可以提高溯源效率、优化供应链管理、重塑药品供应链信任体系。在实际的应用过程中,需要具体情况具体分析,比如对于商业隐私数据的处理,可以采用密码学算法加密后再上传至区块链溯源系统。作为一项新兴技术,未来应加大对区块链技术平台的深入研究,进一步优化平台性能,设计管理机制和利用技术创新实现保障源头数据录入的真实性,进一步提高数据可信度。面对区块链发展过程中的诸多机遇和挑战,需要学术界和产业界共同努力,将该技术更好地应用于供应链领域。