譚振江,鄒孟欣,王坤昊,周 偉
(吉林師范大學(xué) 數(shù)學(xué)與計(jì)算機(jī)學(xué)院,吉林 四平 136000)
2009年開始,比特幣的流行使各行各業(yè)的目光都聚集到了區(qū)塊鏈技術(shù).各領(lǐng)域的研究人員和組織相繼投入到將區(qū)塊鏈技術(shù)應(yīng)用于各領(lǐng)域的研究中,包括銀行業(yè)、金融服務(wù)業(yè)、醫(yī)療保健業(yè)、供應(yīng)鏈行業(yè)和IT行業(yè)等[1].
2022年,孫志斌[2]提出一種基于軟件開發(fā)技術(shù)的大學(xué)教務(wù)管理系統(tǒng),但其本質(zhì)還是集中式中心化系統(tǒng),依然存在單點(diǎn)故障的風(fēng)險(xiǎn),并且缺乏訪問控制機(jī)制和對(duì)數(shù)據(jù)的隱私保護(hù)等.同年,Han[3]提出一種基于離散傅立葉變換的職業(yè)教育管理系統(tǒng),雖然可以有效地節(jié)省存儲(chǔ)單元的大小和讀取旋轉(zhuǎn)因子的次數(shù)和頻率,從而提高運(yùn)算速度,但是并沒有注意數(shù)據(jù)安全問題.郭俊[4]提出了基于區(qū)塊鏈技術(shù)的高校教務(wù)管理決策支持系統(tǒng),利用區(qū)塊鏈搭建了共享數(shù)據(jù)倉庫,雖然在區(qū)塊鏈框架的支持下數(shù)據(jù)安全問題得到了有效解決,但是沒有考慮不同用戶的不同訪問需求和相應(yīng)的隱私保護(hù)問題.
本方案利用Fabric平臺(tái)配置通道解決不同角色的數(shù)據(jù)獲得情況,在保證滿足不同需求的同時(shí)確保了數(shù)據(jù)的機(jī)密性.同時(shí)選擇使用Raft 共識(shí)協(xié)議,因?yàn)樗梢栽诓糠止?jié)點(diǎn)崩潰的情況下工作而不會(huì)影響系統(tǒng),避免了單點(diǎn)故障帶來的重大損失風(fēng)險(xiǎn).而且Raft是一種基于消息傳遞的一致性算法[5],在分布式系統(tǒng)的實(shí)際場景中效率更高.還通過智能合約實(shí)現(xiàn)基于屬性的訪問控制,以根據(jù)用戶分配的屬性來限制數(shù)據(jù)可訪問性,只有滿足訪問權(quán)限的用戶才能對(duì)加密數(shù)據(jù)進(jìn)行解密.所有對(duì)數(shù)據(jù)的訪問操作都存儲(chǔ)在鏈上,確保數(shù)據(jù)的可追溯性和隱私性.
區(qū)塊鏈?zhǔn)且环N安全的、共享的分布式賬本,將分布式存儲(chǔ)、密碼學(xué)、點(diǎn)對(duì)點(diǎn)(P2P)通信和共識(shí)算法[6]4項(xiàng)技術(shù)相結(jié)合,實(shí)現(xiàn)無中央可信機(jī)構(gòu)要求的情況下匿名、記錄和跟蹤資源等自主運(yùn)行過程.它的基本數(shù)據(jù)結(jié)構(gòu)稱為塊,由頭部分和內(nèi)容部分組成,使用哈希函數(shù)進(jìn)行識(shí)別,并且可以按時(shí)間順序鏈接為有序列表,稱為“鏈”結(jié)構(gòu).終端用戶節(jié)點(diǎn)使用非對(duì)稱加密方案(公鑰和私鑰)發(fā)布交易,交易數(shù)據(jù)被打包成塊并進(jìn)行哈希處理.塊被傳播到所有節(jié)點(diǎn),然后存儲(chǔ)并列出到本地鏈.列表序列由所有參與節(jié)點(diǎn)通過“達(dá)成共識(shí)”方案協(xié)作維護(hù),防止對(duì)先前塊的惡意修改[7],所以在教務(wù)管理這種節(jié)點(diǎn)眾多的應(yīng)用環(huán)境中能夠有效利用節(jié)點(diǎn)眾多的特點(diǎn)提高安全性.區(qū)塊鏈基礎(chǔ)架構(gòu)如圖1所示.
圖1 區(qū)塊鏈基礎(chǔ)架構(gòu)
根據(jù)系統(tǒng)控制權(quán)和交易信息是否公開[8],區(qū)塊鏈可分為三類:公共鏈、私有鏈和聯(lián)盟鏈.公共區(qū)塊鏈?zhǔn)且粋€(gè)完全去中心化的平臺(tái),對(duì)所有人開放,但能源消耗較大且監(jiān)管困難.私有區(qū)塊鏈又被稱為“許可的”區(qū)塊鏈,通常由一個(gè)實(shí)體維護(hù)和運(yùn)營,對(duì)節(jié)點(diǎn)的控制高度集權(quán)化,適用場景有限.聯(lián)盟區(qū)塊鏈則同時(shí)具有公共鏈和私有鏈去中心化和高效的特點(diǎn).節(jié)點(diǎn)需要通過合法證書才能在區(qū)塊鏈上發(fā)起交易或訪問內(nèi)容,保護(hù)隱私的同時(shí)可以解決跨機(jī)構(gòu)之間的相互信任問題.教務(wù)信息中很多數(shù)據(jù)涉及個(gè)人隱私,不同部門和用戶間共享數(shù)據(jù)的同時(shí)也需要做到不同層次的隱私保護(hù),所以聯(lián)盟區(qū)塊鏈更加適合教務(wù)信息安全共享的應(yīng)用需求.
Hyperledger是一個(gè)高度模塊化的傘形結(jié)構(gòu)的開源區(qū)塊鏈項(xiàng)目,包括共識(shí)層、合約層、通信層、數(shù)據(jù)存儲(chǔ)模塊、加密模塊、身份服務(wù)模塊、策略服務(wù)模塊、 API和互操作性模塊共9個(gè)組件.目前Hyperledger正在開發(fā)模塊化、可擴(kuò)展的框架,其中包含可重復(fù)使用的通用構(gòu)建塊[9].這種模塊化方法能夠使開發(fā)人員在不斷發(fā)展的過程中試驗(yàn)不同類型的組件,并在不影響系統(tǒng)其余部分的情況下更改單個(gè)組件,有助于創(chuàng)建可組合的組件,以構(gòu)建適合不同需求的分布式賬本解決方案.這種模塊化方法還意味著可以在不同的模塊上獨(dú)立工作,并在多個(gè)項(xiàng)目中重復(fù)使用通用模塊.Hyperledger架構(gòu)工作組還為通信、共識(shí)、密碼學(xué)、身份、賬本存儲(chǔ)、智能合約和策略等問題定義了功能模塊和相應(yīng)接口.
目前,隨著技術(shù)的進(jìn)步,有5種基于超級(jí)賬本的框架,分別是Burrow、Fabric、Indy、Iroha和Sawtooth.據(jù)IBM介紹,最頻繁被使用的平臺(tái)是企業(yè)級(jí)區(qū)塊鏈Hyperledger Fabric,也是本方案選擇使用的平臺(tái).大量開發(fā)人員通過Hyperledger Fabric平臺(tái)開發(fā)具有問責(zé)制、透明性和信任機(jī)制等功能的應(yīng)用程序.
Hyperledger Fabric(HLF)是目前聯(lián)盟區(qū)塊鏈中最具有代表性的一種技術(shù),由幾個(gè)組織參與和管理,所以不是完全去中心化的.HLF專門配置了一個(gè)專用證書授權(quán)中心——Fabric Certification Authority(Fabric CA)來處理節(jié)點(diǎn)(用戶)身份注冊(cè)、吊銷等問題.在加入Hyperledger網(wǎng)絡(luò)之前,用戶需要向Fabric CA提出注冊(cè)申請(qǐng),以獲得合法證書,然后使用合法證書通過Client命令行或Fabric SDK等才可以與區(qū)塊鏈網(wǎng)絡(luò)進(jìn)行交互.
HLF因?yàn)榫哂心K化架構(gòu),可提供高度的機(jī)密性、靈活性、彈性和可擴(kuò)展性[10].其支持的通道可以部署為完全不相交的網(wǎng)絡(luò),每個(gè)通道都有獨(dú)立的區(qū)塊鏈賬本,具有獨(dú)立的背書集和排序節(jié)點(diǎn)[11].塊是根據(jù)通道ID分布的,通道之間的數(shù)據(jù)是完全隔離的,以提供隱私和機(jī)密性.因此本方案通過設(shè)置通道達(dá)到不同層次的數(shù)據(jù)共享,數(shù)據(jù)訪問僅限于獲得許可的各方.在不損害數(shù)據(jù)安全性的情況下,能夠提供區(qū)塊鏈在交易不可否認(rèn)性和數(shù)據(jù)完整性的優(yōu)勢(shì).采用這種新穎的體系結(jié)構(gòu)方法不僅實(shí)現(xiàn)了靈活性,同時(shí)還改進(jìn)了區(qū)塊鏈對(duì)非確定性、資源耗盡和性能攻擊等問題的應(yīng)對(duì)方式.
HLF系統(tǒng)架構(gòu)組成如圖2所示.上層應(yīng)用通過API、SDK和事件來使用成員管理、賬本管理、交易管理、鏈碼管理等平臺(tái)提供的功能[12].成員管理服務(wù)包括證書授權(quán)中心(Fabric CA)和成員服務(wù)模塊,主要提供成員登錄注冊(cè)、吊銷等服務(wù)和權(quán)限管理控制,以此保障平臺(tái)的安全性.區(qū)塊鏈服務(wù)模塊包含分布式賬本、P2P協(xié)議、共識(shí)機(jī)制、賬本存儲(chǔ),實(shí)現(xiàn)數(shù)據(jù)向各個(gè)節(jié)點(diǎn)的高效分發(fā),并保證數(shù)據(jù)的同步及各節(jié)點(diǎn)本地賬本的一致性.鏈碼(智能合約)支持多種開發(fā)語言,使用Docker容器作為隔離環(huán)境為智能合約提供部署和運(yùn)行條件.注冊(cè)倉儲(chǔ)管理實(shí)現(xiàn)進(jìn)行環(huán)境的快速部署和測(cè)試.
圖2 HLF系統(tǒng)架構(gòu)
HLF還可以通過將監(jiān)督機(jī)構(gòu)或?qū)嶓w納入通道成員來實(shí)現(xiàn)對(duì)內(nèi)和對(duì)外兩方面不同的監(jiān)管要求.此外HLF允許即插即用的組件,例如共識(shí)和成員服務(wù)等.HLF支持各種針對(duì)不同的用例和信任模型定制的共識(shí)協(xié)議,而本方案選用的Raft 共識(shí)協(xié)議,在教務(wù)管理這種數(shù)據(jù)量龐大且節(jié)點(diǎn)眾多的應(yīng)用環(huán)境中優(yōu)勢(shì)更加突出.
與傳統(tǒng)的公鏈技術(shù)相比,Hyperledger在智能合約的可擴(kuò)展性和功能完整性方面有了很大的提高.此外,Hyperledger支持多種傳統(tǒng)編程語言的智能合約,如Go、Node.js和Java.也就意味著部署在Hyperledger區(qū)塊鏈上的智能合約理論上可以支持任何功能[13].所以本方案通過設(shè)計(jì)智能合約可以實(shí)現(xiàn)基于屬性的訪問控制.
智能合約的基本架構(gòu)如圖3所示,主要由數(shù)據(jù)層、傳輸層、智能合約主體、驗(yàn)證層、執(zhí)行層、應(yīng)用層6部分構(gòu)成.
圖3 智能合約基礎(chǔ)架構(gòu)
(1)數(shù)據(jù)層
負(fù)責(zé)在區(qū)塊鏈上數(shù)據(jù)存儲(chǔ),并通過API與傳輸層交互,從而將相關(guān)數(shù)據(jù)傳輸?shù)街悄芎霞s主體.
(2)傳輸層
用來封裝與區(qū)塊鏈通信和數(shù)據(jù)傳輸?shù)膮f(xié)議.
(3)智能合約的主體
包括協(xié)議和參數(shù)兩部分.協(xié)議是標(biāo)準(zhǔn)組織發(fā)布的一個(gè)完全實(shí)例化的模板.參數(shù)主要分布在合約管理、用戶管理、數(shù)據(jù)管理和業(yè)務(wù)邏輯中,是合約的關(guān)鍵部分.
(4)驗(yàn)證層
包括驗(yàn)證算法,以確保合約代碼和文本的有效性.
(5)執(zhí)行層
用于封裝與智能合約運(yùn)行環(huán)境有關(guān)的軟件,以保證合約的正常運(yùn)行.
(6)應(yīng)用層
以智能合約架構(gòu)為基礎(chǔ)的高級(jí)應(yīng)用,主要用于與計(jì)算機(jī)交互,進(jìn)而實(shí)現(xiàn)實(shí)時(shí)交易、分布式計(jì)算、可編程金融等應(yīng)用.
方案架構(gòu)設(shè)計(jì)如圖4所示,主要由展示層、業(yè)務(wù)層和存儲(chǔ)層3部分組成.
圖4 高校教務(wù)信息安全共享方案架構(gòu)圖
(1)展示層
主要使用了HTML、JQuery等技術(shù)開發(fā)了用戶前端界面以供用戶使用平臺(tái)的各項(xiàng)功能.該層通過HTTP協(xié)議與后端進(jìn)行通信.
(2)業(yè)務(wù)層
作為核心層,主要實(shí)現(xiàn)平臺(tái)的業(yè)務(wù)邏輯.其中功能主要分為教務(wù)報(bào)告管理、個(gè)人信息管理、系統(tǒng)管理、激勵(lì)機(jī)制、Fabric模塊.在教務(wù)報(bào)告管理中主要有新增教務(wù)報(bào)告、查詢教務(wù)報(bào)告、不同類型用戶的鑒定或復(fù)議申請(qǐng)?zhí)峤灰约敖虅?wù)報(bào)告共享權(quán)限設(shè)置四個(gè)功能.個(gè)人信息管理主要提供用戶對(duì)自己個(gè)人信息以及密碼設(shè)置的修改與查看.系統(tǒng)管理面向管理者提供對(duì)于系統(tǒng)賬戶、Fabric通道和鏈碼的管理.管理者通過這些功能實(shí)現(xiàn)對(duì)Fabric通道的配置和維護(hù),以及鏈碼的批準(zhǔn)和定義.激勵(lì)機(jī)制主要實(shí)現(xiàn)隨機(jī)鑒定節(jié)點(diǎn)和教務(wù)報(bào)告鑒定兩個(gè)功能.隨機(jī)選中的節(jié)點(diǎn)對(duì)提交申請(qǐng)的教務(wù)報(bào)告進(jìn)行鑒定,并提交鑒定結(jié)果和記錄.最終以各節(jié)點(diǎn)的鑒定結(jié)果判斷該教務(wù)報(bào)告是否可以得到相應(yīng)的實(shí)際獎(jiǎng)勵(lì).具體實(shí)現(xiàn)流程在下文的2.4節(jié)有詳細(xì)講解.Fabric模塊主要使用了Invoke方法[14]來把本地用戶裝入的數(shù)據(jù)以二進(jìn)制的形式傳輸給各個(gè)節(jié)點(diǎn).還使用了Query方法[14],以實(shí)現(xiàn)查詢功能.
(3)存儲(chǔ)層
主要作用是實(shí)現(xiàn)對(duì)全部數(shù)據(jù)的存儲(chǔ).因?yàn)槭鞘褂肏LF框架搭建的,所以在與區(qū)塊鏈通信環(huán)節(jié)使用了Fabric-SDK[15].業(yè)務(wù)層的數(shù)據(jù)經(jīng)過請(qǐng)求后存儲(chǔ)在Fabric文件系統(tǒng)中,數(shù)據(jù)的鍵值存儲(chǔ)在Couch DB中(Couch DB作為世界狀態(tài)數(shù)據(jù)庫).新增數(shù)據(jù)通過SDK發(fā)送存儲(chǔ)請(qǐng)求,然后教務(wù)報(bào)告存儲(chǔ)在區(qū)塊鏈中,而它對(duì)應(yīng)的唯一鍵值存儲(chǔ)在Couch DB中.用戶使用查詢功能,Couch DB調(diào)用鏈碼,將數(shù)據(jù)以JSON形式返回,再通過SDK解析數(shù)據(jù)包將解析后的完整數(shù)據(jù)返回給用戶端.
每個(gè)院系非學(xué)生用戶包括教師、輔導(dǎo)員及院系教務(wù)管理者三種角色.在基于超級(jí)賬本的結(jié)構(gòu)中,不同院系有多個(gè)鏈碼(智能合約),每個(gè)智能合約在使用前都會(huì)由參與共享的用戶節(jié)點(diǎn)共同確認(rèn),每個(gè)參與共享的用戶節(jié)點(diǎn)都有相同的合約.不同院系之間如需共享,需要通過不同的通道.所有節(jié)點(diǎn)發(fā)出的交易請(qǐng)求都先由Orderer節(jié)點(diǎn)進(jìn)行排序,經(jīng)過一定量的背書節(jié)點(diǎn)背書后生成新的區(qū)塊,然后將記錄上傳超級(jí)賬本系統(tǒng).每個(gè)院系內(nèi)部學(xué)生、教師和輔導(dǎo)員三者之間的交互同理.教師可以根據(jù)輔導(dǎo)員提交的報(bào)告中記錄的德育表現(xiàn)對(duì)學(xué)生進(jìn)行更具有針對(duì)性的指導(dǎo),輔導(dǎo)員也可以根據(jù)各任課教師提交的報(bào)告中記錄的學(xué)習(xí)階段性表現(xiàn)掌握學(xué)生的學(xué)習(xí)動(dòng)態(tài),以此實(shí)現(xiàn)對(duì)學(xué)生的全方面了解和針對(duì)性培養(yǎng).這些數(shù)據(jù)也可作為學(xué)生的一份公認(rèn)的數(shù)字證據(jù)(通過所有記錄參與者的共識(shí)),避免僅憑成績對(duì)學(xué)生整體評(píng)價(jià)過于片面和主觀.在確保安全存儲(chǔ)的同時(shí),部分可共享的教師記錄報(bào)告將在教研領(lǐng)域中提供一定的探索作用.
整體分為教師用戶模塊、學(xué)生用戶模塊和管理員模塊3部分,各模塊功能設(shè)計(jì)如圖5所示.
圖5 模塊功能設(shè)計(jì)
在教師用戶模塊中,包括登錄密碼設(shè)置、個(gè)人信息管理、成績管理、課程安排、考務(wù)安排、教學(xué)評(píng)價(jià)、溯源日志查看和教務(wù)報(bào)告鑒定功能.作為數(shù)據(jù)的提供者,在提交教務(wù)報(bào)告時(shí)可以選擇申請(qǐng)鑒定,以此參與激勵(lì)機(jī)制獲得相應(yīng)獎(jiǎng)勵(lì),促進(jìn)教師工作熱情的同時(shí)提高了教學(xué)及教研質(zhì)量.
在學(xué)生用戶模塊中,除了登錄密碼設(shè)置、個(gè)人信息管理、個(gè)人課表、成績查看、課程選擇、學(xué)生評(píng)教和考試安排7個(gè)基本功能外,還設(shè)計(jì)了教務(wù)報(bào)告查看和復(fù)議申請(qǐng)功能.當(dāng)學(xué)生對(duì)自己的成績或評(píng)價(jià)存在異議時(shí),可以通過提交復(fù)議申請(qǐng)來申請(qǐng)成績或教務(wù)報(bào)告進(jìn)行復(fù)議.
在管理員模塊中,包括登錄密碼設(shè)置、個(gè)人信息管理、教師用戶管理、學(xué)生用戶管理、課程管理、成績管理、考務(wù)管理、教學(xué)評(píng)價(jià)管理、教學(xué)周歷、溯源日志查看、教務(wù)報(bào)告管理和系統(tǒng)管理共12項(xiàng)功能.管理員可以通過這些功能實(shí)現(xiàn)對(duì)用戶的管理(注銷、狀態(tài)修改或暫停使用等)和相應(yīng)教學(xué)安排的管理.同時(shí)可以通過教務(wù)報(bào)告管理功能對(duì)教學(xué)工作質(zhì)量起到監(jiān)督的作用.相關(guān)技術(shù)管理用戶也可通過系統(tǒng)管理功能對(duì)系統(tǒng)異常數(shù)據(jù)和攻擊進(jìn)行查看和修復(fù).此外,管理員用戶能夠共享部分教務(wù)報(bào)告數(shù)據(jù),但部分隱私信息根據(jù)具體屬性提供不同層次共享權(quán)限.
基于屬性的訪問控制(ABAC)是一種將屬性、對(duì)象、權(quán)限和環(huán)境作為輸入的訪問控制技術(shù)[16].它通過檢查對(duì)象是否包含適當(dāng)?shù)膶傩詠泶_定是否授予權(quán)限.ABAC可以提供細(xì)粒度的訪問控制,可以支持大量的輸入決策集,定義多種可能的規(guī)則,表達(dá)多種策略,但計(jì)算消耗和屬性有限.這種靈活性可以解耦主體和客體之間的關(guān)系.例如,一個(gè)院系的所有任課老師都可以訪問同學(xué)X相關(guān)的報(bào)告數(shù)據(jù).在基于屬性的訪問控制下,可以通過簡單地更改屬性值來修改訪問決策,而不會(huì)對(duì)個(gè)別主體與客體之間的關(guān)系產(chǎn)生影響.所以可以提供更動(dòng)態(tài)、更靈活的訪問控制管理能力,降低長期維護(hù)成本[17].
本方案將訪問控制策略通過智能合約的方式部署在區(qū)塊鏈上,同時(shí)還提供了基于數(shù)據(jù)使用者屬性的訪問控制接口[18].實(shí)現(xiàn)屬性的細(xì)粒度劃分,為不同隱私級(jí)別的主體和資源匹配不同細(xì)粒度的訪問控制策略,有助于用戶實(shí)現(xiàn)合理、高效的細(xì)粒度訪問控制.具體的屬性標(biāo)簽設(shè)置如下:
(1)C:學(xué)院標(biāo)識(shí)符合集,表示為i個(gè)不同學(xué)院的合集C={C1,C2,…,Ci};
(2)M:專業(yè)標(biāo)識(shí)符合集,表示為j個(gè)同一學(xué)院不同專業(yè)的合集M={M1,M2,…,Mj};
(3)SID:學(xué)生用戶標(biāo)識(shí)符,用于表示一個(gè)特定的學(xué)生,規(guī)定使用學(xué)生學(xué)號(hào)作為學(xué)生用戶標(biāo)識(shí)符字段(非學(xué)生用戶默認(rèn)為0);
(4)TID:教師用戶標(biāo)識(shí)符,用于表示一個(gè)特定的教師,規(guī)定使用教師工號(hào)作為教師用戶標(biāo)識(shí)符字段(非教師用戶默認(rèn)為0);
(5)G:教務(wù)管理人員標(biāo)識(shí)符,管理等級(jí)以1—3標(biāo)識(shí)字段區(qū)分(非管理人員默認(rèn)為0),1為輔導(dǎo)員,2為院級(jí)教務(wù)管理人員,3為校級(jí)教務(wù)管理人員.
不同教務(wù)數(shù)據(jù)基于屬性生成特定的訪問控制策略,例如:教務(wù)報(bào)告R0是工號(hào)為1134的教師提交的C1學(xué)院M2專業(yè)學(xué)號(hào)為230102的學(xué)生的教務(wù)報(bào)告.那么該報(bào)告訪問控制策略生成和訪問請(qǐng)求判斷的智能合約算法如下所示:
生成R0的訪問控制策略(Policy)
INPUT:R0
OUTPUT:R0.Policy
if input==null
return error
else R0.Policy←{ C,M,SID,TID,G }
(SID==230102 or TID==1134) or G >=2 or (C==C1and M==M2and G==1)
return R0.Policy
判斷訪問請(qǐng)求是否合法(Allow access/Prohibit access)
INPUT:C,M,SID,TID,G
OUTPUT:Allow access/Prohibit access
if (SID==230102 or TID==1134)
return Allow access
else
if G >=2
return Allow access
else
if(C==C1and M==M2and G==1)
return Allow access
else return Prohibit access
end
返回比較結(jié)果.
系統(tǒng)激勵(lì)機(jī)制具體情況如圖6所示,展示了優(yōu)秀的教師記錄者如何在超級(jí)賬本下的教務(wù)管理平臺(tái)系統(tǒng)中獲取獎(jiǎng)勵(lì).
圖6 激勵(lì)機(jī)制流程
其中將所有院系的教授以上職稱教師設(shè)置為一級(jí)教育專家群節(jié)點(diǎn),隨機(jī)篩選一定數(shù)量的二級(jí)鑒定專家群節(jié)點(diǎn).等待提交鑒定申請(qǐng)的教師將記錄報(bào)告以匿名(請(qǐng)求ID)的方式提交到超級(jí)賬本中,并設(shè)置獨(dú)立的通道以防數(shù)據(jù)的惡意篡改和丟失.二級(jí)專家群節(jié)點(diǎn)加入通道,系統(tǒng)將統(tǒng)計(jì)鑒定結(jié)果為優(yōu)秀報(bào)告的占比.達(dá)到70%的響應(yīng)比后將判定此報(bào)告為優(yōu)秀報(bào)告,此時(shí)系統(tǒng)會(huì)發(fā)放給提交優(yōu)秀報(bào)告的教師直接的經(jīng)濟(jì)回報(bào).輕量級(jí)的共識(shí)鑒定算法旨在減少算力的消耗,進(jìn)而減少開發(fā)成本.此外,通過輕量級(jí)的激勵(lì)機(jī)制策略既可以篩選優(yōu)秀的教務(wù)記錄以供教學(xué)研究,又可以使教師通過認(rèn)真工作的方式保證經(jīng)濟(jì)來源,避免教師因經(jīng)濟(jì)壓力減少對(duì)教學(xué)環(huán)節(jié)的投入,實(shí)現(xiàn)真正意義上的雙贏.
數(shù)據(jù)的完整性由區(qū)塊鏈的不變性確保[19].生成的教務(wù)信息數(shù)據(jù)上傳至區(qū)塊鏈,在數(shù)據(jù)傳輸和存儲(chǔ)的整個(gè)過程中,未經(jīng)教務(wù)管理人員授權(quán),任何人都沒有權(quán)限進(jìn)行修改或讀取數(shù)據(jù)的操作,所以教務(wù)數(shù)據(jù)的完整性得到了保證.
存儲(chǔ)在區(qū)塊鏈中的每一筆交易數(shù)據(jù)都經(jīng)過簽名并永久保存,數(shù)據(jù)透明,可公開驗(yàn)證判斷區(qū)塊鏈中的數(shù)據(jù)是否合法.不同屬性的用戶可以通過查看溯源日志進(jìn)行數(shù)據(jù)溯源,但僅可以查看已有訪問權(quán)限的數(shù)據(jù)溯源日志,所以可追溯性得到了保證.
選擇采用Raft共識(shí),只需要2N+1個(gè)節(jié)點(diǎn)就可以應(yīng)對(duì)N個(gè)潛在的惡意節(jié)點(diǎn),可以在部分節(jié)點(diǎn)崩潰的情況下工作而不會(huì)影響整個(gè)系統(tǒng)的運(yùn)作,避免了單點(diǎn)故障問題[20].且選擇使用Raft共識(shí),在復(fù)雜性和成本降低的同時(shí),更適合HLF這種許可制的聯(lián)盟鏈環(huán)境,抗攻擊性也得到了保障.
因?yàn)檎w采用基于屬性的訪問控制機(jī)制,所以沒有相應(yīng)屬性權(quán)限的用戶是無法獲取數(shù)據(jù)的.避免了數(shù)據(jù)涉及的部分個(gè)人信息,達(dá)到了隱私保護(hù)的作用.激勵(lì)機(jī)制環(huán)節(jié)中教師提交教務(wù)報(bào)告鑒定申請(qǐng)時(shí)采用匿名提交的方式,所以對(duì)于報(bào)告提交者和學(xué)生的個(gè)人信息也起到了隱私保護(hù)的作用.
本方案借助區(qū)塊鏈技術(shù),使用Hyperledger Fabric 平臺(tái)配置通道滿足不同層次的數(shù)據(jù)安全共享需求.采用Raft共識(shí)機(jī)制,利用Raft共識(shí)“主從”特性增強(qiáng)抗攻擊性和去中心化,確保故障節(jié)點(diǎn)不超過二分之一時(shí)仍能正常運(yùn)行.此外,通過設(shè)計(jì)智能合約實(shí)現(xiàn)ABAC機(jī)制,有效緩解了高校教務(wù)信息管理中存在的數(shù)據(jù)安全和不同屬性用戶安全共享的問題.下一步將對(duì)教務(wù)管理中眾多節(jié)點(diǎn)間的資源調(diào)度進(jìn)行深入研究和改進(jìn).