華芳 丁毅 孫伽寧 李潔 沈薇
摘 ? 要:學(xué)歷學(xué)位是衡量學(xué)生知識(shí)水平和社會(huì)認(rèn)可度的重要證明,而現(xiàn)有學(xué)歷學(xué)位數(shù)據(jù)管理系統(tǒng)存在中心化、易篡改及難以追溯等問(wèn)題,導(dǎo)致出現(xiàn)造假現(xiàn)象。區(qū)塊鏈數(shù)據(jù)具有不可篡改、可存證、可追溯的特點(diǎn),將區(qū)塊鏈應(yīng)用于學(xué)歷學(xué)位管理系統(tǒng),可對(duì)學(xué)歷學(xué)位獲得過(guò)程進(jìn)行溯源。文章基于區(qū)塊鏈和智能合約技術(shù),設(shè)計(jì)了一套可信的學(xué)歷學(xué)位認(rèn)證系統(tǒng),從效率和可信度平衡、訪問(wèn)控制安全等角度展開設(shè)計(jì)工作,并詳細(xì)介紹系統(tǒng)的運(yùn)轉(zhuǎn)流程,為學(xué)歷學(xué)位認(rèn)證可信溯源的發(fā)展提供參考。
關(guān)鍵詞:學(xué)歷學(xué)位溯源;區(qū)塊鏈;協(xié)同存儲(chǔ);智能合約
中圖分類號(hào): TP311 ? ? ? ? ?文獻(xiàn)標(biāo)識(shí)碼:A
Abstract: Education and degree is an important certification to measure students' knowledge level and social recognition, while the current data management system of education and degree has problems. The problems are centralization management, easy to tamper with and difficult to trace, which lead to the phenomenon of fraud. Data on blockchain has the characteristics of non-tampering, credible storage and traceability. The application of blockchain in education and degree management system can trace the process of obtaining education and degree certification. In order to provide a reference for the development of credibility traceability of education and degree certification, the paper designs a trusted education and degree certification system based on the technology of blockchain and smart contract, considering the balance between efficiency and credibility, access control security measures etc., and introduces the operation process of the system in detail.
Key words: education and degree traceability; blockchain; collaborative storage; smart contract
1 引言
學(xué)歷學(xué)位證書是社會(huì)衡量學(xué)生能力的重要標(biāo)準(zhǔn)之一,對(duì)于個(gè)人的求職與深造都會(huì)產(chǎn)生重要影響。目前,只有學(xué)信網(wǎng)、學(xué)位與研究生教育發(fā)展中心以及國(guó)(境)外學(xué)位認(rèn)證系統(tǒng),能提供國(guó)內(nèi)外學(xué)歷學(xué)位證書認(rèn)證。但是目前學(xué)位學(xué)歷管理系統(tǒng)普遍采用集中化的數(shù)據(jù)管理,存在單點(diǎn)故障以及數(shù)據(jù)被篡改的風(fēng)險(xiǎn),且難以實(shí)現(xiàn)學(xué)歷學(xué)位獲得過(guò)程的溯源[1]。因此需要進(jìn)一步研究學(xué)歷學(xué)位證明管理方式,加強(qiáng)過(guò)程溯源、加大造假難度,從而減少學(xué)歷學(xué)位造假現(xiàn)象。
區(qū)塊鏈具有去中心、可追溯存證、不易篡改等特點(diǎn),近幾年在金融交易以及物流溯源方面已經(jīng)發(fā)揮了重要作用,區(qū)塊鏈與教育的結(jié)合也在逐步展開。2018年,教育部在兩會(huì)中提出《關(guān)于探索運(yùn)用區(qū)塊鏈技術(shù)進(jìn)行學(xué)位證書認(rèn)證的建議》,明確表示將密切關(guān)注區(qū)塊鏈技術(shù),積極探索其在學(xué)生管理中的應(yīng)用[2]。同年發(fā)布的《教育信息化2.0行動(dòng)計(jì)劃》[3]中也指出要積極探索基于區(qū)塊鏈技術(shù)的學(xué)習(xí)效果記錄、轉(zhuǎn)移、交換、認(rèn)證等有效方式。工業(yè)和信息化部在《中國(guó)區(qū)塊鏈技術(shù)和應(yīng)用發(fā)展白皮書》也提出了建立基于區(qū)塊鏈的教育存證平臺(tái)的構(gòu)想[4]。
將區(qū)塊鏈與學(xué)歷學(xué)位溯源結(jié)合,可以防止數(shù)據(jù)被惡意篡改,學(xué)歷學(xué)位判定規(guī)則執(zhí)行公開透明,能有效減少數(shù)據(jù)造假的風(fēng)險(xiǎn)。但是依然存在一些問(wèn)題:區(qū)塊鏈上數(shù)據(jù)處理速度較慢、處理成本高,學(xué)歷學(xué)位溯源又涉及到大量的學(xué)生數(shù)據(jù),區(qū)塊鏈與學(xué)位溯源結(jié)合后系統(tǒng)業(yè)務(wù)執(zhí)行效率不高;學(xué)歷學(xué)位溯源系統(tǒng)具有不同的用戶角色、不同的操作內(nèi)容,如果不對(duì)用戶權(quán)限加以可信管理,易產(chǎn)生不正確的修改或誤操作,且缺乏追責(zé)監(jiān)管機(jī)制;智能合約可以用于控制學(xué)位認(rèn)證規(guī)則,但規(guī)則在實(shí)際中是變化的,不同屆的學(xué)生可能需要制定不同的學(xué)歷學(xué)位判定規(guī)則,每次都重新編寫智能合約程序,會(huì)為管理員帶來(lái)許多冗余工作。
針對(duì)以上區(qū)塊鏈與學(xué)歷學(xué)位溯源認(rèn)證結(jié)合后存在的問(wèn)題,本文在基于區(qū)塊鏈的學(xué)歷學(xué)位溯源認(rèn)證系統(tǒng)中,設(shè)計(jì)并實(shí)現(xiàn)了數(shù)據(jù)協(xié)同存儲(chǔ)、智能合約用戶訪問(wèn)控制、學(xué)位判定智能合約模板三部分功能,促進(jìn)區(qū)塊鏈學(xué)歷學(xué)位溯源系統(tǒng)安全、高效運(yùn)行。
2 相關(guān)工作
2.1 傳統(tǒng)學(xué)歷學(xué)位認(rèn)證發(fā)展現(xiàn)狀
為了提供學(xué)生學(xué)歷學(xué)位證書有效性證明,2002年學(xué)信網(wǎng)上線。隨后,推出了“學(xué)信二維碼”,學(xué)生可將該二維碼嵌入求職簡(jiǎn)歷中。2018年,教育部學(xué)位中心也開始提供學(xué)位認(rèn)證服務(wù),還可通過(guò)國(guó)外學(xué)位認(rèn)證系統(tǒng)查詢國(guó)外證書的有效性[5]。
以上認(rèn)證都是通過(guò)權(quán)威機(jī)構(gòu)的背書,這在一定程度上增加了學(xué)位證書的偽造難度,但是這種中心化的數(shù)據(jù)管理方式依然存在數(shù)據(jù)篡改風(fēng)險(xiǎn)。具體表現(xiàn)為:
(1)傳統(tǒng)學(xué)位認(rèn)證數(shù)據(jù)存儲(chǔ)在中心化的數(shù)據(jù)庫(kù)中,數(shù)據(jù)可以被高權(quán)限的管理員修改,甚至訪問(wèn)日志也可能被改動(dòng),存在學(xué)歷學(xué)位數(shù)據(jù)的不真實(shí)以及不可追溯的風(fēng)險(xiǎn)。
(2)傳統(tǒng)學(xué)歷學(xué)位的認(rèn)證通常采用半人工審核的方式,認(rèn)證規(guī)則可以被人為修改,審核人員具有較大權(quán)力,執(zhí)行結(jié)果可能存在質(zhì)疑。
(3)傳統(tǒng)學(xué)歷學(xué)位認(rèn)證通常只有少數(shù)權(quán)威機(jī)構(gòu)參與,其他角色如學(xué)校、教師、學(xué)生的參與度不足,缺乏公開透明的高效約束機(jī)制,且認(rèn)證往往只是注重結(jié)果,認(rèn)證過(guò)程追溯功能受限。
2.2 基于區(qū)塊鏈的教育認(rèn)證研究現(xiàn)狀
近幾年,眾多學(xué)者積極探索區(qū)塊鏈在各領(lǐng)域的應(yīng)用,“區(qū)塊鏈+教育”就是其中之一,目前已有眾多區(qū)塊鏈加教育認(rèn)證項(xiàng)目落地。2015年Bitproof公司與霍伯頓學(xué)校聯(lián)合,將區(qū)塊鏈與教育存證結(jié)合,使用區(qū)塊鏈記錄學(xué)生學(xué)習(xí)成果。隨后索尼公司、麻省理工學(xué)院[6]也展開了區(qū)塊鏈在教育存證中的研究。2017年,歐盟委員會(huì)在發(fā)布的《區(qū)塊鏈在教育行業(yè)(Blockchain in Education)》報(bào)告中指出區(qū)塊鏈與教育結(jié)合中的數(shù)字認(rèn)證、信用認(rèn)可、學(xué)分轉(zhuǎn)換和支付交易方面還需進(jìn)一步研究[7]。英國(guó)開放大學(xué)知識(shí)媒體學(xué)院與英國(guó)電信也創(chuàng)建了一個(gè)名為“OpenBlockchain”的基于以太坊的區(qū)塊鏈教育平臺(tái),利用區(qū)塊鏈智能合約對(duì)開放大學(xué)的課程證書進(jìn)行記錄,同時(shí)還會(huì)提供證書關(guān)聯(lián)信息,如接收方、頒發(fā)方、頒發(fā)標(biāo)準(zhǔn)以及頒發(fā)依據(jù)等。
部分學(xué)者也在進(jìn)行“區(qū)塊鏈+教育”的可行運(yùn)作模式的探索。Sharples(2016)[8]提出利用區(qū)塊鏈建立一個(gè)研究成果、創(chuàng)意以及聲譽(yù)的記錄系統(tǒng),實(shí)現(xiàn)可信存證。吳莎莎(2018)[9]分析了將數(shù)字徽章認(rèn)證理念與內(nèi)容嵌入?yún)^(qū)塊鏈平臺(tái)可行性,并提出了基于區(qū)塊鏈技術(shù)的在線學(xué)習(xí)憑證頒布系統(tǒng)的架構(gòu)及應(yīng)用方式。李中振(2019)[10]指出區(qū)塊鏈技術(shù)去中心、不可篡改的特點(diǎn)可以有效保障學(xué)籍信息的安全和真實(shí),作者還基于Fabric框架開發(fā)了一個(gè)學(xué)籍管理系統(tǒng)原型。Jirgensons (2018)[11]指出在線學(xué)習(xí)頒發(fā)的數(shù)字證書可以激勵(lì)學(xué)生學(xué)習(xí),且證書分享方便,但是存在證書失效的風(fēng)險(xiǎn),因此提出將區(qū)塊鏈作為在線認(rèn)證證書記錄、存儲(chǔ)以及管理的底層技術(shù),實(shí)現(xiàn)在線學(xué)習(xí)證書的可信認(rèn)證。
我國(guó)近幾年采用信息化手段實(shí)現(xiàn)學(xué)歷學(xué)位信息管理,一定程度上增加了學(xué)位造假的難度。但是,由于傳統(tǒng)系統(tǒng)采用中心化的管理方式,數(shù)據(jù)依然存在篡改風(fēng)險(xiǎn)。近幾年區(qū)塊鏈技術(shù)在物流溯源、金融交易等領(lǐng)域被廣泛應(yīng)用,但是區(qū)塊鏈與學(xué)位認(rèn)證結(jié)合的技術(shù)方案還在探索中,本文提出一套區(qū)塊鏈學(xué)歷學(xué)位溯源認(rèn)證技術(shù)方案,力圖在性能和效率之間尋找平衡,高效利用智能合約特征,為可信學(xué)歷學(xué)位的認(rèn)證發(fā)展提供支持。
3 區(qū)塊鏈及相關(guān)技術(shù)
3.1 區(qū)塊鏈技術(shù)
區(qū)塊鏈?zhǔn)且环N新興的技術(shù),具有分布式、不可篡改、公開透明、可追溯的特點(diǎn)[12]。智能合約是傳統(tǒng)紙質(zhì)合約的數(shù)字化版本,智能合約與區(qū)塊鏈的結(jié)合,使其具備合約公開和不可篡改的特性。主流的區(qū)塊鏈平臺(tái)有以太坊(Ethereum)、Hyperledger Fabric以及EOS(Enterprise Operation System)[13]。目前,區(qū)塊鏈平臺(tái)普遍存在數(shù)據(jù)處理速度慢、存儲(chǔ)成本高的問(wèn)題,除了通過(guò)修改共識(shí)算法提高存儲(chǔ)的效率,還可以結(jié)合分布式存儲(chǔ)系統(tǒng)[14],如區(qū)塊鏈數(shù)據(jù)庫(kù)BigchainDB[15]、分布式文件系統(tǒng)IPFS[16]、Swarm[17]等協(xié)同存儲(chǔ),在高可信與高效率之間尋找平衡。
區(qū)塊鏈技術(shù)在學(xué)位認(rèn)證應(yīng)用中發(fā)揮的作用主要體現(xiàn)在三個(gè)方面。
(1)利用區(qū)塊鏈技術(shù)存儲(chǔ)學(xué)歷學(xué)位認(rèn)證數(shù)據(jù),可保證數(shù)據(jù)不易篡改,完成學(xué)歷學(xué)位認(rèn)證的全流程追溯。
(2)區(qū)塊鏈智能合約可以將學(xué)歷學(xué)位認(rèn)證規(guī)則公開透明,并自動(dòng)執(zhí)行,具有較強(qiáng)的可信度。
(3)區(qū)塊鏈基礎(chǔ)上的學(xué)歷學(xué)位認(rèn)證系統(tǒng)可加強(qiáng)多角色或多單位的參與度,形成一套可信公開約束機(jī)制,有效推動(dòng)可信認(rèn)證模式的發(fā)展。
3.2 訪問(wèn)控制技術(shù)
訪問(wèn)控制是指在鑒別用戶的身份后,通過(guò)某種方式顯示的許可或限制用戶對(duì)數(shù)據(jù)的訪問(wèn)、對(duì)功能的操作,防止違法用戶進(jìn)入或合法用戶錯(cuò)誤操作帶來(lái)破壞。目前有基于角色(Role-Based Access Control,RBAC)、屬性(Attribute-Based Access Control,ABAC)等訪問(wèn)控制模型[17]。
RBAC模型滿足最小特權(quán)、職責(zé)分離以及數(shù)據(jù)抽象的原則,同時(shí)具有易管理、易建模的特點(diǎn)。目前,以RBAC為基礎(chǔ)的訪問(wèn)控制模型在各企業(yè)權(quán)限管理系統(tǒng)中廣泛應(yīng)用。由于區(qū)塊鏈上數(shù)據(jù)不可篡改,區(qū)塊鏈智能合約一旦部署便不可篡改、全網(wǎng)節(jié)點(diǎn)共同執(zhí)行、執(zhí)行過(guò)程公開透明,因此區(qū)塊鏈可作為訪問(wèn)控制模型的維護(hù)者,解決以往訪問(wèn)控制部署在中心化服務(wù)器易被篡改的問(wèn)題[18]。已有學(xué)者提出將訪問(wèn)控制模型與區(qū)塊鏈智能合約結(jié)合,用于物聯(lián)網(wǎng)設(shè)備[19]以及系統(tǒng)[20]的訪問(wèn)管理。
4 學(xué)歷學(xué)位可信溯源機(jī)制
本文針對(duì)當(dāng)前學(xué)歷學(xué)位驗(yàn)證的可信性挑戰(zhàn),設(shè)計(jì)并實(shí)現(xiàn)了一套基于區(qū)塊鏈的學(xué)歷學(xué)位溯源系統(tǒng),并提出了數(shù)據(jù)協(xié)同存儲(chǔ)機(jī)制、智能合約用戶訪問(wèn)控制機(jī)制以及學(xué)位判定智能合約模板機(jī)制,以提高學(xué)歷學(xué)位溯源系統(tǒng)的數(shù)據(jù)處理效率和信息可信度,方便管理員對(duì)學(xué)歷學(xué)位系統(tǒng)進(jìn)行維護(hù)。
4.1 系統(tǒng)架構(gòu)
基于區(qū)塊鏈的學(xué)歷學(xué)位溯源系統(tǒng)架構(gòu)如圖1所示,該系統(tǒng)可分為四個(gè)模塊:前端頁(yè)面展示、后端業(yè)務(wù)邏輯、合約規(guī)則及可信存儲(chǔ)。
(1)頁(yè)面展示面向用戶,可供學(xué)生、教務(wù)管理人員以及用人單位等更新或查詢學(xué)生學(xué)歷學(xué)位相關(guān)數(shù)據(jù)。
(2)業(yè)務(wù)邏輯模塊支持對(duì)前端收集到的數(shù)據(jù)進(jìn)行增加、更新等操作,同時(shí)包含對(duì)區(qū)塊鏈以及鏈下分布式存儲(chǔ)系統(tǒng)接口的調(diào)用。
(3)合約規(guī)則即區(qū)塊鏈智能合約中的程序,用于執(zhí)行關(guān)鍵業(yè)務(wù)邏輯,包括用戶訪問(wèn)控制、學(xué)歷學(xué)位授予和學(xué)年合格性判定等。
(4)可信存儲(chǔ)由區(qū)塊鏈以及鏈下分布式存儲(chǔ)系統(tǒng)組成。區(qū)塊鏈用于存儲(chǔ)學(xué)生屬性數(shù)據(jù)、智能合約判定所需數(shù)據(jù)以及智能合約判定結(jié)果。鏈下分布式系統(tǒng)則存儲(chǔ)除智能合約規(guī)則以外全部數(shù)據(jù),包括關(guān)鍵信息和非關(guān)鍵信息。關(guān)鍵信息包括關(guān)鍵屬性數(shù)據(jù),比如學(xué)生身份數(shù)據(jù)。智能合約判定所需數(shù)據(jù)為判定規(guī)則所需數(shù)據(jù),智能合約生成結(jié)果則包括學(xué)生是否畢業(yè)等判定結(jié)果。其他非關(guān)鍵信息包括平時(shí)成績(jī)各得分項(xiàng)、平時(shí)作業(yè)等。這些信息都可以支撐學(xué)歷學(xué)位獲取的全過(guò)程溯源。
在該系統(tǒng)中,合約規(guī)則以及可信存儲(chǔ)中的三個(gè)模塊:數(shù)據(jù)協(xié)同存儲(chǔ)、智能合約用戶訪問(wèn)控制、學(xué)歷學(xué)位判定智能合約模板是實(shí)現(xiàn)學(xué)生學(xué)歷學(xué)位獲得過(guò)程數(shù)據(jù)溯源的重要組成部分。
4.2 數(shù)據(jù)協(xié)同存儲(chǔ)機(jī)制
實(shí)現(xiàn)學(xué)歷學(xué)位的溯源,需要存儲(chǔ)用戶的關(guān)鍵信息和大量學(xué)歷學(xué)位獲得的過(guò)程數(shù)據(jù),如期末考試成績(jī)、獲獎(jiǎng)數(shù)據(jù)、平時(shí)作業(yè)等。將這些數(shù)據(jù)都上傳至區(qū)塊鏈較為耗時(shí)且高成本,同時(shí)區(qū)塊鏈上不易存儲(chǔ)學(xué)生一寸照、學(xué)位證書掃描件等非結(jié)構(gòu)化數(shù)據(jù)。
為了高效存儲(chǔ)學(xué)生學(xué)歷學(xué)位獲得過(guò)程中產(chǎn)生的數(shù)據(jù),實(shí)現(xiàn)學(xué)歷學(xué)位過(guò)程溯源,本文將區(qū)塊鏈與分布式存儲(chǔ)系統(tǒng)結(jié)合,實(shí)現(xiàn)了數(shù)據(jù)的鏈上鏈下協(xié)同存儲(chǔ)。首先,對(duì)數(shù)據(jù)進(jìn)行分類,隨后對(duì)這些數(shù)據(jù)進(jìn)行分區(qū)存儲(chǔ)。鏈下存儲(chǔ)會(huì)存儲(chǔ)除智能合約以外的全部數(shù)據(jù),關(guān)鍵數(shù)據(jù)會(huì)同時(shí)存儲(chǔ)在區(qū)塊鏈中。為了保證數(shù)據(jù)可信,需要驗(yàn)證鏈上鏈下關(guān)鍵數(shù)據(jù)的一致性。
(1)數(shù)據(jù)存儲(chǔ)分類設(shè)計(jì)
首先,對(duì)數(shù)據(jù)進(jìn)行分類,分為關(guān)鍵數(shù)據(jù)與非關(guān)鍵數(shù)據(jù)。其中學(xué)生關(guān)鍵數(shù)據(jù)包括學(xué)生屬性數(shù)據(jù)、智能合約判定所需數(shù)據(jù)以及智能合約判定結(jié)果。學(xué)生關(guān)鍵屬性數(shù)據(jù)為學(xué)生身份數(shù)據(jù)。智能合約判定所需數(shù)據(jù)為判定規(guī)則所需數(shù)據(jù)。智能合約生成結(jié)果則包括學(xué)生是否畢業(yè)等判定結(jié)果。其他非關(guān)鍵數(shù)據(jù)包括平時(shí)成績(jī)、平時(shí)作業(yè)等。這些數(shù)據(jù)都可以支撐學(xué)歷學(xué)位獲取的全過(guò)程溯源。其中,關(guān)鍵數(shù)據(jù)的重要性高于非關(guān)鍵數(shù)據(jù),而非關(guān)鍵數(shù)據(jù)通常數(shù)據(jù)量更大,對(duì)存儲(chǔ)的效率和存儲(chǔ)量要求更高。
區(qū)塊鏈存儲(chǔ)的數(shù)據(jù)可信度更高,但是存儲(chǔ)效率低、成本高,而鏈下分布式存儲(chǔ)系統(tǒng)則具有比區(qū)塊鏈更高效的數(shù)據(jù)存儲(chǔ)能力,其中區(qū)塊鏈數(shù)據(jù)庫(kù)兼具區(qū)塊鏈和數(shù)據(jù)庫(kù)的優(yōu)勢(shì),但通常存儲(chǔ)的是結(jié)構(gòu)化數(shù)據(jù)(本文主要針對(duì)BigchainDB這類區(qū)塊鏈數(shù)據(jù)庫(kù)開展工作),分布式文件存儲(chǔ)系統(tǒng)沒(méi)有共識(shí)機(jī)制,但可支持非結(jié)構(gòu)化數(shù)據(jù)的存儲(chǔ)。
基于以上學(xué)生學(xué)歷學(xué)位數(shù)據(jù)的特點(diǎn)以及區(qū)塊鏈與鏈下分布式存儲(chǔ)系統(tǒng)的存儲(chǔ)特征,本文對(duì)數(shù)據(jù)進(jìn)行分類存儲(chǔ),鏈上鏈下數(shù)據(jù)協(xié)同存儲(chǔ)策略示意圖如圖2所示。
鏈下分布式存儲(chǔ)系統(tǒng)則保存除智能合約以外的所有數(shù)據(jù),包括關(guān)鍵數(shù)據(jù)和非關(guān)鍵數(shù)據(jù)。進(jìn)一步將所有結(jié)構(gòu)化數(shù)據(jù)存儲(chǔ)在區(qū)塊鏈數(shù)據(jù)庫(kù)中,而將非結(jié)構(gòu)化數(shù)據(jù)存儲(chǔ)在分布式文件存儲(chǔ)系統(tǒng)中。一旦數(shù)據(jù)上傳分布式文件系統(tǒng)后會(huì)被哈希運(yùn)算并得到HASH值,該結(jié)果是由文件內(nèi)容生成,可以檢索到文件。數(shù)據(jù)若經(jīng)過(guò)任何修改得到的HASH值都會(huì)變化。隨后,該值會(huì)被加密后作為結(jié)構(gòu)化數(shù)據(jù)存儲(chǔ)在區(qū)塊鏈數(shù)據(jù)庫(kù)中。
同時(shí),區(qū)塊鏈用于存儲(chǔ)智能合約,以及關(guān)鍵數(shù)據(jù),主要是指學(xué)生屬性數(shù)據(jù)、智能合約判定所需數(shù)據(jù)以及智能合約判定結(jié)果。當(dāng)然,與這些數(shù)據(jù)相關(guān)的非結(jié)構(gòu)化數(shù)據(jù)存儲(chǔ)在分布式文件系統(tǒng)中,并將數(shù)據(jù)哈希計(jì)算后得到的HASH進(jìn)行加密,進(jìn)而上傳至區(qū)塊鏈。其中區(qū)塊鏈數(shù)據(jù)庫(kù)使用的是BigchainDB,分布式文件系統(tǒng)采用的是IPFS。
以上構(gòu)建的區(qū)塊鏈與鏈下存儲(chǔ)系統(tǒng)相結(jié)合的存儲(chǔ)方式,根據(jù)數(shù)據(jù)重要程度的不同,將數(shù)據(jù)存儲(chǔ)在不同的存儲(chǔ)空間。在可信度及效率之間尋求平衡,同時(shí)可以支持非結(jié)構(gòu)化數(shù)據(jù)的存儲(chǔ)。
(2)數(shù)據(jù)同步機(jī)制設(shè)計(jì)
鏈下分布式存儲(chǔ)系統(tǒng)如區(qū)塊鏈數(shù)據(jù)庫(kù)以及分布式文件系統(tǒng),查詢效率更高,從中查詢數(shù)據(jù)有利于提升整個(gè)系統(tǒng)的性能,本文設(shè)計(jì)其保存除智能合約代碼外的全部數(shù)據(jù)。但由于鏈下存儲(chǔ)系統(tǒng)的可信度不如區(qū)塊鏈,關(guān)鍵信息還需要存儲(chǔ)在區(qū)塊鏈。因此為了保證鏈上鏈下關(guān)鍵數(shù)據(jù)的一致性,本文設(shè)計(jì)了如圖3所示的數(shù)據(jù)同步機(jī)制。
學(xué)歷學(xué)位信息溯源通常查詢鏈下系統(tǒng)來(lái)保證查詢效率,但對(duì)于學(xué)生關(guān)鍵信息,比如是否獲得學(xué)歷學(xué)位證書這一結(jié)果會(huì)從區(qū)塊鏈智能合約重新判定或查詢,可增強(qiáng)查詢結(jié)果的可信度。
同步機(jī)制需要將區(qū)塊鏈智能合約中判定生成的關(guān)鍵數(shù)據(jù)同步至區(qū)塊鏈數(shù)據(jù)庫(kù)中,另外還可將區(qū)塊鏈與區(qū)塊鏈數(shù)據(jù)庫(kù)中的關(guān)鍵數(shù)據(jù)進(jìn)行核對(duì),保持?jǐn)?shù)據(jù)一致。因此,本文設(shè)計(jì)了包含觸發(fā)同步以及定時(shí)同步的數(shù)據(jù)同步中間件,對(duì)區(qū)塊鏈與區(qū)塊鏈數(shù)據(jù)庫(kù)之間的數(shù)據(jù)進(jìn)行驗(yàn)證、同步。
該中間件的功能模塊,如圖3所示。包含監(jiān)聽、數(shù)據(jù)庫(kù)操作、計(jì)時(shí)、對(duì)比以及報(bào)警五個(gè)功能模塊。其中監(jiān)聽模塊用于監(jiān)聽區(qū)塊鏈上數(shù)據(jù)的變化;數(shù)據(jù)庫(kù)操作模塊用于查詢區(qū)塊鏈與區(qū)塊鏈數(shù)據(jù)庫(kù)上的數(shù)據(jù);計(jì)時(shí)模塊用于在規(guī)定時(shí)間觸發(fā)同步機(jī)制開始定時(shí)同步功能;對(duì)比模塊則用于將區(qū)塊鏈與區(qū)塊鏈數(shù)據(jù)庫(kù)上查詢到的數(shù)據(jù)進(jìn)行對(duì)比;報(bào)警模塊則用于區(qū)塊鏈與區(qū)塊鏈數(shù)據(jù)庫(kù)數(shù)據(jù)不一致時(shí)向相關(guān)人員報(bào)警。
本文使用以太坊區(qū)塊鏈平臺(tái),而區(qū)塊鏈數(shù)據(jù)庫(kù)則是BigchainDB。
本文同步機(jī)制監(jiān)聽模塊的實(shí)現(xiàn)依賴于智能合約的監(jiān)聽功能。下面舉例描述以太坊智能合約監(jiān)聽功能實(shí)現(xiàn)方式。以太坊智能合約可定義用于監(jiān)聽合約方法是否被執(zhí)行的事件(event),當(dāng)智能合約方法被執(zhí)行,定義在該方法中的事件會(huì)被觸發(fā)(emit),系統(tǒng)就能監(jiān)聽到數(shù)據(jù)的變化。比如可以監(jiān)聽如算法1的判斷學(xué)生是否畢業(yè)的JudgeGraduate方法。定義一個(gè)名為MonitJudgeGraduate的事件,入?yún)閷W(xué)生ID和學(xué)生是否畢業(yè)graduateState,該事件被JudgeGraduate方法觸發(fā)。
算法1:監(jiān)聽畢業(yè)判定
輸入:學(xué)生ID,總學(xué)分CC,四級(jí)成績(jī)CET,畢業(yè)論文成績(jī)CP
輸出:學(xué)生是否畢業(yè)graduateState
1:function ? JudgeGraduate(ID,CC,CET,CP)
2: if(CC,CET,CP satisfy the graduation requirements) ?then
3: graduateState=”graduate”
4: else
5: graduateState=”ungraduate”
6:emit MonitJudgeGraduate(ID, ? graduateState)
7:end function
區(qū)塊鏈支持對(duì)學(xué)生任意數(shù)據(jù)的附加更新。在區(qū)塊鏈數(shù)據(jù)庫(kù)中,本文將一般不會(huì)改變的關(guān)鍵數(shù)據(jù)如學(xué)生標(biāo)識(shí)信息:姓名、出生年月、性別、學(xué)號(hào)、學(xué)校等信息標(biāo)注為資產(chǎn)數(shù)據(jù),將四級(jí)成績(jī)、是否畢業(yè)等會(huì)變化的信息設(shè)置為關(guān)鍵元數(shù)據(jù),元數(shù)據(jù)可以進(jìn)行更新,本文將學(xué)生學(xué)歷學(xué)位溯源數(shù)據(jù)在區(qū)塊鏈數(shù)據(jù)庫(kù)中存儲(chǔ)為關(guān)鍵元數(shù)據(jù)與非關(guān)鍵元數(shù)據(jù)。為了保證用戶在區(qū)塊鏈數(shù)據(jù)庫(kù)查詢到的關(guān)鍵數(shù)據(jù)是可信的,可以通過(guò)區(qū)塊鏈或者智能合約運(yùn)行對(duì)關(guān)鍵元數(shù)據(jù)核對(duì),進(jìn)而更新,加強(qiáng)數(shù)據(jù)的可信性。
為了實(shí)現(xiàn)區(qū)塊鏈與區(qū)塊鏈數(shù)據(jù)庫(kù)系統(tǒng)的同步,本文設(shè)計(jì)了觸發(fā)同步與定時(shí)同步兩種同步方式。
功能1:觸發(fā)式同步
觸發(fā)同步功能用于監(jiān)聽區(qū)塊鏈智能合約判定后產(chǎn)生的數(shù)據(jù)。例如,當(dāng)區(qū)塊鏈上執(zhí)行是否畢業(yè)的判定,中間件就會(huì)利用觸發(fā)同步功能進(jìn)行數(shù)據(jù)同步。
下文以學(xué)生是否畢業(yè)這一數(shù)據(jù)的同步過(guò)程為例,對(duì)該實(shí)時(shí)同步機(jī)制的運(yùn)行方式進(jìn)行描述。中間件的模塊調(diào)用關(guān)系,如圖4所示。
當(dāng)區(qū)塊鏈智能合約執(zhí)行判定學(xué)生是否畢業(yè)的函數(shù)時(shí),會(huì)觸發(fā)畢業(yè)判定事件,此時(shí)系統(tǒng)上中間件的監(jiān)聽模塊會(huì)監(jiān)聽到數(shù)據(jù)的變化,如圖4中①所示。隨后通知數(shù)據(jù)操作模塊,如圖4中②所示。數(shù)據(jù)操作模塊會(huì)調(diào)用區(qū)塊鏈數(shù)據(jù)庫(kù)模塊中的數(shù)據(jù)查詢函數(shù),根據(jù)該學(xué)生ID查詢學(xué)生在區(qū)塊鏈數(shù)據(jù)庫(kù)中對(duì)應(yīng)的關(guān)鍵元數(shù)據(jù),如圖4中③所示。隨后,對(duì)比模塊會(huì)對(duì)區(qū)塊鏈與區(qū)塊鏈數(shù)據(jù)庫(kù)上是否畢業(yè)這一數(shù)據(jù)進(jìn)行對(duì)比,如圖4中④所示。若數(shù)據(jù)一致,則不進(jìn)行操作;不一致則更新區(qū)塊鏈數(shù)據(jù)庫(kù)中數(shù)據(jù),如圖4中⑤所示。進(jìn)而將結(jié)果也存儲(chǔ)到區(qū)塊鏈,如圖4中⑥所示。
功能2:定時(shí)同步
定時(shí)同步功能可以在規(guī)定的時(shí)間對(duì)系統(tǒng)中智能合約計(jì)算相關(guān)的學(xué)生關(guān)鍵元數(shù)據(jù)進(jìn)行同步。該定時(shí)同步時(shí)間間隔T可以根據(jù)系統(tǒng)對(duì)數(shù)據(jù)一致性的要求、系統(tǒng)的數(shù)據(jù)處理能力以及數(shù)據(jù)量的大小等因素進(jìn)行設(shè)定,例如可以設(shè)置T為1天、2天、1周等。定時(shí)同步,中間件的模塊調(diào)用關(guān)系,如圖5所示。
當(dāng)間隔時(shí)間為T1時(shí),計(jì)時(shí)模塊每隔T1就會(huì)發(fā)起數(shù)據(jù)同步操作,如圖5中①所示。此時(shí)數(shù)據(jù)操作模塊會(huì)分別調(diào)用區(qū)塊鏈數(shù)據(jù)查詢模塊和區(qū)塊鏈數(shù)據(jù)庫(kù)數(shù)據(jù)查詢模塊,根據(jù)學(xué)生ID對(duì)區(qū)塊鏈與區(qū)塊鏈數(shù)據(jù)庫(kù)上的學(xué)生數(shù)據(jù)進(jìn)行遍歷,如圖5中②所示。數(shù)據(jù)獲得后,會(huì)進(jìn)入對(duì)比模塊,如圖5中③所示。對(duì)比模塊會(huì)根據(jù)學(xué)生ID對(duì)學(xué)生在區(qū)塊鏈與區(qū)塊鏈數(shù)據(jù)庫(kù)上的關(guān)鍵數(shù)據(jù)進(jìn)行對(duì)比。數(shù)據(jù)一致則不進(jìn)行操作,數(shù)據(jù)不一致且區(qū)塊鏈上數(shù)據(jù)更新時(shí)間更晚時(shí)則調(diào)用區(qū)塊鏈數(shù)據(jù)庫(kù)上的數(shù)據(jù)更新模塊,將區(qū)塊鏈中查詢到的數(shù)據(jù)同步至區(qū)塊鏈數(shù)據(jù)庫(kù),如圖5中④所示。若雙方數(shù)據(jù)不一致,且區(qū)塊鏈數(shù)據(jù)庫(kù)中數(shù)據(jù)更新時(shí)間更晚,則說(shuō)明可能存在數(shù)據(jù)被惡意篡改的情況,需要調(diào)用報(bào)警模塊,通知相關(guān)人員數(shù)據(jù)存在異常,如圖5中⑤所示。
以上描述的鏈上鏈下數(shù)據(jù)存儲(chǔ)模式,包含對(duì)數(shù)據(jù)的分類存儲(chǔ)的設(shè)計(jì)、數(shù)據(jù)協(xié)同機(jī)制的設(shè)計(jì),該模式有效解決了學(xué)歷學(xué)位溯源系統(tǒng)的數(shù)據(jù)安全與數(shù)據(jù)處理效率之間的矛盾,有利于加快基于區(qū)塊鏈的學(xué)歷學(xué)位信息溯源系統(tǒng)在實(shí)際中落地應(yīng)用。
4.3 智能合約用戶訪問(wèn)控制
通過(guò)對(duì)用戶賦予不同的角色,不同角色又賦予不同的權(quán)限,來(lái)完成數(shù)據(jù)和功能訪問(wèn)控制,可以減少數(shù)據(jù)違法操作與誤操作,保證學(xué)生學(xué)歷學(xué)位溯源數(shù)據(jù)的可信。
實(shí)際中,學(xué)校各崗位的設(shè)置比較固定,但是各崗位上的人員變動(dòng)較大,因此該模式適合基于角色的訪問(wèn)控制模型(RBAC)。
模型中角色將用戶與權(quán)限分離,可以減少人員職位變動(dòng)時(shí),權(quán)限數(shù)據(jù)做過(guò)多調(diào)整。另外,本文將區(qū)塊鏈智能合約與RBAC模型結(jié)合,改變以往訪問(wèn)控制中心化的管理方式。本文實(shí)現(xiàn)的訪問(wèn)控制機(jī)制在實(shí)現(xiàn)自動(dòng)執(zhí)行、不可篡改的同時(shí),還可以記錄在什么時(shí)間、什么人員,進(jìn)行了什么數(shù)據(jù)變更操作,方便追責(zé)。
本文在區(qū)塊鏈智能合約中實(shí)現(xiàn)了該權(quán)限管理模型。首先,在智能合約中建立了可以存儲(chǔ)用戶、角色以及權(quán)限信息的結(jié)構(gòu)體,并增加用戶、角色以及權(quán)限相關(guān)信息的新增、修改、查詢以及禁用等功能。其中,用戶相關(guān)操作包含用戶新增、修改、禁用、查詢以及用戶角色修改五個(gè)功能。角色相關(guān)操作包含角色新增、修改、查詢、禁用以及角色權(quán)限修改五個(gè)功能。權(quán)限相關(guān)操作包含權(quán)限新增、修改、查詢以及權(quán)限禁用四個(gè)功能。
如圖6所示,為該區(qū)塊鏈學(xué)歷學(xué)位溯源系統(tǒng)訪問(wèn)控制中的用戶、角色以及權(quán)限的關(guān)系。可見該系統(tǒng)主要包含五類角色:管理員、教師、學(xué)生、用人單位以及第三方監(jiān)管單位。為了更加簡(jiǎn)單的表達(dá)使用方法,特將角色權(quán)限簡(jiǎn)化,各個(gè)角色的權(quán)限表達(dá)為:管理員具有配置用戶角色的權(quán)限;教師具有上傳學(xué)生成績(jī)和相關(guān)信息的權(quán)限;學(xué)生具有查詢和確認(rèn)數(shù)據(jù)的權(quán)限;用人單位和第三方監(jiān)管具有查詢數(shù)據(jù)的權(quán)限。
4.4 學(xué)歷學(xué)位判定智能合約模板
該基于區(qū)塊鏈的學(xué)歷學(xué)位溯源系統(tǒng)采用數(shù)據(jù)與邏輯分離的設(shè)計(jì)模式,區(qū)塊鏈上的數(shù)據(jù)與智能合約定義的邏輯代碼也遵守該原則。
高校在學(xué)生入學(xué)時(shí)會(huì)與學(xué)生簽訂畢業(yè)協(xié)議,學(xué)生滿足畢業(yè)協(xié)議才能畢業(yè)。將畢業(yè)協(xié)議轉(zhuǎn)化為區(qū)塊鏈智能合約代碼,能保證學(xué)位授予規(guī)則自動(dòng)執(zhí)行,執(zhí)行過(guò)程的不可篡改、執(zhí)行結(jié)果的可信。
高校每一屆學(xué)生的畢業(yè)協(xié)議都具有一定的共性,但也會(huì)根據(jù)課程和教育改革等實(shí)際情況進(jìn)行調(diào)整。高校管理人員進(jìn)行學(xué)歷學(xué)位授予智能合約或其他判定合約的開發(fā)需要一定編程基礎(chǔ),且智能合約一次部署不能中途更新,對(duì)代碼具有較高的要求。因此構(gòu)建通用的學(xué)歷學(xué)位溯源智能合約規(guī)則模塊,通過(guò)規(guī)則模塊組合,方便快速的構(gòu)建特定智能合約,有利于系統(tǒng)在實(shí)際中應(yīng)用。
[10] 李中振,高超越,劉敏,代成琴,范軼. 基于區(qū)塊鏈技術(shù)的學(xué)籍管理系統(tǒng)[J]. 四川大學(xué)學(xué)報(bào)(自然科學(xué)版), 2019, 56(03): 450-456.
[11] Jirgensons M, Kapenieks J. Blockchain and the future of digital learning credential assessment and management[J]. Journal of Teacher Education for Sustainability, 2018, 20(1): 145-156.
[12] 袁勇, 王飛躍. 區(qū)塊鏈技術(shù)發(fā)展現(xiàn)狀與展望[J]. 自動(dòng)化學(xué)報(bào),2016,42(4).
[13] 邵奇峰, 金澈清, 張召等. 區(qū)塊鏈技術(shù):架構(gòu)及進(jìn)展[J]. 計(jì)算機(jī)學(xué)報(bào), 2018, 425(05): 3-22.
[14] Salah K, Rehman M H U, Nizamuddin N, et al. Blockchain for AI: Review and open research challenges[J]. IEEE Access, 2019, 7: 10127-10149.
[15] McConaghy T, Marques R, Müller A, et al. BigchainDB: A Scalable Blockchain Database[J]. white paper, BigchainDB, 2016.
[16] Benet J. IPFS - Content Addressed, Versioned, P2P File System (DRAFT 3)[J]. Eprint Arxiv, 2014.
[17] 以太坊團(tuán)隊(duì). Storage and communication infrastructure for a sovereign digital society [EB/OL]. https://swarm-guide.readthedocs.io/en/latest/introduction.html, 2019/2020-05-27.
[18] 王于丁, 楊家海, 徐聰, et al. 云計(jì)算訪問(wèn)控制技術(shù)研究綜述[J]. 軟件學(xué)報(bào), 2015, 26(05): 1129-1150.
[19] 劉敖迪, 杜學(xué)繪, 王娜, et al. 基于區(qū)塊鏈的大數(shù)據(jù)訪問(wèn)控制機(jī)制[J]. 軟件學(xué)報(bào), 2019, 30(09): 2636-2654.
[20] 史錦山,李茹. 物聯(lián)網(wǎng)下的區(qū)塊鏈訪問(wèn)控制綜述[J]. 軟件學(xué)報(bào), 2019, 30(06): 1632-1648.
[21] Ding Y, Jin J, Zhang J, et al. SC-RBAC: A Smart Contract based RBAC Model for DApps[C]//International Conference on Human Centered Computing. Springer, Cham, 2019: 75-85.