周 近 李濰彤 劉 杰 朱鳳丹 倪藝洋
(江蘇第二師范學院 數(shù)信與信息技術學院,江蘇 南京210000)
區(qū)塊鏈技術是一種互聯(lián)網數(shù)據(jù)庫技術,具有去中心化、公開透明以及不可篡改等特點,區(qū)塊鏈的每個用戶都可以在鏈上查詢和記錄數(shù)據(jù),且數(shù)據(jù)不易被破壞。在區(qū)塊鏈中所有有價值的交易都可被編程記錄。目前通常采用中繼轉發(fā)技術來保護用戶隱私,該技術將通信的參與者隱藏在眾多的網絡實體中,提高了解決互聯(lián)網中隱私泄露問題的效率。然而,該機制過于依賴中繼服務器節(jié)點,現(xiàn)有研究表明,利用區(qū)塊鏈技術可有效解決此類問題。在基于區(qū)塊鏈的交易中,采用P2P(點對點模式)進行信息傳輸,省略了某個集中環(huán)節(jié)。區(qū)塊鏈中的每個節(jié)點都可作為中繼節(jié)點實現(xiàn)轉發(fā)功能,從而有效降低用戶的隱私信息被竊聽和泄露的概率,提升匿名通信的靈活性和可靠性,保證了用戶信息的安全[1]。此外,區(qū)塊鏈技術中的哈希算法的密碼體制,在接收數(shù)據(jù)時以單向轉換的方式輸出散列,整個轉換過程不可逆,無法通過結果追蹤原文,具備不可篡改的特性。在進行基于區(qū)塊鏈技術的交易時,利用哈希算法對數(shù)據(jù)加密,防止第三方篡改。
如今,區(qū)塊鏈技術在物聯(lián)網、金融、物流、數(shù)字版權、公共服務和保險等領域中有著重要地位。在進行交易時,交易雙方省去第三方認證環(huán)節(jié),省去額外開銷,既降低了成本,又提高了交易完成的效率,其不可篡改的特性也為交易提供了安全保障。
區(qū)塊鏈可進一步強化企業(yè)中產業(yè)鏈條的公證力和提高價值交換網絡的效率,然而研究者在使用現(xiàn)有區(qū)塊鏈技術時發(fā)現(xiàn),現(xiàn)有區(qū)塊鏈的處理性能、隱私保護、合規(guī)性等都無法滿足銀行、證券等領域的業(yè)務需求。另一方面,如果全面采用比特幣的完全公鏈設計理念,會顛覆現(xiàn)有的商業(yè)模式和固有利益,且風險較高,在此背景下,聯(lián)盟鏈應運而生。
針對不同的應用場景,可將區(qū)塊鏈劃分為以下三類:
(1)公有鏈,所有人都能訪問并記錄數(shù)據(jù);
(2)聯(lián)盟鏈,用戶經過授權后即可訪問;
(3)私有鏈,所有的網絡節(jié)點都掌握在一家機構中。
其中,聯(lián)盟鏈主要用于企業(yè)之間相互聯(lián)系,有固定的成員和有限的第三方,首先,在聯(lián)盟鏈內部可指定多個預選節(jié)點作為記賬節(jié)點,其次,由所有的預選節(jié)點共同決定生成各個區(qū)塊,并且其它接入的節(jié)點只能參與交易不能訪問記賬過程。聯(lián)盟鏈的主要成員包括銀行、證券、保險、商業(yè)協(xié)會、集團企業(yè)及上下游企業(yè)。為了提高聯(lián)盟鏈的性能,從而產生了準入機制,即規(guī)定了共識和驗證節(jié)點的配置要求。特別地,聯(lián)盟鏈利用區(qū)塊鏈的分布式賬本和分布式共識解決了聯(lián)盟中多個參與方交互的信任問題[2]。
1.3.1 R3 區(qū)塊鏈聯(lián)盟
R3 區(qū)塊鏈聯(lián)盟成立于2015 年9 月,至今已有大約40 多家國際銀行組織加入,成員幾乎遍布全球。該聯(lián)盟主要為銀行提供探索區(qū)塊鏈技術的渠道以及生產區(qū)塊鏈的概念性產品。在2016 年4 月,R3CEV 公司正式與微軟公司建立合作關系,共同研究和試驗區(qū)塊鏈應用。該聯(lián)盟最近宣布推出了他們專門為這一目的而建立的最新分布式私人賬本Corda[3]。
1.3.2 China Ledger 聯(lián)盟
國家工信部及相關政府致力于研究和推動國內區(qū)塊鏈技術的發(fā)展,由此可見,區(qū)塊鏈技術正逐漸得到重視。在國際醫(yī)療科技公司(IDC Health Insights)的一份報告中指出,區(qū)塊鏈在本質上可以幫助重塑醫(yī)療保健行業(yè)的互動操作性,將去中心化、分布式和不變性等區(qū)塊鏈特征與人體健康數(shù)據(jù)結合起來,有關數(shù)據(jù)顯示,到2020 年,大部分醫(yī)院的運營管理和患者服務會投入?yún)^(qū)塊鏈技術,20%的醫(yī)療保健組織將超出試點項目。
數(shù)據(jù)的隱私性和安全性在數(shù)據(jù)傳輸中備受關注。進行數(shù)據(jù)交流時可利用密碼學防止用戶標識或數(shù)據(jù)被竊取,確保數(shù)據(jù)發(fā)自特定的一方,降低發(fā)送過程中數(shù)據(jù)被篡改的危險性。另一種隱私保護的方法是利用已有的加密算法,大體上可以分為三種:第一種為對稱加密,該方式中加密與解密的密鑰相同,數(shù)據(jù)傳輸雙方必須使用相同的密鑰才能進行解密操作;第二種為非對稱加密,該方式中加密與解密的密鑰不同,其中加密密鑰稱為公鑰,解密密鑰稱為私鑰,私鑰用來簽名,公鑰進行驗證;第三種是本文研究的加密哈希算法,該算法無需借助任何密鑰,維護了前兩種算法中需要保護的數(shù)據(jù)的完整性,防止數(shù)據(jù)被偽造。加密哈希算法的主要特性包括:(1)單向不可逆性,指的是該算法只有加密過程,沒有解密過程;(2)可重復性,相同的輸入內容經過哈希函數(shù)計算后會得到相同的散列值,但并不是散列值相同,輸出的結果就會相同;(3)抗沖擊性,輸入不同的數(shù)據(jù)后經過相同的散列函數(shù),產生的散列值不一定相同。
基于哈希算法的特性,可利用哈希算法在藥品溯源系統(tǒng)中實現(xiàn)患者的隱私保護以及數(shù)據(jù)安全共享。藥店和消費者之間產生的交易經哈希算法處理后,通過客戶端將產生的數(shù)據(jù)上傳到各個區(qū)塊中,并在節(jié)點賬戶中存儲生成的哈希值。當消費者或醫(yī)生想查看病歷時,可向聯(lián)盟鏈發(fā)送驗證申請,比對申請時提供的哈希值和區(qū)塊鏈中的哈希值,若匹配一致則驗證通過,否則驗證失敗。由于聯(lián)盟鏈有一特性是非授權節(jié)點無法查看塊內信息,所以存放在聯(lián)盟鏈內的數(shù)據(jù)是十分安全可靠的(如圖1 所示)。

