◆封 嘯 孫天凱 郭 旭 李 巍 周曉凡
?
區塊鏈技術在藥品溯源上的應用研究
◆封 嘯 孫天凱 郭 旭 李 巍 周曉凡
(徐州工程學院信電學院 江蘇 221018)
本文利用區塊鏈技術解決醫療領域藥品溯源存在的問題。通過制造、運輸、銷售三方進行藥品信息采集,借助分布式賬本、智能合約、共識機制等技術將數據寫入區塊鏈以保證藥品信息不可篡改,供消費者、質檢機構及監管方完成藥品溯源。利用區塊鏈的弱中心化、共同維護、不可篡改等特點建立藥品從生產、流通到消費等環節的信息可溯源體系。基于區塊鏈的藥品溯源系統的設計完成,為藥品安全提供保障的同時,也在很大程度上打擊了藥品行業的制假販假行為。
藥品溯源;區塊鏈;分布式賬本;共識機制
區塊鏈源自比特幣(Bitcoin)的底層技術,2008年化名為“中本聰”(Satoshi Nakamoto)的學者提出了一種被稱為比特幣的數字貨幣,在沒有任何權威中介機構統籌的情況下,互不信任的人可以直接用比特幣進行支付[1]。2013年12月,Buterin提出了以太坊(Ethereum)區塊鏈平臺,除了可基于內置的以太幣(Ether)實現數字貨幣交易外,還提供了圖靈完備的編程語言以編寫智能合約(smart contract),從而首次將智能合約應用到了區塊鏈[2]。用戶可將Smart Contract看作以太坊網絡里的自動代理人,并通過它來開發出各類DApp。2015年12月,Linux基金會發起了Hyperledger開源區塊鏈項目,旨在發展跨行業的商業區塊鏈平臺。Hyperledger提供了Fabric、Sawtooth、Iroha和urrow等多個區塊鏈項目,其中最受關注的項目是Fabric。不同于比特幣和以太坊, Hyperledge Fabric專門針對企業級的區塊鏈應用而設計,并引入了成員管理服務[3]。Hyperledger的應用場景非常廣泛,因其可以創建私有鏈、聯盟鏈,甚至公有鏈,所以在任何行業、任何領域都能找到可以落地的解決方案。本文將以Hyperledger Fabric作為技術框架,利用區塊鏈的不可篡改、可追溯、分布式、共識機制等特點討論其在醫療領域中藥品溯源上的應用。
近些年藥品安全事件頻發,如2009年的青海雙黃連事件、2011年的湖北假藥案、2016年山東疫苗造假事件以及2018年轟動全國的“長生生物”疫苗造假事件,這些事件一次次將公眾的恐慌與憤怒推向新的高點。受到銷售假藥所產生的暴利誘惑,企業或個人從事醫藥產品行業造假售假的現象有愈演愈烈的趨勢,并且從未得到過根本性的解決,人們的生命健康時刻都有遭受假藥侵害的風險,所以打擊假冒偽劣商品的行為已經刻不容緩。而區塊鏈用于商品溯源,其打擊假冒偽劣商品的能力已為大家所熟知。那么,在醫藥行業,區塊鏈的加持是否可以就防止人們生命健康遭受假藥的侵害起到不凡的效果呢?
假如開發一套基于區塊鏈的藥品溯源系統,每一個按時間標記的交易都將被自動復制到區塊鏈上且不能修改,供應鏈上所有的合作伙伴都知道這一事實,這使協作各方都能輕松的核實信息來源。區塊鏈不可篡改的特點,既保證了數據的真實性,又確保了數據傳輸的安全性,同時也可達到降低成本的效果。藥品制造商、批發商、終端銷售通過使用藥品溯源系統在審計和跟蹤庫存上實現信息公開透明,確保藥品安全,這使得假藥進入醫療市場變得難如登天。而在系統用戶的需求方面,供應鏈可見性是各方共同的需求,該技術能很好監控藥品從生產到運輸再到銷售的全過程。區塊鏈的公開和不可篡改的屬性,讓藥品溯源看到了更好的出路。因此借助區塊鏈技術可幫助解決醫療數據存儲集中、安全共享難、數據可信度過度依賴組織機構等問題,實現了去中心化、安全、不可篡改的醫療數據分享[4]。
本系統將藥品從生產到運輸再到銷售各環節關鍵信息進行分類。
(1)藥品生產信息:唯一識別碼、名稱、規格、生產日期、保質期、產品批次號、生產許可證編號、生產廠商名稱、生產所在地、出廠價格;
(2)藥品成分信息:唯一識別碼、成分ID、成分名稱;
(3)藥品中轉信息:唯一識別碼、出發時間、到達時間、儲存/運輸、出發地、目的地、銷售商、存儲時間、運送方式、物流公司名稱、中轉費用。
經過上述分類后,使用區塊鏈系統對藥品相關信息進行溯源,不僅方便質檢機構對藥品生產信息進行檢驗,還為消費者提供透明、放心的藥品詳細信息,同時也為監管部門提供了審查所需的依據。
藥品溯源系統架構設計如圖1所示。

