蔡雪蓮 沈中楚
(1.廣東工貿(mào)職業(yè)技術(shù)學(xué)院 廣東省廣州市 510440 2.廣東工貿(mào)職業(yè)技術(shù)學(xué)院 廣東省廣州市 510440)
現(xiàn)實(shí)生活中,學(xué)生的學(xué)生證,資格證,獲獎(jiǎng)證書等證書需要在不同的場(chǎng)合使用。目前,這些證書大多都是紙質(zhì)形式的。紙質(zhì)版的證照存在著制作效率低、攜帶不方便、易丟失、傳遞性差、補(bǔ)辦麻煩等問(wèn)題。作為紙質(zhì)證書的有效補(bǔ)充,電子證書無(wú)需攜帶,信息容易共享,傳遞性高,是證書使用和管理的新趨勢(shì)。然而,電子證書造假卻比紙質(zhì)證書成本更低。同時(shí),集中式的電子證書管理系統(tǒng),也存在信息泄露和被惡意篡改的風(fēng)險(xiǎn)。
引入安全可信且不可篡改的區(qū)塊鏈技術(shù)是解決上述問(wèn)題的最有效方案之一。借助于區(qū)塊鏈技術(shù)去中心化、防篡改和信息可追溯等特性,我們提出了一個(gè)新型的基于區(qū)塊鏈技術(shù)的學(xué)生電子證書可信共享平臺(tái)。該平臺(tái)能夠?qū)崿F(xiàn)學(xué)生證書管理的電子化,打通學(xué)生證書頒發(fā)和使用部門的數(shù)據(jù)互通,并為證書數(shù)據(jù)的隱私性、安全性、可行性提供一個(gè)解決方案。
區(qū)塊鏈技術(shù)在 2008年由《Bitcoin:A peer-to-peer electronic cash system》[1]一文提出,是一種多方共同維護(hù),使用加密技術(shù)保證信息傳輸和訪問(wèn)安全的分布鏈?zhǔn)浇Y(jié)構(gòu)數(shù)據(jù)庫(kù)。十多年來(lái),區(qū)塊鏈從以比特幣為代表的虛擬貨幣的1.0 時(shí)代,發(fā)展到智能合約與貨幣相結(jié)合,對(duì)金融領(lǐng)域提供廣泛的應(yīng)用的2.0 時(shí)代,再到在金融行業(yè)之外的各行業(yè)應(yīng)用的3.0 時(shí)代,區(qū)塊鏈憑借其獨(dú)特的信用建立機(jī)制,正在影響并改變?cè)S多行業(yè)的運(yùn)轉(zhuǎn)規(guī)則,是將來(lái)發(fā)展數(shù)字化經(jīng)濟(jì)、構(gòu)建新的信息信任體系必不可少的技術(shù)之一[2]。正因如此,全球主要發(fā)達(dá)國(guó)家和發(fā)展中國(guó)家都在加大產(chǎn)業(yè)扶持,提升國(guó)家在區(qū)塊鏈技術(shù)和產(chǎn)業(yè)的競(jìng)爭(zhēng)力。
2016年,工信部頒布《中國(guó)區(qū)塊鏈技術(shù)和應(yīng)用發(fā)展白皮書》中指出:“區(qū)塊鏈系統(tǒng)的透明化、數(shù)據(jù)不可篡改等特征,完全適用于學(xué)生征信管理、升學(xué)就業(yè)、學(xué)術(shù)、資質(zhì)證明、產(chǎn)學(xué)合作等方面,對(duì)教育就業(yè)的健康發(fā)展具有重要的價(jià)值”。在 2021年頒布的“十四五”規(guī)劃綱當(dāng)中,將區(qū)塊鏈作為新興數(shù)字產(chǎn)業(yè)之一,明確提出要“推動(dòng)智能合約、共識(shí)算法、加密算法、分布式系統(tǒng)等區(qū)塊鏈技術(shù)創(chuàng)新,以聯(lián)盟鏈為重點(diǎn)發(fā)展區(qū)塊鏈服務(wù)平臺(tái)和金融科技、供應(yīng)鏈管理、政務(wù)服務(wù)等領(lǐng)域的應(yīng)用方案,完善監(jiān)管機(jī)制?!?021年3月,教育部印發(fā)的《關(guān)于加強(qiáng)新時(shí)代教育管理信息化工作的通知》中提到:“探索推動(dòng)區(qū)塊鏈技術(shù)在招生考試、學(xué)歷認(rèn)證、學(xué)分互認(rèn)、求職就業(yè)等領(lǐng)域的應(yīng)用,提高數(shù)字認(rèn)證可信性”。在此背景下,構(gòu)建基于區(qū)塊鏈技術(shù)下的學(xué)生電子證書可信共享平臺(tái)具有非常重要的意義。
本文設(shè)計(jì)并實(shí)現(xiàn)了基于區(qū)塊鏈技術(shù)的學(xué)生電子證書可信共享平臺(tái),為學(xué)生證書的管理帶來(lái)了如下的改進(jìn):
(1)基于區(qū)塊鏈技術(shù)。本項(xiàng)目利用區(qū)塊鏈技術(shù)的數(shù)據(jù)不可篡改、可溯源的特性保障了電子證書的真實(shí)性。利用區(qū)塊鏈技術(shù)的去中心化特點(diǎn),避免數(shù)據(jù)存儲(chǔ)于一個(gè)機(jī)構(gòu)使證書數(shù)據(jù)存在偽造的可能,讓證書更有說(shuō)服力。
(2)基于智能合約。使用智能合約,實(shí)現(xiàn)了證書頒發(fā)和使用的智能化,無(wú)需第三方參與就能實(shí)現(xiàn)證書的歷史追溯,提高了證書頒發(fā)和使用的效率。
(3)提供證書接口。系統(tǒng)向外提供接口,為其他招聘網(wǎng)站和火車購(gòu)票網(wǎng)站等第三方機(jī)構(gòu)提供服務(wù),優(yōu)化了證書在求職、乘坐公共交通工具及其他場(chǎng)合的使用。打通了學(xué)生證書頒發(fā)和使用部門的數(shù)據(jù)互通。
現(xiàn)實(shí)生活中,學(xué)生的學(xué)生證,資格證,獲獎(jiǎng)證書等證書需要在不同的場(chǎng)合使用。如學(xué)生憑學(xué)生證享有火車票優(yōu)惠,需每年攜帶學(xué)生證到火車站注冊(cè)以做優(yōu)惠資質(zhì)綁定;學(xué)生到具有學(xué)生優(yōu)惠的門店消費(fèi),需出示學(xué)生證才能獲取優(yōu)惠。同時(shí),學(xué)生的其他一些證件,如考證的資格證書、比賽的獲獎(jiǎng)證書等,經(jīng)常需要在評(píng)優(yōu)評(píng)先、面試、晉升等場(chǎng)合提供。學(xué)生證書的使用涉及學(xué)生、學(xué)校、證書頒發(fā)機(jī)構(gòu)、證書使用機(jī)構(gòu)。他們共享數(shù)據(jù)的同時(shí),還要保證數(shù)據(jù)的安全性、完整性和可靠性。
根據(jù)不同場(chǎng)景下的信任構(gòu)建方式,區(qū)塊鏈主要分為三大類:公有鏈、私有鏈和聯(lián)盟鏈。公有鏈?zhǔn)且环N完全開放的區(qū)塊鏈,即任何人都可以加入網(wǎng)絡(luò)并參與完整的共識(shí)記賬過(guò)程,彼此之間不需要信任。私有鏈數(shù)據(jù)的產(chǎn)生、共識(shí)、維護(hù)過(guò)程完全由單個(gè)組織掌握,被該組織指定的成員僅具有賬本的讀取權(quán)限。聯(lián)盟鏈?zhǔn)且环N半開放式的區(qū)塊鏈,只有指定的成員可以加入網(wǎng)絡(luò),且每個(gè)成員的參與權(quán)各有不同。聯(lián)盟鏈往往通過(guò)頒發(fā)身份證書的方式事先建立信任關(guān)系,具備部分去中心化特點(diǎn),相比于公有鏈擁有更高的效率。
Hyperledger (超級(jí)賬本)是一組開源工具,旨在構(gòu)建一個(gè)強(qiáng)大的、業(yè)務(wù)驅(qū)動(dòng)的區(qū)塊鏈框架[3]。Hyperledger Fabric是 Hyperledger 項(xiàng)目的基石。它是基于許可的區(qū)塊鏈,是目前最主流的聯(lián)盟鏈開發(fā)框架。和其他區(qū)塊鏈技術(shù)一樣,它有一個(gè)賬本,使用智能合約,是一個(gè)參與者管理交易的系統(tǒng)。Hyperledger Fabric 與其他區(qū)塊鏈系統(tǒng)的不同之處在于,它是私有的和許可的。Hyperledger Fabric 網(wǎng)絡(luò)成員通過(guò)一個(gè)受信任的成員服務(wù)提供者(MSP)來(lái)注冊(cè)。注冊(cè)準(zhǔn)入機(jī)制避免了由比特幣共識(shí)機(jī)制(POW)所帶來(lái)的計(jì)算資源開銷,從而可以大幅提高交易處理效率,滿足企業(yè)級(jí)應(yīng)用對(duì)處理性能的訴求。我們的系統(tǒng)使用聯(lián)盟鏈Hyperledger Fabric 作為項(xiàng)目的底層技術(shù)平臺(tái)。使用智能合約實(shí)現(xiàn)證書的簽發(fā)和撤銷、用戶對(duì)證書查看的權(quán)限設(shè)定、學(xué)校為學(xué)生注冊(cè)學(xué)生證、學(xué)校為學(xué)生頒發(fā)結(jié)業(yè)證書等功能,將智能合約部署到多組織的區(qū)塊鏈網(wǎng)絡(luò)上,編寫Fabric-SDK-Go,并提供功能調(diào)用接口,便于其他部門調(diào)用。
軟件系統(tǒng)架構(gòu)如圖1所示。系統(tǒng)的前端用戶界面包含PC 網(wǎng)頁(yè)端和微信小程序端。后端采用輕量級(jí)的Web 框架Gin,用戶通過(guò)瀏覽器向后端應(yīng)用層發(fā)起請(qǐng)求,后端根據(jù)注冊(cè)的請(qǐng)求進(jìn)行攔截,并將請(qǐng)求提交給Fabric-SDK-Go,SDK調(diào)用合約層的鏈碼,完成區(qū)塊數(shù)據(jù)上鏈或讀取區(qū)塊數(shù)據(jù)的操作。
圖1:系統(tǒng)架構(gòu)
系統(tǒng)分學(xué)校、學(xué)生、機(jī)構(gòu)、管理者四種賬戶類型。學(xué)生可以申請(qǐng)電子版學(xué)生證和查看自己已有的證書。學(xué)??梢詫徟鷮W(xué)生提交的學(xué)生證。機(jī)構(gòu)和學(xué)??梢詣?chuàng)建證書模板并簽發(fā)電子證書(考試證書、獲獎(jiǎng)證書等)。系統(tǒng)同時(shí)還向外提供接口,為其他招聘網(wǎng)站和火車購(gòu)票網(wǎng)站等第三方機(jī)構(gòu)提供服務(wù),優(yōu)化證書在求職、乘坐公共交通工具及其他場(chǎng)合的使用。
注冊(cè)模塊:用戶調(diào)用智能合約,智能合約對(duì)用戶所填的密碼進(jìn)行sha256 非對(duì)稱性加密,然后將用戶信息以數(shù)字資產(chǎn)的形式存入?yún)^(qū)塊鏈中。如圖2所示。
圖2:用戶注冊(cè)流程
證書簽發(fā)模塊:學(xué)?;驒C(jī)構(gòu)調(diào)用智能合約,生成指定數(shù)據(jù)的證書模板,證書模板以數(shù)字資產(chǎn)的形式記錄于區(qū)塊鏈,當(dāng)模板被創(chuàng)建后,學(xué)校或機(jī)構(gòu)可指定模板并選擇簽發(fā)對(duì)象進(jìn)行簽發(fā),簽發(fā)時(shí)調(diào)用智能合約,根據(jù)所選模板和對(duì)象生產(chǎn)唯一的證書,證書以數(shù)字資產(chǎn)的形式記錄于區(qū)塊鏈。如圖3所示。
圖3:證書簽發(fā)流程
證書撤銷模塊:學(xué)?;驒C(jī)構(gòu)選擇自己簽發(fā)的證書,調(diào)用智能合約,從世界狀態(tài)中刪除指定證書文件,并將刪除記錄以數(shù)字資產(chǎn)的形式記錄于區(qū)塊鏈。如圖4所示。
圖4:證書撤銷流程
查詢證書模塊:用戶調(diào)用智能合約,根據(jù)用戶ID 從世界狀態(tài)中獲取當(dāng)前持有的證書文件,此操作不以數(shù)字資產(chǎn)的形式存到區(qū)塊鏈。如圖5所示。
圖5:證書查詢流程
根據(jù)平臺(tái)功能的設(shè)計(jì),系統(tǒng)分為4 個(gè)賬戶:學(xué)校、學(xué)生、機(jī)構(gòu)、管理者。為四個(gè)賬戶類型構(gòu)建區(qū)塊鏈組織和節(jié)點(diǎn),區(qū)塊鏈網(wǎng)絡(luò)設(shè)計(jì)如表1所示。
表1:區(qū)塊鏈網(wǎng)絡(luò)組織及節(jié)點(diǎn)
智能合約是系統(tǒng)業(yè)務(wù)邏輯實(shí)現(xiàn)的核心模塊。一個(gè)智能合約是一套以數(shù)字形式定義的承諾(commitment),包括合約參與方可以在上面執(zhí)行這些承諾的協(xié)議[4]。智能合約一般通過(guò)程序代碼寫入?yún)^(qū)塊鏈中,允許在沒(méi)有第三方的情況下進(jìn)行可信交易。這些交易可追蹤且不可逆轉(zhuǎn)。Fabric 是第一個(gè)支持通用編程語(yǔ)言編寫智能合約(如 Java、Golang 和 Node.js)的分布式賬本平臺(tái)。平臺(tái)采用Golang 語(yǔ)言,設(shè)計(jì)的核心智能合約如表2所示。
表2:核心智能合約列表
系統(tǒng)的前端運(yùn)行環(huán)境為安裝了Vue、npm 框架的Windows10 操作系統(tǒng),后端環(huán)境運(yùn)行環(huán)境為安裝DOCKER容器、Fabric 框架、GO 語(yǔ)言環(huán)境的Linux-Ubuntu16.04LTS操作系統(tǒng)。
注冊(cè)登錄:用戶可選擇要注冊(cè)的賬號(hào)類型,并填寫相關(guān)的用戶信息后提交。提交后顯示注冊(cè)的賬號(hào),需要由上級(jí)賬戶類型審批后才可以進(jìn)行登錄。用戶可以使用PC 網(wǎng)頁(yè)端進(jìn)行登錄登錄時(shí)可選擇用戶類型。學(xué)生用戶除了PC 網(wǎng)頁(yè)端外還可以使用移動(dòng)微信小程序進(jìn)行登錄(如圖6)。
圖6:注冊(cè)登錄界面
學(xué)生證申請(qǐng)與審批:學(xué)生注冊(cè)通過(guò)后,登錄到系統(tǒng)主頁(yè)點(diǎn)擊側(cè)邊導(dǎo)航欄中的證書,填寫學(xué)生證信息并提交給學(xué)校進(jìn)行審批(如圖7)。學(xué)生提交學(xué)生證信息后,學(xué)??刹榭春蛯徟ㄈ鐖D8),審批通過(guò)后學(xué)生可查看學(xué)生證。學(xué)校審批通過(guò)學(xué)生的學(xué)生證后,學(xué)生可回到證書界面查看學(xué)生證(如圖9)。
圖7:學(xué)生申請(qǐng)學(xué)生證
圖8:學(xué)校審批學(xué)生證
圖9:查看學(xué)生證
證書簽發(fā):機(jī)構(gòu)或?qū)W校賬戶可在主頁(yè)點(diǎn)擊側(cè)邊導(dǎo)航“證書管理”,進(jìn)入證書管理頁(yè)面,在證書管理頁(yè)面的模板管理欄點(diǎn)擊新建來(lái)創(chuàng)建證書模板(如圖10)。學(xué)校或機(jī)構(gòu)賬戶創(chuàng)建證書模板后,可點(diǎn)擊證書管理欄,點(diǎn)擊簽發(fā)證書進(jìn)行證書簽發(fā)(如圖11)。
圖10:創(chuàng)建證書模板
圖11:證書簽發(fā)
系統(tǒng)測(cè)試一般包括有白盒測(cè)試與黑盒測(cè)試,本文主要使用黑盒測(cè)試法,對(duì)系統(tǒng)的功能模塊進(jìn)行測(cè)試,檢測(cè)是否能正常運(yùn)行。通過(guò)對(duì)用戶登錄注冊(cè)模塊、證書簽發(fā)模塊、證書查詢模塊、證書撤銷模塊等功能進(jìn)行系統(tǒng)測(cè)試,根據(jù)各項(xiàng)數(shù)據(jù)表明系統(tǒng)各項(xiàng)功能界面交互友好、系統(tǒng)運(yùn)行穩(wěn)定,運(yùn)算數(shù)值正確,沒(méi)有發(fā)現(xiàn)明顯的錯(cuò)誤,達(dá)到了預(yù)期的效果。
本文利用區(qū)塊鏈作為底層技術(shù),在fabric 框架的基礎(chǔ)上開發(fā)了一個(gè)學(xué)生證書管理平臺(tái)。該平臺(tái)不僅簡(jiǎn)化了證書簽發(fā)者(學(xué)校、企業(yè)等用戶)的證書簽發(fā)流程,方便了學(xué)生證書的使用,而且還保證了證書數(shù)據(jù)的高可靠性。該平臺(tái)的研究與實(shí)現(xiàn)為除學(xué)生證書管理之外的其他證照管理提供了很好的借鑒作用,具有廣泛的應(yīng)用前景。