高茂云,周科
(1.武漢警官職業(yè)學(xué)院,武漢 430040;2.武漢理工大學(xué)計算機(jī)與人工智能學(xué)院,武漢 430070)
區(qū)塊鏈作為比特幣、以太坊等加密貨幣的底層技術(shù),因具有去中心化、去信任化、不可篡改、開放、匿名等優(yōu)秀的特性受到全世界的廣泛關(guān)注。區(qū)塊鏈技術(shù)解決了目前中心化系統(tǒng)可靠性差、安全性低和成本高等問題,擁有廣闊的應(yīng)用前景。2016年10月,工信部頒布了《中國區(qū)塊鏈技術(shù)和應(yīng)用發(fā)展白皮書》[1],對區(qū)塊鏈技術(shù)及其應(yīng)用發(fā)展趨勢進(jìn)行了專題研究,總結(jié)了區(qū)塊鏈在金融、教育、能源、文化娛樂等領(lǐng)域的應(yīng)用前景。2019年10月24日,在中央政治局第十八次集體學(xué)習(xí)時,習(xí)近平總書記強(qiáng)調(diào),“把區(qū)塊鏈作為核心技術(shù)自主創(chuàng)新的重要突破口”,“加快推動區(qū)塊鏈技術(shù)和產(chǎn)業(yè)創(chuàng)新發(fā)展”,進(jìn)一步推動了區(qū)塊鏈的發(fā)展。[2]2021年,區(qū)塊鏈作為數(shù)字產(chǎn)業(yè)化的重要部分被寫入“十四五”規(guī)劃綱要中,各部門也積極探索區(qū)塊鏈發(fā)展方向,出臺相關(guān)政策,推動區(qū)塊鏈相關(guān)產(chǎn)業(yè)創(chuàng)新發(fā)展。
在教育領(lǐng)域,區(qū)塊鏈具有很大的應(yīng)用潛力。北京郵電大學(xué)李青教授指出,將區(qū)塊鏈應(yīng)用到教育領(lǐng)域,有望打造更加開放并且更具公信力的教育系統(tǒng)。[3]然而整體來看,當(dāng)前區(qū)塊鏈技術(shù)在教育領(lǐng)域的應(yīng)用探索還處在初步階段,缺少成熟的應(yīng)用案例,還需要進(jìn)一步的研究和實踐。[4]本文基于區(qū)塊鏈技術(shù)可追溯、不可篡改、高度信任等特性,設(shè)計了一個基于區(qū)塊鏈的證書管理系統(tǒng),將學(xué)生的各類證書以數(shù)字資產(chǎn)的形式記錄在區(qū)塊鏈中,提供基于區(qū)塊鏈的訪問控制機(jī)制,實現(xiàn)高校證書的安全驗證和有效追溯,保證證書的真實性和可靠性,是將區(qū)塊鏈技術(shù)應(yīng)用于教育領(lǐng)域的一次嘗試,希望有助于構(gòu)建更加安全可信的教育體系,推動區(qū)塊鏈技術(shù)在教育領(lǐng)域的應(yīng)用與創(chuàng)新。
系統(tǒng)架構(gòu)分為四層,包括數(shù)據(jù)存儲層、智能合約層、業(yè)務(wù)層和應(yīng)用層[5],如圖1,各層次之間耦合性低,便于系統(tǒng)的維護(hù)和擴(kuò)展。
圖1 系統(tǒng)層次結(jié)構(gòu)圖
(1)數(shù)據(jù)存儲層:數(shù)據(jù)存儲層主要包含兩部分,一部分是區(qū)塊鏈,本系統(tǒng)使用的是Hyperledger Fabric框架,實現(xiàn)證書信息的雙重保護(hù)。[6]
(2)智能合約層:智能合約層主要包括與證書信息管理相關(guān)的智能合約,包括證書的添加、修改、刪除、查詢和追溯。業(yè)務(wù)層客戶端可以通過gRPC遠(yuǎn)程服務(wù)[7]調(diào)用智能合約,更新賬本狀態(tài)。
(3)業(yè)務(wù)層:業(yè)務(wù)層主要包括用戶管理、角色管理、菜單管理、證書上傳、證書修改、證書刪除、證書驗證和證書追溯等功能模塊的實現(xiàn),為應(yīng)用層提供接口服務(wù)。
(4)應(yīng)用層:用戶應(yīng)用系統(tǒng)利用業(yè)務(wù)層提供的功能接口實現(xiàn)簡潔易用的操作界面,提供良好的用戶體驗。區(qū)塊鏈瀏覽器(HyperLedger Explore)是Hyperledger的一個開源項目,可以直觀地查看區(qū)塊鏈網(wǎng)絡(luò)的活動狀態(tài),便于管理員對網(wǎng)絡(luò)進(jìn)行管理。
系統(tǒng)總體功能模塊主要包括賬號管理、證書管理、證書登記與驗證和系統(tǒng)管理。系統(tǒng)功能模塊結(jié)構(gòu)圖如圖2所示。
圖2 系統(tǒng)功能模塊結(jié)構(gòu)圖
(1)賬號管理模塊:賬號管理包括登錄注冊和個人信息管理。用戶進(jìn)入系統(tǒng)前需要先登錄系統(tǒng)以便確認(rèn)用戶身份,不同的身份擁有不同的權(quán)限。用戶若有賬號,則輸入賬號、密碼和驗證碼進(jìn)入系統(tǒng),若沒有賬號,則需要先注冊,注冊時需要輸入用戶名、電話、郵箱和密碼等信息,當(dāng)輸入的信息驗證通過后則注冊成功,然后可以通過注冊的賬號登錄系統(tǒng)。
(2)證書管理模塊:證書管理模塊主要包括證書的查詢、修改、刪除和審核等功能,由證書管理員進(jìn)行操作,證書管理模塊的基本功能如圖3所示。
圖3 證書管理頁面
管理員可以通過學(xué)生姓名、身份證號、證書編號和證書狀態(tài)等信息查詢系統(tǒng)中的證書,并管理證書。學(xué)生上傳的證書需要管理員審核,只有審核通過后才能通過驗證。對于審核通過的證書,如果發(fā)現(xiàn)證書造假或信息錯誤還可對證書進(jìn)行修改或刪除。證書的所有歷史狀態(tài)都會記錄在區(qū)塊鏈上,可以追溯證書,防止對證書的惡意修改。
(3)證書登記與驗證模塊:證書登記與驗證模塊包括證書上傳、證書驗證和證書追溯。學(xué)生用戶登錄系統(tǒng)后可以輸入證書的相關(guān)信息上傳證書,證書信息包括證書名稱、證書發(fā)布機(jī)構(gòu)、證書編號、證書級別、證書頒發(fā)日期及附件等,附件可以是證書圖片或相關(guān)證明文件,大小不能超過1MB,證書的編號不能和已有的編號重復(fù),否則無法上傳。上傳的證書需要經(jīng)過證書管理員審核,審核狀態(tài)分為未審核、審核通過和審核不通過。審核通過的證書才能驗證成功,用戶可以查看自己提交的所有證書及其審核狀態(tài)。證書追溯功能可以輸入證書編號查詢證書的交易記錄,獲得證書的所有歷史狀態(tài)。證書驗證功能主要提供給企業(yè)用戶使用,輸入學(xué)生身份證號和證書編號可以驗證證書是否屬于該學(xué)生以及證書是否真實。
(4)系統(tǒng)管理模塊:系統(tǒng)管理模塊包括用戶管理、角色管理、文件管理和菜單管理等功能,只有系統(tǒng)管理員才有權(quán)限操作。用戶管理功能實現(xiàn)對用戶的增刪改查。角色管理功能可以為不同的角色分配不同的權(quán)限,防止越權(quán)現(xiàn)象的發(fā)生,從而提高系統(tǒng)的安全性。文件管理功能是對學(xué)生上傳的證書附件進(jìn)行查詢或刪除。菜單管理功能可以對系統(tǒng)菜單信息如菜單的名稱和圖標(biāo)等進(jìn)行修改,也可以刪除或增加新的菜單,提高系統(tǒng)的可擴(kuò)展性。
本系統(tǒng)使用Fabric2.4.1的區(qū)塊鏈網(wǎng)絡(luò),包括兩個Peer節(jié)點,一個Order節(jié)點,并且創(chuàng)建了一個通道,兩個Peer節(jié)點分別屬于組織1和組織2,網(wǎng)絡(luò)結(jié)構(gòu)圖如圖4所示。
圖4 Fabric網(wǎng)絡(luò)結(jié)構(gòu)圖
在區(qū)塊鏈瀏覽器可以查看網(wǎng)絡(luò)狀態(tài)及各個節(jié)點的名稱,如圖5所示。
圖5 區(qū)塊鏈瀏覽器網(wǎng)絡(luò)狀態(tài)圖
Peer節(jié)點存儲關(guān)鍵的數(shù)據(jù),執(zhí)行特定的程序。存儲的數(shù)據(jù)包括賬本、鏈碼(智能合約),執(zhí)行的程序主要包括背書以及鏈碼的執(zhí)行。賬本的查詢以及修改都需要通過鏈碼來操作??蛻舳藨?yīng)用需要存取賬本數(shù)據(jù)時,先連接Peer節(jié)點,通過Peer節(jié)點調(diào)用相關(guān)的鏈碼。Order節(jié)點負(fù)責(zé)對客戶端發(fā)送的交易請求進(jìn)行排序和打包,配置了單節(jié)點Raft排序服務(wù)。通道是特定網(wǎng)絡(luò)成員之間的私有通信層,每個通道都有一個單獨的區(qū)塊鏈賬本,只能由受邀加入通道的組織使用,對網(wǎng)絡(luò)的其他成員不可見。
交易執(zhí)行的流程圖如圖6所示。
圖6 交易執(zhí)行流程圖
首先客戶端向所有的背書節(jié)點發(fā)送交易提案,默認(rèn)所有peer節(jié)點都是背書節(jié)點,安裝了智能合約。第二步,這些背書節(jié)點模擬執(zhí)行交易并進(jìn)行背書,即對交易進(jìn)行簽名,表示該交易沒有問題。第三步,背書節(jié)點返回執(zhí)行結(jié)果以及簽名后的交易給客戶端。第四步,客戶端將背書后的交易發(fā)送給排序節(jié)點。第五步,排序節(jié)點對收集到的交易進(jìn)行排序,判斷Peer節(jié)點對交易的結(jié)果是否存在分歧,若一半以上的節(jié)點相同,則排序成功,即達(dá)成共識,并產(chǎn)生新的區(qū)塊。第六步,排序節(jié)點廣播區(qū)塊給主節(jié)點。第七步,主節(jié)點驗證區(qū)塊并保存到賬本副本中。第八步,各個Peer節(jié)點同步主節(jié)點的新區(qū)塊。第九步,各個Peer節(jié)點驗證新的區(qū)塊并保存到賬本副本中。
Fabric的智能合約也稱為鏈碼,提供了Go、Node.js和Java等多種語言的合約API,本系統(tǒng)使用Java編寫智能合約,提供對證書操作的接口,包括添加證書、修改證書、查詢證書等??蛻舳送ㄟ^gRPC服務(wù)和Peer節(jié)點建立連接調(diào)用智能合約的函數(shù),并將執(zhí)行結(jié)果返回給客戶端。智能合約的具體函數(shù)接口如表1所示。
表1 智能合約函數(shù)接口
關(guān)鍵功能:
(1)獲取證書從創(chuàng)建到任何修改的記錄
(2)新增證書
(3)刪除證書
(4)修改證書
(5)根據(jù)證書id查詢證書
(6)查詢所有證書
當(dāng)前區(qū)塊鏈技術(shù)正在快速發(fā)展,其應(yīng)用領(lǐng)域由最初的金融領(lǐng)域快速擴(kuò)展到各行各業(yè)。在教育領(lǐng)域,區(qū)塊鏈同樣具有很大的應(yīng)用潛力,基于其去中心化、不可篡改、可追溯等特性,可以打造更加開放和具有公信力的教育系統(tǒng)。本文針對傳統(tǒng)高校證書存儲面臨的數(shù)據(jù)封閉、防篡改性弱和安全性低等問題,提出使用區(qū)塊鏈技術(shù)實現(xiàn)證書的存儲和管理,設(shè)計了基于區(qū)塊鏈的證書管理系統(tǒng)。采用Hyperledger Fabric作為底層區(qū)塊鏈平臺,搭建Fabric網(wǎng)絡(luò)環(huán)境,利用Fabric區(qū)塊鏈網(wǎng)絡(luò)實現(xiàn)證書的安全存儲,并設(shè)計了相關(guān)智能合約實現(xiàn)證書數(shù)據(jù)的查詢和修改。根據(jù)證書管理系統(tǒng)的應(yīng)用場景,設(shè)計了證書上傳、證書審核、證書查詢、證書修改、證書刪除、證書驗證及證書追溯等功能模塊。提供基于區(qū)塊鏈的訪問控制機(jī)制,實現(xiàn)高校證書的安全驗證和有效追溯,保證證書的真實性和可靠性,是將區(qū)塊鏈技術(shù)應(yīng)用于教育領(lǐng)域的一次嘗試,希望有助于構(gòu)建更加安全可信的教育體系,推動區(qū)塊鏈技術(shù)在教育領(lǐng)域的應(yīng)用與創(chuàng)新。