陶昀翔 王鈞
摘要:學(xué)分銀行作為重要的學(xué)分?jǐn)?shù)據(jù)信息平臺(tái),應(yīng)具有高度的權(quán)威性,學(xué)分銀行系統(tǒng)數(shù)據(jù)安全尤為重要。傳統(tǒng)的學(xué)分銀行系統(tǒng)無法避免人為的刪除、篡改等惡意操作,難以保證數(shù)據(jù)的安全性。區(qū)塊鏈作為去中心化系統(tǒng),是天然的數(shù)據(jù)存儲(chǔ)平臺(tái),其以鏈表結(jié)構(gòu)將數(shù)據(jù)關(guān)聯(lián),衍生了數(shù)據(jù)難以篡改特性。本文提出了基于區(qū)塊鏈的學(xué)分信息上鏈模型,制定了數(shù)據(jù)序列化方法,解離數(shù)據(jù)類型與數(shù)據(jù)元素,以“協(xié)議+數(shù)據(jù)”模式,設(shè)計(jì)協(xié)議鏈碼和批量上鏈的數(shù)據(jù)鏈碼,實(shí)現(xiàn)了基于區(qū)塊鏈的學(xué)分銀行系統(tǒng)并進(jìn)行了上鏈實(shí)驗(yàn)對(duì)比。實(shí)驗(yàn)結(jié)果表明,本方案可以有效保障學(xué)分銀行系統(tǒng)數(shù)據(jù)的安全性,并且可以提升上鏈存證業(yè)務(wù)性能。
關(guān)鍵詞 區(qū)塊鏈;鏈碼;學(xué)分銀行;信息存證
中圖分類號(hào):TP391.41文獻(xiàn)標(biāo)志碼:A 文章編號(hào):1001-2443(2024)01-0020-07
引言
以數(shù)字化為標(biāo)志的知識(shí)經(jīng)濟(jì)興起,學(xué)習(xí)、運(yùn)用和創(chuàng)造知識(shí)的能力已成為推動(dòng)經(jīng)濟(jì)和社會(huì)發(fā)展的動(dòng)力引擎。學(xué)分銀行制度是以學(xué)習(xí)成果為研究核心,以學(xué)分衡量其中的學(xué)習(xí)量和價(jià)值水平,將學(xué)生各種學(xué)習(xí)成果認(rèn)證、積累及轉(zhuǎn)換的學(xué)習(xí)管理制度。搭建學(xué)分銀行,賦能教育信息化發(fā)展,體現(xiàn)在有效銜接正規(guī)和非正規(guī)學(xué)習(xí)成果,建立各區(qū)域各級(jí)教育溝通和學(xué)習(xí)者終身學(xué)習(xí)的“立交橋”。數(shù)字化改革背景下,基于區(qū)塊鏈、大數(shù)據(jù)等新技術(shù)破解數(shù)據(jù)非法篡改、認(rèn)證不透明、學(xué)分轉(zhuǎn)換受阻等治理難題,是進(jìn)一步推進(jìn)學(xué)分銀行信息服務(wù)平臺(tái)建設(shè)的題中之義。
近年來國務(wù)院頒布了綜合教育改革試點(diǎn)任務(wù),在五省市一校開展“開放大學(xué)試點(diǎn)”積極探索實(shí)踐學(xué)分銀行建設(shè),在一定程度上完善了我國國家政策層面從學(xué)習(xí)成果認(rèn)證、積累轉(zhuǎn)換制度、學(xué)分銀行制度建設(shè)研究。2010年,國務(wù)院《國家中長期教育改革和發(fā)展規(guī)劃綱要(2010—2020年)》中指出要建立繼續(xù)教育學(xué)分積累與轉(zhuǎn)換制度,實(shí)現(xiàn)不同類型學(xué)習(xí)成果的互認(rèn)和銜接。2016年,教育部頒發(fā)的《關(guān)于推進(jìn)高等教育學(xué)分認(rèn)定和轉(zhuǎn)換工作的意見》提出探索建立學(xué)分銀行央行,鼓勵(lì)區(qū)域、聯(lián)盟學(xué)校建立學(xué)分認(rèn)定、積累及轉(zhuǎn)換系統(tǒng)。2017年,國務(wù)院發(fā)布《關(guān)于印發(fā)國家教育事業(yè)發(fā)展“十三五”規(guī)劃的通知》,將繼續(xù)教育領(lǐng)域的學(xué)歷與非學(xué)歷互認(rèn)作為學(xué)分銀行制度建設(shè)的關(guān)鍵環(huán)節(jié) [1]。
20世紀(jì)90年代初,歐盟成員國統(tǒng)一在歐洲經(jīng)濟(jì)區(qū)域內(nèi)近50個(gè)國家中高等院校開通歐洲學(xué)分轉(zhuǎn)換與累積系統(tǒng),初步探索學(xué)分銀行助力教育一體化和教育競爭力,美國高等教育信息化協(xié)會(huì)于2017年春季發(fā)布了文章《區(qū)塊鏈變革與高等教育》,明確區(qū)塊鏈在高等教育中的重要地位,有助于改進(jìn)高等院校之間及其與整個(gè)社會(huì)的關(guān)系。麻省理工學(xué)院等利用區(qū)塊鏈技術(shù)開展高校學(xué)位和證書存證溯源,提高學(xué)歷證書可信性[2]。國內(nèi)研究者針對(duì)學(xué)分銀行現(xiàn)有的數(shù)據(jù)安全和信任問題,提出以區(qū)塊鏈為技術(shù)支撐,確保學(xué)分不可篡改和真實(shí)可溯。李青和張鑫認(rèn)為基于區(qū)塊鏈搭建的去中心化學(xué)分銀行服務(wù)平臺(tái)能夠構(gòu)建可信便捷的證書管理框架,從而降低人才雇傭成本 [3]。黃慶平認(rèn)為區(qū)塊鏈技術(shù)的核心特征能為學(xué)分銀行信息查詢與共享、數(shù)據(jù)分布式存儲(chǔ)、安全性管理和學(xué)習(xí)成果認(rèn)證等方面的問題提供一攬子解決方案[4]。周繼平提出在線下學(xué)分聯(lián)盟組織基礎(chǔ)上建設(shè)基于區(qū)塊鏈的學(xué)分銀行系統(tǒng),有助于解決聯(lián)盟內(nèi)成員學(xué)分的信用問題,為確保學(xué)分不可篡改和真實(shí)可溯提出技術(shù)支撐[5]。
區(qū)塊鏈的數(shù)據(jù)可追溯、去中心化、開放性和自治性等主要特征,為當(dāng)前各省學(xué)分銀行建設(shè)過程中出現(xiàn)的中心化治理難題提供了技術(shù)支撐[6],同時(shí),利用區(qū)塊鏈非對(duì)稱加密、共識(shí)機(jī)制等技術(shù)手段,可有效避免虛假信息存入學(xué)分銀行,杜絕了人為篡改數(shù)據(jù)的可能性,保證不同區(qū)域?qū)W分銀行數(shù)據(jù)安全可靠。在本文中,基于區(qū)塊鏈的學(xué)分信息上鏈模型,規(guī)定了數(shù)據(jù)序列化方法,解離數(shù)據(jù)類型與數(shù)據(jù)元素,以“協(xié)議+數(shù)據(jù)”模式,設(shè)計(jì)協(xié)議鏈碼和批量上鏈的數(shù)據(jù)鏈碼,不僅保障了學(xué)分銀行系統(tǒng)數(shù)據(jù)的安全性,而且很大程度提升了上鏈存證業(yè)務(wù)性能。
1 技術(shù)概述
1.1 區(qū)塊鏈分類
根據(jù)區(qū)塊鏈的中心化程度,通常將區(qū)塊鏈分為公有鏈、聯(lián)盟鏈和私有鏈,如圖1所示。
公有鏈的去中心化程度最高,所有節(jié)點(diǎn)都可以自由加入和退出系統(tǒng);聯(lián)盟鏈中存在少量中心化節(jié)點(diǎn),分散化程度降低,節(jié)點(diǎn)的加入和退出需要聯(lián)盟之間的協(xié)商;私有鏈依靠中心去中心化節(jié)點(diǎn)運(yùn)行,去中心化程度最低,節(jié)點(diǎn)的加入和退出也受到私有鏈所有者的限制。根據(jù)節(jié)點(diǎn)的準(zhǔn)入條件,區(qū)塊鏈也可分為許可鏈和非許可鏈,非許可鏈包含公有鏈,許可鏈包含聯(lián)盟鏈和私有鏈[7]。目前最具影響力的區(qū)塊鏈項(xiàng)目比特幣和以太坊均是公有鏈。比特幣就像一個(gè)貨幣體系,支持加密貨幣的鑄造、發(fā)行和流通。以太坊將區(qū)塊鏈和智能合約相結(jié)合,拓展了區(qū)塊鏈的功能,使其成為一個(gè)基于區(qū)塊鏈技術(shù)構(gòu)建的去中心化應(yīng)用平臺(tái),允許任何人在這個(gè)平臺(tái)應(yīng)用上構(gòu)建和使用去中心化的應(yīng)用。
1.2 超級(jí)賬本
Hyperledger Fabric就是一種具有代表性的聯(lián)盟鏈系統(tǒng),不同于比特幣、以太坊的是,Hyperledger Fabric沒有代幣的概念,正因?yàn)槠涮幱诼?lián)盟鏈的環(huán)境中,不需要通過代幣的方式維護(hù)區(qū)塊鏈系統(tǒng)的生態(tài),亦不需要挖礦的公式激勵(lì)機(jī)制,這樣的設(shè)計(jì)也進(jìn)一步提升了鏈上的性能表現(xiàn)、更降低了挖礦帶來的能源消耗。此外,F(xiàn)abric提供了通道channel的概念,網(wǎng)絡(luò)中的參與者可以根據(jù)實(shí)際社會(huì)關(guān)系、企業(yè)地位生成多個(gè)通道,通道內(nèi)的數(shù)據(jù)只有通道內(nèi)部的成員才能看到[8]。當(dāng)網(wǎng)絡(luò)中的一些參與者是競爭對(duì)手或者存在秘密內(nèi)部共享的數(shù)據(jù)時(shí),通道功能的設(shè)計(jì)可以大大增強(qiáng)聯(lián)盟鏈場景下的安全性。
從許可鏈和非許可鏈的范圍來看,Hyperledger Fabric可以歸類為許可鏈,即成員的加入和參與活動(dòng)需要特定的授權(quán)和許可,而不是完全暴露在公網(wǎng)上的,許可鏈的機(jī)制有效的解決了分支問題,在公鏈中,區(qū)塊鏈有可能在共識(shí)中分支成多個(gè)分支,屆時(shí)短鏈將失效。這在企業(yè)級(jí)別的業(yè)務(wù)中是絕對(duì)不能接受的。Hyperledger Fabric的運(yùn)行機(jī)制是一種不會(huì)導(dǎo)致鏈分叉的算法,可以使用傳統(tǒng)的拜占庭容錯(cuò)(BFT)共識(shí),也可以采用依賴權(quán)威組織背書的共識(shí)(PoA),這樣任意一筆進(jìn)行的交易都會(huì)得到積極的確認(rèn)。
1.3 智能合約和鏈碼
智能合約可以理解為是一個(gè)建立在區(qū)塊鏈上的分布式計(jì)算機(jī)系統(tǒng),其革命性的創(chuàng)新點(diǎn)在于其可以實(shí)現(xiàn)圖靈完備的程序運(yùn)行[9],智能合約本身的含義是共同的,但每個(gè)不同的區(qū)塊鏈系統(tǒng)可能有不同的名稱。
智能合約的一個(gè)特點(diǎn)是,如果滿足條件,合同和交易就會(huì)執(zhí)行。以自動(dòng)售貨機(jī)的工作模式為例:在自動(dòng)售貨機(jī),購買飲料的交易需要兩個(gè)操作:支付足夠的貨幣,售貨機(jī)放出飲料。在人工商店中,上述流程應(yīng)該通過售貨員完成,但在自動(dòng)售貨機(jī)中,上述流程是自動(dòng)化的。智能合約便是通過編程,在區(qū)塊鏈上運(yùn)行來實(shí)現(xiàn)自動(dòng)化,流程中的任何一環(huán)沒有完成,最終交易都不會(huì)成功,這也體現(xiàn)了智能合約的原子性特點(diǎn)。
在聯(lián)盟鏈的場景下,應(yīng)用可以使用一種類似智能合約的程序,叫作鏈碼(ChainCode)來支持復(fù)雜業(yè)務(wù)邏輯需求,可以通過Java、Golang等語言編寫[10]。它支持模塊化可插拔共識(shí)協(xié)議,允許系統(tǒng)根據(jù)特定場景和信任模型進(jìn)行定制共識(shí)規(guī)則,而不依賴于加密代幣。當(dāng)區(qū)塊鏈被賦予了智能合約的功能后,便可以實(shí)現(xiàn)許多豐富多彩的鏈上應(yīng)用,如去中心化金融Defi、拍賣、募捐、眾籌、NFT、代幣、二次擴(kuò)容。
Fabric網(wǎng)絡(luò)中主要存在著兩種節(jié)點(diǎn),分別是共識(shí)節(jié)點(diǎn)(Peer節(jié)點(diǎn))和排序節(jié)點(diǎn)(Order 節(jié)點(diǎn)),上述的每一種節(jié)點(diǎn)都運(yùn)行、保存著完整的區(qū)塊鏈數(shù)據(jù),當(dāng)用戶發(fā)起交易時(shí),共識(shí)節(jié)點(diǎn)會(huì)從聯(lián)盟網(wǎng)絡(luò)上抓取交易,如果Peer節(jié)點(diǎn)的docker容器上安裝有鏈碼程序,可以在本地模擬執(zhí)行,如果執(zhí)行結(jié)果合法,Peer節(jié)點(diǎn)會(huì)用自己的私鑰為這個(gè)交易簽名背書,當(dāng)交易收集到了足夠多的簽名后,Order節(jié)點(diǎn)將會(huì)把這筆交易收錄進(jìn)待打包的交易池,最終完成上鏈。
2 方案設(shè)計(jì)
學(xué)分信息上鏈模型主要有以下三種角色:校方管理用戶、教師用戶、學(xué)生用戶。三種角色貫穿于學(xué)分銀行業(yè)務(wù)系統(tǒng)與區(qū)塊鏈底層之間,經(jīng)過學(xué)生基本信息、學(xué)生學(xué)分信息、學(xué)生證書信息等數(shù)據(jù)收集;利用數(shù)據(jù)序列化方法,將上鏈協(xié)議與上鏈數(shù)據(jù)解耦,易于實(shí)現(xiàn)學(xué)分銀行場景下數(shù)據(jù)批量上鏈,提高數(shù)據(jù)上鏈性能;配合Hyperledger Fabric 2.2區(qū)塊鏈底層,將學(xué)生基本信息、學(xué)生證書信息、學(xué)生學(xué)分信息等數(shù)據(jù)上鏈操作下沉,利于開發(fā)者簡化鏈碼編寫。此外,基于區(qū)塊鏈的學(xué)分信息上鏈模型保證了學(xué)分等信息數(shù)據(jù)的難以篡改性和數(shù)據(jù)修改歷程可溯源性,維護(hù)了學(xué)分銀行系統(tǒng)的高可信度。
學(xué)分信息上鏈模型總體架構(gòu)如圖2所示。學(xué)分銀行系統(tǒng)主要由教師端、學(xué)生端和校方端維護(hù)著學(xué)生基本信息、證書信息以及學(xué)分信息。底層區(qū)塊鏈系統(tǒng)采用Hyperledger Fabric 2.2版本。教師用戶、學(xué)生用戶和校方具有鏈上身份。學(xué)生基本信息、證書信息以及學(xué)分信息經(jīng)過數(shù)據(jù)序列化后,由相應(yīng)端/身份調(diào)用數(shù)據(jù)鏈碼進(jìn)行上鏈存證。上鏈數(shù)據(jù)反序列化需要數(shù)據(jù)鏈碼對(duì)應(yīng)的協(xié)議鏈碼。協(xié)議鏈碼定義了數(shù)據(jù)類型后上鏈。數(shù)據(jù)鏈碼與協(xié)議鏈碼關(guān)聯(lián),當(dāng)用戶獲取到數(shù)據(jù)后,調(diào)用協(xié)議鏈碼獲取對(duì)應(yīng)的數(shù)據(jù)類型,完成數(shù)據(jù)反序列化后可視化展示。
2.1 數(shù)據(jù)收集
本方案中主要參與者有學(xué)生用戶、教師用戶以及校方。方案參與者皆為校園內(nèi)部用戶,因此沒有系統(tǒng)注冊(cè)環(huán)節(jié),所有參與者登錄名確定,初始登錄密碼統(tǒng)一固定為個(gè)人證件號(hào)某幾位。學(xué)生用戶其登錄名為學(xué)生學(xué)號(hào),教師用戶和校方登錄名為工作工號(hào)。初始登錄時(shí),操作平臺(tái)會(huì)為用戶生成一對(duì)公私鑰對(duì),以形成鏈上身份。此后,學(xué)分銀行系統(tǒng)數(shù)據(jù)與區(qū)塊鏈存證數(shù)據(jù)的來源于三方參與者。
系統(tǒng)中學(xué)生基本信息主要從入學(xué)信息開始,由校方端輸入,同時(shí)為學(xué)生端提供可變動(dòng)信息的修改功能。初始基本信息的上鏈存證操作由校方統(tǒng)一調(diào)用觸發(fā)。更改后的基本信息的上鏈存證操作由學(xué)生用戶觸發(fā),校方審核。
系統(tǒng)中學(xué)生證書信息由校方輸入或者學(xué)生用戶輸入。對(duì)于校方為授予證書官方的相關(guān)證書,由校方統(tǒng)一輸入,觸發(fā)存證上鏈操作。對(duì)于其他官方授予的證書,由學(xué)生輸入證書相關(guān)信息后觸發(fā)存證上鏈操作,后由校方審核。
系統(tǒng)中學(xué)生學(xué)分信息由校方輸入或者教師用戶輸入。對(duì)于證書類的學(xué)分認(rèn)定,完成學(xué)生證書信息審核后由校方統(tǒng)一輸入,觸發(fā)存證上鏈操作。對(duì)于課程成績類的學(xué)分認(rèn)定,由教師用戶根據(jù)每位學(xué)生成績是否達(dá)到學(xué)分標(biāo)準(zhǔn),確定達(dá)到標(biāo)準(zhǔn)給予學(xué)分后由教師用戶觸發(fā)存證上鏈操作,后由校方審核。
通過對(duì)數(shù)據(jù)收集的輸入審核,保證了系統(tǒng)中學(xué)生信息的真實(shí)性,同時(shí)確定了鏈上學(xué)生基本信息的有效性和鏈上學(xué)分?jǐn)?shù)據(jù)和證書數(shù)據(jù)來源的可靠性。
2.2 數(shù)據(jù)序列化
數(shù)據(jù)序列化后,存在可讀性差、靈活性不強(qiáng)等弱點(diǎn),但數(shù)據(jù)序列化后存儲(chǔ)容量小,尤其適于學(xué)生學(xué)分信息上鏈這類數(shù)據(jù)量較大的業(yè)務(wù)場景。因此對(duì)于學(xué)生學(xué)分信息等數(shù)據(jù)需要經(jīng)過序列化處理后進(jìn)行上鏈。本方案中設(shè)計(jì)的數(shù)據(jù)序列化方法如表1所示。
將各種數(shù)據(jù)類型根據(jù)編碼轉(zhuǎn)化方法,進(jìn)行序列化處理成byte數(shù)組。對(duì)byte數(shù)組數(shù)據(jù)進(jìn)行上鏈,提升區(qū)塊鏈節(jié)點(diǎn)數(shù)據(jù)存儲(chǔ)能力。
2.3 數(shù)據(jù)上鏈
數(shù)據(jù)序列化處理后,轉(zhuǎn)化為可讀性極差的byte數(shù)組格式。為了解決數(shù)據(jù)可讀性問題,設(shè)計(jì)了“協(xié)議+數(shù)據(jù)”模式。協(xié)議鏈碼模塊規(guī)定數(shù)據(jù)類型,數(shù)據(jù)鏈碼模塊為業(yè)務(wù)數(shù)據(jù)元素,兩者結(jié)合還原為可讀性強(qiáng)的數(shù)據(jù)格式。
協(xié)議鏈碼模塊中將協(xié)議定義成一個(gè)或者多個(gè)結(jié)構(gòu)體的組合體。一個(gè)結(jié)構(gòu)體由多條屬性組成。一條屬性由類型、名稱和該屬性的描述等組成。結(jié)構(gòu)體名稱相當(dāng)于協(xié)議的類型??梢园凑諛I(yè)務(wù)劃分。協(xié)議對(duì)象序列化是將協(xié)議對(duì)象實(shí)例序列化為byte數(shù)組。協(xié)議相當(dāng)于一個(gè)類,一個(gè)協(xié)議對(duì)象就是一個(gè)實(shí)例。根據(jù)既定的序列化方法將協(xié)議對(duì)象實(shí)例序列化為byte數(shù)組后,將其與屬性結(jié)合起來,完成協(xié)議對(duì)象的序列化。
協(xié)議鏈碼在Fabric節(jié)點(diǎn)上安裝完成部署完成后,會(huì)生成鏈碼id。協(xié)議對(duì)象序列化為byte數(shù)組后,通過調(diào)用協(xié)議鏈碼上鏈。該類協(xié)議對(duì)象定義的數(shù)據(jù)類型上鏈后返回協(xié)議id,唯一確定該類數(shù)據(jù)類型。同時(shí),協(xié)議鏈碼模塊會(huì)生成協(xié)議文件SDK,便于業(yè)務(wù)端實(shí)現(xiàn)該類業(yè)務(wù)數(shù)據(jù)的序列化。協(xié)議上鏈流程如下圖3所示。
數(shù)據(jù)鏈碼模塊中利用協(xié)議文件SDK,學(xué)分銀行系統(tǒng)將對(duì)應(yīng)的學(xué)生基本信息數(shù)據(jù)、學(xué)生證書信息以及學(xué)生學(xué)分信息傳入并生成byte數(shù)組,選擇對(duì)應(yīng)的數(shù)據(jù)類型的上鏈協(xié)議id,調(diào)用該協(xié)議下的數(shù)據(jù)鏈碼中的方法進(jìn)行上鏈。數(shù)據(jù)上鏈流程如圖4所示。
已上鏈的學(xué)分信息等數(shù)據(jù)解析展示方法,需要分別調(diào)用協(xié)議鏈碼和數(shù)據(jù)鏈碼,獲取鏈上學(xué)分信息等數(shù)據(jù)和協(xié)議信息。將byte數(shù)組類型數(shù)據(jù)按照反序列化方法順序解碼,得出可讀性強(qiáng)的原始數(shù)據(jù)。
2.4 鏈碼設(shè)計(jì)
鏈碼模塊主要涉及鏈上的協(xié)議鏈碼和數(shù)據(jù)鏈碼。協(xié)議鏈碼管理各類業(yè)務(wù)數(shù)據(jù)的協(xié)議,數(shù)據(jù)鏈碼根據(jù)對(duì)應(yīng)協(xié)議生成。
協(xié)議鏈碼中需要提供生成協(xié)議對(duì)象的方法,輸入?yún)f(xié)議對(duì)象的byte數(shù)組,生成協(xié)議id且存入?yún)f(xié)議鏈碼中。生成協(xié)議對(duì)象方法偽代碼如下算法1所示:
考慮到學(xué)生數(shù)據(jù)量龐大,對(duì)于數(shù)據(jù)鏈碼的設(shè)計(jì)需要考慮批量上鏈方法,因此對(duì)應(yīng)協(xié)議生成數(shù)據(jù)鏈碼時(shí),其中需要生成批量上鏈方法。批量上鏈方法中需要輸入數(shù)據(jù)id以及數(shù)據(jù)序列化后的byte數(shù)組,將byte存入數(shù)據(jù)鏈碼中。批量上鏈方法偽代碼如下算法2所示:
當(dāng)調(diào)用協(xié)議鏈碼中方法或者數(shù)據(jù)鏈碼中方法,交易經(jīng)過共識(shí)后產(chǎn)生的交易哈希,即為上鏈數(shù)據(jù)的存證哈希,將其與方法返回值一并返回給學(xué)分銀行系統(tǒng)業(yè)務(wù)端。
3 方案實(shí)現(xiàn)與分析
3.1 方案實(shí)現(xiàn)
基于本文設(shè)計(jì)的基于區(qū)塊鏈的學(xué)分信息上鏈模型,部署了一條超級(jí)賬本聯(lián)盟鏈,并實(shí)現(xiàn)了學(xué)分銀行業(yè)務(wù)系統(tǒng),包括學(xué)生用戶端、教師用戶端、校方管理端。
超級(jí)賬本聯(lián)盟鏈選用Hyperledger Fabric 2.2,其作為常用的聯(lián)盟鏈系統(tǒng),穩(wěn)定性較好,且具備較完善的配套SDK和瀏覽器,可以使用多種常用的語言進(jìn)行智能合約,利用其搭建了一個(gè)具有2個(gè)Peer節(jié)點(diǎn)和1個(gè)Order節(jié)點(diǎn)的聯(lián)盟鏈。兩臺(tái)服務(wù)器配置一致,一臺(tái)服務(wù)器上啟動(dòng)了Order節(jié)點(diǎn)和Peer1節(jié)點(diǎn),另一臺(tái)服務(wù)器上部署了Peer2節(jié)點(diǎn)。服務(wù)器環(huán)境配置以及Fabric鏈環(huán)境配置如表2和表3所示:
學(xué)分銀行業(yè)務(wù)系統(tǒng),包括學(xué)生用戶端、教師用戶端、校方端,采用MySql進(jìn)行數(shù)據(jù)存儲(chǔ),使用Redis作緩存處理,使用nginx進(jìn)行反向代理,框架上采用Vue2+SpringBoot進(jìn)行前后端開發(fā)。學(xué)生用戶端分別開發(fā)了Android系統(tǒng)和iOS系統(tǒng),教師用戶端、校方端開發(fā)了Web端系統(tǒng)。
此外,使用了Fabric2.2提供的GO語言版本的高級(jí)鏈碼接口API:fabric-contract-api-go完成了協(xié)議鏈碼和數(shù)據(jù)鏈碼的開發(fā)。學(xué)分銀行基礎(chǔ)功能如下:
3.1.1學(xué)生基本信息存證 學(xué)生基本信息上鏈存證后返回交易存證哈希。學(xué)生基本信息存證記錄包含基本信息存證哈希、上鏈存證時(shí)間、學(xué)生姓名、手機(jī)號(hào)、院系專業(yè)、級(jí)數(shù)班級(jí)、學(xué)號(hào)、性別等信息。
3.1.2 學(xué)生證書信息存證 學(xué)生證書信息上鏈存證后返回交易存證哈希。點(diǎn)擊證書信息,可以查看到該賬戶在鏈上證書信息,包括證書類型、存證哈希以及上鏈時(shí)間等。
3.1.3 學(xué)生學(xué)分信息存證 學(xué)生學(xué)分信息由教師用戶和校方確認(rèn)后,會(huì)觸發(fā)完成上鏈存證返回存證哈希。學(xué)生用戶可以查看個(gè)人的學(xué)分獲取的具體情況,包括學(xué)分信息,學(xué)分存證哈希、上鏈時(shí)間等。點(diǎn)擊具體的學(xué)分信息和課程信息,可以進(jìn)一步查閱學(xué)生用戶的具體學(xué)習(xí)情況,如圖5所示。
3.1.4 校方端數(shù)據(jù)全覽 校方端系統(tǒng)的數(shù)據(jù)全覽主要統(tǒng)計(jì)學(xué)生及學(xué)生證書的相關(guān)數(shù)據(jù)。可查看的數(shù)據(jù)項(xiàng)有證書總數(shù)、學(xué)生總數(shù)、區(qū)塊總數(shù)、證書分布的排行、學(xué)生分布情況、系統(tǒng)賬號(hào)列表、查詢次數(shù)以及學(xué)院學(xué)生情況。
3.2 方案分析
3.2.1 數(shù)據(jù)真實(shí)性 傳統(tǒng)的學(xué)分銀行系統(tǒng),記錄學(xué)生基本信息、證書信息以及學(xué)分信息等。這些信息全由人工審核,沒有相關(guān)的數(shù)據(jù)證據(jù)做背書,使得操作人員容易操作數(shù)據(jù)庫數(shù)據(jù)進(jìn)行信息造假,更甚至刪除系統(tǒng)操作日志,導(dǎo)致惡意操作完全不可查,產(chǎn)生學(xué)分信息數(shù)據(jù)可信度危機(jī)。本方案中,基于Fabric聯(lián)盟鏈底層,將學(xué)生基本信息、證書信息以及學(xué)分信息通過既定的鏈碼邏輯進(jìn)行上鏈存證,學(xué)生基本信息、證書信息以及學(xué)分信息上鏈記錄或者修改記錄無法人為刪除,信息流全程可追溯。再者,涉及到證書的學(xué)分認(rèn)定環(huán)節(jié),證書信息上鏈后,鏈上可查證書數(shù)據(jù)真實(shí)有效,作為學(xué)分認(rèn)定依據(jù),明確學(xué)生學(xué)分信息來源,提高學(xué)分信息數(shù)據(jù)真實(shí)可靠度。
3.2.2 數(shù)據(jù)訪問權(quán)限 Fabric聯(lián)盟鏈中,鏈碼歸屬于通道。Fabric的通道配置中規(guī)定可加入通道中的排序節(jié)點(diǎn)、背書節(jié)點(diǎn),規(guī)定了各賬戶身份權(quán)限,例如對(duì)通道中的交易或者區(qū)塊的讀操作、部署/調(diào)用通道中鏈碼的交易的寫操作、修改通道的配置信息等管理操作。這些策略嚴(yán)格規(guī)定了通道中數(shù)據(jù)、鏈碼數(shù)據(jù)的訪問權(quán)限,保證了學(xué)生學(xué)分信息等數(shù)據(jù)的隱私性。
4 性能分析
學(xué)分銀行系統(tǒng)各業(yè)務(wù)端通過Hyperledger Fabric官方提供的鏈碼軟件開發(fā)工具包,連接Peer節(jié)點(diǎn)客戶端,輸入待上鏈數(shù)據(jù),調(diào)用已部署成功的數(shù)據(jù)鏈碼,向Peer節(jié)點(diǎn)提交交易提案,獲取模擬執(zhí)行結(jié)果,最后提交簽名背書和模擬執(zhí)行結(jié)果給Order節(jié)點(diǎn),共識(shí)過程完成后,獲取交易哈希和區(qū)塊高度返回給學(xué)分銀行業(yè)務(wù)系統(tǒng)展示。Fabric節(jié)點(diǎn)所在服務(wù)器配置及Fabric通道配置如3.1章節(jié),表2及表3所示。
單記錄上鏈速度
在上述環(huán)境下,開展了單條上鏈速率的分析實(shí)驗(yàn),分別從業(yè)務(wù)端開始調(diào)用數(shù)據(jù)鏈碼,將學(xué)分信息數(shù)據(jù)上鏈10次、100次、500次和1000次操作,并記錄了數(shù)據(jù)成功上鏈10次、100次、500次和1000次的耗時(shí),如表4所示。
從表4可以看出,單條記錄上鏈場景下,從業(yè)務(wù)端調(diào)用鏈碼開始到獲取到鏈上成功返回的交易哈希的過程中,每條記錄/交易平均耗時(shí)為739ms,平均每秒的記錄數(shù)RPC(Record Per Second)為1.355。產(chǎn)生此現(xiàn)象的主要原因是每個(gè)區(qū)塊中只包含一條交易記錄。
批量上鏈速度
在同樣實(shí)驗(yàn)環(huán)境下,調(diào)用2.4章節(jié)算法2開展了批量上鏈速率的分析實(shí)驗(yàn)。從業(yè)務(wù)端開始調(diào)用數(shù)據(jù)鏈碼4次,分別上鏈學(xué)分?jǐn)?shù)據(jù)10條、100條、500條和1000條,記錄耗時(shí),結(jié)果如表5所示。
從上表中可以看出,批量記錄上鏈場景下,從業(yè)務(wù)端調(diào)用鏈碼開始到獲取到鏈上成功返回的交易哈希的過程中,每條記錄/交易平均耗時(shí)為41ms,平均每秒的記錄數(shù)RPC為182.378。產(chǎn)生此現(xiàn)象的主要原因是上鏈方案充分利用了區(qū)塊/交易空間,每個(gè)區(qū)塊中包含了多條數(shù)據(jù)記錄。
方案對(duì)比
基于表4和表5中實(shí)驗(yàn)結(jié)果數(shù)據(jù),從耗時(shí)對(duì)比和RPC對(duì)比兩方面繪制了如下方案對(duì)比圖,如圖6所示。
從圖中可以看出,單記錄上鏈方式耗時(shí)高于批量記錄上鏈耗時(shí)。批量記錄上鏈方式每秒能夠處理的記錄條數(shù)遠(yuǎn)多于單記錄上鏈方式。本方案設(shè)計(jì)的數(shù)據(jù)序列化方法,解離了數(shù)據(jù)類型與數(shù)據(jù)元素,結(jié)合數(shù)據(jù)批量上鏈方法,充分考慮了Fabric鏈自身的特性,提高了數(shù)據(jù)上鏈的吞吐量,進(jìn)而提升業(yè)務(wù)系統(tǒng)性能。
5 結(jié)語
區(qū)塊鏈技術(shù)正滲透在各行各業(yè)應(yīng)用里,其防篡改等特性賦予了業(yè)務(wù)應(yīng)用數(shù)據(jù)的真實(shí)可信度,解決了傳統(tǒng)行業(yè)里的業(yè)務(wù)應(yīng)用數(shù)據(jù)被惡意操作修改的問題[11]。本文基于區(qū)塊鏈的學(xué)分信息上鏈方法將大數(shù)據(jù)量的學(xué)分信息等數(shù)據(jù)通過序列化方法處理,結(jié)合“協(xié)議+數(shù)據(jù)”上鏈模式,保障了學(xué)分?jǐn)?shù)據(jù)信息的安全,維護(hù)了學(xué)分銀行系統(tǒng)的權(quán)威性,同時(shí)進(jìn)一步滿足了數(shù)據(jù)批量上鏈的需求,實(shí)現(xiàn)系統(tǒng)整體性能的提升。
但本方案仍有些不足之處,如學(xué)生學(xué)分信息數(shù)據(jù)的類型可能會(huì)更為復(fù)雜,比如文件類型等,目前的數(shù)據(jù)序列化方法還未包含。在下一步的優(yōu)化設(shè)計(jì)中,需要考慮更多復(fù)雜數(shù)據(jù)類型,將本方案中的上鏈方法推廣到更多行業(yè)應(yīng)用中。
參考文獻(xiàn):
[1] 張鵬程,吳文文,梁琨琳,嚴(yán)陳.職業(yè)教育學(xué)分銀行與1+X證書制度關(guān)聯(lián)協(xié)同性探究[J].機(jī)械職業(yè)教育,2022(9):1-8.
[2] 劉永貴,歐夢吉,劉瑞.基于區(qū)塊鏈的高校聯(lián)盟學(xué)分管理系統(tǒng)研究[J].軟件導(dǎo)刊,2020,19(11):120-125.
[3] 李青,張鑫.區(qū)塊鏈:以技術(shù)推動(dòng)教育的開放和公信[J].遠(yuǎn)程教育雜志,2017,35(1):36-44.
[4] 黃慶平.國家學(xué)分銀行的未來:基于區(qū)塊鏈技術(shù)視角[J].中國成人教育,2019(1):27-31.
[5] 周繼平,陳虹,葉正茂.基于區(qū)塊鏈技術(shù)的學(xué)分銀行構(gòu)建[J].中國職業(yè)技術(shù)教育,2019(18):51-58.
[6] 王艷冰,韓冰冰,鄭黎明.基于區(qū)塊鏈和學(xué)習(xí)成果認(rèn)證制度的學(xué)分銀行建設(shè)[J].數(shù)字技術(shù)與應(yīng)用,2022,40(2):134-136.
[7] 郭上銅,王瑞錦,張鳳荔.區(qū)塊鏈技術(shù)原理與應(yīng)用綜述[J].計(jì)算機(jī)科學(xué),2021,48(2):271-281.
[8] NASIR Q ,? QASSE I A ,? TALIB M A , et al. Performance analysis of hyperledger fabric platforms[J]. Security and Communication Networks, 2018:1-14.
[9]林詩意,張磊,劉德勝.基于區(qū)塊鏈智能合約的應(yīng)用研究綜述[J].計(jì)算機(jī)應(yīng)用研究,2021,38(9):2570-2581.
[10] 呂朋輝,張金孌,王瑜,等.基于靜態(tài)分析的Fabric智能合約安全檢測[J].網(wǎng)絡(luò)新媒體技術(shù),2022,11(1):57-66.
[11] 李洪廣. 區(qū)塊鏈證據(jù)認(rèn)定問題研究[D].上海:上海師范大學(xué),2022.
Blockchain-based Credit Information Uplink Model and Implementation
TAO Yun-xiang, WANG Jun
(Department of Information Construction and Management, Wuhu Institute of Technology,Wuhu, 241003,China)
Abstract:As an important credit data information platform, the credit bank should have a high degree of authority, and the data security of the credit bank system is particularly important. The traditional credit banking system cannot avoid malicious operations such as manual deletion and tampering, and it is difficult to ensure the security of data. As a decentralized system, blockchain is a natural data storage platform. It associates data with a linked list structure and derives the characteristics that data is difficult to tamper with. This paper proposes a blockchain based credit information uplink model, develops a data serialization method, separates data types and data elements, designs protocol chain codes and batch uplink data chain codes in the mode of "protocol+data", realizes a blockchain based credit banking system, and conducts uplink experiment comparison. The experimental results show that this scheme can effectively guarantee the security of the credit banking system data, and can improve the performance of the online certificate storage business.
Key words:blockchain;chaincode;credit bank;information deposit
(責(zé)任編輯:馬乃玉)
收稿日期: 2023-01-12
基金項(xiàng)目:安徽省高校自然科學(xué)重點(diǎn)項(xiàng)目(2022AH052199);安徽省高校自然科學(xué)重大項(xiàng)目(KJ2020ZD71);安徽省職業(yè)與成人教育學(xué)會(huì)教育教學(xué)研究規(guī)劃課題(Azcj2022222);安徽省高等學(xué)校質(zhì)量工程項(xiàng)目(2020qkl44;2020qkl45;2020qkl46);蕪湖職業(yè)技術(shù)學(xué)院自然科學(xué)研究重點(diǎn)項(xiàng)目(wzyzrzd202301).
作者簡介:陶昀翔(1992—),男,安徽蕪湖市人,碩士,講師,主要從事信息理論及應(yīng)用研究;王鈞(1979—),男,安徽蕪湖市人,碩士,高級(jí)工程師,主要從事信息理論及應(yīng)用研究.
引用格式:陶昀翔,王鈞.基于區(qū)塊鏈的學(xué)分信息上鏈模型及實(shí)現(xiàn)[J].安徽師范大學(xué)學(xué)報(bào)(自然科學(xué)版),2023,47(1):20-26.
安徽師范大學(xué)學(xué)報(bào)(自然科學(xué)版)2024年1期