圖1 藥品溯源系統(tǒng)中加密算法流程圖加密哈希算法流程圖
基于聯(lián)盟鏈的不可篡改性、分布式結構、開放性以及去中心化性等特征,放射源溯源數(shù)據(jù)存儲模型(簡稱BCSM)也成功引起研究者們的關注。BCSM 具有公開、透明、可信等特征[4],在該模型中,采用基于位置的分組設計,每組根據(jù)節(jié)點的性能及可靠性選出一個節(jié)點擔任主節(jié)點,存儲完整的溯源數(shù)據(jù)。組內的其它節(jié)點作為副節(jié)點分別備份溯源數(shù)據(jù)和同步主節(jié)點數(shù)據(jù),當副節(jié)點的數(shù)據(jù)增加或減少時主節(jié)點也會作相應改變,主節(jié)點變化時副節(jié)點會同步變化。該模型通過節(jié)點加入聯(lián)盟鏈時提供的信息進行分組(以位置關系為主,對分組進行劃分),距離近的為一組,這樣可以減少因距離遠而產生的通信延遲。
在BCSM 中,數(shù)據(jù)的安全性由加密哈希值保證,每個節(jié)點都有一個對應哈希值,輸入相應的哈希值就能找到該節(jié)點的位置及有關信息,而每個節(jié)點的生命周期都會被藥品監(jiān)管部門審核,防止節(jié)點出現(xiàn)不能存儲的情況;然而,每個節(jié)點的運算能力是有限的,無法存儲所有的數(shù)據(jù)信息,通過藥品監(jiān)管部門審核來了解各節(jié)點的性能,然后將藥品數(shù)據(jù)進行分割后分配到各個節(jié)點中(如圖2 所示)。

