夏浩飛
(嘉興廣播電視大學(xué) 開放教育學(xué)院,浙江 嘉興 314000)
2016 年教育部印發(fā)《關(guān)于推進(jìn)高等教育學(xué)分認(rèn)定和轉(zhuǎn)換工作的意見》,明確要建立學(xué)分銀行體系,將學(xué)習(xí)者在各級(jí)各類教育機(jī)構(gòu)中獲得的不同類型學(xué)習(xí)成果通過學(xué)分銀行進(jìn)行溝通,實(shí)現(xiàn)覆蓋全體民眾內(nèi)在關(guān)聯(lián)性、持續(xù)穩(wěn)定性和階段一致性的終身學(xué)習(xí)體系[1]。在具體實(shí)踐方面,國家開放大學(xué)設(shè)計(jì)、建設(shè)并管理著職業(yè)教育國家學(xué)分銀行和國家開放大學(xué)學(xué)分銀行。其中,職業(yè)教育國家學(xué)分銀行面向參與1+X 證書制度試點(diǎn)的職業(yè)院校、應(yīng)用型本科高校、國家開放大學(xué)、職業(yè)教育培訓(xùn)評(píng)價(jià)組織等教學(xué)機(jī)構(gòu)及其學(xué)習(xí)者,探索開展各類學(xué)習(xí)成果的認(rèn)定、積累和轉(zhuǎn)換工作[2];國家開放大學(xué)學(xué)分銀行面向全國繼續(xù)教育學(xué)習(xí)成果認(rèn)證管理與服務(wù)體系,為各類社會(huì)組織與社會(huì)成員提供學(xué)歷教育、非學(xué)歷教育及其他形式的學(xué)習(xí)成果認(rèn)證、積累與轉(zhuǎn)換服務(wù)[3]。
江浙滬與廣東等地的開放大學(xué)在終身教育理念指導(dǎo)下,相繼建成了各地區(qū)域性終身教育學(xué)分銀行并投入使用,以學(xué)分管理手段為各類社會(huì)學(xué)習(xí)者提供個(gè)性化終身學(xué)習(xí)服務(wù),促進(jìn)非學(xué)歷教育和學(xué)歷教育、職后教育與職前教育間的銜接[4]。此外,一些普通高校也在嘗試建設(shè)區(qū)域高校聯(lián)盟實(shí)現(xiàn)學(xué)習(xí)資源與學(xué)習(xí)成果的互認(rèn)互通[5],部分企事業(yè)單位通過積極參與學(xué)分銀行建設(shè)的方式支持校企共建[6]。但就目前總體情況而言,泛在的非正規(guī)教育、培訓(xùn)機(jī)構(gòu)及相當(dāng)一部分正規(guī)教育機(jī)構(gòu)參與學(xué)分銀行建設(shè)的積極性不高。另一方面,相當(dāng)數(shù)量的學(xué)習(xí)者目前對(duì)學(xué)分銀行的認(rèn)知與認(rèn)可程度不夠,以致其未能主動(dòng)參與學(xué)分銀行建設(shè),學(xué)分銀行項(xiàng)目建設(shè)推進(jìn)速度也不及預(yù)期設(shè)想。
在此背景下,本文從學(xué)分銀行的架構(gòu)方式與運(yùn)行機(jī)制入手,提出在學(xué)分銀行系統(tǒng)的建設(shè)中引入?yún)^(qū)塊鏈技術(shù),通過構(gòu)建扁平化系統(tǒng)打造安全可信的數(shù)據(jù)征信體系,有效實(shí)施第三方監(jiān)管等手段解決學(xué)分銀行發(fā)展過程中遇到的瓶頸,構(gòu)建基于區(qū)塊鏈的學(xué)分銀行技術(shù)模型推動(dòng)項(xiàng)目建設(shè)。
當(dāng)前,各類主流學(xué)分銀行系統(tǒng)的平臺(tái)建設(shè)與管理者多為單一主體,打造的是一個(gè)趨于中心化的系統(tǒng),少數(shù)機(jī)構(gòu)掌控著所有學(xué)習(xí)成果數(shù)據(jù),并且學(xué)習(xí)成果認(rèn)證與學(xué)分轉(zhuǎn)換過程相對(duì)于多數(shù)參與學(xué)分銀行的教育、培訓(xùn)機(jī)構(gòu)并不透明。由此造成掌控系統(tǒng)運(yùn)行的管理者在學(xué)分認(rèn)定、積累、轉(zhuǎn)換等具體業(yè)務(wù)上存在尋租風(fēng)險(xiǎn),難以保證學(xué)分銀行的公信力,內(nèi)生于獨(dú)立自主需求,外顯為終身教育體系中地位平等訴求的規(guī)模有限、話語權(quán)不足、學(xué)習(xí)成果認(rèn)證難度大的教育、培訓(xùn)機(jī)構(gòu)及其他有資質(zhì)授予學(xué)習(xí)成果證書的辦學(xué)主體缺乏參與學(xué)分銀行建設(shè)的能動(dòng)性和積極性,覆蓋終身教育體系的學(xué)分銀行聯(lián)盟尚未形成,學(xué)分轉(zhuǎn)換未被大范圍鋪開[4-7]。
個(gè)人學(xué)習(xí)賬戶與其學(xué)習(xí)記錄數(shù)據(jù)規(guī)模是體現(xiàn)學(xué)分銀行價(jià)值的關(guān)鍵指標(biāo),但目前學(xué)習(xí)者對(duì)學(xué)分銀行的認(rèn)知、認(rèn)可度均存在不足,導(dǎo)致學(xué)生在學(xué)分銀行開設(shè)賬戶與主動(dòng)錄入學(xué)習(xí)成果數(shù)據(jù)的行為較少。
1.2.1 認(rèn)知度
由于各類教育、培訓(xùn)機(jī)構(gòu)仍游離在學(xué)分銀行聯(lián)盟之外,因而缺乏宣傳學(xué)分銀行的動(dòng)力,導(dǎo)致學(xué)習(xí)者對(duì)學(xué)分銀行的認(rèn)知甚少,該部分學(xué)習(xí)者的學(xué)習(xí)數(shù)據(jù)幾乎沒有進(jìn)入學(xué)分銀行系統(tǒng);另一方面即使是已加入各類學(xué)分銀行聯(lián)盟的學(xué)習(xí)機(jī)構(gòu),部分機(jī)構(gòu)對(duì)學(xué)分銀行的管理模式了解與理解程度較低,對(duì)其運(yùn)作目標(biāo)不明確,訴求不清晰,對(duì)學(xué)分銀行的重視程度不足,因而缺少對(duì)學(xué)分銀行的宣傳,導(dǎo)致學(xué)習(xí)者很少主動(dòng)開設(shè)學(xué)分銀行賬戶并錄入學(xué)習(xí)成果數(shù)據(jù),大部分學(xué)分銀行現(xiàn)存的學(xué)習(xí)成果數(shù)據(jù)均由辦學(xué)主體統(tǒng)一錄入[8-9]。學(xué)習(xí)者對(duì)自身學(xué)習(xí)成果主動(dòng)錄入行為的缺失,在很大程度上制約了學(xué)分銀行學(xué)習(xí)者學(xué)習(xí)成果的時(shí)間跨度、空間寬度與形式廣度,未能有效體現(xiàn)學(xué)分銀行在構(gòu)建終身教育服務(wù)體系中的應(yīng)有價(jià)值。
1.2.2 認(rèn)可度
在中心化系統(tǒng)架構(gòu)下,學(xué)分銀行的公平性、公正性尚未優(yōu)化,絕大部分非正規(guī)教育機(jī)構(gòu)、培訓(xùn)機(jī)構(gòu)等均處于學(xué)分銀行邊緣地帶,導(dǎo)致學(xué)習(xí)者的學(xué)習(xí)成果被學(xué)分銀行認(rèn)證的難度較大[10]。同時(shí),由于系統(tǒng)建設(shè)者完全掌控學(xué)習(xí)成果數(shù)據(jù),而成果認(rèn)證與學(xué)分轉(zhuǎn)換過程并不透明,學(xué)習(xí)者對(duì)自身學(xué)習(xí)成果數(shù)據(jù)的掌控力較弱,數(shù)據(jù)私密性無法得到有效保護(hù)。此外,中心化架構(gòu)的學(xué)分銀行數(shù)據(jù)系統(tǒng)對(duì)學(xué)習(xí)成果的長期有效性保障度不高,數(shù)據(jù)生態(tài)略顯薄弱。當(dāng)前學(xué)分銀行的框架模式尚未真正被學(xué)習(xí)者接受與認(rèn)可,難以促使其積極主動(dòng)地開設(shè)個(gè)人學(xué)習(xí)賬戶、錄入學(xué)習(xí)成果。
學(xué)分銀行應(yīng)從時(shí)間和空間維度打通學(xué)習(xí)者在各時(shí)間點(diǎn)、學(xué)習(xí)場域中所獲學(xué)習(xí)成果間的互認(rèn)壁壘,因此需審核學(xué)習(xí)成果數(shù)據(jù)數(shù)量龐大、類型復(fù)雜。目前,職業(yè)教育國家學(xué)分銀行采取第三方平臺(tái)校驗(yàn)與人工校驗(yàn)兩種方式進(jìn)行學(xué)習(xí)成果認(rèn)證,國家開放大學(xué)學(xué)分銀行與區(qū)域性終身教育學(xué)分銀行采用網(wǎng)點(diǎn)初審、分中心復(fù)審、管理中心終審的3級(jí)審核機(jī)制認(rèn)證學(xué)習(xí)成果。然而,以上學(xué)習(xí)成果認(rèn)證方式均存在步驟多、時(shí)間與人力成本高等問題[10-11]。為此,本文分析得出當(dāng)前學(xué)分銀行成果審核難度大、效率低的根本原因是學(xué)分銀行系統(tǒng)的管理者與學(xué)習(xí)場所間存在較大溝壑,雙方并無直接業(yè)務(wù)聯(lián)系,學(xué)分銀行的管理者難以辨別學(xué)習(xí)成果的真?zhèn)渭皟r(jià)值。因此,學(xué)分銀行管理者需建立更多更貼近學(xué)習(xí)者的成果認(rèn)證渠道,在分擔(dān)工作量的前提下提高成果認(rèn)證準(zhǔn)確率。綜上,目前學(xué)分銀行學(xué)習(xí)成果數(shù)據(jù)的認(rèn)證方式在很大程度上制約著學(xué)分銀行系統(tǒng)的運(yùn)行效率,需探索一種更好的數(shù)據(jù)審核機(jī)制解決該問題。
目前,學(xué)分銀行系統(tǒng)的建設(shè)尚無統(tǒng)一技術(shù)標(biāo)準(zhǔn),不同單位建設(shè)的學(xué)分銀行采用各自技術(shù)框架和數(shù)據(jù)結(jié)構(gòu),服務(wù)各自的學(xué)分銀行聯(lián)盟,組織間缺乏溝通,甚至存在競爭關(guān)系,同時(shí)國家層面學(xué)分銀行與區(qū)域?qū)W分銀行間的融通也缺乏經(jīng)驗(yàn)積累與實(shí)踐[12]。由此造成各類不同主體建設(shè)的學(xué)分銀行間接口標(biāo)準(zhǔn)不統(tǒng)一,系統(tǒng)對(duì)接難度大,加大了學(xué)習(xí)者在不同學(xué)習(xí)場域獲得學(xué)習(xí)成果間的互通互認(rèn)難度,學(xué)分銀行服務(wù)終身學(xué)習(xí)的初心使命并未真正實(shí)現(xiàn)。
監(jiān)管的有效實(shí)施是保證學(xué)習(xí)成果認(rèn)證、學(xué)分轉(zhuǎn)換的公平公正和解決糾紛的重要手段,亦是保障學(xué)分銀行公信力提升用戶對(duì)學(xué)分銀行認(rèn)可度的有效途徑。目前,學(xué)分銀行監(jiān)管基本為教育職能部門提供指導(dǎo)意見,學(xué)分銀行的建設(shè)運(yùn)維主體具體組織與實(shí)施監(jiān)管的方式[2,13]。其中,學(xué)分銀行的建設(shè)運(yùn)維主體通常是學(xué)分銀行項(xiàng)目的重要參與者,從而出現(xiàn)了學(xué)分銀行的運(yùn)動(dòng)員、教練員、裁判員重合的局面,影響了學(xué)分銀行的公信力。為此,引入獨(dú)立的第三方監(jiān)管機(jī)構(gòu)保證學(xué)分認(rèn)定、轉(zhuǎn)換實(shí)施過程的公正公平,對(duì)于終身教育類、高等教育類學(xué)分銀行而言至關(guān)重要[14-15]。國外學(xué)分銀行的建設(shè)也注意到了這一點(diǎn),例如韓國學(xué)分銀行主管機(jī)構(gòu)教育開發(fā)研究院是一個(gè)財(cái)團(tuán)法人,與學(xué)分銀行的參與成員不存在任何直接利益關(guān)聯(lián),通過完全獨(dú)立的第三方機(jī)構(gòu)保障學(xué)分銀行的專業(yè)性與權(quán)威性。
區(qū)塊鏈?zhǔn)且环N利用鏈?zhǔn)綌?shù)據(jù)結(jié)構(gòu)冗余存儲(chǔ)數(shù)據(jù),依托共識(shí)算法生成與更新數(shù)據(jù),賦予數(shù)據(jù)不可篡改特性,以密碼學(xué)方式確保數(shù)據(jù)的安全傳輸與訪問,采用智能合約實(shí)現(xiàn)功能與操作數(shù)據(jù)的分布式基礎(chǔ)架構(gòu)與計(jì)算范式,并且依照去中性化程度分為公有鏈、私有鏈和聯(lián)盟鏈。其中,各類虛擬貨幣是公有鏈的主要應(yīng)用場景,公有鏈?zhǔn)且环N完全去中心化的拓?fù)浼軜?gòu),任何客戶端均可接入網(wǎng)絡(luò)貢獻(xiàn)自身算力,發(fā)送自己的交易,系統(tǒng)將按照約定的共識(shí)規(guī)則自動(dòng)運(yùn)行,以鏈?zhǔn)浇Y(jié)構(gòu)將生成的數(shù)據(jù)記錄冗余存儲(chǔ)在客戶端,但由于系統(tǒng)的高度開放性和基于工作量的POW 共識(shí)機(jī)制,導(dǎo)致公有鏈出塊速度慢,運(yùn)行效率較低;私有鏈僅采用區(qū)塊鏈方式進(jìn)行數(shù)據(jù)存儲(chǔ)與記賬,相較于傳統(tǒng)分布式存儲(chǔ)系統(tǒng)并無太多區(qū)別,應(yīng)用場景有待探索;聯(lián)盟鏈?zhǔn)且环N帶有權(quán)限管理的區(qū)塊鏈,客戶端需要持有證書才能接入系統(tǒng)發(fā)起或參與交易,系統(tǒng)通過某個(gè)群體內(nèi)部預(yù)設(shè)的節(jié)點(diǎn)完成交易共識(shí)產(chǎn)生數(shù)據(jù)區(qū)塊,并在相應(yīng)節(jié)點(diǎn)完成記賬。聯(lián)盟鏈的開放性低于公有鏈,但共識(shí)算法較靈活,出塊速度和系統(tǒng)運(yùn)行效率高于公有鏈,兼具了公有鏈的數(shù)據(jù)安全可靠、不可篡改、可追溯特性,因此在金融、教育、供應(yīng)鏈、物流、版權(quán)管理等領(lǐng)域廣泛應(yīng)用[16-18]。為此,本文將開始討論基于聯(lián)盟鏈技術(shù)Hyperledger Fabric 的學(xué)分銀行系統(tǒng)建設(shè)。
Hyperledger(超級(jí)賬本)項(xiàng)目是目前主流的聯(lián)盟鏈技術(shù)之一,F(xiàn)abric 是Hyperledger 最重要的項(xiàng)目,主要架構(gòu)由權(quán)限管理模塊、區(qū)塊鏈網(wǎng)絡(luò)、鏈碼和賬本4 部分組成[19]。Hyperledger Fabric 社區(qū)致力于打造一個(gè)“新型協(xié)作網(wǎng)絡(luò)”,為分散的不同組織提供一個(gè)平等的分布式網(wǎng)絡(luò)平臺(tái),實(shí)現(xiàn)業(yè)務(wù)的流轉(zhuǎn)與數(shù)據(jù)共享。
2.2.1 權(quán)限管理模塊
權(quán)限管理模塊功能依托獨(dú)立的Fabric-CA 服務(wù)實(shí)現(xiàn),該模塊為Fabric 網(wǎng)絡(luò)準(zhǔn)入機(jī)制,是區(qū)別于公有鏈的重要特征。具體的,權(quán)限管理模塊為系統(tǒng)節(jié)點(diǎn)、管理員、用戶等網(wǎng)絡(luò)各類成員發(fā)放證書和秘鑰,其中證書、秘鑰為節(jié)點(diǎn)與用戶接入網(wǎng)絡(luò)、參與交易的必要身份證明。
2.2.2 區(qū)塊鏈網(wǎng)絡(luò)
Fabric 區(qū)塊鏈網(wǎng)絡(luò)以通道方式運(yùn)行,每個(gè)通道由若干分布式節(jié)點(diǎn)構(gòu)成,每個(gè)節(jié)點(diǎn)可加入若干個(gè)不同通道,通道間相互隔離,確保每個(gè)通道聯(lián)盟間數(shù)據(jù)的私密性。交易是通道中功能實(shí)現(xiàn)與數(shù)據(jù)流轉(zhuǎn)的方式,共識(shí)機(jī)制保證交易經(jīng)過特定成員節(jié)點(diǎn)驗(yàn)證與認(rèn)可。共識(shí)機(jī)制由背書策略與排序服務(wù)兩個(gè)主要模塊構(gòu)成,其中背書策略決定交易需要經(jīng)過哪些特定節(jié)點(diǎn)認(rèn)證;排序服務(wù)保障分布式節(jié)點(diǎn)賬本數(shù)據(jù)的一致性。
2.2.3 鏈碼
鏈碼即Fabric 中的智能合約,實(shí)現(xiàn)各項(xiàng)功能的可編程模塊,分為系統(tǒng)鏈碼與用戶鏈碼兩類,支持多種高級(jí)語言。
2.2.4 賬本
賬本為Fabric 網(wǎng)絡(luò)數(shù)據(jù)庫,分為區(qū)塊賬本和狀態(tài)數(shù)據(jù)庫。其中,區(qū)塊賬本以區(qū)塊鏈文件存儲(chǔ)交易產(chǎn)生的數(shù)據(jù)區(qū)塊,無法被篡改;狀態(tài)數(shù)據(jù)庫保存系統(tǒng)數(shù)據(jù)最新值,程序可直接訪問狀態(tài)數(shù)據(jù)庫的數(shù)據(jù)信息,無需遍歷所有交易日志,以提高數(shù)據(jù)訪問和系統(tǒng)運(yùn)行效率,且可修改狀態(tài)數(shù)據(jù)庫。此外,通過Fabric 網(wǎng)絡(luò)的交易記賬實(shí)現(xiàn)賬本數(shù)據(jù)的產(chǎn)生與更新。
學(xué)分銀行建設(shè)運(yùn)維主體基于Fabric 技術(shù),通過架構(gòu)區(qū)塊鏈網(wǎng)絡(luò)設(shè)置準(zhǔn)入機(jī)制,設(shè)計(jì)學(xué)習(xí)成果認(rèn)證與學(xué)分轉(zhuǎn)換的智能合約等工作,打造一個(gè)具有良好開放性與可擴(kuò)展性的學(xué)分銀行系統(tǒng)基礎(chǔ)設(shè)施。在此基礎(chǔ)設(shè)施上,泛在的教育、培訓(xùn)機(jī)構(gòu)及其他有資質(zhì)授予學(xué)習(xí)成果證書的辦學(xué)主體在獲得準(zhǔn)入許可后,通過自有服務(wù)器接入學(xué)分銀行系統(tǒng),以分布式節(jié)點(diǎn)形式成為學(xué)分銀行系統(tǒng)的聯(lián)盟成員,構(gòu)建一個(gè)扁平化的學(xué)分銀行系統(tǒng)。
基于區(qū)塊鏈技術(shù)架構(gòu)的扁平化學(xué)分銀行系統(tǒng)具備以下兩點(diǎn)顯著優(yōu)勢。利用分布式賬本的冗余存儲(chǔ)機(jī)制,節(jié)點(diǎn)成員可獲取完整的賬本數(shù)據(jù),查看學(xué)習(xí)成果認(rèn)證與學(xué)分轉(zhuǎn)換過程及相應(yīng)的認(rèn)證轉(zhuǎn)換標(biāo)準(zhǔn)與方法,打通了數(shù)據(jù)共享壁壘,有效解決了中心化學(xué)分銀行系統(tǒng)中因?qū)W習(xí)成果認(rèn)定與學(xué)分轉(zhuǎn)換過程中透明度不夠而造成的學(xué)分銀行公信力不足的問題;Fabric 的分布式計(jì)算框架和數(shù)據(jù)集體維護(hù)機(jī)制使系統(tǒng)成員在學(xué)分銀行體系中的地位與權(quán)限趨向于均衡,系統(tǒng)成員既是信息的提供者,又是信息的驗(yàn)證者,從而有效激發(fā)不同主體參與系統(tǒng)建設(shè)的積極性,一旦辦學(xué)機(jī)構(gòu)成為學(xué)分銀行聯(lián)盟成員,將必然對(duì)學(xué)員大力宣傳學(xué)分銀行,從而提高學(xué)習(xí)者對(duì)學(xué)分銀行的認(rèn)知度。
利用區(qū)塊鏈技術(shù)打造一個(gè)安全可信的數(shù)據(jù)征信體系,解決用戶對(duì)學(xué)分銀行系統(tǒng)認(rèn)可度不高的問題,推動(dòng)學(xué)習(xí)者開設(shè)個(gè)人賬戶和主動(dòng)錄入學(xué)習(xí)成果。首先,在基于區(qū)塊鏈技術(shù)架構(gòu)的數(shù)據(jù)系統(tǒng)中,將用戶提交的學(xué)習(xí)成果數(shù)據(jù)經(jīng)過認(rèn)證上鏈后作為區(qū)塊數(shù)據(jù)的一部分,永久保存在區(qū)塊鏈。由于區(qū)塊鏈會(huì)在各節(jié)點(diǎn)冗余存儲(chǔ),即使部分節(jié)點(diǎn)宕機(jī)也不會(huì)造成數(shù)據(jù)缺失,因此龐大的區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)能在時(shí)間、空間維度上有效提升系統(tǒng)數(shù)據(jù)的健壯性、安全性和長期有效性。然后,區(qū)塊數(shù)據(jù)的鏈?zhǔn)浇Y(jié)構(gòu)和哈希加密算法使區(qū)塊賬本中的交易信息無法被修改,保證了系統(tǒng)數(shù)據(jù)的可靠性。接下來,學(xué)分銀行聯(lián)盟的節(jié)點(diǎn)成員通過本地服務(wù)器存儲(chǔ)的系統(tǒng)賬本數(shù)據(jù)查詢系統(tǒng)中學(xué)習(xí)成果認(rèn)證與學(xué)分轉(zhuǎn)換過程與結(jié)果,為學(xué)習(xí)者提供透明數(shù)據(jù),使其充分掌握自身學(xué)習(xí)成果,保障學(xué)習(xí)者的應(yīng)有權(quán)益。最后,F(xiàn)abric 私密數(shù)據(jù)庫與數(shù)據(jù)加密保護(hù)技術(shù)能滿足用戶數(shù)據(jù)私密性需求,利用Fabric 提供的私密數(shù)據(jù)庫技術(shù),通道內(nèi)若干個(gè)學(xué)分銀行聯(lián)盟成員可構(gòu)建集合(Collection),學(xué)習(xí)成果數(shù)據(jù)只在集合策略指定的成員間分發(fā)與共享,在通道賬本上僅記錄私密數(shù)據(jù)的摘要,在通道隔離性基礎(chǔ)上實(shí)現(xiàn)更細(xì)粒度的用戶數(shù)據(jù)隱私控制。Fabric 數(shù)據(jù)加密保護(hù)技術(shù)則允許用戶在鏈外對(duì)上鏈數(shù)據(jù)進(jìn)行對(duì)稱或非對(duì)稱加密,鏈上其他用戶和節(jié)點(diǎn)只有獲得相關(guān)秘鑰才能讀取數(shù)據(jù)源文,用戶通過秘鑰管理即可有效保護(hù)自身學(xué)習(xí)成果數(shù)據(jù)的私密性。
智能合約是高效實(shí)現(xiàn)學(xué)習(xí)成果認(rèn)證、學(xué)分轉(zhuǎn)換等學(xué)分銀行功能模塊的關(guān)鍵技術(shù)。本文以學(xué)習(xí)成果認(rèn)證功能模塊為例,智能合約在獲取到待認(rèn)證學(xué)習(xí)成果信息后,嚴(yán)格依照學(xué)習(xí)成果認(rèn)證與學(xué)分轉(zhuǎn)換標(biāo)準(zhǔn)文件核驗(yàn)待認(rèn)證學(xué)習(xí)成果的完整性、合規(guī)性與有效性。若通過核驗(yàn),則對(duì)該項(xiàng)學(xué)習(xí)成果的類別(學(xué)歷教育成果、非學(xué)歷教育成果、非定式學(xué)習(xí)成果等)、形式(畢業(yè)證書、培訓(xùn)證書、獲獎(jiǎng)證書等)、領(lǐng)域(學(xué)科、門類、專業(yè))進(jìn)行劃分,評(píng)定該項(xiàng)學(xué)習(xí)成果的學(xué)分轉(zhuǎn)換價(jià)值,最后生成上鏈數(shù)據(jù)。智能合約根據(jù)需求部署在學(xué)分銀行區(qū)塊鏈網(wǎng)絡(luò)成員節(jié)點(diǎn)的服務(wù)器,用戶向?qū)W分銀行系統(tǒng)發(fā)起各項(xiàng)交易申請(qǐng),由學(xué)分銀行系統(tǒng)調(diào)用智能合約自動(dòng)執(zhí)行,有效保障系統(tǒng)運(yùn)維效率。同時(shí),以背書策略指定執(zhí)行智能合約系統(tǒng)節(jié)點(diǎn),以節(jié)點(diǎn)背書簽名證明該節(jié)點(diǎn)同意智能合約的執(zhí)行結(jié)果。原則上每一項(xiàng)用戶提交的學(xué)習(xí)成果認(rèn)證申請(qǐng),均由此項(xiàng)學(xué)習(xí)成果的機(jī)構(gòu)作為背書成員之一完成背書簽名,以此作為處理糾紛的一項(xiàng)重要憑證。綜上,智能合約、背書策略和背書簽名共同構(gòu)建起學(xué)習(xí)成果記錄上鏈前的認(rèn)證體系。
一方面,依托區(qū)塊鏈網(wǎng)絡(luò)的可擴(kuò)展性,當(dāng)潛在的學(xué)分銀行聯(lián)盟成員單位獲得準(zhǔn)入許可后,可在任意時(shí)間加入學(xué)分銀行,體現(xiàn)了學(xué)分銀行系統(tǒng)的開放性、靈活性、公平性。另一方面,利用Fabric 技術(shù)通道隔離機(jī)制,當(dāng)訴求、所處體系不同等原因而相對(duì)獨(dú)立的教育聯(lián)盟,可在區(qū)塊鏈網(wǎng)絡(luò)平臺(tái)上暫時(shí)以相對(duì)獨(dú)立的方式構(gòu)建各自的學(xué)分銀行聯(lián)盟,并自主運(yùn)行其學(xué)分銀行系統(tǒng),待時(shí)機(jī)成熟,例如在不同學(xué)分銀行間建立起統(tǒng)一的學(xué)習(xí)成果認(rèn)證與學(xué)分轉(zhuǎn)換標(biāo)準(zhǔn)后,利用同一基礎(chǔ)設(shè)施運(yùn)行各學(xué)分銀行系統(tǒng),以便于開展系統(tǒng)對(duì)接與數(shù)據(jù)整合,解決當(dāng)前學(xué)分銀行系統(tǒng)未存在統(tǒng)一的技術(shù)標(biāo)準(zhǔn)和數(shù)據(jù)結(jié)構(gòu),而導(dǎo)致不同學(xué)分銀行系統(tǒng)間整合難度大的問題,從而有效推動(dòng)學(xué)分銀行一體化建設(shè),真正實(shí)現(xiàn)學(xué)分銀行服務(wù)終身教育的初心使命。
設(shè)置學(xué)分銀行建設(shè)運(yùn)維主體與參與成員外的第三方獨(dú)立監(jiān)管機(jī)構(gòu)。監(jiān)管機(jī)構(gòu)同學(xué)分銀行聯(lián)盟成員一樣,通過自有服務(wù)器接入學(xué)分銀行系統(tǒng),作為其中的一個(gè)節(jié)點(diǎn)成員,以此獲取系統(tǒng)運(yùn)行數(shù)據(jù)。在學(xué)習(xí)成果認(rèn)證或?qū)W分轉(zhuǎn)換過程出現(xiàn)爭議時(shí),監(jiān)管機(jī)構(gòu)通過節(jié)點(diǎn)賬本直接查詢交易過程的原始數(shù)據(jù)進(jìn)行判定,無需向?qū)W分銀行系統(tǒng)運(yùn)維者索要交易數(shù)據(jù),從而解決時(shí)間和人力成本耗費(fèi)較大的問題,并且直接獲取的數(shù)據(jù)可信度更高,更具有說服力。甚至,第三方監(jiān)管機(jī)構(gòu)可采取事中介入方式直接參與交易背書,通過背書簽名認(rèn)證交易,提升監(jiān)管水平與效率。
職業(yè)院校、普通高校、開放大學(xué)、培訓(xùn)機(jī)構(gòu)、其他有資質(zhì)的辦學(xué)主體等學(xué)分銀行聯(lián)盟的成員及監(jiān)管機(jī)構(gòu)可單獨(dú)作為一個(gè)組織(Org),也可將若干個(gè)聯(lián)系密切或類型相似的成員共同組成一個(gè)組織,在獲得證書管理系統(tǒng)授權(quán)后利用本地服務(wù)器接入Fabric 網(wǎng)絡(luò),共同架構(gòu)形成一個(gè)扁平化的學(xué)分銀行系統(tǒng)。組織是承擔(dān)數(shù)據(jù)信用責(zé)任的主體,由若干個(gè)區(qū)塊鏈節(jié)點(diǎn)構(gòu)成,智能合約需要安裝在相應(yīng)的組織節(jié)點(diǎn)上。不同類型的組織節(jié)點(diǎn)分工協(xié)作:主節(jié)點(diǎn)負(fù)責(zé)與排序服務(wù)通信,從排序服務(wù)節(jié)點(diǎn)獲取最新的區(qū)塊并在組織內(nèi)部各節(jié)點(diǎn)同步數(shù)據(jù);錨節(jié)點(diǎn)負(fù)責(zé)與其他組織通信;背書節(jié)點(diǎn)則參與交易的驗(yàn)證與背書,共同完成該組織的治理。同時(shí),組織的每個(gè)節(jié)點(diǎn)均為記賬節(jié)點(diǎn),負(fù)責(zé)系統(tǒng)數(shù)據(jù)庫的冗余存儲(chǔ)。圖1 是以職業(yè)院校A、B,開放大學(xué)C,培訓(xùn)機(jī)構(gòu)D共4 個(gè)聯(lián)盟成員,會(huì)同監(jiān)管機(jī)構(gòu)E,架構(gòu)的學(xué)分銀行區(qū)塊鏈層的拓?fù)浣Y(jié)構(gòu)圖。
Fig.1 Topological structure of credit bank's blockchain layer圖1 學(xué)分銀行區(qū)塊鏈層拓?fù)浣Y(jié)構(gòu)
在完整的學(xué)分銀行系統(tǒng)中,區(qū)塊鏈位于系統(tǒng)數(shù)據(jù)層和網(wǎng)絡(luò)層,由各聯(lián)盟成員的節(jié)點(diǎn)服務(wù)器、智能合約和排序服務(wù)等軟硬件設(shè)施組成,實(shí)現(xiàn)系統(tǒng)數(shù)據(jù)分布式存儲(chǔ)、學(xué)習(xí)成果的有效性認(rèn)證、學(xué)習(xí)成果與學(xué)分的對(duì)應(yīng)轉(zhuǎn)換等關(guān)鍵功能。在區(qū)塊鏈層上設(shè)計(jì)交互層和應(yīng)用層,交互層主要依托Fabric SDK go 實(shí)現(xiàn)應(yīng)用層與區(qū)塊鏈層間的數(shù)據(jù)交互與功能控制,應(yīng)用層直接面向?qū)W分銀行聯(lián)盟成員、泛在的個(gè)人學(xué)習(xí)者及監(jiān)管機(jī)構(gòu)的服務(wù)窗口,交互層和應(yīng)用層共同組成客戶端與區(qū)塊鏈網(wǎng)絡(luò)實(shí)施交互的應(yīng)用程序。圖2 為完整的基于區(qū)塊鏈的學(xué)分銀行系統(tǒng)模型。
Fig.2 Credit bank system model based on blockchain圖2 基于區(qū)塊鏈的學(xué)分銀行系統(tǒng)模型
4.2.1 數(shù)據(jù)存儲(chǔ)體系設(shè)計(jì)
利用CouchDB 數(shù)據(jù)庫與區(qū)塊鏈文件共同構(gòu)建學(xué)分銀行系統(tǒng)的數(shù)據(jù)存儲(chǔ)體系(即賬本)如圖3 所示。其中,狀態(tài)數(shù)據(jù)庫以{Key=[鍵碼],Value=[鍵值]}形式存儲(chǔ)學(xué)分銀行中各類數(shù)據(jù)信息的最新狀態(tài)值,區(qū)塊鏈文件記錄系統(tǒng)產(chǎn)生的所有交易。在狀態(tài)數(shù)據(jù)庫和區(qū)塊鏈文件外,采用LevelDB 建立歷史索引數(shù)據(jù)庫,以特殊鍵碼形式(鍵碼+區(qū)塊編號(hào)+交易編號(hào))記錄鍵值對(duì)信息在何區(qū)塊的哪條交易中被改變,以便于進(jìn)行交易溯源。
Fig.3 Ledger of credit bank system圖3 學(xué)分銀行系統(tǒng)賬本
區(qū)塊鏈文件是學(xué)分銀行數(shù)據(jù)存儲(chǔ)體系的核心,B1、B2、B3 代表學(xué)分銀行系統(tǒng)區(qū)塊鏈文件的3 個(gè)區(qū)塊,其數(shù)據(jù)結(jié)構(gòu)如圖4所示。
Fig.4 Data structure of blockchain file圖4 區(qū)塊鏈文件數(shù)據(jù)結(jié)構(gòu)
其中,B2 區(qū)塊的上一區(qū)塊哈希值HASH-D1 指向上一區(qū)塊B1 的當(dāng)前區(qū)塊哈希值HASH-D1,B3 區(qū)塊的上一區(qū)塊哈希值HASH-D2 指向上一區(qū)塊B2 的當(dāng)前區(qū)塊哈希值HASH-D2,以此形成區(qū)塊鏈。每個(gè)區(qū)塊中當(dāng)前區(qū)塊哈希值由此區(qū)塊中的所有交易數(shù)據(jù)經(jīng)過HASH 運(yùn)算生成,區(qū)塊中的交易存儲(chǔ)著系統(tǒng)用戶各項(xiàng)操作的過程與結(jié)果數(shù)據(jù)。哈希值的敏感性使得篡改區(qū)塊中的任意一項(xiàng)交易數(shù)據(jù)的內(nèi)容,將會(huì)顯著改變?cè)搮^(qū)塊的HASH 值?;趨^(qū)塊鏈的冗余存儲(chǔ)和共識(shí)機(jī)制,非法篡改任一節(jié)點(diǎn)交易的行為會(huì)被其他節(jié)點(diǎn)發(fā)現(xiàn)并否定,以此保障學(xué)分銀行數(shù)據(jù)存儲(chǔ)體系的安全、健壯與可信。
4.2.2 數(shù)據(jù)加密體系設(shè)計(jì)
采用簽名密鑰對(duì)、加密密鑰對(duì)分離的雙密鑰對(duì)形式實(shí)現(xiàn)用戶交易的簽名認(rèn)證與數(shù)據(jù)隱私保護(hù)。用戶在發(fā)起交易前,必須使用簽名私鑰完成交易提案簽名,作為自身發(fā)起交易的證明也是交易不可抵賴的關(guān)鍵證據(jù)。對(duì)于私密性要求較高的學(xué)習(xí)成果數(shù)據(jù),用戶在提交交易申請(qǐng)前可使用加密公鑰對(duì)交易數(shù)據(jù)進(jìn)行加密,然后通過安全信道將加密私鑰發(fā)送至特定的信息需求方,例如背書節(jié)點(diǎn)、監(jiān)管節(jié)點(diǎn),對(duì)于未獲得加密私鑰的其他網(wǎng)絡(luò)節(jié)點(diǎn),數(shù)據(jù)將是不可見的,以此實(shí)現(xiàn)學(xué)習(xí)成果數(shù)據(jù)的私密性管理。
設(shè)計(jì)學(xué)分銀行系統(tǒng)智能合約的偽代碼如下:
定義學(xué)分銀行智能合約{
1.導(dǎo)入Fabric 的相關(guān)軟件包;
2.定義智能合約結(jié)構(gòu),實(shí)現(xiàn)Init()和Invoke()接口;
3.定義學(xué)習(xí)成果記錄數(shù)據(jù)結(jié)構(gòu);
Key:學(xué)習(xí)成果ID,
Value:{
學(xué)習(xí)成果登記信息:[學(xué)習(xí)成果ID:“ ”,成果擁有者:“ ”,成果名稱:“ ”,成果內(nèi)容:“ ”,成果登記時(shí)間:“ ”,登記操作申請(qǐng)人:“ ”],
學(xué)習(xí)成果認(rèn)證信息:[學(xué)習(xí)成果ID:“ ”,成果認(rèn)證結(jié)果:“ ”,成果認(rèn)證時(shí)間:“ ”,認(rèn)證操作申請(qǐng)人:“ ”],
學(xué)分轉(zhuǎn)換信息:[學(xué)習(xí)成果ID:“ ”,學(xué)分轉(zhuǎn)換結(jié)果:“ ”,學(xué)分轉(zhuǎn)換時(shí)間:“ ”,學(xué)分轉(zhuǎn)換申請(qǐng)人:“ ”]}
4.定義智能合約各模塊算法;
學(xué)習(xí)成果登記算法{調(diào)用PutState()函數(shù)寫入學(xué)習(xí)成果數(shù)據(jù)}
學(xué)習(xí)成果認(rèn)證算法{①根據(jù)學(xué)習(xí)成果ID 查詢學(xué)習(xí)成果登記數(shù)據(jù)②認(rèn)證登記數(shù)據(jù)}
學(xué)分轉(zhuǎn)換算法{①根據(jù)學(xué)習(xí)成果ID 查詢學(xué)習(xí)成果認(rèn)證數(shù)據(jù)②轉(zhuǎn)換學(xué)分}
交易溯源算法{調(diào)用GetHistoryForKey()函數(shù)讀取符合條件的區(qū)塊鏈文件上的交易信息}
5.定義智能合約入口函數(shù)main();
創(chuàng)建智能合約實(shí)例,執(zhí)行Init()或Invoke()接口}
其中,Init()和Invoke()方法是智能合約必須實(shí)現(xiàn)的接口,Init()僅在智能合約實(shí)例化時(shí)執(zhí)行完成智能合約的初始化邏輯,Invoke()是實(shí)現(xiàn)學(xué)分銀行系統(tǒng)各項(xiàng)業(yè)務(wù)邏輯的關(guān)鍵方法,例如應(yīng)用程序傳入的參數(shù)為(學(xué)習(xí)成果ID,學(xué)習(xí)成果認(rèn)證算法名稱),Invoke 接口調(diào)用學(xué)習(xí)成果認(rèn)證算法模塊,進(jìn)行編號(hào)為學(xué)習(xí)成果ID 的學(xué)習(xí)成果記錄進(jìn)行認(rèn)證。入口函數(shù)main()為應(yīng)用程序與智能合約的接口,學(xué)習(xí)成果記錄是學(xué)分銀行系統(tǒng)的核心數(shù)據(jù),數(shù)據(jù)結(jié)構(gòu)定義為[Key=key,Value={json表達(dá)式}]以適應(yīng)CouchDB 數(shù)據(jù)庫。
學(xué)分銀行系統(tǒng)的各功能模塊均以交易方式實(shí)現(xiàn)。本文以用戶A 的某張X 證書的認(rèn)證交易為例(用戶A 為職業(yè)院校B 的學(xué)生,X 證書由培訓(xùn)機(jī)構(gòu)D 頒發(fā)),構(gòu)建交易流程如圖5所示。
Fig.5 Transaction execution flow圖5 交易執(zhí)行流程
鑒于學(xué)習(xí)成果X 證書的持有者來自職業(yè)院校B,X 證書的頒發(fā)機(jī)構(gòu)為培訓(xùn)機(jī)構(gòu)D,此項(xiàng)認(rèn)證交易的背書策略設(shè)計(jì)為AND(Org1.職業(yè)院校B,Org3.培訓(xùn)機(jī)構(gòu)D),即職業(yè)院校B 和X 證書的頒發(fā)者培訓(xùn)機(jī)構(gòu)D 必須對(duì)該項(xiàng)交易進(jìn)行背書與簽名,背書策略由應(yīng)用程序生成。
此外,應(yīng)用程序在整個(gè)交易過程中還承擔(dān)接收用戶的操作申請(qǐng)、構(gòu)造交易提案、按照背書策略發(fā)送背書請(qǐng)求、接收與驗(yàn)證背書結(jié)果、構(gòu)造與發(fā)送正式交易、向用戶返回交易結(jié)果等任務(wù)。
交易溯源是實(shí)施有效監(jiān)管的關(guān)鍵環(huán)節(jié),系統(tǒng)的交易溯源功能模塊依托智能合約的交易溯源算法實(shí)現(xiàn)。其中,GetHistoryForKey 是交易溯源算法的核心函數(shù),圖6 為GetHistoryForKey 函數(shù)從區(qū)塊鏈文件中查找所有包含鍵碼Key 的交易記錄執(zhí)行流程,參數(shù)Key 由應(yīng)用程序傳入交易溯源算法。
Fig.6 Execution flowchart of function GetHistoryForKey圖6 GetHistoryForKey函數(shù)執(zhí)行流程
例如,圖4 中用戶A 的X 證書經(jīng)歷了登記、認(rèn)證和學(xué)分轉(zhuǎn)換3 次交易,在歷史索引數(shù)據(jù)庫中會(huì)記錄3 個(gè)索引Key值,分別為X 證書ID+B1+T1、X 證書ID+B2+T4 和X 證書ID+B3+T7,GetHistoryForKey 函數(shù)會(huì)根據(jù)參數(shù)X 證書ID 在歷史索引數(shù)據(jù)庫中尋找這3 個(gè)索引Key 值,并通過值從區(qū)塊鏈文件中讀取T1、T4 和T7 的交易內(nèi)容、交易時(shí)間戳等具體信息,返回給應(yīng)用程序?qū)崿F(xiàn)交易溯源。
此外,溯源交易與學(xué)習(xí)成果登記、認(rèn)證與學(xué)分轉(zhuǎn)換交易的執(zhí)行流程也存在不同,由于溯源交易不產(chǎn)生數(shù)據(jù)更新,導(dǎo)致應(yīng)用程序不會(huì)生成正式交易,溯源過程也不會(huì)記錄區(qū)塊,應(yīng)用程序在接收背書節(jié)點(diǎn)返回的背書結(jié)果后將溯源信息返回給用戶,代表著該交易結(jié)束。
本文針對(duì)當(dāng)前學(xué)分銀行發(fā)展過程中遇到的瓶頸與難點(diǎn),提出利用區(qū)塊鏈分布式計(jì)算框架、數(shù)據(jù)不可篡改等技術(shù)特性助力學(xué)分銀行系統(tǒng)建設(shè),推動(dòng)規(guī)模有限、利益難以得到保障的辦學(xué)機(jī)構(gòu)積極參與學(xué)分銀行聯(lián)盟,提高學(xué)習(xí)者對(duì)學(xué)分銀行的認(rèn)知度與接納度,以此拓展學(xué)分銀行的覆蓋面,充實(shí)學(xué)分銀行的數(shù)據(jù)基座。同時(shí),基于Hyperledger Fabric 技術(shù)構(gòu)建基于區(qū)塊鏈的學(xué)分銀行技術(shù)模型,證明通過區(qū)塊鏈技術(shù)構(gòu)建學(xué)分銀行系統(tǒng)的技術(shù)可行性,為學(xué)分銀行的建設(shè)與推進(jìn)提供了一種新思路與可參考的解決方案。