徐 華
內(nèi)蒙古大學(xué)
隨著科技進(jìn)步和社會(huì)經(jīng)濟(jì)發(fā)展,人類生產(chǎn)生活中產(chǎn)生的數(shù)據(jù)量快速增加。對(duì)于圖書館來(lái)說(shuō),圖書資源、科技文獻(xiàn)、學(xué)習(xí)資料等資源也快速增加。為了充分利用和發(fā)揮圖書館資源的數(shù)據(jù)價(jià)值,圖書館內(nèi)部、圖書館與其他圖書館之間已經(jīng)開始加大數(shù)字資源的共享工作力度。在數(shù)字資源共享過(guò)程中,對(duì)于圖書館數(shù)字資源的擁有者來(lái)說(shuō),也逐漸具有了較強(qiáng)的個(gè)人信息保護(hù)意識(shí)。其中,最大的問(wèn)題是如何實(shí)現(xiàn)數(shù)據(jù)資源的安全共享,防止出現(xiàn)數(shù)據(jù)隱私泄露、數(shù)據(jù)被篡改等問(wèn)題。
為解決此問(wèn)題,阮光冊(cè)等學(xué)者基于大數(shù)據(jù)挖掘技術(shù),分析了圖書館用戶的行為,發(fā)現(xiàn)部分用戶在使用圖書館數(shù)據(jù)資源時(shí)存在知識(shí)侵權(quán)或信息泄露的問(wèn)題。吳宗大等學(xué)者分析發(fā)現(xiàn)數(shù)據(jù)隱私在已有的管理制度下不能得到很好的保障。陳傳夫等學(xué)者研究了圖書館數(shù)字資源使用中存在的信息泄露、信息篡改、信息侵權(quán)等問(wèn)題,提出圖書館需要加強(qiáng)行業(yè)制度建設(shè)。為有效解決數(shù)據(jù)共享中存在的數(shù)據(jù)安全問(wèn)題,顧立平提出了信息化技術(shù)在圖書館轉(zhuǎn)型發(fā)展中的應(yīng)用方案;郭春霞分析了多種類型的數(shù)據(jù)管理策略,有效解決了異構(gòu)、異源、非結(jié)構(gòu)等帶來(lái)的數(shù)據(jù)管理難題。王丹丹從數(shù)據(jù)使用特點(diǎn)的視角出發(fā),提出了電子資源的評(píng)價(jià)方式,有效解決了圖書館數(shù)字資源評(píng)價(jià)標(biāo)準(zhǔn)多樣和不統(tǒng)一的問(wèn)題。
為了發(fā)揮圖書館數(shù)字資源的價(jià)值,已有學(xué)者從管理制度建設(shè)、新技術(shù)應(yīng)用等維度,對(duì)圖書館數(shù)字資源的安全使用問(wèn)題進(jìn)行了研究。但是,已有研究缺少對(duì)數(shù)據(jù)資源使用過(guò)程的詳細(xì)機(jī)制的探討,導(dǎo)致圖書館數(shù)字資源安全使用過(guò)程中仍然缺少可實(shí)施的機(jī)制。為解決此問(wèn)題,本文提出基于區(qū)塊鏈的圖書館數(shù)字資源安全共享模型,包括基于聯(lián)盟鏈的數(shù)據(jù)管理架構(gòu)、智能合約體系。同時(shí),提出基于區(qū)塊鏈的圖書館數(shù)字資源安全共享機(jī)制,包括身份注冊(cè)流程、知識(shí)共享流程、數(shù)據(jù)獲取流程。最后,對(duì)于本文提出的數(shù)據(jù)安全共享機(jī)制的使用方法,給出了新建平臺(tái)和利舊基礎(chǔ)上新建兩種策略。
本文設(shè)計(jì)的基于區(qū)塊鏈的圖書館數(shù)字資源安全共享模型,主要包括區(qū)塊鏈和聯(lián)邦學(xué)習(xí)兩種技術(shù)框架。區(qū)塊鏈技術(shù)可以有效解決單點(diǎn)故障、數(shù)據(jù)被篡改的問(wèn)題??紤]到高校的圖書館之間都互相聯(lián)系,并且具有可信任關(guān)系,在實(shí)施時(shí),本文采用聯(lián)盟鏈技術(shù)構(gòu)建區(qū)塊鏈平臺(tái)。聯(lián)邦學(xué)習(xí)模塊主要用于數(shù)據(jù)的安全共享工作。當(dāng)圖書館之間需要共享的數(shù)據(jù)隱私性高時(shí),聯(lián)邦學(xué)習(xí)技術(shù)可以有效解決隱私數(shù)據(jù)在傳輸過(guò)程中存在的數(shù)據(jù)泄露問(wèn)題。
基于圖書館數(shù)據(jù)如何實(shí)現(xiàn)安全管理的問(wèn)題,提出基于聯(lián)盟鏈的數(shù)據(jù)管理架構(gòu),如圖1所示,具體包括數(shù)據(jù)存儲(chǔ)平臺(tái)、各個(gè)圖書館、聯(lián)盟鏈、系統(tǒng)服務(wù)接口。
數(shù)據(jù)存儲(chǔ)平臺(tái)模塊,采用分布式數(shù)據(jù)存儲(chǔ)技術(shù),可以有效防止數(shù)據(jù)丟失,提升數(shù)據(jù)訪問(wèn)和使用效率。各個(gè)圖書館模塊主要實(shí)現(xiàn)訪問(wèn)區(qū)塊鏈和數(shù)據(jù)存儲(chǔ)平臺(tái)的接入和安全認(rèn)證。為此,采用聯(lián)盟鏈技術(shù)構(gòu)建區(qū)塊鏈,可以有效簡(jiǎn)化圖書館的訪問(wèn)和操作。在身份驗(yàn)證方面,通過(guò)智能合約技術(shù),實(shí)現(xiàn)圖書館身份注冊(cè)和認(rèn)證的自動(dòng)化操作。在數(shù)據(jù)訪問(wèn)管理方面,通過(guò)創(chuàng)建數(shù)據(jù)管理智能合約,實(shí)現(xiàn)圖書館的數(shù)據(jù)管理以及數(shù)據(jù)共享的自動(dòng)執(zhí)行。系統(tǒng)服務(wù)接口模塊,主要實(shí)現(xiàn)各個(gè)圖書館對(duì)區(qū)塊鏈的調(diào)用,并將數(shù)據(jù)存儲(chǔ)到數(shù)據(jù)存儲(chǔ)平臺(tái)。
圖1 基于聯(lián)盟鏈的數(shù)據(jù)管理架構(gòu)
圖書館的數(shù)據(jù)類型多樣,來(lái)源途徑也比較多,給數(shù)據(jù)資源的共享帶來(lái)了較大的問(wèn)題。為簡(jiǎn)化各個(gè)圖書館對(duì)平臺(tái)和數(shù)據(jù)的訪問(wèn)和使用,本部分采用RESTful接口實(shí)現(xiàn)。在聯(lián)盟鏈技術(shù)實(shí)現(xiàn)方面,為實(shí)現(xiàn)聯(lián)盟鏈平臺(tái),本文使用Solidity編程語(yǔ)言,采用Remix IDE作為開發(fā)工具??紤]到聯(lián)盟鏈平臺(tái)的可靠性和構(gòu)建效率,使用Ganache工具搭建聯(lián)盟鏈開發(fā)環(huán)境。
為實(shí)現(xiàn)圖書館數(shù)據(jù)的安全共享,本文采用聯(lián)邦學(xué)習(xí)技術(shù)。聯(lián)邦學(xué)習(xí)是一種分布式機(jī)器學(xué)習(xí)框架,可以應(yīng)用于多種環(huán)境。對(duì)于行業(yè)相同、用戶范圍不同的業(yè)務(wù),可以采用橫向聯(lián)邦學(xué)習(xí)技術(shù)實(shí)現(xiàn);對(duì)于行業(yè)不同、用戶覆蓋范圍相似的業(yè)務(wù),可以采用縱向聯(lián)邦學(xué)習(xí)技術(shù)實(shí)現(xiàn);對(duì)于其他關(guān)聯(lián)性不大的業(yè)務(wù),可以采用遷移聯(lián)邦學(xué)習(xí)技術(shù)實(shí)現(xiàn)。
在聯(lián)盟鏈中,為保障數(shù)據(jù)的安全性和靈活性,智能合約已成為業(yè)界公認(rèn)的比較優(yōu)化的策略其可以根據(jù)業(yè)務(wù)規(guī)則,自動(dòng)執(zhí)行數(shù)據(jù)的操作,有效避免人為失誤或故意篡改等事件導(dǎo)致的數(shù)據(jù)不一致性、被篡改等問(wèn)題。
根據(jù)圖書館的業(yè)務(wù)特征,本文提出的智能合約包括圖書館身份管理合約、身份信息管理合約、知識(shí)管理合約。(1)圖書館身份管理合約,主要功能是完成圖書館在聯(lián)盟鏈中的身份創(chuàng)建和身份重置等?;谠摵霞s,加入聯(lián)盟鏈的圖書館可以根據(jù)預(yù)定的身份創(chuàng)建規(guī)則,自動(dòng)創(chuàng)建身份信息;根據(jù)預(yù)定的身份重置規(guī)則,自動(dòng)對(duì)身份進(jìn)行增刪查改等功能。(2)圖書館身份信息管理合約,主要功能是根據(jù)圖書館聯(lián)盟約定的圖書館身份標(biāo)識(shí)、圖書館身份編號(hào)規(guī)則、圖書館密鑰管理規(guī)則,為每個(gè)加入聯(lián)盟鏈的圖書館生成相應(yīng)的身份標(biāo)識(shí)、身份編號(hào)、密鑰體系。(3)圖書館知識(shí)管理合約,主要功能是完成圖書館知識(shí)的存儲(chǔ)、知識(shí)共享等。根據(jù)圖書館約定,實(shí)現(xiàn)圖書館知識(shí)存儲(chǔ)合約、圖書館知識(shí)共享合約。圖書館知識(shí)存儲(chǔ)合約根據(jù)預(yù)定的知識(shí)存儲(chǔ)規(guī)則,對(duì)圖書館的知識(shí)進(jìn)行分布式存儲(chǔ)。圖書館知識(shí)共享合約根據(jù)預(yù)定的知識(shí)共享規(guī)則,對(duì)圖書館知識(shí)在權(quán)限范圍內(nèi)進(jìn)行共享。
為實(shí)現(xiàn)智能合約的自動(dòng)化執(zhí)行,每個(gè)智能合約需要包含觸發(fā)條件、響應(yīng)策略、合約執(zhí)行3個(gè)子過(guò)程。在觸發(fā)條件子過(guò)程,每個(gè)智能合約的觸發(fā)條件是當(dāng)前智能合約開始執(zhí)行的基本條件。在響應(yīng)策略子過(guò)程中,每個(gè)智能合約根據(jù)目的和功能不同,需要執(zhí)行不同的響應(yīng)策略。在合約執(zhí)行子過(guò)程,每個(gè)智能合約根據(jù)合約策略和目標(biāo)自動(dòng)執(zhí)行,并將執(zhí)行結(jié)果返回給事件觸發(fā)者。在智能合約開發(fā)和部署完成后,每個(gè)子過(guò)程都會(huì)被自動(dòng)保存和自動(dòng)執(zhí)行。
在模型的具體應(yīng)用機(jī)制方面,設(shè)計(jì)了圖書館的身份注冊(cè)流程、圖書館的數(shù)據(jù)存儲(chǔ)流程、圖書館的數(shù)據(jù)共享流程。
圖書館申請(qǐng)加入?yún)^(qū)塊鏈時(shí),需要將其身份注冊(cè)到區(qū)塊鏈中。在身份注冊(cè)時(shí),需要得到n個(gè)節(jié)點(diǎn)的同意。圖書館的身份注冊(cè)包括圖書館發(fā)起身份注冊(cè)請(qǐng)求、區(qū)塊鏈節(jié)點(diǎn)發(fā)起投票、區(qū)塊鏈節(jié)點(diǎn)觸發(fā)身份注冊(cè)合約3個(gè)步驟。
步驟1:圖書館向區(qū)塊鏈節(jié)點(diǎn)發(fā)送公鑰信息和身份認(rèn)證信息。圖書館將加入?yún)^(qū)塊鏈節(jié)點(diǎn)的請(qǐng)求發(fā)送到距離其最近的區(qū)塊鏈節(jié)點(diǎn),由該區(qū)塊鏈節(jié)點(diǎn)創(chuàng)建智能投票合約。為保障圖書館身份信息的安全性,在圖書館向區(qū)塊鏈節(jié)點(diǎn)發(fā)送數(shù)據(jù)時(shí),需要采用非對(duì)稱加密算法對(duì)身份信息進(jìn)行加密。在非對(duì)稱加密算法中,本文采用的橢圓曲線算法是安全性和執(zhí)行效率較高的一種。圖書館向區(qū)塊鏈節(jié)點(diǎn)發(fā)送的身份信息包括圖書館的名稱、圖書館的政府批文、圖書館的公鑰信息等。
步驟2:區(qū)塊鏈節(jié)點(diǎn)創(chuàng)建智能投票合約并收集投票結(jié)果。收到圖書館身份注冊(cè)請(qǐng)求的區(qū)塊鏈節(jié)點(diǎn),使用智能投票合約規(guī)則,創(chuàng)建投票活動(dòng),并將圖書館相關(guān)信息發(fā)送給各個(gè)區(qū)塊鏈節(jié)點(diǎn)。收到投票活動(dòng)請(qǐng)求的區(qū)塊鏈節(jié)點(diǎn)根據(jù)圖書館身份信息,給創(chuàng)建節(jié)點(diǎn)反饋投票結(jié)果。
步驟3:根據(jù)投票結(jié)果判斷是否為圖書館創(chuàng)建身份并返回結(jié)果。發(fā)起投票的區(qū)塊鏈節(jié)點(diǎn)根據(jù)條件判斷是否投票成功。當(dāng)投票失敗后,不為圖書館創(chuàng)建身份信息。當(dāng)投票成功后,為圖書館創(chuàng)建身份信息。為了給圖書館創(chuàng)建身份信息,需要調(diào)用圖書館身份管理合約,實(shí)現(xiàn)圖書館身份信息生成的自動(dòng)化操作。當(dāng)圖書館收到身份信息后,就可以實(shí)現(xiàn)數(shù)據(jù)的上傳、存儲(chǔ)、共享等操作。
圖書館的數(shù)據(jù)存儲(chǔ)流程包括圖書館發(fā)送數(shù)據(jù)存儲(chǔ)請(qǐng)求、區(qū)塊鏈實(shí)現(xiàn)數(shù)據(jù)驗(yàn)證和存儲(chǔ)。
步驟1:圖書館對(duì)需要存儲(chǔ)的數(shù)據(jù)加密后發(fā)送數(shù)據(jù)存儲(chǔ)請(qǐng)求。為保證圖書館數(shù)據(jù)的安全性,在將數(shù)據(jù)存儲(chǔ)到區(qū)塊鏈時(shí),先對(duì)數(shù)據(jù)進(jìn)行簽名和加密,再將加密后的數(shù)據(jù)發(fā)送給區(qū)塊鏈節(jié)點(diǎn)。
步驟2:區(qū)塊鏈節(jié)點(diǎn)對(duì)數(shù)據(jù)進(jìn)行驗(yàn)證和存儲(chǔ)。區(qū)塊鏈節(jié)點(diǎn)收到數(shù)據(jù)存儲(chǔ)請(qǐng)求后,首先,對(duì)圖書館的身份進(jìn)行驗(yàn)證,驗(yàn)證通過(guò)后,再根據(jù)圖書館存儲(chǔ)在區(qū)塊鏈中的公鑰信息對(duì)簽名進(jìn)行驗(yàn)證。其次,驗(yàn)證通過(guò)后,調(diào)用數(shù)據(jù)存儲(chǔ)智能合約,為圖書館的數(shù)據(jù)分配編號(hào)并進(jìn)行存儲(chǔ)。
圖書館獲取區(qū)塊鏈上的數(shù)據(jù),包括獲取自己存儲(chǔ)的數(shù)據(jù)、獲取其他圖書館的數(shù)據(jù)兩種情況。獲取自己存儲(chǔ)的數(shù)據(jù)主要基于數(shù)據(jù)簽名和身份認(rèn)證機(jī)制完成,主要包括以下步驟:
步驟1:圖書館發(fā)送需要的數(shù)據(jù)和身份信息到區(qū)塊鏈節(jié)點(diǎn)。為保證請(qǐng)求信息的安全,圖書館使用自己的私鑰信息將請(qǐng)求數(shù)據(jù)的編號(hào)信息、身份信息進(jìn)行加密,將加密后的數(shù)據(jù)請(qǐng)求信息發(fā)送到距離自己最近的區(qū)塊鏈節(jié)點(diǎn)。
步驟2:區(qū)塊鏈節(jié)點(diǎn)對(duì)圖書館身份進(jìn)行驗(yàn)證。區(qū)塊鏈節(jié)點(diǎn)通過(guò)存儲(chǔ)在鏈上的圖書館公鑰信息對(duì)其身份信息進(jìn)行驗(yàn)證。驗(yàn)證通過(guò)后,將數(shù)據(jù)請(qǐng)求信息和圖書館身份信息發(fā)送到數(shù)據(jù)存儲(chǔ)平臺(tái)。
步驟3:數(shù)據(jù)存儲(chǔ)平臺(tái)根據(jù)數(shù)據(jù)請(qǐng)求信息為圖書館返回?cái)?shù)據(jù)。數(shù)據(jù)存儲(chǔ)平臺(tái)以圖書館提交的數(shù)據(jù)編號(hào)為依據(jù),在數(shù)據(jù)存儲(chǔ)平臺(tái)數(shù)據(jù)庫(kù)中查找相應(yīng)的數(shù)據(jù)。如查到相應(yīng)的數(shù)據(jù),將此數(shù)據(jù)提交返回給圖書館。如未查找到相應(yīng)的數(shù)據(jù),將出錯(cuò)的原因返回給圖書館。
獲取其他圖書館數(shù)據(jù)主要采用聯(lián)邦學(xué)習(xí)算法完成數(shù)據(jù)模型創(chuàng)建,此過(guò)程包括以下3個(gè)步驟:
步驟1:建立信任關(guān)系列表。為簡(jiǎn)化數(shù)據(jù)共享過(guò)程,并且保證數(shù)據(jù)的共享安全,本文提出數(shù)據(jù)共享信任列表技術(shù)。通過(guò)為每個(gè)圖書館創(chuàng)建一個(gè)數(shù)據(jù)共享信任列表,可以有效簡(jiǎn)化數(shù)據(jù)共享的管理過(guò)程。圖書館A需要獲取圖書館B的數(shù)據(jù)時(shí),需要先將圖書館A增加到圖書館B的信任列表中。在加入之前,圖書館A先將自己的身份信息發(fā)送到區(qū)塊鏈節(jié)點(diǎn),區(qū)塊鏈節(jié)點(diǎn)驗(yàn)證通過(guò)后,再將圖書館A的信息發(fā)送到圖書館B。此時(shí),圖書館A加入圖書館B的信任列表中。
步驟2:提交數(shù)據(jù)獲取請(qǐng)求。以圖書館A需要獲取數(shù)據(jù)為例,為了獲取數(shù)據(jù),圖書館A先將數(shù)據(jù)請(qǐng)求描述提交到區(qū)塊鏈節(jié)點(diǎn),區(qū)塊鏈節(jié)點(diǎn)再將數(shù)據(jù)請(qǐng)求描述信息發(fā)送到數(shù)據(jù)存儲(chǔ)平臺(tái)。數(shù)據(jù)存儲(chǔ)平臺(tái)根據(jù)數(shù)據(jù)描述信息在數(shù)據(jù)庫(kù)中進(jìn)行查找,并將包含相關(guān)數(shù)據(jù)的圖書館列表發(fā)送到區(qū)塊鏈節(jié)點(diǎn),最后返回給圖書館A。
步驟3:數(shù)據(jù)模型訓(xùn)練。圖書館A判斷是否已在相關(guān)圖書館的信任列表中。如不屬于部分圖書館的信任列表中的成員,需要使用步驟1中的信任關(guān)系建立步驟進(jìn)行創(chuàng)建。創(chuàng)建之后,根據(jù)數(shù)據(jù)模型和圖書館數(shù)據(jù)特征,從橫向聯(lián)邦學(xué)習(xí)、縱向聯(lián)邦學(xué)習(xí)、遷移聯(lián)邦學(xué)習(xí)3種算法中,選擇合適的算法進(jìn)行數(shù)據(jù)模型訓(xùn)練。
下面對(duì)本文提出的基于區(qū)塊鏈的圖書館數(shù)字資源安全共享機(jī)制的應(yīng)用方法進(jìn)行分析。在使用本文資源共享機(jī)制時(shí),可以采用新建平臺(tái)和利舊基礎(chǔ)上新建兩種策略。
對(duì)于新建平臺(tái)策略,最大的優(yōu)勢(shì)是可以提升系統(tǒng)的穩(wěn)定性。因?yàn)閿?shù)據(jù)資源是圖書館最重要的資源,為保證平臺(tái)的穩(wěn)定性和可擴(kuò)展性,優(yōu)先選擇此種機(jī)制。對(duì)于利舊基礎(chǔ)上新建策略,最大的優(yōu)勢(shì)是能夠減少投資,但是容易導(dǎo)致平臺(tái)存在不可靠性隱私。為解決此問(wèn)題,建議將利舊的設(shè)備應(yīng)用在數(shù)據(jù)存儲(chǔ)冗余部分、圖書館的接入部分,以便最大化地減小利舊設(shè)備對(duì)平臺(tái)帶來(lái)的負(fù)面影響。
隨著圖書館數(shù)字資源的快速增加和大數(shù)據(jù)技術(shù)的廣泛應(yīng)用,如何保障圖書館數(shù)字資源的安全共享,已成為一個(gè)急需解決的關(guān)鍵問(wèn)題。為此,本文首先提出基于區(qū)塊鏈的圖書館數(shù)字資源安全共享模型。其次,基于此模型,提出了基于區(qū)塊鏈的圖書館數(shù)字資源安全共享機(jī)制。最后,給出了數(shù)據(jù)安全共享模型和機(jī)制使用兩種策略。隨著信息技術(shù)的快速發(fā)展,數(shù)字資源快速增加,當(dāng)前圖書館的硬件平臺(tái)和軟件架構(gòu)已不能適用于大數(shù)據(jù)場(chǎng)景下的業(yè)務(wù)需求。下一步工作中,基于本文研究成果,采用云計(jì)算技術(shù)、大數(shù)據(jù)技術(shù),研究圖書館的硬件平臺(tái)和軟件架構(gòu),設(shè)計(jì)滿足當(dāng)前及未來(lái)一段時(shí)間內(nèi)圖書館數(shù)字資源存儲(chǔ)和使用的軟硬件平臺(tái)架構(gòu)。'