圖2 藥品信息存儲模型圖
在聯(lián)盟鏈中,可利用智能合約對各節(jié)點進行約束,使各節(jié)點之間相互監(jiān)督,穩(wěn)定運行。采用BCSM 時,每個區(qū)塊中都有一個主節(jié)點和若干副節(jié)點,主節(jié)點主要存儲完整的具有流轉行為的數(shù)據(jù),副節(jié)點則分片存儲具有流轉行為的數(shù)據(jù)。同時,副節(jié)點還需存儲每一區(qū)塊的頭部組成的哈希鏈,在主節(jié)點出現(xiàn)故障時,最近的副節(jié)點檢測到異常后開始對周圍的節(jié)點進行性能檢測與評價,依此選出最優(yōu)節(jié)點擔任主節(jié)點,接替發(fā)生故障的主節(jié)點的工作。
2016 年4 月28 日,國家食藥監(jiān)總局下發(fā)了《關于進一步完善食品藥品追溯體系的意見(征求意見稿)》的通知,該通知是建立和完善溯源體系的根本。目前,藥品溯源體系雖然是制藥企業(yè)的主體責任方,但并未將其應用于其他企業(yè)終端(例如藥店、醫(yī)院等);研究發(fā)現(xiàn),藥品溯源系統(tǒng)通過藥品的電子監(jiān)管系統(tǒng),對藥品的生產和流通環(huán)節(jié)進行全程監(jiān)管,以達到責任溯源目的。在基于BCSM 的系統(tǒng)中,每個節(jié)點都有對應的哈希值,輸入哈希值就可以找到對應節(jié)點的位置及相關信息,由于每個節(jié)點的生命周期都會被藥品監(jiān)管部門審核,保證了查詢的有效性。在基于BCSM 的醫(yī)療聯(lián)盟鏈進行數(shù)據(jù)共享時,可將醫(yī)療機構視為主節(jié)點,存儲所有藥品信息,將各地醫(yī)院或藥店視為副節(jié)點,主副節(jié)點間同步藥品信息。
私有鏈針對個人或實體開放,在私有鏈中節(jié)點較少,信任度相對較高,數(shù)據(jù)傳輸或交易過程中不需要每個節(jié)點進行驗證。使用私有鏈進行交易或數(shù)據(jù)傳輸時,具備速度快、成本低的特點[5]。在EHR 模型中加入私有鏈用于存放密文的哈希值,患者的信息不會被擁有網絡連接的任何人獲取,用戶可以安心到醫(yī)院就醫(yī),醫(yī)生也不必擔心信息泄露擔責。
可搜索加密技術分為三個步驟:首先,醫(yī)生通過密鑰加密患者的電子病歷(EHR)并上傳[6];其次,具備檢索權限的醫(yī)生使用密鑰生成待查詢關鍵字,最后,輸入關鍵字(待查詢關鍵字不會泄露患者的任何信息),服務器開始查詢與關鍵字相關的密文文件。特別地,用戶除了文件名外無法獲得更多信息,必須使用密鑰才能解開密文文件。
聯(lián)盟鏈和私有鏈衍生出了EHR 模型,由若干醫(yī)院協(xié)商構建一條聯(lián)盟鏈,且醫(yī)院內部都有獨立的服務器和私有鏈,服務器用以存儲患者的電子病歷,私有鏈用以存儲電子病歷的密文哈希值,方便查詢患者信息。方案中的EHR 由醫(yī)生產生,醫(yī)生將EHR 加密后上傳到醫(yī)院的服務器,該服務器通過加密算法將EHR 的哈希值存放到私有鏈中,以保證患者信息的安全性;醫(yī)生使用可搜索加密技術[7]加密關鍵字后上傳至聯(lián)盟鏈。當患者想要查詢自己的病歷時必須通過私鑰驗證才能打開聯(lián)盟鏈獲得相關信息,如果其它用戶想要查看患者信息,必須通過患者授權。
隨著信息技術的發(fā)展和國家對醫(yī)療信息化的重視,部分地區(qū)正逐步構建一些特色平臺,如集中掛號預約平臺、區(qū)域衛(wèi)生信息集成平臺等,統(tǒng)一管理特定人群。但這些平臺仍存在諸多不足,如無法實現(xiàn)數(shù)據(jù)實時共享和業(yè)務協(xié)作;數(shù)據(jù)的安全性、可靠性有待完善;數(shù)據(jù)的一致性有待提高等問題。由此,可將EHR模型[8]應用于藥品溯源系統(tǒng)中可解決以上問題,將數(shù)據(jù)加密后的哈希值存放在私有鏈中,以保證數(shù)據(jù)安全(如圖3 所示)。

