李菲
摘要:傳統(tǒng)醫(yī)院人事檔案多為紙質(zhì)版,會(huì)集中存儲(chǔ)在檔案室,由專人進(jìn)行管理。由于紙質(zhì)檔案存在易丟失、易篡改和易損壞等缺點(diǎn),對(duì)檔案的查閱與審核帶來不便。文章基于聯(lián)盟鏈技術(shù)提出醫(yī)院人事檔案數(shù)據(jù)存儲(chǔ)方案,方案中的主節(jié)點(diǎn)負(fù)責(zé)對(duì)故障的普通節(jié)點(diǎn)進(jìn)行賬本同步,并對(duì)加入聯(lián)盟鏈的節(jié)點(diǎn)進(jìn)行身份認(rèn)證,保證了各節(jié)點(diǎn)數(shù)據(jù)的時(shí)效性,避免了惡意節(jié)點(diǎn)對(duì)檔案數(shù)據(jù)的影響。通過改進(jìn)的共識(shí)算法,將醫(yī)院人事檔案數(shù)據(jù)存儲(chǔ)在區(qū)塊中,保證了檔案數(shù)據(jù)的完整性和一致性,并在共識(shí)算法中加入主節(jié)點(diǎn)更換機(jī)制,有效地避免了單點(diǎn)故障。鏈上哈希鏈下存儲(chǔ)方式,實(shí)現(xiàn)了檔案數(shù)據(jù)的高效存儲(chǔ)。
關(guān)鍵詞:人事檔案;紙質(zhì)版;聯(lián)盟鏈;身份認(rèn)證;共識(shí)算法
中圖分類號(hào): TP311? ? ? ? 文獻(xiàn)標(biāo)識(shí)碼:A
文章編號(hào):1009-3044(2023)01-0046-03
醫(yī)院人事檔案是醫(yī)務(wù)人員業(yè)務(wù)能力、工作表現(xiàn)的重要反應(yīng),為醫(yī)院合理配置人才提供了重要依據(jù)。但目前大部分醫(yī)院仍然停留在手工操作的層面上,毀壞、丟失、涂改人事檔案的現(xiàn)象仍有發(fā)生,嚴(yán)重阻礙了醫(yī)院人事檔案資源的開發(fā)和利用。如何推進(jìn)檔案電子化[1]存儲(chǔ)是當(dāng)前迫切需要解決的問題。
區(qū)塊鏈按照節(jié)點(diǎn)準(zhǔn)入機(jī)制分為三類,分別為公有鏈、私有鏈和聯(lián)盟鏈[2]。目前聯(lián)盟鏈?zhǔn)菂^(qū)塊鏈技術(shù)領(lǐng)域的主要研究對(duì)象。結(jié)合聯(lián)盟鏈的特征,把信息存儲(chǔ)到不同的節(jié)點(diǎn)中,即使某一節(jié)點(diǎn)受到攻擊,其他節(jié)點(diǎn)的信息依然會(huì)保留信息不會(huì)缺失。并且存儲(chǔ)在區(qū)塊中的數(shù)據(jù)無法修改,保證了數(shù)據(jù)的真實(shí)性。
王輝等[3]對(duì)實(shí)用拜占庭容錯(cuò)算法(Practical Byzantine Fault Tolerance,PBFT) 進(jìn)行改進(jìn)并使用星際文件系統(tǒng),實(shí)現(xiàn)人事檔案的可追溯性和本地備份,但存儲(chǔ)開銷較大,缺少身份認(rèn)證機(jī)制,并且當(dāng)主節(jié)點(diǎn)出錯(cuò)或成為惡意節(jié)點(diǎn)時(shí)主節(jié)點(diǎn)選取隨意,通信復(fù)雜度過高,可拓展性比較低。Azaria等[4]提出一種新的分布式電子健康檔案管理系統(tǒng),通過區(qū)塊鏈技術(shù)實(shí)現(xiàn)了對(duì)電子健康檔案的數(shù)據(jù)訪問和權(quán)限管理,但共識(shí)算法采用工作量證明(Proof of Work, PoW),所需的算力較大。本文基于文獻(xiàn)[3]和文獻(xiàn)[4],提出了基于聯(lián)盟鏈的醫(yī)院人事檔案數(shù)據(jù)存儲(chǔ)方案,實(shí)現(xiàn)了節(jié)點(diǎn)管理、共識(shí)算法和鏈上哈希鏈下存儲(chǔ)。
1 基于聯(lián)盟鏈的醫(yī)院人事檔案數(shù)據(jù)存儲(chǔ)方案
1.1 網(wǎng)絡(luò)模型
本文方案的網(wǎng)絡(luò)模型由主節(jié)點(diǎn)、從節(jié)點(diǎn)、普通節(jié)點(diǎn)(醫(yī)院)、哨兵和認(rèn)證中心(Certification Authority,CA) 組成,采用一主多從三哨兵的部署方案。按照地理范圍將節(jié)點(diǎn)劃分為若干個(gè)區(qū)域,每個(gè)區(qū)域都由32位的區(qū)域標(biāo)識(shí)符進(jìn)行標(biāo)識(shí),區(qū)域中包括一個(gè)從節(jié)點(diǎn)和若干個(gè)普通節(jié)點(diǎn),節(jié)點(diǎn)間采用P2P方式進(jìn)行通信。為了使每一個(gè)區(qū)域能夠和本區(qū)域以外的區(qū)域進(jìn)行通信,本文方案使用層次結(jié)構(gòu)的區(qū)域劃分,在上層的區(qū)域叫作主干區(qū)域,作用是用來連通其他在下層的區(qū)域,如圖1所示。
主干區(qū)域中的主節(jié)點(diǎn)、從節(jié)點(diǎn)都安裝非關(guān)系型數(shù)據(jù)庫redis(remote dictionary server),存儲(chǔ)各普通節(jié)點(diǎn)登錄醫(yī)院人事檔案應(yīng)用系統(tǒng)的用戶賬號(hào)、密碼信息。普通節(jié)點(diǎn)部署關(guān)系型數(shù)據(jù)庫,用于存儲(chǔ)本醫(yī)院人事檔案信息和經(jīng)過主節(jié)點(diǎn)驗(yàn)證通過的用戶登錄信息token。哨兵是不提供數(shù)據(jù)服務(wù)的redis服務(wù)器,通常哨兵配置數(shù)量為奇數(shù)。哨兵通過發(fā)送命令,讓主節(jié)點(diǎn)和從節(jié)點(diǎn)中的redis服務(wù)器返回其運(yùn)行狀態(tài)。主節(jié)點(diǎn)負(fù)責(zé)對(duì)普通節(jié)點(diǎn)進(jìn)行身份認(rèn)證、對(duì)聯(lián)盟鏈網(wǎng)絡(luò)賬本信息進(jìn)行同步,在此過程中主節(jié)點(diǎn)成為整個(gè)系統(tǒng)的單點(diǎn)故障,若主節(jié)點(diǎn)宕機(jī)則無法向故障的普通節(jié)點(diǎn)同步賬本信息。從節(jié)點(diǎn)作為主節(jié)點(diǎn)的備份,當(dāng)主節(jié)點(diǎn)宕機(jī)時(shí),哨兵在從節(jié)點(diǎn)中選舉新的主節(jié)點(diǎn),并將新的主節(jié)點(diǎn)信息打包成區(qū)塊廣播給其他節(jié)點(diǎn)。
由于區(qū)域之間頻繁地交換區(qū)塊數(shù)據(jù),因此所有的節(jié)點(diǎn)最終都能建立一個(gè)完整的賬本,多個(gè)賬本記著同一個(gè)賬,而且每個(gè)賬本都是一樣,可以相互校驗(yàn)。CA用來將公鑰與其對(duì)應(yīng)的節(jié)點(diǎn)進(jìn)行綁定,每個(gè)節(jié)點(diǎn)都有CA發(fā)來的證書,里面有公鑰及其擁有者的標(biāo)識(shí)信息(節(jié)點(diǎn)地址信息)。此證書被CA進(jìn)行了數(shù)字簽名,任何節(jié)點(diǎn)都可從可信的地方獲得CA的公鑰。此公鑰用來驗(yàn)證某個(gè)公鑰是否為某個(gè)節(jié)點(diǎn)所擁有(通過向CA查詢)。
1.2 節(jié)點(diǎn)管理
區(qū)塊鏈各節(jié)點(diǎn)之間的通信方式是對(duì)等方式(P2P方式),在P2P網(wǎng)絡(luò)中,用戶可以隨時(shí)加入、離開網(wǎng)絡(luò),提供一種分布式、自組織的連接模式。而且隨著用戶節(jié)點(diǎn)的加入,系統(tǒng)整體的服務(wù)能力也在相應(yīng)地提高。但缺少身份認(rèn)證、數(shù)據(jù)驗(yàn)證、網(wǎng)絡(luò)安全管理等機(jī)制[5],P2P通信易遭受截獲攻擊、篡改攻擊、惡意程序和拒絕服務(wù)等攻擊。相對(duì)于C/S通信方式,P2P通信無法使用安全級(jí)別更高的防火墻和入侵檢測等技術(shù)。
本文方案對(duì)醫(yī)院人事檔案聯(lián)盟鏈節(jié)點(diǎn)進(jìn)行管理,實(shí)現(xiàn)節(jié)點(diǎn)的加入認(rèn)證和權(quán)限管理。由公鑰、私鑰和地址可以唯一的確定一個(gè)節(jié)點(diǎn),私鑰通過橢圓曲線生成公鑰,公鑰通過哈希函數(shù)生成地址,這兩個(gè)過程都是單向的。普通節(jié)點(diǎn)首次加入聯(lián)盟鏈網(wǎng)絡(luò),需要將數(shù)字證書發(fā)送給主節(jié)點(diǎn)。主節(jié)點(diǎn)對(duì)數(shù)字證書進(jìn)行驗(yàn)證,若證書有效則允許普通節(jié)點(diǎn)加入聯(lián)盟鏈中,并將自己的數(shù)字證書發(fā)送給普通節(jié)點(diǎn),否則拒絕其加入。主節(jié)點(diǎn)驗(yàn)證普通節(jié)點(diǎn)數(shù)字證書有效后,普通節(jié)點(diǎn)需要將節(jié)點(diǎn)的用戶信息(賬號(hào)、密碼等)通過橢圓曲線數(shù)字簽名算法(Elliptic Curve Digital Signature Algorithm, ECDSA) 進(jìn)行數(shù)字簽名,并對(duì)數(shù)字簽名進(jìn)行加密后發(fā)送給主節(jié)點(diǎn)。主節(jié)點(diǎn)收到簽名信息后,對(duì)簽名信息進(jìn)行驗(yàn)證,確認(rèn)收到的信息的確是普通節(jié)點(diǎn)發(fā)送的,如圖2所示。
主節(jié)點(diǎn)將收到的普通節(jié)點(diǎn)的用戶信息和相應(yīng)節(jié)點(diǎn)的地址綁定后存入redis中,并同步給從節(jié)點(diǎn)。當(dāng)系統(tǒng)中檢測到有惡意節(jié)點(diǎn)加入,主節(jié)點(diǎn)可以停用惡意節(jié)點(diǎn)用戶信息,使得惡意節(jié)點(diǎn)無法登錄系統(tǒng)。本文方案在醫(yī)院內(nèi)部采用B/S架構(gòu),醫(yī)院的服務(wù)器端作為普通節(jié)點(diǎn)。當(dāng)用戶通過普通節(jié)點(diǎn)登錄系統(tǒng)時(shí),將用戶賬號(hào)、密碼通過P2P的方式發(fā)送給主節(jié)點(diǎn),主節(jié)點(diǎn)對(duì)賬號(hào)密碼進(jìn)行驗(yàn)證,若驗(yàn)證通過則生成令牌token,并回送給普通節(jié)點(diǎn)。普通節(jié)點(diǎn)將用戶賬號(hào)、token存儲(chǔ)在本地關(guān)系型數(shù)據(jù)庫中。并返回給前端用戶登錄頁面,前端保存到window.sessionStorage中,每次訪問接口的時(shí)候都需要提交token作為驗(yàn)證,驗(yàn)證通過則可以訪問接口。主節(jié)點(diǎn)通過redis存儲(chǔ)用戶的賬號(hào)、密碼信息,用于對(duì)普通節(jié)點(diǎn)發(fā)送過來的登錄信息進(jìn)行驗(yàn)證。若主節(jié)點(diǎn)宕機(jī),redis將采用哨兵模式切換主從節(jié)點(diǎn),保證用戶提供正常的用戶登錄驗(yàn)證功能。redis采用哨兵模式切換主從節(jié)點(diǎn)后,新的主節(jié)點(diǎn)將本節(jié)點(diǎn)的信息打包成區(qū)塊發(fā)送給其他區(qū)塊,收到區(qū)塊的節(jié)點(diǎn)記錄新的主節(jié)點(diǎn)信息。用戶登錄時(shí),普通節(jié)點(diǎn)將賬號(hào)、密碼信息發(fā)送給新的主節(jié)點(diǎn)進(jìn)行驗(yàn)證。
1.3 IPoW共識(shí)算法
不同醫(yī)院的人事檔案數(shù)據(jù)相互獨(dú)立存儲(chǔ)和維護(hù),彼此間相互孤立。通過在聯(lián)盟鏈下多方參與共識(shí),可以解決數(shù)據(jù)孤島問題。區(qū)塊鏈系統(tǒng)作為一個(gè)多節(jié)點(diǎn)的分布式賬本系統(tǒng),當(dāng)有新的信息(一個(gè)區(qū)塊)需要更新到本地的賬本記錄中,哪個(gè)節(jié)點(diǎn)來負(fù)責(zé)記賬,哪些節(jié)點(diǎn)負(fù)責(zé)驗(yàn)證記賬結(jié)果,如何讓各個(gè)節(jié)點(diǎn)達(dá)成最終一致,將記賬結(jié)果被網(wǎng)絡(luò)中所有節(jié)點(diǎn)以同樣的順序復(fù)制并記錄下來,就是共識(shí)算法要做的事情。比特幣系統(tǒng)和以太坊系統(tǒng)均基于工作量證明PoW算法來實(shí)現(xiàn)其共識(shí)機(jī)制。
本文對(duì)PoW共識(shí)算法進(jìn)行改進(jìn),將挖礦過程限制在較小的區(qū)域內(nèi),對(duì)共識(shí)過程中節(jié)點(diǎn)間傳輸?shù)臄?shù)據(jù)進(jìn)行加密處理,并為獲得記賬權(quán)的節(jié)點(diǎn)設(shè)置隨機(jī)的退避時(shí)間,得出改進(jìn)的工作量證明(Improved Proof of Work, IPoW) 共識(shí)算法,如算法1所示。
算法1? IPoW共識(shí)算法
1) 主節(jié)點(diǎn)選定一條橢圓曲線E和基點(diǎn)G廣播給其他節(jié)點(diǎn)。
2) 網(wǎng)絡(luò)中所有節(jié)點(diǎn)選擇自己的私有密鑰ki,并根據(jù)橢圓曲線E和基點(diǎn)G生成相應(yīng)的公開密鑰Ki=kiG。
3) 普通節(jié)點(diǎn)獲取需要存儲(chǔ)在區(qū)塊體中的檔案數(shù)據(jù)data和區(qū)塊鏈最后一個(gè)區(qū)塊的哈希值hash。通過檔案數(shù)據(jù)data構(gòu)造merkle哈希樹,并設(shè)置一個(gè)計(jì)數(shù)器nonce,初始值為0。
4) 對(duì)hash、merkle樹根和nonce進(jìn)行字符串拼接,并通過安全散列算法(SHA, Secure Hash Algorithm) 進(jìn)行哈希運(yùn)算,SHA256(hash+merkle樹根+nonce)。
5) 檢查上一步的哈希值是否滿足某個(gè)條件(如哈希值前4位都是0) ,滿足則停止計(jì)算,不滿足則nonce加1,然后重復(fù)第4步和第5步,直到滿足這個(gè)特定的條件為止。
6)將新產(chǎn)生的區(qū)塊編碼到橢圓曲線E上的一點(diǎn)M,并產(chǎn)生一個(gè)隨機(jī)整數(shù)r,計(jì)算Ci=M+rKi (i=1,2,...) 和C=rG。并將Ci、C發(fā)送給同一個(gè)區(qū)域內(nèi)的其他相應(yīng)節(jié)點(diǎn)。
7) 其他節(jié)點(diǎn)收到信息后,計(jì)算[Ci-kiC=M+rKi-ki(rG)=M+r(Ki-kiG)=M],結(jié)果就是點(diǎn)M。
8) 將點(diǎn)M恢復(fù)為最初的區(qū)塊數(shù)據(jù),收到區(qū)塊的節(jié)點(diǎn)驗(yàn)證區(qū)塊哈希值是否滿足指定條件(如哈希值前4位都是0) ,若不滿足則丟棄該區(qū)塊。
9) 獲取新區(qū)塊的首部標(biāo)志字段flag(1-普通區(qū)塊 2-主節(jié)點(diǎn)更換通知區(qū)塊),判斷收到的區(qū)塊類型。若標(biāo)志字段flag為1,該區(qū)塊為普通區(qū)塊。若標(biāo)志字段flag為2,該區(qū)塊為新的主節(jié)點(diǎn)廣播的主節(jié)點(diǎn)更換通知區(qū)塊,獲取創(chuàng)世區(qū)塊中存儲(chǔ)的哨兵節(jié)點(diǎn)信息(IP地址、端口號(hào)等),遍歷哨兵節(jié)點(diǎn)獲取主節(jié)點(diǎn)信息,驗(yàn)證收到的區(qū)塊中存儲(chǔ)的主節(jié)點(diǎn)信息,若不匹配則丟棄該區(qū)塊。
10) 收到區(qū)塊的節(jié)點(diǎn)驗(yàn)證區(qū)塊頭部中上一區(qū)塊哈希值字段與本節(jié)點(diǎn)區(qū)塊鏈最后一個(gè)區(qū)塊的哈希值是否一致,若一致則將區(qū)塊加入本地區(qū)塊鏈中,通過從節(jié)點(diǎn)所在的主干區(qū)域?qū)^(qū)塊廣播給其他區(qū)域,其他區(qū)域收到經(jīng)過共識(shí)的區(qū)塊則直接加入本地區(qū)塊鏈中,若不一致則丟棄該區(qū)塊。
11)節(jié)點(diǎn)記賬成功后,需要退避一個(gè)隨機(jī)時(shí)間才能再次爭奪記賬權(quán)?;就吮軙r(shí)間選取系統(tǒng)平均出塊時(shí)間τ,從整數(shù)集合[0, 1, ... , (2k -1)]中隨機(jī)地取出一個(gè)數(shù)記為r,其中k = min[出塊次數(shù),3],退避時(shí)間就是r倍的基本退避時(shí)間。
1.4 數(shù)據(jù)存儲(chǔ)
醫(yī)院人事檔案包含《干部基本信息審核表》《干部履歷表》《入團(tuán)志愿書》《入黨志愿書》《轉(zhuǎn)正定級(jí)材料》等檔案材料,數(shù)據(jù)存儲(chǔ)采用“鏈上哈希,鏈下存儲(chǔ)”的方式[6],區(qū)塊上通過merkle哈希樹存儲(chǔ)檔案摘要信息,醫(yī)院本地關(guān)系型數(shù)據(jù)庫中存儲(chǔ)檔案詳細(xì)信息和區(qū)塊哈希值?!陡刹炕拘畔徍吮怼吩趨^(qū)塊上存儲(chǔ)哈希值和摘要信息(姓名、性別、出生年月、民族和籍貫),如圖3所示,區(qū)塊的數(shù)據(jù)結(jié)構(gòu)如下:
block= {
“blockHead” : {
“index” : “區(qū)塊索引號(hào)(區(qū)塊高度)”,
“hash” : “當(dāng)前區(qū)塊的hash值”,
“previousHash” : “前一個(gè)區(qū)塊的hash值”,
“merkle” : “merkle樹根節(jié)點(diǎn)的哈希值”,
“timestamp” : “生成區(qū)塊的時(shí)間戳”,
“nonce” : “工作量證明,計(jì)算正確hash值的次數(shù)”,
“flag” : “區(qū)塊類型標(biāo)志字段”
},
“blockBody” : [{
“name” : “姓名”,
“gender” : “性別”,
...
}]
}
在醫(yī)院本地關(guān)系型數(shù)據(jù)庫中存儲(chǔ)《干部基本信息審核表》詳細(xì)信息和區(qū)塊的哈希值。通過區(qū)塊上存儲(chǔ)的哈希值和摘要信息,可以定位到關(guān)系型數(shù)據(jù)庫中的詳細(xì)信息。當(dāng)醫(yī)院職工調(diào)離工作崗位需要轉(zhuǎn)移其個(gè)人人事檔案。首先由個(gè)人向原單位申請(qǐng),原單位查詢存儲(chǔ)在聯(lián)盟鏈上的人事檔案,將鏈上數(shù)據(jù)重新打包成新的區(qū)塊,通過IPoW共識(shí)算法進(jìn)行共識(shí)。共識(shí)通過后將存儲(chǔ)在數(shù)據(jù)庫中的鏈下數(shù)據(jù)加密處理后發(fā)送給接收單位。若接收單位接收該人事檔案,則將收到加密的鏈下數(shù)據(jù)進(jìn)行解密處理后加入本地節(jié)點(diǎn)中,并向原單位發(fā)送一個(gè)接收確認(rèn),原單位則將該檔案的狀態(tài)標(biāo)記為調(diào)離。
2 性能分析
2.1 安全性分析
區(qū)塊鏈網(wǎng)絡(luò)中節(jié)點(diǎn)故障和網(wǎng)絡(luò)擁塞會(huì)出現(xiàn)數(shù)據(jù)異常,導(dǎo)致不同節(jié)點(diǎn)賬本數(shù)據(jù)不統(tǒng)一。本文方案網(wǎng)絡(luò)模型采用一主多從三哨兵的部署方案,主節(jié)點(diǎn)負(fù)責(zé)對(duì)聯(lián)盟鏈網(wǎng)絡(luò)賬本信息進(jìn)行同步。若主節(jié)點(diǎn)故障,則通過redis的哨兵模式選舉新的主節(jié)點(diǎn),并在聯(lián)盟鏈中進(jìn)行登記。區(qū)塊鏈的虛擬數(shù)字貨幣應(yīng)用,例如比特幣、以太坊等都是建立在不可信且透明的P2P網(wǎng)絡(luò)上,共識(shí)算法采用PoW通過消耗算力的方式保證數(shù)據(jù)的一致性和有效性,但是沒有對(duì)成員節(jié)點(diǎn)進(jìn)行身份認(rèn)證,區(qū)塊鏈網(wǎng)絡(luò)中存在惡意節(jié)點(diǎn)廣播錯(cuò)誤數(shù)據(jù)。本文方案對(duì)節(jié)點(diǎn)進(jìn)行管理,通過數(shù)字簽名算法ECDSA對(duì)加入系統(tǒng)的節(jié)點(diǎn)證明其合法性,實(shí)現(xiàn)區(qū)塊鏈節(jié)點(diǎn)的合法加入和有效通信,從而實(shí)現(xiàn)拜占庭容錯(cuò)。
PoW共識(shí)算法在共識(shí)過程中,節(jié)點(diǎn)間傳輸?shù)臄?shù)據(jù)是明文,容易遭受篡改或監(jiān)聽。運(yùn)行區(qū)塊鏈系統(tǒng)需要消耗計(jì)算資源,隨著系統(tǒng)的運(yùn)行,資源消耗會(huì)越來越大,以至于普通的節(jié)點(diǎn)無法負(fù)擔(dān)。具有較高算力的節(jié)點(diǎn)將會(huì)優(yōu)先獲得記賬權(quán),最終區(qū)塊鏈系統(tǒng)將被有限的大型資源節(jié)點(diǎn)接管,存在節(jié)點(diǎn)間的合謀攻擊。本文方案對(duì)PoW共識(shí)算法進(jìn)行改進(jìn)提出IPoW共識(shí)算法,對(duì)傳輸?shù)臋n案數(shù)據(jù)通過橢圓曲線加密(Elliptic Curve Cryptography, ECC) 保密通信算法進(jìn)行加密處理,實(shí)現(xiàn)傳輸數(shù)據(jù)的安全性。通過為獲得記賬權(quán)的節(jié)點(diǎn)設(shè)置隨機(jī)的退避時(shí)間,實(shí)現(xiàn)網(wǎng)絡(luò)中的所有節(jié)點(diǎn)獲得記賬權(quán)的公平性,避免了節(jié)點(diǎn)間的合謀攻擊。
2.2 存儲(chǔ)開銷
醫(yī)院人事檔案數(shù)據(jù)量較大,若將所有數(shù)據(jù)都存儲(chǔ)在聯(lián)盟鏈上,每一個(gè)節(jié)點(diǎn)都實(shí)時(shí)同步完整賬本數(shù)據(jù),這種模式產(chǎn)生了大量冗余數(shù)據(jù),隨著鏈上數(shù)據(jù)存儲(chǔ)量增長、數(shù)據(jù)操作量的增加,大量消耗存儲(chǔ)資源。本系統(tǒng)采用“鏈上哈希,鏈下存儲(chǔ)”的數(shù)據(jù)存儲(chǔ)方式,通過哈希函數(shù)和merkle哈希樹實(shí)現(xiàn)鏈上數(shù)據(jù)和鏈下數(shù)據(jù)的高效關(guān)聯(lián),聯(lián)盟鏈上存儲(chǔ)哈希值和摘要信息,聯(lián)盟鏈上各節(jié)點(diǎn)維護(hù)的賬本數(shù)據(jù)量較小,將大量的詳細(xì)檔案信息存儲(chǔ)在醫(yī)院本地關(guān)系型數(shù)據(jù)庫中,實(shí)現(xiàn)在一個(gè)區(qū)塊中存儲(chǔ)一組文檔。既保證了檔案信息的不可篡改,又有效地降低了系統(tǒng)運(yùn)行時(shí)的存儲(chǔ)開銷。
3 結(jié)束語
醫(yī)院人事檔案是醫(yī)院人事管理工作的重要組成部分,本文分析了聯(lián)盟鏈技術(shù)在醫(yī)院人事檔案數(shù)據(jù)存儲(chǔ)中的應(yīng)用,包括系統(tǒng)網(wǎng)絡(luò)模型中節(jié)點(diǎn)間采用P2P通信方式、通過ECDSA數(shù)字簽名算法實(shí)現(xiàn)對(duì)普通節(jié)點(diǎn)的身份認(rèn)證、節(jié)點(diǎn)間共識(shí)采用IPoW共識(shí)算法、數(shù)據(jù)存儲(chǔ)采用鏈上哈希鏈下存儲(chǔ)的方式。本系統(tǒng)實(shí)現(xiàn)了傳統(tǒng)檔案的電子化、分布式存儲(chǔ)和不可篡改性,進(jìn)一步實(shí)現(xiàn)了檔案保存的安全性,提高檔案管理效率、優(yōu)化管理工作質(zhì)量,有效地降低了檔案管理的成本。
參考文獻(xiàn):
[1] 吳寶康.檔案學(xué)概論[M].北京:中國人民大學(xué)出版社,1999.
[2] 黃冬艷,李浪,陳斌,等.RBFT:基于Raft集群的拜占庭容錯(cuò)共識(shí)機(jī)制[J].通信學(xué)報(bào),2021,42(3):209-219.
[3] 王輝,陳博,劉玉祥.基于區(qū)塊鏈的人事檔案管理系統(tǒng)研究[J].計(jì)算機(jī)科學(xué),2021,48(S2):713-718.
[4] Azaria A,Ekblaw A,Vieira T,et al.MedRec:using blockchain for medical data access and permission management[C]. Vienna,Austria:2016 2nd International Conference on Open and Big Data (OBD),2016.IEEE,2016:25-30.
[5] 韓璇,袁勇,王飛躍.區(qū)塊鏈安全問題:研究現(xiàn)狀與展望[J].自動(dòng)化學(xué)報(bào),2019,45(1):206-225.
[6] 邵長年.基于區(qū)塊鏈技術(shù)的疫苗追溯架構(gòu)[J].中國醫(yī)學(xué)工程,2021,29(1):37-39.
【通聯(lián)編輯:王力】