李宏志 陸克中
摘要:高校第二課堂是指在第一課堂以外的時間進(jìn)行的、學(xué)校在教學(xué)計劃之外組織和引導(dǎo)學(xué)生開展的各種有教育意義的活動。近年來,高校第二課堂的開設(shè)在學(xué)生綜合素養(yǎng)培養(yǎng)方面發(fā)揮的作用越來越明顯。然而,現(xiàn)有的教學(xué)管理系統(tǒng)難以對學(xué)生第二課堂的表現(xiàn)及學(xué)習(xí)行為進(jìn)行客觀評價與追蹤。針對現(xiàn)有教學(xué)管理系統(tǒng)下所存在的學(xué)習(xí)記錄不透明、學(xué)分認(rèn)證和學(xué)習(xí)記錄追溯較為困難等問題,文章提出了一種基于區(qū)塊鏈智能合約的第二課堂學(xué)分管理系統(tǒng),提出了基于區(qū)塊鏈的系統(tǒng)架構(gòu)并基于以太坊實現(xiàn)了原型系統(tǒng),實驗結(jié)果表明,該模型能夠為高校第二課堂管理提供新的思路和技術(shù)。
關(guān)鍵詞:區(qū)塊鏈;智能合約;第二課堂;學(xué)分認(rèn)定;隱私安全
中圖分類號:TP311? ? ? 文獻(xiàn)標(biāo)識碼:A
文章編號:1009-3044(2024)09-0043-04
開放科學(xué)(資源服務(wù))標(biāo)識碼(OSID)
0 引言
高校第二課堂是高校育人體系的重要部分。習(xí)近平總書記強(qiáng)調(diào),要重視和加強(qiáng)第二課堂建設(shè),重視實踐育人。全國各高校積極開展第二課堂教育探索,但是制度化、學(xué)分化建設(shè)階段面臨巨大挑戰(zhàn),全國高校也在不斷深化改革第二課堂并尋找新路徑。目前,第二課堂的學(xué)分管理主要依賴構(gòu)建合理的學(xué)分管理標(biāo)準(zhǔn)和架構(gòu)基于云計算技術(shù)信息化管理平臺[1]。但存在的問題主要有:1) 高校學(xué)分管理涉及內(nèi)容繁雜,需要多部門相互配合,難以制定出適用面較廣且行之有效的標(biāo)準(zhǔn);2) 結(jié)合云計算技術(shù)的管理平臺能夠較好地解決學(xué)分記錄及相關(guān)數(shù)據(jù)的管理問題,但對于數(shù)據(jù)的安全和可靠性無法保障。部分學(xué)者[4]提出使用數(shù)據(jù)挖掘算法,分析教務(wù)數(shù)據(jù)庫中學(xué)生的成績數(shù)據(jù),作為第二課堂的學(xué)分核算依據(jù)?,F(xiàn)行的解決方案,均是建立在可信第三方軟件的基礎(chǔ)上實現(xiàn)學(xué)分及學(xué)習(xí)成果的認(rèn)證與轉(zhuǎn)換,而實踐中制約數(shù)據(jù)可信度的不可控因素較多,影響了第二課堂學(xué)分的真實性和安全性。隨著區(qū)塊鏈技術(shù)的日趨成熟,區(qū)塊鏈的應(yīng)用場景也逐漸從最初的加密電子貨幣,擴(kuò)展到各個行業(yè)中,已經(jīng)成為可信區(qū)塊鏈即服務(wù)(Blockchain as a Service,BaaS) 的平臺,為解決高校第二課堂學(xué)分管理問題提供新的思路和技術(shù)支持?;谏鲜龇治?,本文提出了一種面向高校第二課堂的學(xué)分管理系統(tǒng)以提高學(xué)習(xí)記錄、學(xué)習(xí)成果以及學(xué)分認(rèn)定的可信度。
1 相關(guān)工作
1.1 區(qū)塊鏈原理
區(qū)塊鏈本質(zhì)上是一個分布式的公共賬本,在分布式的環(huán)境下有多個相對獨(dú)立的主機(jī)節(jié)點共同參與和維護(hù),一般而言區(qū)塊鏈結(jié)構(gòu)是以數(shù)據(jù)區(qū)塊為單位按照時間的順序連接而成的。在分布式環(huán)境中所有節(jié)點的地位相等,不存在任何中心化的特殊節(jié)點。區(qū)塊鏈具有去中心化、不可篡改、可追溯等特點,在區(qū)塊鏈中每個區(qū)塊部分可分為區(qū)塊頭和區(qū)塊數(shù)據(jù)部分,其中區(qū)塊都保存了區(qū)塊的相關(guān)描述信息,如時間戳、區(qū)塊的哈希值、相鄰區(qū)塊的哈希地址等;區(qū)塊數(shù)據(jù)部分負(fù)責(zé)存儲和維護(hù)相關(guān)數(shù)據(jù)[2]。區(qū)塊鏈的具體結(jié)構(gòu)如圖1所示。
區(qū)塊鏈平臺采用分層的設(shè)計思路,整體上可以劃分為數(shù)據(jù)層、網(wǎng)絡(luò)層、共識層、智能合約層和應(yīng)用層等5個層次[3],如圖2所示,數(shù)據(jù)層位于整個分層結(jié)構(gòu)的最底端,負(fù)責(zé)對業(yè)務(wù)數(shù)據(jù)的存儲管理。網(wǎng)絡(luò)層中各節(jié)點相對對等,采用P2P協(xié)議(如Gossip協(xié)議)完成數(shù)據(jù)交互和傳輸。共識層負(fù)責(zé)使用共識算法和激勵機(jī)制管理各網(wǎng)絡(luò)節(jié)點、支持拜占庭容錯,選取合適的節(jié)點作為數(shù)據(jù)打包節(jié)點。智能合約層主要作用是為智能合約提供合適的編譯和運(yùn)行環(huán)境,主要涉及與業(yè)務(wù)邏輯相關(guān)的程序。應(yīng)用層支持用戶定義和發(fā)起執(zhí)行智能合約未用戶提供合適的編程接口。
1.2 智能合約
智能合約是一套以數(shù)字形式定義的承諾,簡單來說是一段具有特殊功能的程序,能夠執(zhí)行區(qū)塊鏈中的特定操作[4]。由于受到區(qū)塊鏈網(wǎng)絡(luò)資源的限制,智能合約一般不能包含太復(fù)雜的業(yè)務(wù)邏輯,智能合約本身更強(qiáng)調(diào)事物特性,類似于數(shù)據(jù)庫的存儲過程。智能合約一般運(yùn)行在隔離的沙箱環(huán)境中,主流的區(qū)塊鏈中提供的沙箱環(huán)境包括以太坊虛擬機(jī)和Docker容器[5]。以太坊環(huán)境中使用Solidity編程語言來定義智能合約。在圖3的代碼示例中,Contract 關(guān)鍵字標(biāo)識了合約,SimStore 是合約的名稱,initData 表示合約中的一個字段,Set和Get 方法定義了對于合約中字段的修改和讀取功能。
2 平臺系統(tǒng)的構(gòu)建
本文基于區(qū)塊鏈技術(shù)設(shè)計去中心化的學(xué)分管理系統(tǒng),其中包含的重要組件如圖4所示。模型結(jié)構(gòu)主要包括在線學(xué)習(xí)網(wǎng)絡(luò)平臺,分布式學(xué)分及學(xué)習(xí)成果管理數(shù)據(jù)庫集群,區(qū)塊鏈網(wǎng)絡(luò)平臺以及與業(yè)務(wù)應(yīng)用相關(guān)的模塊設(shè)計。模型中的用戶類型主要分為在線學(xué)習(xí)者和教學(xué)管理者,在線學(xué)習(xí)者參與學(xué)校的各類平臺的學(xué)習(xí)工作并將學(xué)習(xí)記錄包括學(xué)分和學(xué)習(xí)成果,提交給平臺,最終同步到分布式數(shù)據(jù)庫(Distributed Database System,DDBS) 。教學(xué)管理者主要的職責(zé)是負(fù)責(zé)驗證學(xué)習(xí)成果的可靠性,管理學(xué)習(xí)記錄和成果。為了保證學(xué)習(xí)成果的原始性和不可篡改性,模型將原始的學(xué)習(xí)記錄、學(xué)分等數(shù)據(jù)經(jīng)過哈希后提交給模型中的區(qū)塊鏈網(wǎng)絡(luò)中,具體過程包括如下步驟:
1) 對于用戶的學(xué)分及相關(guān)的學(xué)習(xí)記錄經(jīng)過哈希計算之后,獲得唯一摘要信息。
2) 經(jīng)過驗證之后將摘要信息上傳至區(qū)塊鏈網(wǎng)絡(luò)中,將區(qū)塊鏈中存儲憑證返回給相關(guān)記錄。
3) 區(qū)塊鏈中的數(shù)據(jù)具有不可變更特性,通過區(qū)塊鏈中哈希值來驗證數(shù)據(jù)庫中記錄是否已經(jīng)變更。
參與區(qū)塊鏈共識存儲。區(qū)塊鏈中全節(jié)點,在接收到用戶端發(fā)起的原始學(xué)習(xí)成果記錄存入指令,采用PoW 共識機(jī)制,選取交易打包節(jié)點調(diào)用已經(jīng)部署的智能合約,完成驗證操作,最終將記錄存入?yún)^(qū)塊鏈網(wǎng)絡(luò)。
在本文提出的系統(tǒng)中,智能合約作為整個模型的重要部分,公開透明地部署在區(qū)塊鏈中,負(fù)責(zé)執(zhí)行數(shù)據(jù)的合法性校驗,將記錄打包成合法的交易的信息,并發(fā)布到區(qū)塊鏈網(wǎng)絡(luò)中。由于區(qū)塊鏈網(wǎng)絡(luò)中的數(shù)據(jù)難以篡改,保證了區(qū)塊鏈中存儲原始數(shù)據(jù)的安全性。
本文所提出的模型具有以下特點:
1) 在線學(xué)習(xí)平臺采用微服務(wù)的架構(gòu):各類學(xué)習(xí)資源通過打包成微服務(wù),集成在在線學(xué)習(xí)平臺中,能夠根據(jù)學(xué)習(xí)者的需求靈活地提供所需的內(nèi)容。
2) 分布式數(shù)據(jù)庫系統(tǒng)(DDBS) :學(xué)習(xí)者的各類學(xué)習(xí)項目的評分及原始學(xué)習(xí)記錄通過加密的方式存儲在分布式數(shù)據(jù)庫系統(tǒng)中,減少區(qū)塊鏈網(wǎng)絡(luò)中數(shù)據(jù)存儲和訪問的壓力。
3) 智能合約的設(shè)計:建立面向?qū)W分管理的智能合約體系,并實現(xiàn)學(xué)習(xí)成果認(rèn)證,學(xué)分換算的智能合約程序,形成一種無須第三方干預(yù)的學(xué)習(xí)成果管理模式。
4) 區(qū)塊鏈網(wǎng)絡(luò)的存證體系:為了保證分布式數(shù)據(jù)庫中的記錄為經(jīng)過授權(quán)無法篡改,采用專有的區(qū)塊鏈網(wǎng)絡(luò)存儲信息的哈希摘要信息。在驗證記錄的有效性只需要對比記錄的哈希值是否和區(qū)塊鏈中存儲的是否一致。
2.1 基于區(qū)塊鏈學(xué)分存證模塊
基于區(qū)塊鏈的存證組件是本文模型的重要組成部分,區(qū)塊鏈網(wǎng)絡(luò)本質(zhì)上事由點對點對等網(wǎng)絡(luò)(Peer to Peer , P2P) 組成。區(qū)塊鏈中的各節(jié)點在邏輯上是完全平等,都具有參與共識算法打包數(shù)據(jù)的能力。不同于公有區(qū)塊鏈,本文采用的具備認(rèn)證功能的區(qū)塊鏈,所有參與的節(jié)點都需要經(jīng)過注冊中CA 認(rèn)證并審核才能加入?yún)^(qū)塊鏈,如圖5所示。區(qū)塊鏈主節(jié)點主要的職責(zé)有:
1) 驗證來自業(yè)務(wù)節(jié)點發(fā)起的區(qū)塊存儲消息,負(fù)責(zé)與業(yè)務(wù)節(jié)點訂立交易協(xié)議規(guī)則。
2) 作為注冊中心CA負(fù)責(zé)審核新節(jié)點的加入申請,每個節(jié)點都保存當(dāng)前區(qū)塊鏈的全部狀態(tài)。
3) 運(yùn)行分布式共識算法,對加入?yún)^(qū)塊鏈的數(shù)據(jù)競爭打包權(quán)限并將打包之后的憑證返回給業(yè)務(wù)節(jié)點。
4) 處理來自業(yè)務(wù)節(jié)點的數(shù)據(jù)有效性驗證請求,能夠提供數(shù)據(jù)是否存在與區(qū)塊鏈中的驗證服務(wù)。
此外,本文系統(tǒng)采用智能合約自動執(zhí)行學(xué)分的轉(zhuǎn)換操作,以此來保證系統(tǒng)中關(guān)于第二課堂學(xué)分認(rèn)定的自動化執(zhí)行。其中,第二課堂學(xué)分認(rèn)定合約(Credit Conve rsion Standard Contract,CCSC) 如算法1所示。
算法1? 學(xué)分認(rèn)定合約 (CCSC)
contract CCSC{
Object learner_info;? ?//作者信息
Object standard_credits ; //學(xué)分轉(zhuǎn)換標(biāo)準(zhǔn)
DataSet learing_dataset ;//相關(guān)學(xué)習(xí)成果
If (msg.sender == learner_info.owner) then
For standard_credits.content as sitem : // 迭代轉(zhuǎn)換規(guī)則內(nèi)容
For learing_dataset.content as litem:
If sitem.id == litem.id then: //原始成果與轉(zhuǎn)換規(guī)則匹配
TargetCredits+=SC_Calculate( litem.id,tandard_credits) //計算轉(zhuǎn)換學(xué)分
Endif //執(zhí)行成果-分值轉(zhuǎn)換操作
Endfor
Endfor
Endif
3 系統(tǒng)測試
本文所使用的原型系統(tǒng)是基于以太坊搭建的,實驗中使用的操作系統(tǒng)為Centos 7.4,智能合約使用以太坊通用的高級語言Solidity編寫。測試的硬件環(huán)境為12臺安裝了以太坊golang 客戶端的分布式主機(jī)節(jié)點,每臺主機(jī)配置為4核2GHZ CPU,內(nèi)存為4G。各個客戶端節(jié)點相互交換和驗證信息組成了一個私有的區(qū)塊鏈網(wǎng)絡(luò),智能合約的部署過程如圖6 所示。
可信學(xué)分管理系統(tǒng)使用J2EE(Java 2 Platform Enterprise Edition) 企業(yè)級Web框架實現(xiàn)學(xué)分管理平臺的功能,應(yīng)用SSH開發(fā)框架,采用分層、模塊化、服務(wù)化的設(shè)計模式。如圖7 所示,系統(tǒng)的交互界面包含用戶界面與區(qū)塊鏈監(jiān)控軟件兩個部分。
第二課堂的學(xué)分管理平臺設(shè)計工作表明,使用區(qū)塊鏈對第二課堂的活動進(jìn)行追蹤是可行的,不僅能夠保證數(shù)據(jù)具有較好的真實性與安全性,還能豐富教學(xué)數(shù)據(jù)的規(guī)模與層次,為利用教學(xué)大數(shù)據(jù)開展教學(xué)效果評價、教學(xué)方法分析、教學(xué)過程追蹤提供數(shù)據(jù)支撐。
4 結(jié)束語
為了解決現(xiàn)有高校第二課堂的學(xué)分認(rèn)證、學(xué)習(xí)成果登記過程中存在的記錄易篡改,安全性不足的問題,本文基于區(qū)塊鏈技術(shù)設(shè)計了一種面向高校第二課堂的學(xué)分管理的管理平臺。該模型使用了J2EE的技術(shù)架構(gòu)體系,引入以太坊區(qū)塊鏈網(wǎng)絡(luò),對學(xué)習(xí)原始記錄及學(xué)分評價進(jìn)行存儲和備份。智能合約的使用使得整個模型在無第三方可信機(jī)構(gòu)的監(jiān)督下,仍然能夠安全高效地運(yùn)行。 實驗結(jié)果表明,該平臺在學(xué)分管理,學(xué)習(xí)成果管控方面具有較高的安全性,下一步的工作將繼續(xù)探索利用區(qū)塊鏈技術(shù)保護(hù)在線學(xué)習(xí)平臺上的用戶敏感信息的有效模式。
參考文獻(xiàn):
[1] 吳貝貝.基于區(qū)塊鏈技術(shù)的校際學(xué)分銀行綜合評價系統(tǒng)的構(gòu)建研究[J].信息系統(tǒng)工程,2024(1):46-49.
[2] 王冬梅,王瑾.區(qū)塊鏈技術(shù)賦能:外語教育資源數(shù)字化治理[J].湖北經(jīng)濟(jì)學(xué)院學(xué)報(人文社會科學(xué)版),2024,21(1):9-11.
[3] 周虎,黨仁,孫羽.基于聯(lián)盟鏈的養(yǎng)老機(jī)構(gòu)老年人的隱私保護(hù)方案[J].網(wǎng)絡(luò)安全技術(shù)與應(yīng)用,2024(1):61-65.
[4] 沈傳年.智能合約安全漏洞研究現(xiàn)狀[J].信息安全研究,2023,9(12):1166-1172.
[5] 陳錦富,王震鑫,蔡賽華,等.基于蛻變測試的區(qū)塊鏈智能合約漏洞檢測方法[J].通信學(xué)報,2023,44(10):164-176.
【通聯(lián)編輯:李雅琪】