圖3 藥品信息共享模型圖
傳統(tǒng)的身份認證方式主要包括:(1)線下身份認證;(2)基于中心化的電子身份認證。線下身份認證方式為通過電子讀卡器校驗身份證,該方式存在隱私泄露等風險,尤其在醫(yī)院等大型人員聚集場所,攜帶身份證件也存在諸多不安全因素,為了克服這一缺點,本文在已有基于區(qū)塊鏈的身份認證算法[9-10]基礎上進行改進,旨在解決線下身份認證繁瑣、用戶隱私泄露等問題。基于區(qū)塊鏈分布式賬本的特性,將患者信息產生的哈希值分別存入鏈中的區(qū)塊上,用于校驗患者信息;基于共識機制,當用戶需要查看個人病歷時,醫(yī)生需出示公鑰,患者輸入私鑰才可進行解密。存儲了患者信息的每個區(qū)塊都對該患者進行身份驗證,當所有區(qū)塊都顯示驗證通過才能查看病歷,否則無法查看。采用該身份認證算法時,患者首先需在醫(yī)院進行身份注冊(注冊時系統(tǒng)將分配區(qū)塊空間并定位區(qū)塊位置),接著進行認證綁定,綁定時輸入的信息作為患者病例的初始信息存入到區(qū)塊中,如上所述,需要使用公鑰和私鑰才能查看區(qū)塊中的內容(如圖4 所示)。

