黎富貴 李敏 莫秋榮



[摘 要]學分銀行是實現終身學習的關鍵環節,文章提出基于區塊鏈技術的學分銀行信息管理模型(BCBM)。首先給出管理模型框架設計原理;其次提出一種聯盟式學分銀行區塊鏈系統共識算法——GPBFT算法,用有序組平衡多叉樹改進merkle樹—B_merkle樹,快速生成新的區塊,提升查詢認證驗證效率;最后,設計權限合約、學習成果轉換標準合約、認證標準合約等學分銀行智能合約,保證區塊鏈的自動運行和無篡改執行。實驗分析表明,該管理模型使學分銀行的學習成果數據透明化、不被篡改,在網絡開銷和系統開銷等方面有著良好的表現,為學分銀行信息管理提供新的技術思路和方法。
[關鍵詞]學分銀行;區塊鏈;共識算法;B_merkle樹;智能合約
[中圖分類號]TP311 [文獻標識碼]A [文章編號]1008-7656(2021)02-0015-05
引言
隨著科技的不斷進步,信息技術深入社會的每個層面,社會各行業對人才的需求呈現多元化趨勢,傳統在校、線下單一的教育模式已經難以滿足信息時代就業市場對創新人才的要求。學分銀行打破傳統的教育模式與管理方式,滿足現代學習者終身教育和個性化學習的需求。學分銀行的推行使學習者可以跨領域、跨專業、跨時空選擇學習內容并進行存儲、轉換、兌換教育成果(學分),實現各類教育(培訓)機構相互認證,搭建起基于教育大數據的終身學習“立交橋”。這就需要一個集安全性、分布式、透明性于一體的成果記錄體系。
目前,一些學歷信用記錄體系存在數據不完整、缺乏簡單高效的驗證手段、學分銀行平臺體系之間(學習信息管理平臺)相互獨立、產生數據孤島等問題,導致管理者難以獲得完整的有效信息,很多學者對學分銀行如何管理教育成果作了一些研究,主要是通過建立標準體系和信息管理系統平臺進行管理、認證和轉換,但難以保證學習成果的安全可靠,如采用大數據—云計算技術向學習者推薦學習相關服務,尚未完全解決好學分銀行中云管理可靠性和安全性問題[1];通過引入SaaS 多租戶模式的中心化學分銀行系統,在學分銀行系統中實現單一實例應用多次,在后臺數據庫實現租戶間的數據共享和隔離[2];有的學者從學分銀行商業和技術需求的角度,提出了一個實用的分步指南,以識別系統中的服務[3]。
為了解決海量的學習成果數據壁壘問題,實現數據的安全性、完整性,本文設計了基于區塊鏈技術的學分銀行信息管理模型,實現學習過程記錄透明化、學習成果難以篡改、學習成果認定和轉換高效可信的功能,提供需求分析和決策支持,由學分銀行教育機構負責維護以太坊區塊的生成與校驗,實現賬戶間交易的去中心化執行。
一、區塊鏈技術概述
區塊鏈技術是一種應用于數字貨幣—比特幣的底層技術(分布式數據庫系統),具有去中心化、自治性、防篡改、不可偽造、可追溯等特點[4]。區塊鏈的數據結構分為區塊內和區塊間鏈式結構。區塊包括區塊頭和區塊體,頭部信息是元數據,為區塊間提供關聯數據,包含版本號、時間戳、前驅區塊地址、隨機數、哈希值、Merkle根值等信息內容;區塊體包括區塊間交易的數量和交易記錄,交易的記錄由Merkle樹生成的哈希值(Merkle根值)記錄到區塊頭。獲得記賬權的礦工將當前區塊鏈接到前一區塊,形成最新記賬權的礦工將當前區塊鏈接到前一區塊,即為最新的區塊主鏈。區塊間依次相連,形成從創初區塊到當前區塊的一條主鏈,就是記錄了區塊鏈數據的完整歷史數據。完整歷史數據可提供區塊鏈數據的溯源和歷史定位。根據節點的訪問權限開放程度(去中心化程度),區塊鏈分為私有鏈、聯盟鏈、公有鏈3種[5]。本文采用的是hyperledger fabric1.4聯盟鏈,依據一是學分銀行是由各教育機構(高校)、政府部門、企業等共同參與管理,二是聯盟鏈支持和擴展PBFT等共識算法。
二、基于區塊鏈技術學分銀行管理模型設計
(一)區塊鏈模型框架設計
多數據源-區塊鏈學分銀行區塊鏈框架如圖1所示。
通常情況下,學習者是學分銀行成果的主要提供者,原始學習成果存儲到學分銀行節點數據庫中。教育(培訓機構)、企業(用人單位)是學習成果的管理者、數據查詢方。為了保證原始成果可信、不可篡改,本文對學習者學習成果采用B_Merkle樹進行哈希算法運算,計算出摘要值并存放在B_Merkle樹根,在下文會詳細描述該算法。
聯盟節點中發起讀取學習成果存入學分銀行區塊的指令,聯盟的節點使用改進的PBFT進行驗證,經過共識機制驗證學習成果合法性后,則根據認證標準、兌換機制、轉換標準的智能合約條款完成學分轉換,并寫入區塊鏈中,副本保存到各節點的數據庫中。
(二)學分銀行節點管理
學分銀行節點是由驗證交易單 (Transaction) 和區塊驗證器(Validator)、 區塊生成器 (Blocker)組成,這三者之間通過共識算法協作運行(如圖2所示)。本文采用聯盟鏈的PBFT算法作為聯盟式學分銀行區塊鏈系統共識算法——GPBFT算法。
1.客戶端
聯盟式學分銀行區塊鏈系統是由多源無中心化節點組成的分布式網絡體系,客戶端是通過數字簽名和記錄區塊ID而生成交易單的組件,具有防篡改、防刪除、可溯源的特點。客戶端主要有3類人員:學習者、教育(培訓)機構管理員、用人單位(企業)。學習者注冊學習,并授權節點管理的信息。節點管理員審核學習者的注冊信息、授權信息、授權其他節點提取數據等,保證平臺的服務。用人單位(企業)主要查看學習者的相關信息(學習成果、學習過程、學分獲得情況等)。
2.基于學分銀行的PBFT共識算法
在學分銀行鏈(CB chain)中挖礦節點是區塊驗證器節點,有全節點和輕量級節點兩種。全節點用于保存用戶最新的、完整的數據,輕量級節點僅保存部分信息。以用戶登錄的節點為全節點,其他節點為輕量級節點。驗證器為PBFT共識算法的副本節點,負責交易單和區塊消息的驗證,驗證流程:接收客戶端的交易單信息或區塊消息→校驗消息哈希簽名是否正確,信息是否符合規定(用戶授權范圍)→驗證“正確”,主節點驗證器生成預準備信息→廣播各備份節點→PBFT共識算法三階段→各節點接收交易單并保存交易信息。
3.新區塊生成
在傳統的 PBFT 算法中, 比特幣區塊鏈每隔一定時間T通過“礦工挖礦”生成一個區塊。礦工挖礦過程的實質是不斷生成隨機數, 與區塊頭相關信息經哈希算法運算后得到哈希值。若該哈希值大于一個設定的闕值, 則礦工挖礦不成功;若該哈希值小于一個設定的闕值, 則礦工挖礦成功, 生成一個區塊廣播至全網, 同時可得到一筆報酬, 即獲得比特幣[6]。在聯盟式學分銀行區塊鏈系統中,區塊的生成需經過驗證器集群校驗。鑒于區塊鏈部署的學分銀行在各地的培訓機構、教育行政機構、學校和學習點(學習中心),其服務器和網絡均比較穩定,主機的加入和退出需要一定的手續,服務器管理規范,因此,本文采用新的區塊鏈生成方式。
(1)為了減少網絡帶寬占有率,節點的驗證器和打包器部署在節點的內網中,減少不必要的網絡傳輸,提高交易單的驗證效率。
(2)考慮main_節點負責接收客戶端發來的信息,本文中main_節點不參與打包過程。區塊鏈BLOCKCHAIN_節點在T時間范圍內驗證、接受學習、學分等信息交易單后,根據公式B=R%(N-1)來判斷是否由自己生成新的區塊。其中,B為當前需要生成新區塊的節點,R為當前區塊鏈的長度。當區塊鏈BLOCKCHAIN_節點檢測到需要生成新的區塊時,則收集已檢驗且符合條件的交易單ID,并生成B_merkle樹,打包成區塊發給main_節點并加入區塊鏈尾。
4.平衡多叉樹改進merkl樹-B_merkle樹
大數據背景下的終身教育蘊含海量及繁雜數據,使用傳統的merkle樹會增加文件分塊數量,子葉節點數量隨之增多,樹的深度(高度)呈線性增長,時間和空間消耗大,遍歷路徑增加,檢驗的時間隨之增長,造成運行效率低。因此,本文采用B_merkle樹[7],可以有效控制樹高度,提升訪問效率。
(1)建造B_merkle樹算法偽代碼
初始化B_merkle樹T根節點并創建根,設節點關鍵字個數最大為M;
插入文件分塊;
計算哈希函數,插入key_K;
檢測比較Kn ,n≥2;
If T 有多個葉節點 then
檢測節點_Kn ;
If 節點_Kn含有>M個關鍵字 then
調用分裂函數
If 節點_Kn 含有 調用刪除節點函數 Else更新哈希值 End (2)分裂函數 if 節點_Kn 含有≥M個關鍵字 then 節點_Kn分裂為兩個節點_Kn和節點_Kn+1; 節點_Kn和節點_Kn+1 各含有M/2個關鍵字; End (3)刪除節點函數 when 節點_Kn 含有 Delete 節點_Kn ; 合并關鍵字到兄弟節點或者父節點; End (三)學分銀行智能合約設計 學分銀行智能合約設計了權限合約、成果轉換標準合約、認證標準合約,保證區塊鏈的自動運行和無篡改執行。 1.權限合約 交易進入區塊時,節點調用配置信息檢測用戶執行交易的權限范圍。如在合約中獲取用戶的權限,則將該筆交易打包進入區塊,添加到區塊鏈上;如無獲取用戶權限信息,則中止退出,調用流程算法偽代碼描述如下。 Check user_transaction key value; If user.mesg? in key value list then 獲取準入準出權限; 添加到區塊鏈; Else end 2.成果轉換機制合約 成果轉換標準合約由教育管理部門、聯盟教育(培訓)、發證機構之間協商確定需要轉換的學習成果機制標準并代碼化,調用時自動執行。學習者的學習成果被記錄存儲后,當需要轉換為某一機構的學分銀行學分或證書,則調用成果轉換標準合約進行轉換。條件符合,則進行轉換;條件不符合,中止轉換,返回失敗原因,算法偽代碼描述如下。 根據user_transaction? operation key value list; 根據user所需要的服務; Check成果標準轉換機制; If 成果標準轉換機制存在 then 執行user_學習成果轉換并打印輸出; Else 返回失敗原因 End 3. 認證機制合約 學習者的學習成果通過區塊鏈網絡各節點達成共識并記錄存儲后,將調用由教育管理部門、聯盟教育(培訓)、發證機構等制定的認證標準機制合約,執行學分認證指令操作。如學習者的學分認證符合認證標準機制合約,則執行學分認證操作命令;如不符合,則中止命令,返回失敗原因,算法偽代碼描述如下。 學習者發起認證指令; 根據user_certification? operation key value list; Check user所需認證的內容; If 滿足認證條件 then 執行學分認證操作 Else 返回失敗原因 End 三、實驗分析 本文從算力、存儲開銷、網絡吞吐量等方面進行驗證方案的有效性。實驗環境:采用MATLAB編程進行模擬;處理器Intel-i7四核3.20GHz;內存DDR3 1600MHz 8GB;硬盤2T,操作系統為Windows7。 (一)系統開銷 本文對傳統基于merkle樹的PBFT 共識機制和改進后的基于B_merkle樹的共識機制的系統開銷進行實驗和分析,如圖3所示。選取節點數50,100,150,200,250,300,350,400,450,500,550,600進行仿真測試。從仿真實驗結果的曲線可以得到,傳統PBFT算法共識機制系統開銷隨著節點數量增加,系統開銷曲線斜率陡峭不斷增大;而本文提出B+_merkle的共識機制的系統開銷曲線較平緩,節點數的增加對于系統開銷影響非常小。這是因為傳統 Merkle 樹的深度H為 ,而B_merkle樹的深度H小于 ,M≥2,所以在執行查詢命令時縮減了訪問節點數,交易完成時間短,從而降低系統的開銷。 (二)網絡開銷 本文分別對 PBFT算法和改進的GPBFT算法在節點容錯的場景下進行驗證分析。設節點總數為500個,選取出錯的節點數30、50、70、90、 110、130、150、170進行實驗。從實驗結果圖中顯示得到,隨著容錯節點數的增加,達成共識時間也不斷增加,網絡開銷隨著增大。改進的GPBFT算法中,各節點相對穩定,無需進行大量的“挖礦”運算(算力很小),節點采用區塊驗證器和區塊生成器,僅在內部局域網就可以完成,減少網絡傳輸時間和網絡帶寬資源的消耗,提高驗證和達成共識速度,因此,容錯節點增加時,曲線仍較平緩。 四、結語 目前,區塊鏈技術成為了學術界研究的熱點,本文提出在聯盟式學分銀行區塊鏈系統中采用PBFT共識機制,節點管理采用驗證交易單 、區塊驗證器、區塊生成器,并采用B_merkle樹遍歷提高訪問速度;通過采用權限合約、成果轉換機制合約、認證機制合約等智能合約模式,使學分銀行系統實現去中心化、安全、透明。下一步,我們將區塊鏈與大數據、數字簽名技術相融合,運用到學分銀行信息管理中,確保學分銀行用戶的學習過程成果和隱私信息的安全。 [參考文獻] [1]鄢小平.基于云架構的學分銀行信息平臺設計研究[J].中國遠程教育,2014(5):66-71+96. [2]毛佳偉. SaaS多租戶模式在學分銀行系統中的應用研究[D].北京:北京工業大學,2014. [3]LIN Hui-ping, LI Wei-ping, WU Si. A Service in Education: SOA-Based Credit Bank System [J]. Computer Systems and Applications, 2009,18(6): 1-5. [4]蔡維德,郁蓮,王榮,等.基于區塊鏈的應用系統開發方法研究[J].軟件學報,2017(6):1474-1487. [5]袁勇,王飛躍.區塊鏈技術發展現狀與展望[J].自動化學報,2016(4):481-494. [6]雷長劍,林亞平,李晉國,等.志愿云環境下的拜占庭容錯研究[J].計算機工程,2016(5):1-7. [7]李宏宏,康鳳舉.基于改進B樹的多層次仿真系統搜索算法[J].系統仿真學報,2017(2):332-336. [作者簡介]黎富貴,廣西開放大學教務處副處長,碩士,研究方向:網絡協議、遠程教育;李敏,廣西開放大學教務處考務科科長,工程師,碩士,研究方向:成人教育;莫秋榮,廣西開放大學教務處綜合科科長,講師,碩士,研究方向:教育管理。 [責任編輯 韋書令]