一套基于區(qū)塊鏈的可信學歷學位認證系統(tǒng)
- 來源:網(wǎng)絡空間安全 smarty:if $article.tag?>
- 關鍵字:學歷學位溯源,智能合約,區(qū)塊鏈 smarty:/if?>
- 發(fā)布時間:2020-09-29 18:35
摘 要:學歷學位是衡量學生知識水平和社會認可度的重要證明,而現(xiàn)有學歷學位數(shù)據(jù)管理系統(tǒng)存在中心化、易篡改及難以追溯等問題,導致出現(xiàn)造假現(xiàn)象。區(qū)塊鏈數(shù)據(jù)具有不可篡改、可存證、可追溯的特點,將區(qū)塊鏈應用于學歷學位管理系統(tǒng),可對學歷學位獲得過程進行溯源。文章基于區(qū)塊鏈和智能合約技術,設計了一套可信的學歷學位認證系統(tǒng),從效率和可信度平衡、訪問控制安全等角度展開設計工作,并詳細介紹系統(tǒng)的運轉流程,為學歷學位認證可信溯源的發(fā)展提供參考。
關鍵詞:學歷學位溯源;區(qū)塊鏈;協(xié)同存儲;智能合約
中圖分類號: TP311 文獻標識碼: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 引言
學歷學位證書是社會衡量學生能力的重要標準之一,對于個人的求職與深造都會產(chǎn)生重要影響。目前,只有學信網(wǎng)、學位與研究生教育發(fā)展中心以及國(境)外學位認證系統(tǒng),能提供國內(nèi)外學歷學位證書認證。但是目前學位學歷管理系統(tǒng)普遍采用集中化的數(shù)據(jù)管理,存在單點故障以及數(shù)據(jù)被篡改的風險,且難以實現(xiàn)學歷學位獲得過程的溯源[1]。因此需要進一步研究學歷學位證明管理方式,加強過程溯源、加大造假難度,從而減少學歷學位造假現(xiàn)象。
區(qū)塊鏈具有去中心、可追溯存證、不易篡改等特點,近幾年在金融交易以及物流溯源方面已經(jīng)發(fā)揮了重要作用,區(qū)塊鏈與教育的結合也在逐步展開。2018年,教育部在兩會中提出《關于探索運用區(qū)塊鏈技術進行學位證書認證的建議》,明確表示將密切關注區(qū)塊鏈技術,積極探索其在學生管理中的應用[2]。同年發(fā)布的《教育信息化2.0行動計劃》[3]中也指出要積極探索基于區(qū)塊鏈技術的學習效果記錄、轉移、交換、認證等有效方式。工業(yè)和信息化部在《中國區(qū)塊鏈技術和應用發(fā)展白皮書》也提出了建立基于區(qū)塊鏈的教育存證平臺的構想[4]。
將區(qū)塊鏈與學歷學位溯源結合,可以防止數(shù)據(jù)被惡意篡改,學歷學位判定規(guī)則執(zhí)行公開透明,能有效減少數(shù)據(jù)造假的風險。但是依然存在一些問題:區(qū)塊鏈上數(shù)據(jù)處理速度較慢、處理成本高,學歷學位溯源又涉及到大量的學生數(shù)據(jù),區(qū)塊鏈與學位溯源結合后系統(tǒng)業(yè)務執(zhí)行效率不高;學歷學位溯源系統(tǒng)具有不同的用戶角色、不同的操作內(nèi)容,如果不對用戶權限加以可信管理,易產(chǎn)生不正確的修改或誤操作,且缺乏追責監(jiān)管機制;智能合約可以用于控制學位認證規(guī)則,但規(guī)則在實際中是變化的,不同屆的學生可能需要制定不同的學歷學位判定規(guī)則,每次都重新編寫智能合約程序,會為管理員帶來許多冗余工作。
針對以上區(qū)塊鏈與學歷學位溯源認證結合后存在的問題,本文在基于區(qū)塊鏈的學歷學位溯源認證系統(tǒng)中,設計并實現(xiàn)了數(shù)據(jù)協(xié)同存儲、智能合約用戶訪問控制、學位判定智能合約模板三部分功能,促進區(qū)塊鏈學歷學位溯源系統(tǒng)安全、高效運行。
2 相關工作
2.1 傳統(tǒng)學歷學位認證發(fā)展現(xiàn)狀
為了提供學生學歷學位證書有效性證明,2002年學信網(wǎng)上線。隨后,推出了“學信二維碼”,學生可將該二維碼嵌入求職簡歷中。2018年,教育部學位中心也開始提供學位認證服務,還可通過國外學位認證系統(tǒng)查詢國外證書的有效性[5]。
以上認證都是通過權威機構的背書,這在一定程度上增加了學位證書的偽造難度,但是這種中心化的數(shù)據(jù)管理方式依然存在數(shù)據(jù)篡改風險。具體表現(xiàn)為:
?。?)傳統(tǒng)學位認證數(shù)據(jù)存儲在中心化的數(shù)據(jù)庫中,數(shù)據(jù)可以被高權限的管理員修改,甚至訪問日志也可能被改動,存在學歷學位數(shù)據(jù)的不真實以及不可追溯的風險。
?。?)傳統(tǒng)學歷學位的認證通常采用半人工審核的方式,認證規(guī)則可以被人為修改,審核人員具有較大權力,執(zhí)行結果可能存在質疑。
?。?)傳統(tǒng)學歷學位認證通常只有少數(shù)權威機構參與,其他角色如學校、教師、學生的參與度不足,缺乏公開透明的高效約束機制,且認證往往只是注重結果,認證過程追溯功能受限。
2.2 基于區(qū)塊鏈的教育認證研究現(xiàn)狀
近幾年,眾多學者積極探索區(qū)塊鏈在各領域的應用,“區(qū)塊鏈+教育”就是其中之一,目前已有眾多區(qū)塊鏈加教育認證項目落地。2015年Bitproof公司與霍伯頓學校聯(lián)合,將區(qū)塊鏈與教育存證結合,使用區(qū)塊鏈記錄學生學習成果。隨后索尼公司、麻省理工學院[6]也展開了區(qū)塊鏈在教育存證中的研究。2017年,歐盟委員會在發(fā)布的《區(qū)塊鏈在教育行業(yè)(Blockchain in Education)》報告中指出區(qū)塊鏈與教育結合中的數(shù)字認證、信用認可、學分轉換和支付交易方面還需進一步研究[7]。英國開放大學知識媒體學院與英國電信也創(chuàng)建了一個名為“OpenBlockchain”的基于以太坊的區(qū)塊鏈教育平臺,利用區(qū)塊鏈智能合約對開放大學的課程證書進行記錄,同時還會提供證書關聯(lián)信息,如接收方、頒發(fā)方、頒發(fā)標準以及頒發(fā)依據(jù)等。
部分學者也在進行“區(qū)塊鏈+教育”的可行運作模式的探索。Sharples(2016)[8]提出利用區(qū)塊鏈建立一個研究成果、創(chuàng)意以及聲譽的記錄系統(tǒng),實現(xiàn)可信存證。吳莎莎(2018)[9]分析了將數(shù)字徽章認證理念與內(nèi)容嵌入?yún)^(qū)塊鏈平臺可行性,并提出了基于區(qū)塊鏈技術的在線學習憑證頒布系統(tǒng)的架構及應用方式。李中振(2019)[10]指出區(qū)塊鏈技術去中心、不可篡改的特點可以有效保障學籍信息的安全和真實,作者還基于Fabric框架開發(fā)了一個學籍管理系統(tǒng)原型。Jirgensons (2018)[11]指出在線學習頒發(fā)的數(shù)字證書可以激勵學生學習,且證書分享方便,但是存在證書失效的風險,因此提出將區(qū)塊鏈作為在線認證證書記錄、存儲以及管理的底層技術,實現(xiàn)在線學習證書的可信認證。
我國近幾年采用信息化手段實現(xiàn)學歷學位信息管理,一定程度上增加了學位造假的難度。但是,由于傳統(tǒng)系統(tǒng)采用中心化的管理方式,數(shù)據(jù)依然存在篡改風險。近幾年區(qū)塊鏈技術在物流溯源、金融交易等領域被廣泛應用,但是區(qū)塊鏈與學位認證結合的技術方案還在探索中,本文提出一套區(qū)塊鏈學歷學位溯源認證技術方案,力圖在性能和效率之間尋找平衡,高效利用智能合約特征,為可信學歷學位的認證發(fā)展提供支持。
3 區(qū)塊鏈及相關技術
3.1 區(qū)塊鏈技術
區(qū)塊鏈是一種新興的技術,具有分布式、不可篡改、公開透明、可追溯的特點[12]。智能合約是傳統(tǒng)紙質合約的數(shù)字化版本,智能合約與區(qū)塊鏈的結合,使其具備合約公開和不可篡改的特性。主流的區(qū)塊鏈平臺有以太坊(Ethereum)、Hyperledger Fabric以及EOS(Enterprise Operation System)[13]。目前,區(qū)塊鏈平臺普遍存在數(shù)據(jù)處理速度慢、存儲成本高的問題,除了通過修改共識算法提高存儲的效率,還可以結合分布式存儲系統(tǒng)[14],如區(qū)塊鏈數(shù)據(jù)庫BigchainDB[15]、分布式文件系統(tǒng)IPFS[16]、Swarm[17]等協(xié)同存儲,在高可信與高效率之間尋找平衡。
區(qū)塊鏈技術在學位認證應用中發(fā)揮的作用主要體現(xiàn)在三個方面。
?。?)利用區(qū)塊鏈技術存儲學歷學位認證數(shù)據(jù),可保證數(shù)據(jù)不易篡改,完成學歷學位認證的全流程追溯。
?。?)區(qū)塊鏈智能合約可以將學歷學位認證規(guī)則公開透明,并自動執(zhí)行,具有較強的可信度。
?。?)區(qū)塊鏈基礎上的學歷學位認證系統(tǒng)可加強多角色或多單位的參與度,形成一套可信公開約束機制,有效推動可信認證模式的發(fā)展。
3.2 訪問控制技術
訪問控制是指在鑒別用戶的身份后,通過某種方式顯示的許可或限制用戶對數(shù)據(jù)的訪問、對功能的操作,防止違法用戶進入或合法用戶錯誤操作帶來破壞。目前有基于角色(Role-Based Access Control,RBAC)、屬性(Attribute-Based Access Control,ABAC)等訪問控制模型[17]。
RBAC模型滿足最小特權、職責分離以及數(shù)據(jù)抽象的原則,同時具有易管理、易建模的特點。目前,以RBAC為基礎的訪問控制模型在各企業(yè)權限管理系統(tǒng)中廣泛應用。由于區(qū)塊鏈上數(shù)據(jù)不可篡改,區(qū)塊鏈智能合約一旦部署便不可篡改、全網(wǎng)節(jié)點共同執(zhí)行、執(zhí)行過程公開透明,因此區(qū)塊鏈可作為訪問控制模型的維護者,解決以往訪問控制部署在中心化服務器易被篡改的問題[18]。已有學者提出將訪問控制模型與區(qū)塊鏈智能合約結合,用于物聯(lián)網(wǎng)設備[19]以及系統(tǒng)[20]的訪問管理。
4 學歷學位可信溯源機制
本文針對當前學歷學位驗證的可信性挑戰(zhàn),設計并實現(xiàn)了一套基于區(qū)塊鏈的學歷學位溯源系統(tǒng),并提出了數(shù)據(jù)協(xié)同存儲機制、智能合約用戶訪問控制機制以及學位判定智能合約模板機制,以提高學歷學位溯源系統(tǒng)的數(shù)據(jù)處理效率和信息可信度,方便管理員對學歷學位系統(tǒng)進行維護。
4.1 系統(tǒng)架構
基于區(qū)塊鏈的學歷學位溯源系統(tǒng)架構如圖1所示,該系統(tǒng)可分為四個模塊:前端頁面展示、后端業(yè)務邏輯、合約規(guī)則及可信存儲。
?。?)頁面展示面向用戶,可供學生、教務管理人員以及用人單位等更新或查詢學生學歷學位相關數(shù)據(jù)。
?。?)業(yè)務邏輯模塊支持對前端收集到的數(shù)據(jù)進行增加、更新等操作,同時包含對區(qū)塊鏈以及鏈下分布式存儲系統(tǒng)接口的調(diào)用。
?。?)合約規(guī)則即區(qū)塊鏈智能合約中的程序,用于執(zhí)行關鍵業(yè)務邏輯,包括用戶訪問控制、學歷學位授予和學年合格性判定等。
?。?)可信存儲由區(qū)塊鏈以及鏈下分布式存儲系統(tǒng)組成。區(qū)塊鏈用于存儲學生屬性數(shù)據(jù)、智能合約判定所需數(shù)據(jù)以及智能合約判定結果。鏈下分布式系統(tǒng)則存儲除智能合約規(guī)則以外全部數(shù)據(jù),包括關鍵信息和非關鍵信息。關鍵信息包括關鍵屬性數(shù)據(jù),比如學生身份數(shù)據(jù)。智能合約判定所需數(shù)據(jù)為判定規(guī)則所需數(shù)據(jù),智能合約生成結果則包括學生是否畢業(yè)等判定結果。其他非關鍵信息包括平時成績各得分項、平時作業(yè)等。這些信息都可以支撐學歷學位獲取的全過程溯源。
在該系統(tǒng)中,合約規(guī)則以及可信存儲中的三個模塊:數(shù)據(jù)協(xié)同存儲、智能合約用戶訪問控制、學歷學位判定智能合約模板是實現(xiàn)學生學歷學位獲得過程數(shù)據(jù)溯源的重要組成部分。
4.2 數(shù)據(jù)協(xié)同存儲機制
實現(xiàn)學歷學位的溯源,需要存儲用戶的關鍵信息和大量學歷學位獲得的過程數(shù)據(jù),如期末考試成績、獲獎數(shù)據(jù)、平時作業(yè)等。將這些數(shù)據(jù)都上傳至區(qū)塊鏈較為耗時且高成本,同時區(qū)塊鏈上不易存儲學生一寸照、學位證書掃描件等非結構化數(shù)據(jù)。
為了高效存儲學生學歷學位獲得過程中產(chǎn)生的數(shù)據(jù),實現(xiàn)學歷學位過程溯源,本文將區(qū)塊鏈與分布式存儲系統(tǒng)結合,實現(xiàn)了數(shù)據(jù)的鏈上鏈下協(xié)同存儲。首先,對數(shù)據(jù)進行分類,隨后對這些數(shù)據(jù)進行分區(qū)存儲。鏈下存儲會存儲除智能合約以外的全部數(shù)據(jù),關鍵數(shù)據(jù)會同時存儲在區(qū)塊鏈中。為了保證數(shù)據(jù)可信,需要驗證鏈上鏈下關鍵數(shù)據(jù)的一致性。
?。?)數(shù)據(jù)存儲分類設計
首先,對數(shù)據(jù)進行分類,分為關鍵數(shù)據(jù)與非關鍵數(shù)據(jù)。其中學生關鍵數(shù)據(jù)包括學生屬性數(shù)據(jù)、智能合約判定所需數(shù)據(jù)以及智能合約判定結果。學生關鍵屬性數(shù)據(jù)為學生身份數(shù)據(jù)。智能合約判定所需數(shù)據(jù)為判定規(guī)則所需數(shù)據(jù)。智能合約生成結果則包括學生是否畢業(yè)等判定結果。其他非關鍵數(shù)據(jù)包括平時成績、平時作業(yè)等。這些數(shù)據(jù)都可以支撐學歷學位獲取的全過程溯源。其中,關鍵數(shù)據(jù)的重要性高于非關鍵數(shù)據(jù),而非關鍵數(shù)據(jù)通常數(shù)據(jù)量更大,對存儲的效率和存儲量要求更高。
區(qū)塊鏈存儲的數(shù)據(jù)可信度更高,但是存儲效率低、成本高,而鏈下分布式存儲系統(tǒng)則具有比區(qū)塊鏈更高效的數(shù)據(jù)存儲能力,其中區(qū)塊鏈數(shù)據(jù)庫兼具區(qū)塊鏈和數(shù)據(jù)庫的優(yōu)勢,但通常存儲的是結構化數(shù)據(jù)(本文主要針對BigchainDB這類區(qū)塊鏈數(shù)據(jù)庫開展工作),分布式文件存儲系統(tǒng)沒有共識機制,但可支持非結構化數(shù)據(jù)的存儲。
基于以上學生學歷學位數(shù)據(jù)的特點以及區(qū)塊鏈與鏈下分布式存儲系統(tǒng)的存儲特征,本文對數(shù)據(jù)進行分類存儲,鏈上鏈下數(shù)據(jù)協(xié)同存儲策略示意圖如圖2所示。
鏈下分布式存儲系統(tǒng)則保存除智能合約以外的所有數(shù)據(jù),包括關鍵數(shù)據(jù)和非關鍵數(shù)據(jù)。進一步將所有結構化數(shù)據(jù)存儲在區(qū)塊鏈數(shù)據(jù)庫中,而將非結構化數(shù)據(jù)存儲在分布式文件存儲系統(tǒng)中。一旦數(shù)據(jù)上傳分布式文件系統(tǒng)后會被哈希運算并得到HASH值,該結果是由文件內(nèi)容生成,可以檢索到文件。數(shù)據(jù)若經(jīng)過任何修改得到的HASH值都會變化。隨后,該值會被加密后作為結構化數(shù)據(jù)存儲在區(qū)塊鏈數(shù)據(jù)庫中。
同時,區(qū)塊鏈用于存儲智能合約,以及關鍵數(shù)據(jù),主要是指學生屬性數(shù)據(jù)、智能合約判定所需數(shù)據(jù)以及智能合約判定結果。當然,與這些數(shù)據(jù)相關的非結構化數(shù)據(jù)存儲在分布式文件系統(tǒng)中,并將數(shù)據(jù)哈希計算后得到的HASH進行加密,進而上傳至區(qū)塊鏈。其中區(qū)塊鏈數(shù)據(jù)庫使用的是BigchainDB,分布式文件系統(tǒng)采用的是IPFS。
以上構建的區(qū)塊鏈與鏈下存儲系統(tǒng)相結合的存儲方式,根據(jù)數(shù)據(jù)重要程度的不同,將數(shù)據(jù)存儲在不同的存儲空間。在可信度及效率之間尋求平衡,同時可以支持非結構化數(shù)據(jù)的存儲。
?。?)數(shù)據(jù)同步機制設計
鏈下分布式存儲系統(tǒng)如區(qū)塊鏈數(shù)據(jù)庫以及分布式文件系統(tǒng),查詢效率更高,從中查詢數(shù)據(jù)有利于提升整個系統(tǒng)的性能,本文設計其保存除智能合約代碼外的全部數(shù)據(jù)。但由于鏈下存儲系統(tǒng)的可信度不如區(qū)塊鏈,關鍵信息還需要存儲在區(qū)塊鏈。因此為了保證鏈上鏈下關鍵數(shù)據(jù)的一致性,本文設計了如圖3所示的數(shù)據(jù)同步機制。
學歷學位信息溯源通常查詢鏈下系統(tǒng)來保證查詢效率,但對于學生關鍵信息,比如是否獲得學歷學位證書這一結果會從區(qū)塊鏈智能合約重新判定或查詢,可增強查詢結果的可信度。
同步機制需要將區(qū)塊鏈智能合約中判定生成的關鍵數(shù)據(jù)同步至區(qū)塊鏈數(shù)據(jù)庫中,另外還可將區(qū)塊鏈與區(qū)塊鏈數(shù)據(jù)庫中的關鍵數(shù)據(jù)進行核對,保持數(shù)據(jù)一致。因此,本文設計了包含觸發(fā)同步以及定時同步的數(shù)據(jù)同步中間件,對區(qū)塊鏈與區(qū)塊鏈數(shù)據(jù)庫之間的數(shù)據(jù)進行驗證、同步。
該中間件的功能模塊,如圖3所示。包含監(jiān)聽、數(shù)據(jù)庫操作、計時、對比以及報警五個功能模塊。其中監(jiān)聽模塊用于監(jiān)聽區(qū)塊鏈上數(shù)據(jù)的變化;數(shù)據(jù)庫操作模塊用于查詢區(qū)塊鏈與區(qū)塊鏈數(shù)據(jù)庫上的數(shù)據(jù);計時模塊用于在規(guī)定時間觸發(fā)同步機制開始定時同步功能;對比模塊則用于將區(qū)塊鏈與區(qū)塊鏈數(shù)據(jù)庫上查詢到的數(shù)據(jù)進行對比;報警模塊則用于區(qū)塊鏈與區(qū)塊鏈數(shù)據(jù)庫數(shù)據(jù)不一致時向相關人員報警。
本文使用以太坊區(qū)塊鏈平臺,而區(qū)塊鏈數(shù)據(jù)庫則是BigchainDB。
本文同步機制監(jiān)聽模塊的實現(xiàn)依賴于智能合約的監(jiān)聽功能。下面舉例描述以太坊智能合約監(jiān)聽功能實現(xiàn)方式。以太坊智能合約可定義用于監(jiān)聽合約方法是否被執(zhí)行的事件(event),當智能合約方法被執(zhí)行,定義在該方法中的事件會被觸發(fā)(emit),系統(tǒng)就能監(jiān)聽到數(shù)據(jù)的變化。比如可以監(jiān)聽如算法1的判斷學生是否畢業(yè)的JudgeGraduate方法。定義一個名為MonitJudgeGraduate的事件,入?yún)閷W生ID和學生是否畢業(yè)graduateState,該事件被JudgeGraduate方法觸發(fā)。
算法1:監(jiān)聽畢業(yè)判定
輸入:學生ID,總學分CC,四級成績CET,畢業(yè)論文成績CP
輸出:學生是否畢業(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ū)塊鏈支持對學生任意數(shù)據(jù)的附加更新。在區(qū)塊鏈數(shù)據(jù)庫中,本文將一般不會改變的關鍵數(shù)據(jù)如學生標識信息:姓名、出生年月、性別、學號、學校等信息標注為資產(chǎn)數(shù)據(jù),將四級成績、是否畢業(yè)等會變化的信息設置為關鍵元數(shù)據(jù),元數(shù)據(jù)可以進行更新,本文將學生學歷學位溯源數(shù)據(jù)在區(qū)塊鏈數(shù)據(jù)庫中存儲為關鍵元數(shù)據(jù)與非關鍵元數(shù)據(jù)。為了保證用戶在區(qū)塊鏈數(shù)據(jù)庫查詢到的關鍵數(shù)據(jù)是可信的,可以通過區(qū)塊鏈或者智能合約運行對關鍵元數(shù)據(jù)核對,進而更新,加強數(shù)據(jù)的可信性。
為了實現(xiàn)區(qū)塊鏈與區(qū)塊鏈數(shù)據(jù)庫系統(tǒng)的同步,本文設計了觸發(fā)同步與定時同步兩種同步方式。
功能1:觸發(fā)式同步
觸發(fā)同步功能用于監(jiān)聽區(qū)塊鏈智能合約判定后產(chǎn)生的數(shù)據(jù)。例如,當區(qū)塊鏈上執(zhí)行是否畢業(yè)的判定,中間件就會利用觸發(fā)同步功能進行數(shù)據(jù)同步。
下文以學生是否畢業(yè)這一數(shù)據(jù)的同步過程為例,對該實時同步機制的運行方式進行描述。中間件的模塊調(diào)用關系,如圖4所示。
當區(qū)塊鏈智能合約執(zhí)行判定學生是否畢業(yè)的函數(shù)時,會觸發(fā)畢業(yè)判定事件,此時系統(tǒng)上中間件的監(jiān)聽模塊會監(jiān)聽到數(shù)據(jù)的變化,如圖4中①所示。隨后通知數(shù)據(jù)操作模塊,如圖4中②所示。數(shù)據(jù)操作模塊會調(diào)用區(qū)塊鏈數(shù)據(jù)庫模塊中的數(shù)據(jù)查詢函數(shù),根據(jù)該學生ID查詢學生在區(qū)塊鏈數(shù)據(jù)庫中對應的關鍵元數(shù)據(jù),如圖4中③所示。隨后,對比模塊會對區(qū)塊鏈與區(qū)塊鏈數(shù)據(jù)庫上是否畢業(yè)這一數(shù)據(jù)進行對比,如圖4中④所示。若數(shù)據(jù)一致,則不進行操作;不一致則更新區(qū)塊鏈數(shù)據(jù)庫中數(shù)據(jù),如圖4中⑤所示。進而將結果也存儲到區(qū)塊鏈,如圖4中⑥所示。
功能2:定時同步
定時同步功能可以在規(guī)定的時間對系統(tǒng)中智能合約計算相關的學生關鍵元數(shù)據(jù)進行同步。該定時同步時間間隔T可以根據(jù)系統(tǒng)對數(shù)據(jù)一致性的要求、系統(tǒng)的數(shù)據(jù)處理能力以及數(shù)據(jù)量的大小等因素進行設定,例如可以設置T為1天、2天、1周等。定時同步,中間件的模塊調(diào)用關系,如圖5所示。
當間隔時間為T1時,計時模塊每隔T1就會發(fā)起數(shù)據(jù)同步操作,如圖5中①所示。此時數(shù)據(jù)操作模塊會分別調(diào)用區(qū)塊鏈數(shù)據(jù)查詢模塊和區(qū)塊鏈數(shù)據(jù)庫數(shù)據(jù)查詢模塊,根據(jù)學生ID對區(qū)塊鏈與區(qū)塊鏈數(shù)據(jù)庫上的學生數(shù)據(jù)進行遍歷,如圖5中②所示。數(shù)據(jù)獲得后,會進入對比模塊,如圖5中③所示。對比模塊會根據(jù)學生ID對學生在區(qū)塊鏈與區(qū)塊鏈數(shù)據(jù)庫上的關鍵數(shù)據(jù)進行對比。數(shù)據(jù)一致則不進行操作,數(shù)據(jù)不一致且區(qū)塊鏈上數(shù)據(jù)更新時間更晚時則調(diào)用區(qū)塊鏈數(shù)據(jù)庫上的數(shù)據(jù)更新模塊,將區(qū)塊鏈中查詢到的數(shù)據(jù)同步至區(qū)塊鏈數(shù)據(jù)庫,如圖5中④所示。若雙方數(shù)據(jù)不一致,且區(qū)塊鏈數(shù)據(jù)庫中數(shù)據(jù)更新時間更晚,則說明可能存在數(shù)據(jù)被惡意篡改的情況,需要調(diào)用報警模塊,通知相關人員數(shù)據(jù)存在異常,如圖5中⑤所示。
以上描述的鏈上鏈下數(shù)據(jù)存儲模式,包含對數(shù)據(jù)的分類存儲的設計、數(shù)據(jù)協(xié)同機制的設計,該模式有效解決了學歷學位溯源系統(tǒng)的數(shù)據(jù)安全與數(shù)據(jù)處理效率之間的矛盾,有利于加快基于區(qū)塊鏈的學歷學位信息溯源系統(tǒng)在實際中落地應用。
4.3 智能合約用戶訪問控制
通過對用戶賦予不同的角色,不同角色又賦予不同的權限,來完成數(shù)據(jù)和功能訪問控制,可以減少數(shù)據(jù)違法操作與誤操作,保證學生學歷學位溯源數(shù)據(jù)的可信。
實際中,學校各崗位的設置比較固定,但是各崗位上的人員變動較大,因此該模式適合基于角色的訪問控制模型(RBAC)。
模型中角色將用戶與權限分離,可以減少人員職位變動時,權限數(shù)據(jù)做過多調(diào)整。另外,本文將區(qū)塊鏈智能合約與RBAC模型結合,改變以往訪問控制中心化的管理方式。本文實現(xiàn)的訪問控制機制在實現(xiàn)自動執(zhí)行、不可篡改的同時,還可以記錄在什么時間、什么人員,進行了什么數(shù)據(jù)變更操作,方便追責。
本文在區(qū)塊鏈智能合約中實現(xiàn)了該權限管理模型。首先,在智能合約中建立了可以存儲用戶、角色以及權限信息的結構體,并增加用戶、角色以及權限相關信息的新增、修改、查詢以及禁用等功能。其中,用戶相關操作包含用戶新增、修改、禁用、查詢以及用戶角色修改五個功能。角色相關操作包含角色新增、修改、查詢、禁用以及角色權限修改五個功能。權限相關操作包含權限新增、修改、查詢以及權限禁用四個功能。
如圖6所示,為該區(qū)塊鏈學歷學位溯源系統(tǒng)訪問控制中的用戶、角色以及權限的關系??梢娫撓到y(tǒng)主要包含五類角色:管理員、教師、學生、用人單位以及第三方監(jiān)管單位。為了更加簡單的表達使用方法,特將角色權限簡化,各個角色的權限表達為:管理員具有配置用戶角色的權限;教師具有上傳學生成績和相關信息的權限;學生具有查詢和確認數(shù)據(jù)的權限;用人單位和第三方監(jiān)管具有查詢數(shù)據(jù)的權限。
4.4 學歷學位判定智能合約模板
該基于區(qū)塊鏈的學歷學位溯源系統(tǒng)采用數(shù)據(jù)與邏輯分離的設計模式,區(qū)塊鏈上的數(shù)據(jù)與智能合約定義的邏輯代碼也遵守該原則。
高校在學生入學時會與學生簽訂畢業(yè)協(xié)議,學生滿足畢業(yè)協(xié)議才能畢業(yè)。將畢業(yè)協(xié)議轉化為區(qū)塊鏈智能合約代碼,能保證學位授予規(guī)則自動執(zhí)行,執(zhí)行過程的不可篡改、執(zhí)行結果的可信。
高校每一屆學生的畢業(yè)協(xié)議都具有一定的共性,但也會根據(jù)課程和教育改革等實際情況進行調(diào)整。高校管理人員進行學歷學位授予智能合約或其他判定合約的開發(fā)需要一定編程基礎,且智能合約一次部署不能中途更新,對代碼具有較高的要求。因此構建通用的學歷學位溯源智能合約規(guī)則模塊,通過規(guī)則模塊組合,方便快速的構建特定智能合約,有利于系統(tǒng)在實際中應用。
華芳 丁毅 孫伽寧 李潔 沈薇