圖1 藥品溯源系統架構
本溯源系統共分為六層架構三大模塊,各個模塊之間采用不同的API,交互模塊采用Node.js SDK、核心模塊與基礎模塊之間采用了GRPC接口。各層次功能如下:
(1)數據層:以CouchDB作為分布式共享賬本存儲系統,將藥品的生產信息、成分信息、中轉信息以JSON格式存入系統,借助其原生的JSON和字節數組的操作,完成復雜的業務查詢。同時在安全的容器中對藥品信息進行存取,通過安全和密碼服務實現藥品信息的不可篡改,上層通過API完成對賬本數據與狀態數據庫的維護。
(2)網絡層:該層基于Gossip協議對藥品溯源系統的賬本信息、狀態信息、成員信息等數據進行P2P分發。通過Gossip將排序服務與Peer節點連接,高效完成從一個源節點至所有節點的數據分發同步的任務。利用MSP完成對成員信息的管理及維護,并確定成員處于正常狀態或是故障狀態。
(3)共識層:系統根據指定的背書策略向背書節點發送交易提案,并通過模擬執行將結果運用ESCC進行數字簽名并返還至應用程序。應用程序確認所有背書節點的執行結果完全一致后,將交易提案、提案響應和背書簽名進行打包,生成交易廣播給排序節點。排序節點采用Kafca流式服務將交易放入消息隊列,按照交易順序將交易打包成區塊,廣播發送給Peer節點驗證交易的有效性。
(4)合約層:通過Chaincode實現智能合約,包括藥品背書、發起藥品成分信息背書、中轉信息背書以及藥品信息查詢、成分信息查詢、中轉信息查詢等業務邏輯。
(5)業務層:通過RESTful接口完成對前端部分的業務處理。后端部分完成用戶管理和藥品管理,借助Hyperledger Fabric提供的Node.js SDK和區塊鏈網絡進行通信。同時業務層也可以與其他的業務系統進行數據交互。
(6)應用層:該層以HTML、CSS、Angular.js作為前端框架,為用戶提供頁面交互操作,其中包含用戶操作和業務操作。用戶部分是底層內置完成的,僅為用戶提供登錄和退出的操作。業務部分包括生產者完成藥品信息發布、成分信息寫入、藥品中轉信息更新;消費者、質檢機構以及監管方實現藥品信息的查詢與審校等功能。
首先,藥品生產商、物流機構、銷售商發起藥品信息交易提案,待交易信息確認后,藥品相關數據被存入區塊鏈中,系統對各參與方節點進行數據同步。然后,消費者、質檢機構、監管方可根據藥品唯一識別碼對藥品整個供應鏈信息進行查驗真偽工作。詳細藥品溯源信息如下:
(1)查詢藥品基本信息。如圖2所示,通過藥品唯一識別碼可查詢出藥品的名稱、規格、生產日期、保質期、批次號、生產許可證編號、生產商名稱、出廠價格、生產所在地等信息。

圖2 藥品生產信息
(2)查詢藥品成分信息。如圖3所示,依據藥品唯一識別碼可查詢出成分ID以及對應的成分詳情。

圖3 藥品成分信息
(3)查詢藥品中轉信息。如圖4所示,通過藥品唯一識別碼查詢出藥品出發時間、到達時間、儲存或運輸、出發地、目的地、銷售商、存儲時間、運送方式、物流公司名稱、費用等信息。

圖4 藥品中轉信息
本文根據醫療領域藥品溯源存在的諸多問題,引入區塊鏈領域Hyperledger Fabric框架構建藥品溯源系統。藥品供應鏈上的特定相關方通過系統完成藥品信息的登記,并能對產生的藥品信息進行跟蹤審計,有效避免了傳統溯源系統存在的成本高昂、效率低下、數據造假等問題。文中所提出的藥品溯源解決方案在應用場景中仍有不足,將在以后的研究工作中進一步改進與完善。
[1]Nakamoto S.Bitcoin:A peer-to-peer electronic cash sys-tem[J].White Paper, 2008.
[2]Buterin V.A next-generation smart contract and decent-ralized application platform[J].White Paper,2016.
[3]Cachin C.Architecture of the hyperledger blockchain f-abric//Proceedings of the Workshop on Distributed Cryptocur-rencies and Consensus Ledgers (DCCL).Chicago,USA,2016.
[4]薛騰飛,傅群超,王樅,王新宴.基于區塊鏈的醫療數據共享模型研究[J].自動化學報, 2017, 43(9): 1555?1562.
江蘇省大學生創新創業訓練計劃項目(201811998049X)。