圖4 共識機制身份認證算法流程圖
雖然聯(lián)盟鏈已應用于各行各業(yè),但仍然存在一些未解決的問題。
近年來,關于藥品的安全事件時有發(fā)生,如禽流感、蘇丹紅、毒疫苗等事件,其中存在的問題包括生產環(huán)節(jié)的數(shù)據(jù)造假、運輸環(huán)節(jié)的信息封閉和管理失控等[11],因核心機構采用的是中心化存儲模式,信息封閉難以監(jiān)督管控,公眾、第三方企業(yè)無法介入核心機構進行信息查詢,當某一環(huán)節(jié)出現(xiàn)問題時,利益若涉及數(shù)據(jù)維護方(核心機構),那么該核心機構有權對信息數(shù)據(jù)進行篡改,導致無法追責,用戶利益也將受到嚴重影響,因此,使用一種不可篡改的存儲模式是必要的解決措施。
再者,在當前藥品溯源系統(tǒng)中,溯源的過程要通過若干環(huán)節(jié)相互配合,若其中的某一環(huán)節(jié)出現(xiàn)問題,則意味著數(shù)據(jù)丟失,用戶或企業(yè)想要追責將成為一大難題,這就需要一種分布式架構來存儲數(shù)據(jù),實現(xiàn)藥品的“來源可查,去向可追,責任可究”。
最后,企業(yè)和用戶進行交易時常常出現(xiàn)密碼泄露、身份信息被盜用等問題,用戶的隱私無法得到保障,交易的安全性大大降低,溯源變得毫無意義,對用戶隱私作出進一步的保護也是溯源系統(tǒng)面臨的挑戰(zhàn)之一。
3.2.1 信任問題
2018 年,“毒疫苗”事件再次觸及了大眾的敏感神經,溯源一詞又一次出現(xiàn)在大眾視野。大量藥品在市場上流通時會產生大量信息數(shù)據(jù),包括藥品的原材料流通、生產狀態(tài)、運輸軌跡及藥店存儲記錄和使用方法等,這些數(shù)據(jù)在中心化存儲模式下是不安全的,某些企業(yè)擅自篡改藥品信息數(shù)據(jù)(生產環(huán)節(jié)記錄等)、藥店可偽造銷售記錄[12]導致信息不對稱,不法企業(yè)利用藥品信息難以溯源這一缺口謀利,反之,消費者也可利用這一漏洞做出不法行為。所以,利用區(qū)塊鏈的特點,把區(qū)塊鏈應用于藥品溯源系統(tǒng)中,將大大改善藥品銷售的現(xiàn)狀,以區(qū)塊鏈的公信度解決企業(yè)與用戶之間的信任問題,通過把共享的數(shù)據(jù)以分布式賬本的形式存儲在區(qū)塊中,多方監(jiān)督,全民參與,共同維護,這樣公開式的存儲方式解決了單方面篡改數(shù)據(jù)的問題,且區(qū)塊鏈的分布式架構可以保證數(shù)據(jù)不易丟失,長期存儲在系統(tǒng)中。因此,建立一個安全性高、可信任的藥品溯源系統(tǒng)勢在必行。
3.2.2 數(shù)據(jù)丟失問題
與傳統(tǒng)溯源相比,聯(lián)盟鏈下的BCSM 模型采用分布式存儲結構有效地解決了數(shù)據(jù)丟失問題,通過多個節(jié)點相互配合來實現(xiàn)數(shù)據(jù)共享和信息同步。
3.2.3 安全性問題
本文利用BCSM 的特性,實現(xiàn)數(shù)據(jù)安全共享,獨立的哈希值對應獨立的用戶和唯一的用戶消費信息和藥品信息,引入EHR模型中的私有鏈結構使得藥品溯源過程中消費者隱私得以保障,相比之前的查詢系統(tǒng),基于區(qū)塊鏈的藥品溯源系統(tǒng)安全系數(shù)更高,實用性也更強。
藥品從生產到銷售經歷多個環(huán)節(jié),任何環(huán)節(jié)出現(xiàn)了問題,都會造成嚴重的后果,然而,現(xiàn)有的系統(tǒng)很難保證所有環(huán)節(jié)的安全可靠。本文以聯(lián)盟鏈為藥品溯源系統(tǒng)的主體,以加密哈希算法和共識機制身份認證算法為輔,身份認證的改良進一步提升了數(shù)據(jù)的安全性與隱私性,提升了企業(yè)與用戶間的信任度,改善了當前藥品銷售的不良現(xiàn)象。本文對BCSM 模型和EHR 模型的改進有效提高了追溯效率。