劉加夢(mèng) ,彭紹亮* ,李肯立,蔣洪波,龍承念
1. 湖南大學(xué)信息科學(xué)與工程學(xué)院,湖南 長(zhǎng)沙 410082
2. 國(guó)家超級(jí)計(jì)算長(zhǎng)沙中心,湖南 長(zhǎng)沙 410082
3.上海交通大學(xué)電子信息與電氣工程學(xué)院,上海 200240
隨著社會(huì)經(jīng)濟(jì)水平和思想觀念的提高,中醫(yī)藥養(yǎng)生和保健也越來(lái)越多的被大家認(rèn)可。在2020年初新冠肺炎疫情肆虐期間,中醫(yī)有著更深層次的介入。在我國(guó)確診的8 萬(wàn)多例中,中醫(yī)治療的病例超過(guò)7萬(wàn)例,占總數(shù)的91%。湖北省90%以上的患者接受過(guò)不同程度的中醫(yī)治療。中醫(yī)藥防治疫情優(yōu)勢(shì)凸顯,多種有效方藥和中成藥得到了廣泛應(yīng)用[1]。如今,國(guó)家大力發(fā)展中醫(yī)藥事業(yè),并把發(fā)展中醫(yī)藥擺在更加重要的位置,不斷加大政策支持力度,中醫(yī)藥將迎來(lái)大好的發(fā)展時(shí)機(jī),而中醫(yī)藥的春天就是中草藥的春天。
中草藥作為一種特殊的防病、診療商品,關(guān)系到群眾的切身利益和社會(huì)的和諧穩(wěn)定[2]。然而,在目前的市場(chǎng)環(huán)境下,中草藥由于存在著一些非法經(jīng)營(yíng)、加工、摻假等問(wèn)題,質(zhì)量難以得到保證[3]。雖然國(guó)家對(duì)此高度重視,并且加大了抽查的力度,但是仍然有一些頑固問(wèn)題難以解決,影響了中草藥的發(fā)展。中草藥的質(zhì)量對(duì)臨床治療的效果有著非常重要的影響[4],為了能夠保證中草藥的質(zhì)量,必須了解清楚影響其質(zhì)量的因素,并提出新的解決方案。
中草藥材的道地性是鑒別藥材優(yōu)質(zhì)與否的專用名詞。道地藥材又稱地道藥材,是指歷史悠久,產(chǎn)地適宜,品種優(yōu)良,產(chǎn)量宏豐,炮制考究,療效突出,帶有地域性特點(diǎn)的藥材。藥材好,藥效才會(huì)好。只有抓好中藥材生產(chǎn)源頭,才能促進(jìn)我國(guó)中醫(yī)藥創(chuàng)造性轉(zhuǎn)化和創(chuàng)新性發(fā)展[5]。
習(xí)近平總書(shū)記強(qiáng)調(diào),我們要把區(qū)塊鏈作為核心技術(shù)自主創(chuàng)新的重要突破口。在政策和市場(chǎng)需求的雙驅(qū)動(dòng)下,區(qū)塊鏈技術(shù)在醫(yī)藥領(lǐng)域的使用迅速擴(kuò)大。區(qū)塊鏈系統(tǒng)的溯源功能,能將生產(chǎn)和流通各個(gè)環(huán)節(jié)記錄下來(lái),一旦出現(xiàn)問(wèn)題能夠及時(shí)的追蹤、處理,防止問(wèn)題擴(kuò)大。區(qū)塊鏈技術(shù)的不可逆、不可篡改等技術(shù)特性能保障整個(gè)系統(tǒng)按照時(shí)間的順序可靠地進(jìn)行記錄,這樣可以對(duì)每個(gè)流程節(jié)點(diǎn)進(jìn)行定位和回溯,進(jìn)而鎖定責(zé)任主體。利用區(qū)塊鏈的特性還可以開(kāi)展一些區(qū)塊鏈的存證業(yè)務(wù),比如合同的電子簽約,雙方簽訂電子合同后,將合同文本的哈希存入?yún)^(qū)塊鏈,任何一方都可以查詢?cè)摵贤耐暾院驼鎸?shí)性??偠灾?,區(qū)塊鏈技術(shù)的特性可以對(duì)中草藥的上游種植市場(chǎng)、中游流通市場(chǎng)和下游銷售市場(chǎng)三個(gè)環(huán)節(jié)發(fā)揮巨大的作用。
中本聰(Satoshi Nakamoto)在2008年提出了兩個(gè)概念。第一個(gè)是比特幣,這是一種虛擬的加密貨幣,無(wú)需任何中央監(jiān)管機(jī)構(gòu)或金融實(shí)體的支持即可保持其價(jià)值。區(qū)塊鏈?zhǔn)堑诙€(gè)概念。與比特幣相比,區(qū)塊鏈的范圍要大得多。區(qū)塊鏈?zhǔn)且幌盗邪灰淄暾斜淼膮^(qū)塊序列,所有交易將保存在區(qū)塊鏈中。如果要篡改一個(gè)塊,則下一個(gè)塊中包含的父哈希將與篡改的值不匹配,篡改行為很容易被發(fā)現(xiàn)。
區(qū)塊鏈?zhǔn)且粋€(gè)分布式的、不變的、透明的、安全的和可審計(jì)的分類賬,它記錄所有執(zhí)行的交易并在所有參與者之間共享。這是一個(gè)分散的解決方案,中間沒(méi)有任何第三方組織。每筆交易均由參與者達(dá)成共識(shí)。區(qū)塊鏈中每個(gè)已完成交易的信息將與所有節(jié)點(diǎn)共享。一旦交易記錄在分類賬中,就無(wú)法將其擦除。該系統(tǒng)比第三方的集中交易系統(tǒng)更加透明。在區(qū)塊鏈上,任何人都可以嘗試通過(guò)新記錄或修訂對(duì)區(qū)塊鏈分類賬進(jìn)行更新,并使用自己的私鑰進(jìn)行簽名。簡(jiǎn)而言之,區(qū)塊鏈?zhǔn)且环N網(wǎng)絡(luò)技術(shù),它可以為用戶提供安全共享信息的機(jī)會(huì),并且無(wú)需中間人或中央管理系統(tǒng)即可實(shí)現(xiàn)點(diǎn)對(duì)點(diǎn)交易。由于區(qū)塊鏈在創(chuàng)世區(qū)塊之后通過(guò)區(qū)塊數(shù)據(jù)結(jié)構(gòu)存儲(chǔ)所有帶有時(shí)間戳的歷史數(shù)據(jù),因此區(qū)塊鏈上的任何數(shù)據(jù)都可以通過(guò)區(qū)塊鏈結(jié)構(gòu)追溯到其起源。它提高了存儲(chǔ)在區(qū)塊鏈中的數(shù)據(jù)的可追溯性和透明度。預(yù)計(jì)該技術(shù)將提供安全、快速、可靠和透明的解決方案,并使全世界的行業(yè)和企業(yè)發(fā)生革命性變化,以推動(dòng)經(jīng)濟(jì)變革[6]。
利用區(qū)塊鏈技術(shù)可以對(duì)中草藥的生產(chǎn)、加工、銷售等過(guò)程全流程跟蹤記錄,與供應(yīng)鏈體系完美契合,增加對(duì)中草藥產(chǎn)品的把控能力。區(qū)塊鏈中每一個(gè)塊都有加上時(shí)間戳,形成一個(gè)鏈,中草藥從選種、生產(chǎn)、加工等環(huán)節(jié)開(kāi)始,到交易、運(yùn)輸、入庫(kù)、銷售等,可以根據(jù)時(shí)間順序上鏈,形成一個(gè)完整的過(guò)程記錄。記錄包括各個(gè)環(huán)節(jié)的關(guān)鍵參數(shù)和圖像的收集等。利用區(qū)塊鏈技術(shù)可以更好明確職責(zé),加強(qiáng)信用建檔。一旦哪個(gè)環(huán)節(jié)出了問(wèn)題,事發(fā)后很容易定位責(zé)任單位和相應(yīng)的責(zé)任人員。假貨想要以次充好,難度將大大增加。區(qū)塊鏈技術(shù)保證上鏈的數(shù)據(jù)是有效可靠的,但是不能保證實(shí)質(zhì)物質(zhì)是正宗真實(shí)的,只能幫助鎖定造假的責(zé)任主體。假如在線下有人對(duì)草藥進(jìn)行了替換,一旦被識(shí)別了出來(lái),可以根據(jù)鏈上的數(shù)據(jù)對(duì)比追蹤到責(zé)任人,這就是區(qū)塊鏈技術(shù)發(fā)揮作用的地方。
區(qū)塊鏈不可篡改和去中心化的特性可以增加信用背書(shū)。由于信息上鏈的環(huán)節(jié)較多且節(jié)點(diǎn)之間能夠互相監(jiān)督,增加了作假的風(fēng)險(xiǎn)與難度。區(qū)塊鏈技術(shù)也可以降低供應(yīng)鏈成本。區(qū)塊鏈打通了供應(yīng)鏈中的各個(gè)環(huán)節(jié),優(yōu)化中草藥產(chǎn)品的供應(yīng)鏈,可以減少不必要的重復(fù)驗(yàn)證等,提高效率。
在整個(gè)中草藥質(zhì)量安全管理模型中,參與的節(jié)點(diǎn)包括種植基地、加工廠商、運(yùn)輸公司、經(jīng)銷商以及零售商和消費(fèi)者等。由于涉及到的主體較多且數(shù)據(jù)多源異構(gòu),因此并不是所有的信息都是可以共享的。系統(tǒng)在保障信息不被篡改的同時(shí)也要注意對(duì)數(shù)據(jù)隱私的保護(hù)。本文提出了一種信息分段加密的解決方法,對(duì)企業(yè)的隱私數(shù)據(jù)進(jìn)行加密,只有被授權(quán)的節(jié)點(diǎn)才可以看到該企業(yè)的隱私數(shù)據(jù),而其他沒(méi)有權(quán)限的節(jié)點(diǎn)看到的是該隱私數(shù)據(jù)的哈希值,從而保證企業(yè)的數(shù)據(jù)隱私。
在信息分段加密模型中利用到的加密算法有對(duì)稱加密算法AES 和非對(duì)稱加密算法RSA。對(duì)稱加密算法是指在加密和解密時(shí)使用的是同一個(gè)秘鑰。而非對(duì)稱加密算法需要公鑰和私鑰。如果用公鑰對(duì)數(shù)據(jù)進(jìn)行加密,只能用對(duì)應(yīng)的私鑰才能解密。如圖1所示,當(dāng)企業(yè)節(jié)點(diǎn) A 發(fā)起半公開(kāi)交易 T(a,b),其中 a 是需要保密的企業(yè)生產(chǎn)工藝數(shù)據(jù)等隱私信息,b 是可以公開(kāi)的企業(yè)信息及草藥信息。企業(yè)節(jié)點(diǎn) A 使用 AES 對(duì)稱加密算法生成自己的密鑰 A-AES,用密鑰A-AES 將本企業(yè)的生產(chǎn)工藝數(shù)據(jù)等隱私數(shù)據(jù) a 進(jìn)行加密成為 A(a),變成半公開(kāi)交易 T(A(a), b),并發(fā)送到區(qū)塊鏈網(wǎng)絡(luò)進(jìn)行共識(shí)。同時(shí)用可查看隱私數(shù)據(jù)的授權(quán)節(jié)點(diǎn)的公鑰K 對(duì)本企業(yè)的 A-AES 密鑰進(jìn)行RSA非對(duì)稱加密生成K(A-AES),然后發(fā)送給對(duì)應(yīng)的授權(quán)節(jié)點(diǎn)。
授權(quán)節(jié)點(diǎn)可以使用自己的私鑰k 解密K(AAES),得到企業(yè)A 的密鑰A-AES,并使用密鑰A-AES 解密加密后的半公開(kāi)交易 T(A(a),b)得到 T(a, b),即可得到自己需要的信息。這里的隱私數(shù)據(jù)可以被多個(gè)節(jié)點(diǎn)進(jìn)行授權(quán)并查看,不同授權(quán)節(jié)點(diǎn)查看只需要調(diào)用多次智能合約,數(shù)據(jù)權(quán)限并不會(huì)互相影響。
圖1 中草藥生產(chǎn)供應(yīng)隱私數(shù)據(jù)保護(hù)Fig.1 Privacy data protection for herbal production and supply
中草藥基地種植環(huán)節(jié)包括種子種苗、灌溉水、土壤、空氣等影響中藥質(zhì)量的關(guān)鍵因素[7]。大量的實(shí)踐經(jīng)驗(yàn)表明,種子種苗的選育品種越好,其藥材的質(zhì)量也就越好[8]。中藥材的生成環(huán)境、氣候條件不同,生產(chǎn)出來(lái)的藥材質(zhì)量也大不相同。將這些生長(zhǎng)條件等信息記錄在鏈上,可以對(duì)整個(gè)中草藥的生產(chǎn)過(guò)程進(jìn)行可追溯的記錄,方便找到影響該批次中草藥質(zhì)量的原因。由于存在鏈上的數(shù)據(jù)是典型的結(jié)構(gòu)化數(shù)據(jù),有助于數(shù)據(jù)分析。如果對(duì)這些信息進(jìn)行研究,更能夠從中找出中草藥材的生長(zhǎng)規(guī)律,培育出更好、質(zhì)量更高的藥材。我們利用區(qū)塊鏈不可篡改的特性對(duì)這些關(guān)鍵因素進(jìn)行記錄,并且使鏈上的節(jié)點(diǎn)可以共享訪問(wèn)這些信息。在這個(gè)中草藥質(zhì)量安全管理模型中,主要對(duì)中草藥的生產(chǎn)記錄進(jìn)行可追溯的監(jiān)管。圖2 是中草藥生產(chǎn)信息收集和上鏈的流程圖。如中草藥的名字、片區(qū)負(fù)責(zé)人、肥料的品牌等都可錄入中草藥質(zhì)量安全監(jiān)管系統(tǒng),一些溫度、濕度、圖像信息和地理位置等信息可以通過(guò)傳感器被系統(tǒng)自動(dòng)采集。各傳感器具有無(wú)線數(shù)據(jù)發(fā)射模塊與數(shù)據(jù)儲(chǔ)存模塊,可以將采集到的數(shù)據(jù)進(jìn)行實(shí)時(shí)發(fā)送。
由于圖像等信息占據(jù)的存儲(chǔ)空間較大,我們采用云存儲(chǔ)的方式對(duì)這類信息進(jìn)行處理。當(dāng)有查詢需求的時(shí)候通過(guò)鍵值對(duì)索引的方式來(lái)獲得需要的信息。索引值通過(guò)哈希函數(shù)得到,哈希函數(shù)能夠?qū)?shù)據(jù)打亂混合并且得到一個(gè)散列值。這個(gè)散列值通常是由一個(gè)短的隨機(jī)字母和數(shù)字組成的字符串來(lái)表示。
圖2 中草藥生產(chǎn)信息上鏈流程Fig.2 The process of uploading Chinese herbal production information to the blockchain
系統(tǒng)中某個(gè)時(shí)間點(diǎn)的數(shù)據(jù)在被收集之后,通過(guò)SHA256 哈希函數(shù)對(duì)數(shù)據(jù)和圖像信息進(jìn)行散列,得到一個(gè)信息摘要。這個(gè)摘要通常用一個(gè)長(zhǎng)度為64 的十六進(jìn)制字符串來(lái)表示。圖3 展示了中草藥生產(chǎn)信息在云存儲(chǔ)前生成哈希索引的過(guò)程,將圖像信息和生產(chǎn)記錄的文字信息分別使用SHA256 哈希散列,最終得到一個(gè)根哈希,代表該條生產(chǎn)記錄的索引值,區(qū)塊鏈上的節(jié)點(diǎn)可以通過(guò)該索引值找到自己想要的信息。
在分布式系統(tǒng)中,分布式算法是必不可少的。必須通過(guò)一種制度來(lái)保證系統(tǒng)運(yùn)作的公平,這套制度就是共識(shí)機(jī)制。
1999年Miguel Castro 和Barbara Liskov 提出的實(shí)用拜占庭容錯(cuò)算法PBFT(Practical Byzantine Fault Tolerance)[9]是最常用的BFT 共識(shí)機(jī)制。該算法將算法復(fù)雜度由指數(shù)級(jí)降低到平方級(jí),大大提高了實(shí)際可行性。
圖3 生產(chǎn)信息哈希索引Fig.3 Hash index of production information
雖然PBFT 有很多優(yōu)點(diǎn),但它有致命的缺點(diǎn)。首先,它在一個(gè)完全封閉的環(huán)境中工作,其中想要加入或離開(kāi)的節(jié)點(diǎn)必須停止整個(gè)系統(tǒng)。其次,PBFT中許多系統(tǒng)成員更希望依靠其他人進(jìn)行繁瑣的工作以降低成本,這對(duì)系統(tǒng)安全具有破壞性[10]。
NEO 采用了一種代理拜占庭容錯(cuò)算法——DBFT(Delegated Byzantine Fault Tolerant)。由權(quán)益持有者投票選舉產(chǎn)生代理記賬人,由代理人驗(yàn)證和生成區(qū)塊,因此共識(shí)過(guò)程中的節(jié)點(diǎn)數(shù)量大大降低,解決了BFT 算法的擴(kuò)容性問(wèn)題。但是NEO 的DBFT共識(shí)機(jī)制下只設(shè)置了7 個(gè)超級(jí)節(jié)點(diǎn),這些代理節(jié)點(diǎn)由項(xiàng)目方部署并且靜態(tài)選出,因此被外界質(zhì)疑為過(guò)于中心化。
針對(duì)以上幾種的典型BFT 算法的分析,本文提出一種新的解決異步分布式系統(tǒng)拜占庭容錯(cuò)問(wèn)題的算法FPSBFT(Fair Primary Selected for Byzantine Fault Tolerant),可以適用于動(dòng)態(tài)網(wǎng)絡(luò),方便節(jié)點(diǎn)的加入與退出,同時(shí)增加網(wǎng)絡(luò)的公平性。
本文所討論的系統(tǒng)中節(jié)點(diǎn)類型分為監(jiān)管節(jié)點(diǎn)(Supervision)、主節(jié)點(diǎn)(Primary)和從節(jié)點(diǎn)(Slave)。該系統(tǒng)中節(jié)點(diǎn)總數(shù)量為 n,用1,2,3...n 為每個(gè)節(jié)點(diǎn)編號(hào)。節(jié)點(diǎn)可以動(dòng)態(tài)地加入或者退出網(wǎng)絡(luò),系統(tǒng)中所有節(jié)點(diǎn)可以查詢得到其他所有節(jié)點(diǎn)的證書(shū)信息。本文所提出的動(dòng)態(tài)節(jié)點(diǎn)協(xié)議中新節(jié)點(diǎn)加入步驟如下:
首先,新節(jié)點(diǎn)需要在NodeCA 處注冊(cè)。
NodeCA 執(zhí)行以下三個(gè)功能:
(1)NodeCA 根據(jù)行業(yè)評(píng)估和提交的真實(shí)身份信息,判斷節(jié)點(diǎn)是否可以注冊(cè)并加入系統(tǒng)。
(2)NodeCA 負(fù)責(zé)系統(tǒng)中副本證書(shū)的發(fā)行和撤銷。
(3)NodeCA 維護(hù)一個(gè)記錄節(jié)點(diǎn)身份信息的列表,例如節(jié)點(diǎn)ID、IP 地址、公鑰和節(jié)點(diǎn)狀態(tài)等。
NodeCA 通過(guò)檢查節(jié)點(diǎn)信息,來(lái)過(guò)濾掉可能的惡意節(jié)點(diǎn)。如果節(jié)點(diǎn)通過(guò)了檢查,NodeCA 將在節(jié)點(diǎn)信息列表的末尾添加其身份信息,并為其分配一個(gè)數(shù)字,例如j。然后,節(jié)點(diǎn)j 將向所有副本多播加入請(qǐng)求消息
如果節(jié)點(diǎn)j 要離開(kāi)網(wǎng)絡(luò),則它可以在NodeCA處吊銷其證書(shū)和相關(guān)信息。然后,它將退出請(qǐng)求消息
本系統(tǒng)中同時(shí)出現(xiàn)的拜占庭錯(cuò)誤節(jié)點(diǎn)數(shù)量最大值為f,f 要滿足以下不等式:假設(shè)節(jié)點(diǎn)總數(shù)是n,其中作惡節(jié)點(diǎn)有f,那么剩下的正確節(jié)點(diǎn)為n - f,意味著只要收到n - f 個(gè)消息就能做出決定,但是這n - f 個(gè)消息有可能有 f 個(gè)是由作惡節(jié)點(diǎn)冒充的,那么正確的消息就是n- f - f 個(gè),為了多數(shù)一致,正確消息必須占多數(shù),也就是n - f - f > f,但是節(jié)點(diǎn)必須是整數(shù)個(gè),所以 n 最少是3f+1 個(gè)。系統(tǒng)應(yīng)當(dāng)盡量使得系統(tǒng)中所有節(jié)點(diǎn)的數(shù)量不遠(yuǎn)多于3f+1,因?yàn)檫@些冗余的節(jié)點(diǎn)對(duì)系統(tǒng)達(dá)成共識(shí)沒(méi)有影響,且產(chǎn)生的消息會(huì)導(dǎo)致系統(tǒng)性能的下降。
共識(shí)過(guò)程如圖4 所示。
request:客戶端向主節(jié)點(diǎn)發(fā)送請(qǐng)求信息;
prepare:主節(jié)點(diǎn)接收到客戶端請(qǐng)求后將請(qǐng)求數(shù)據(jù)里的主要信息提出,并向其余節(jié)點(diǎn)發(fā)送;
commit:節(jié)點(diǎn)們接收到來(lái)自主節(jié)點(diǎn)的prepare,首先利用主節(jié)點(diǎn)的公鑰進(jìn)行簽名認(rèn)證,其次將消息進(jìn)行散列(消息摘要,以便縮小信息在網(wǎng)絡(luò)中的傳輸大?。┖蠛灻?,向監(jiān)管節(jié)點(diǎn)發(fā)送;
distribution:監(jiān)管節(jié)點(diǎn)接收到2f 個(gè)commit 信息,并全部簽名驗(yàn)證通過(guò),則可以進(jìn)行到distribution 步驟,向全網(wǎng)其他節(jié)點(diǎn)廣播;
圖4 FPSBFT 共識(shí)過(guò)程Fig.4 Fair Primary Selected for Byzantine Fault Tolerant
reply:節(jié)點(diǎn)接收到監(jiān)管節(jié)點(diǎn)的distribution,并簽名驗(yàn)證通過(guò)后,則可以把消息存入到本地,并向客戶端返回reply 消息。
網(wǎng)絡(luò)中主節(jié)點(diǎn)的選擇,關(guān)系到系統(tǒng)的公平性和安全性,假如主節(jié)點(diǎn)被固定的幾個(gè)節(jié)點(diǎn)擔(dān)任,則系統(tǒng)會(huì)有很大的安全風(fēng)險(xiǎn)。我們的解決辦法是為系統(tǒng)中設(shè)置一個(gè)最近生產(chǎn)隊(duì)列,如圖5 所示,用來(lái)存儲(chǔ)最近兩輪被選中的主節(jié)點(diǎn)編號(hào)。假如本輪中被選中的主節(jié)點(diǎn)的編號(hào)與生產(chǎn)隊(duì)列中的節(jié)點(diǎn)編號(hào)重復(fù),則重新選舉。這種方式解決了部分節(jié)點(diǎn)不能被選中為生產(chǎn)節(jié)點(diǎn)的不公平問(wèn)題。在一定程度上增加了系統(tǒng)的安全性。
圖5 生產(chǎn)隊(duì)列Fig.5 The production queue
基于區(qū)塊鏈的中草藥質(zhì)量安全管理模型可以實(shí)時(shí)監(jiān)測(cè)和追蹤中草藥生產(chǎn)到銷售各個(gè)環(huán)節(jié)產(chǎn)生的數(shù)據(jù)并對(duì)其進(jìn)行相應(yīng)的處理。本文基于IBM 公司所推出的Fabric 框架進(jìn)行系統(tǒng)開(kāi)發(fā)。使用Docker 容器和shell 腳本建立配置區(qū)塊鏈網(wǎng)絡(luò),使用go 語(yǔ)言編寫(xiě)了相關(guān)的智能合約和后臺(tái)服務(wù)器,并使用Vue 作為前端框架為使用者提供了相應(yīng)的前端web 頁(yè)面以供操作。本系統(tǒng)的架構(gòu)示意圖如圖6 所示。
應(yīng)用層主要以 Web 瀏覽器的方式供平臺(tái)參與用戶使用,不同的用戶權(quán)限不同,對(duì)數(shù)據(jù)的操作權(quán)限嚴(yán)格劃分,從而保證信息的獨(dú)立性和安全性。
服務(wù)層面向業(yè)務(wù)應(yīng)用開(kāi)發(fā)人員。基于分布式賬本,支持鏈碼、秘鑰管理、交易等跟業(yè)務(wù)相關(guān)的功能模塊,提供更高一層的應(yīng)用開(kāi)發(fā)支持。
存儲(chǔ)層包括鏈上存儲(chǔ)和鏈下存儲(chǔ)兩個(gè)部分,幾乎所有的區(qū)塊鏈系統(tǒng),尤其是和實(shí)體經(jīng)濟(jì)、現(xiàn)實(shí)世界結(jié)合的區(qū)塊鏈應(yīng)用,都需要鏈上鏈下協(xié)同。企業(yè)使用鏈下數(shù)據(jù)庫(kù)可以方便企業(yè)對(duì)數(shù)據(jù)進(jìn)行備份管理等操作,鏈上數(shù)據(jù)可以保證企業(yè)數(shù)據(jù)不會(huì)被篡改。
物理層通過(guò)利用RFID、二維碼等方式完成中草藥在實(shí)際生產(chǎn)流通過(guò)程中實(shí)際狀態(tài)的記錄,并通過(guò)網(wǎng)絡(luò)上傳到系統(tǒng)中。
圖6 系統(tǒng)整體架構(gòu)圖Fig.6 Overall architecture of the system
系統(tǒng)管理主要執(zhí)行對(duì)平臺(tái)節(jié)點(diǎn)進(jìn)行身份審核及驗(yàn)證,對(duì)賬本和交易進(jìn)行管理,用戶/角色權(quán)限管理,平臺(tái)運(yùn)維等功能。
基于中草藥質(zhì)量安全管理平臺(tái)所生產(chǎn)出的產(chǎn)品包裝上擁有唯一的溯源條形碼或者二維碼,當(dāng)消費(fèi)者使用手機(jī)掃描包裝袋上的標(biāo)識(shí)碼可以快速查詢到產(chǎn)品在區(qū)塊鏈網(wǎng)絡(luò)上存證的信息。圖7 為基于區(qū)塊鏈的中草藥質(zhì)量安全管理模型的一個(gè)示例。消費(fèi)者通過(guò)小程序掃碼產(chǎn)品包裝上的二維碼或者條形碼可以得到該產(chǎn)品的生產(chǎn)及溯源信息。圖7a、7b 兩張圖可以看到,中草藥生產(chǎn)的詳細(xì)信息以及鏈上數(shù)據(jù)。消費(fèi)者可以通過(guò)小程序查看所購(gòu)買產(chǎn)品相應(yīng)的生產(chǎn)、加工,以及運(yùn)輸信息。系統(tǒng)利用區(qū)塊鏈網(wǎng)絡(luò)的不可篡改的特性來(lái)保證消費(fèi)者查看到鏈上數(shù)據(jù)的真實(shí)性和可靠性。
圖7c 是企業(yè)級(jí)用戶使用基于區(qū)塊鏈的中草藥質(zhì)量安全管理平臺(tái)的界面,該企業(yè)可以利用此平臺(tái)向合作的單位發(fā)起交易,交易合同及對(duì)象信息會(huì)被記錄在鏈上,方便監(jiān)管機(jī)構(gòu)的審查以及減少企業(yè)內(nèi)部的腐敗行為。企業(yè)只能查看鏈上的公開(kāi)信息和已經(jīng)被授權(quán)可以查看的信息,對(duì)于未授權(quán)的信息不可查看,只能看到未被授權(quán)信息的加密哈希值。
圖7 系統(tǒng)工作界面Fig.7 System working interface
我們使用Hyperledger Caliper 工具來(lái)對(duì)中草藥質(zhì)量安全管理平臺(tái)進(jìn)行測(cè)試。Caliper 是一個(gè)區(qū)塊鏈性能測(cè)試框架,用戶可以在定義好測(cè)試集的情況下針對(duì)自己的區(qū)塊鏈網(wǎng)絡(luò)進(jìn)行性能測(cè)試,獲取一系列的測(cè)試結(jié)果并生成測(cè)試報(bào)告。圖8 為本系統(tǒng)測(cè)試的代碼,整個(gè)測(cè)試流程主要包括3 個(gè)階段:
首先在準(zhǔn)備階段,通過(guò)腳本文件初始化區(qū)塊鏈網(wǎng)絡(luò),讀取配置文件,接著部署系統(tǒng)的智能合約,啟動(dòng)監(jiān)控組件等。
在測(cè)試階段,我們通過(guò)預(yù)定義的benchmark 配置文件,啟動(dòng)客戶端子進(jìn)程進(jìn)行測(cè)試,并返回統(tǒng)計(jì)結(jié)果。
在最后的報(bào)告階段,Caliper 工具會(huì)分析得到的統(tǒng)計(jì)結(jié)果并生成報(bào)告。
圖8 性能測(cè)試流程Fig.8 Process of performance testing
Caliper 提供了一組接口來(lái)供應(yīng)用程序與后端區(qū)塊鏈系統(tǒng)交互。我們進(jìn)行了七輪測(cè)試,分別測(cè)試了100 筆交易不同發(fā)送速率的吞吐量和時(shí)延,從表1 中可以看出,每筆交易的平均時(shí)延不超過(guò)1s,滿足實(shí)際供應(yīng)鏈的需求。
在本系統(tǒng)中,未被授權(quán)的節(jié)點(diǎn)想要獲取加密的信息可以選擇暴力破解AES 算法得到加密的密文,或者選擇破解授權(quán)節(jié)點(diǎn)非對(duì)稱加密RSA 算法獲得對(duì)應(yīng)的私鑰k。
混淆性是加密算法安全性測(cè)試的一個(gè)標(biāo)準(zhǔn),混淆性越高代表加密算法的加密效果越好,使得對(duì)手即使獲取了關(guān)于密文的一些統(tǒng)計(jì)特性,也無(wú)法推測(cè)其密鑰。我們通過(guò)密文改變率P 來(lái)衡量AES 對(duì)稱加密算法的混淆性。其中m 為密文的改變位數(shù),n 是密文的總位數(shù)。在本次實(shí)驗(yàn)中,我們控制明文不變,改變一位密鑰位,進(jìn)行十次實(shí)驗(yàn),引起的變化如圖9 所示。經(jīng)驗(yàn)證,AES 加密算法密文改變率的平均值為0.831,具有高混淆性。
圖9 混淆性測(cè)試Fig.9 Confusion testing
表1 性能測(cè)試結(jié)果Table 1 Results of performance testing
獲取授權(quán)節(jié)點(diǎn)的私鑰k 需要破解RSA 加密算法,RSA 是使用最廣泛的非對(duì)稱加密算法之一,其安全性依賴于大整數(shù)的因數(shù)分解的困難性[11-12]。由于RSA 算法在加密和解密過(guò)程都是用指數(shù)計(jì)算,計(jì)算工作量巨大,用窮盡搜索法和密碼分析法攻擊RSA密碼系統(tǒng)在現(xiàn)實(shí)是不可計(jì)算的問(wèn)題。因此從理論上來(lái)講本模型利用此方法將數(shù)據(jù)存儲(chǔ)在區(qū)塊鏈網(wǎng)絡(luò)上是安全可靠的。
本文利用區(qū)塊鏈技術(shù)設(shè)計(jì)了一個(gè)中草藥質(zhì)量安全管理模型。本模型相對(duì)于其他溯源模型,對(duì)中草藥源頭造假問(wèn)題做了針對(duì)性的處理。從種子種苗階段開(kāi)始就利用傳感器對(duì)土壤、溫度等影響中藥質(zhì)量的關(guān)鍵因素進(jìn)行自動(dòng)記錄。通過(guò)利用區(qū)塊鏈去中心化、安全、可追溯等特性來(lái)提高整個(gè)中草藥供應(yīng)鏈背書(shū)可信度,減少造假的風(fēng)險(xiǎn)。本系統(tǒng)通過(guò)使用信息分段加密技術(shù)對(duì)企業(yè)的隱私數(shù)據(jù)和公開(kāi)數(shù)據(jù)進(jìn)行處理,保證在數(shù)據(jù)不可篡改的同時(shí)保護(hù)企業(yè)的隱私安全;利用共享云存儲(chǔ)解決了大文件在本地的存儲(chǔ)問(wèn)題;使用公平主節(jié)點(diǎn)選舉機(jī)制來(lái)保證系統(tǒng)的公平性和網(wǎng)絡(luò)動(dòng)態(tài)平衡。最后我們展示了系統(tǒng)的架構(gòu)并對(duì)系統(tǒng)性能和安全性進(jìn)行了分析,該系統(tǒng)滿足實(shí)際中草藥質(zhì)量安全供應(yīng)的需求,可以實(shí)現(xiàn)資源的整合,提高整個(gè)供應(yīng)鏈的協(xié)同效率。本監(jiān)管模型在西醫(yī)以及其他監(jiān)管領(lǐng)域同樣適用,但是要針對(duì)具體問(wèn)題做出一定的修改和調(diào)整。最后我們想說(shuō)的的是,區(qū)塊鏈只是一種輔助技術(shù),幫助減少制假摻假的行為,并不能完全杜絕這種現(xiàn)象。只有完善法律法規(guī),加大管制力度,才能真正有效的對(duì)中草藥市場(chǎng)進(jìn)行規(guī)范調(diào)整。
利益沖突聲明
所有作者聲明不存在利益沖突關(guān)系。
數(shù)據(jù)與計(jì)算發(fā)展前沿2020年5期