文|駱霄 周義方 解永剛
文章通過對現(xiàn)有各類不同區(qū)塊鏈技術(shù)的研究,將區(qū)塊鏈技術(shù)與高校共識進行了一次結(jié)合,從而設(shè)計了一套基于區(qū)塊鏈的高校共識管理平臺,將高校事務(wù)各環(huán)節(jié)進行區(qū)塊鏈信息保存維護,并對功能和運用場景進行了敘述,理論上提供了一種區(qū)塊鏈在高校場景中的使用案例說明,為高校管理使用區(qū)塊鏈技術(shù)提出了一種方案。
近年來區(qū)塊鏈的應(yīng)用逐漸深入到了各個行業(yè)中,針對教育行業(yè)的研究也逐漸多樣化起來。《中國教育現(xiàn)代化 2035》提出要建立數(shù)字教育資源共建共享機制,完善利益分配機制、知識產(chǎn)權(quán)保護制度和新型教育服務(wù)監(jiān)管制度。區(qū)塊鏈的功能在這樣的背景下也就有了用武之地,隨著區(qū)塊鏈在各行各業(yè)中的應(yīng)用逐漸增大,“區(qū)塊鏈+”模型也成為現(xiàn)今主流的模型之一。隨著區(qū)塊鏈技術(shù)研究與應(yīng)用的增多,2013年開始出現(xiàn)區(qū)塊鏈技術(shù)與教育行業(yè)的融合。
區(qū)塊鏈技術(shù)隨著版本的迭代更新,從最初的1.0的數(shù)字貨幣應(yīng)用,到區(qū)塊鏈2.0就是對整個市場的去中心化,利用區(qū)塊鏈技術(shù)來轉(zhuǎn)換許多不同的資產(chǎn)。
而后區(qū)塊鏈3.0是價值互聯(lián)網(wǎng)的內(nèi)核。區(qū)塊鏈能夠?qū)τ诿恳粋€互聯(lián)網(wǎng)中代表價值的信息和字節(jié)進行產(chǎn)權(quán)確認(rèn)、計量和存儲,從而實現(xiàn)資產(chǎn)在區(qū)塊鏈上可被追蹤、控制和交易。
后期崛起的區(qū)塊鏈4.0和5.0在概念上有了大幅的提升,各行各業(yè)融合區(qū)塊鏈所蘊含的開放、共享、協(xié)同、互利等技術(shù)理念,在一定程度上實現(xiàn)了產(chǎn)業(yè)數(shù)據(jù)的集成與技術(shù)應(yīng)用的創(chuàng)新。
區(qū)塊鏈技術(shù)在高校已經(jīng)有了多樣化的實施方案,最具代表性的是伍爾夫大學(xué),2018年開始,該學(xué)校管理就進行了區(qū)塊鏈改造。
清華大學(xué)于2018年6月成立清華x-lab區(qū)塊鏈實驗室,成為是國內(nèi)首個依托高校服務(wù)區(qū)塊鏈方向創(chuàng)業(yè)團隊的加速計劃;2018年7月,清華大學(xué)成立了“行業(yè)可信區(qū)塊鏈應(yīng)用技術(shù)聯(lián)合研究中心”。
在國內(nèi)區(qū)塊鏈領(lǐng)域,浙江大學(xué)是能夠與清華相抗衡的第二勢力。各地方高校在此帶領(lǐng)下,也進入一輪又一輪的區(qū)塊鏈技術(shù)發(fā)展改造中。
一個高校的管理工作紛繁復(fù)雜,主要是為學(xué)生提供相關(guān)的教學(xué)服務(wù)和一些生活保障,服務(wù)主要是管理教學(xué)過程。這樣的服務(wù)基本是通過學(xué)校這個邏輯結(jié)構(gòu),將教師和學(xué)生結(jié)合起來,讓教師通過課程教學(xué)和其他學(xué)生行為管理工作,使學(xué)生達到學(xué)校培養(yǎng)目標(biāo)這樣一個特定結(jié)果的綜合過程。在此過程當(dāng)中,會產(chǎn)生各類信息內(nèi)容,包括過程信息、個人檔案信息、考評數(shù)據(jù)和一些數(shù)據(jù)需求方所需要的證明材料和證書。參與的角色邏輯上包含教師、學(xué)生和數(shù)據(jù)需求方。角色所產(chǎn)生的個體總量來看,相互間的關(guān)系是比較多樣和復(fù)雜的。不同特定角色之間特殊的關(guān)系,可能會演化出多種服務(wù)模式,基礎(chǔ)的模式如圖1所示。

圖1 高校基本信息服務(wù)鏈結(jié)構(gòu)
基于對教師、學(xué)生之間的關(guān)系而產(chǎn)生的多種用例情況,可以分析出基本的系統(tǒng)需要的架構(gòu)模型,這種模型基本可以分為三層,如圖2所示。

圖2 基于區(qū)塊鏈的高校共識管理平臺架構(gòu)圖
第一層為應(yīng)用層,這一層作為網(wǎng)頁和相關(guān)軟件的人機交互使用,可以直接供參與者進行人機交互使用,開發(fā)邏輯分為Web版和終端版兩個,Web版可以實現(xiàn)多區(qū)域管理,終端版則可以成為桌面應(yīng)用程序而配置到整個終端的服務(wù)中,對相應(yīng)的同步起到自動化的作用。
第二層屬于業(yè)務(wù)層,這一層的功能對應(yīng)用程序的支持服務(wù)、POST和REQUEST的頁面處理、對相關(guān)業(yè)務(wù)邏輯的管理功能的支持,這一部分包含了招生信息管理、教師信息管理、課程信息管理、學(xué)分信息管理、成績信息管理、過程信息管理、評價信息管理、證書信息管理、就業(yè)管理、學(xué)生信息管理和區(qū)塊業(yè)務(wù)鏈接等功能,采用Django的架構(gòu)模型,對綜合服務(wù)數(shù)據(jù)庫進行操作用于綜合服務(wù)業(yè)務(wù)層的基礎(chǔ)業(yè)務(wù)封裝,把區(qū)塊鏈的交互通過封裝達成平衡。
第三層是共識數(shù)據(jù)層,這一層也是區(qū)塊鏈的基礎(chǔ)核心層,是對基本區(qū)塊鏈數(shù)據(jù)庫進行直接操作維護和更新的功能,也作為區(qū)塊鏈合約生成的基礎(chǔ),產(chǎn)生共識區(qū)塊相關(guān)同步數(shù)據(jù)塊,并把相關(guān)數(shù)據(jù)鏈接上不同的區(qū)塊化數(shù)據(jù)。
在各項不同管理業(yè)務(wù)中,區(qū)塊鏈上鏈的邏輯基本是一致的,不同設(shè)計只是針對不同的操作過程,在此使用錄入成績這個功能模塊的操作邏輯做一個說明,如圖3所示。

圖3 成績錄入模塊區(qū)塊鏈上鏈操作流程圖
當(dāng)進入到成績錄入管理模塊時,先要確定登錄賬號是否被實名認(rèn)證過,因為實名認(rèn)證過的賬戶才可以分配到區(qū)塊鏈賬戶信息和token,這樣的分配使得用戶在系統(tǒng)內(nèi)可以用唯一的標(biāo)識信息加簽到其任意的操作和結(jié)果中。在錄入成績的時候,系統(tǒng)會按照基本邏輯驗證錄入成績的結(jié)果和系統(tǒng)要求結(jié)果是否一致。特別是數(shù)據(jù)中的完整性和重復(fù)性的驗證,完整性使得數(shù)據(jù)保證每一條都已經(jīng)被確認(rèn)過,重復(fù)性則使得數(shù)據(jù)內(nèi)容不會再出現(xiàn)分叉疊加的錯誤。
當(dāng)數(shù)據(jù)完成驗證進入到下一步,就是在數(shù)據(jù)庫里面進行更新操作。這個操作將基礎(chǔ)核心數(shù)據(jù)庫進行修改以后,會把最原始的權(quán)威數(shù)據(jù)進行鎖定,而后可以正常選擇上傳至區(qū)塊鏈結(jié)構(gòu)進行數(shù)據(jù)區(qū)塊化同步。在W e b或者是本地桌面應(yīng)用中都可以進行同步的設(shè)置,而后區(qū)塊發(fā)送至整個同步網(wǎng)絡(luò),賬本會追蹤區(qū)塊鏈內(nèi)所存儲的知識和技能情況,區(qū)塊鏈中所記載的數(shù)據(jù)會由于區(qū)塊鏈自身的特性得以永久保存且難以被篡改。是否所有數(shù)據(jù)都需要進行區(qū)塊鏈結(jié)構(gòu)同步,其實是需要進行判斷的,因為參與的數(shù)據(jù)越來越大和頻率過高,同步效率會降低。
共識算法有很多種,比較有特色的算法有POW、POS、DPOS、PBFT、POP等,其中PBFT指Practical Byzantine Fault Tolerance,使用拜占庭容錯算法。鏈上所有人參與投票,結(jié)果按照拜占庭共識算法來處理。學(xué)校的共識環(huán)境中,基于確定性和吞吐率的特殊需求,教育區(qū)塊鏈一般采用基于投票的 PBFT 共識協(xié)議。
PBFT的算法機制如圖4所示,其信息傳遞流程按以下的步驟進行:

圖4 PBFT信息傳遞流程
PBFT 共識機制不爭奪計算能力,減少了資源浪費,并且在整個網(wǎng)絡(luò)中,只有一個主節(jié)點負(fù)責(zé)生成新的塊,不會發(fā)生分叉。但是主節(jié)點的選舉是隨機的,一旦該節(jié)點出現(xiàn)故障將會觸發(fā)視圖轉(zhuǎn)換,增加共識的復(fù)雜性以及成本。同時 PBFT 的容錯率只有1/3,無法阻止所有的攻擊,安全性有待提高。除此之外,PBFT 共識機制可擴展性低,當(dāng)節(jié)點到達一定數(shù)量時,算法性能急劇下降。所以在前期運算過程中該算法可以基本達到要求,而長期同步率越發(fā)頻繁的事務(wù)出現(xiàn)以后,可能面臨著調(diào)整算法的問題。
也有很多人已經(jīng)在研究PBFT的改進型算法研究。
系統(tǒng)開發(fā)基本使用Django架構(gòu),這個架構(gòu)使用一種MVT的架構(gòu)模式,和MVC類似,MVT的是Model(模型)、View(視圖)和Template(模板),其中的Model和MVC中的Model功能基本一致,都是用于把使用模型進行封裝的。而MVT中的View則是對接收請求等業(yè)務(wù)進行處理,和MVC中的Control類似,Template則是輔助把需要封裝的頁面顯示構(gòu)造內(nèi)容進行重新編排,和MVC中的View功能類似。
使用Django的原因是本系統(tǒng)中的模型和操作要求在這個框架下都可以使用,并且Django的數(shù)據(jù)庫訪問組件是比較完整的,可以比較高效完成功能需求中對數(shù)據(jù)庫的操作。
其次是Django的效率由于依賴的外部組件較少,所以在耦合過程中不容易出現(xiàn)太多的過程差錯。其使用的模板系統(tǒng)也比較人性化,可以對多種第三方模板有較好的支撐作用。
最后就是由于同步需要的處理緩存等相關(guān)需求是比較高的,Django在緩存處理單元也有著較好的支持,可以提供多種有效的緩存響應(yīng)模式。
比如在成績錄入的功能中,可以通過創(chuàng)建一個成績類(Class Record)來存放基本成績的創(chuàng)建和內(nèi)容屬性,這個類通過繼承Django下models這個父類,從而達到把父類的屬性繼承下來的功能,并把功能封裝進成績類中,并且同時,成績類可以通過裝飾器對成績類中的數(shù)據(jù)是否完全、內(nèi)容是否重復(fù)進行自我引用,引用中進行檢查。這個檢查也就達到對整個類功能的完善。
高校區(qū)塊鏈在部署中,各個不同功能實現(xiàn)節(jié)點屬于邏輯上的不同同步節(jié)點,在實際的運用中,服務(wù)器,除了使用應(yīng)用的各個角色都會在自己的功能下進行實時同步,各個服務(wù)和服務(wù)提供設(shè)備也會進行基于IPBFT的同步。他們邏輯上都是一個整體的區(qū)塊鏈環(huán)境中,其他節(jié)點可以通過同步數(shù)據(jù)對整個數(shù)據(jù)進行同時同向地取得。見圖5。

圖5 基于區(qū)塊鏈的高校共識管理平臺系統(tǒng)部署圖
結(jié)合我國教育背景,推動區(qū)塊鏈技術(shù)在我國教育領(lǐng)域現(xiàn)狀環(huán)境下發(fā)展是未來研究的方向。由于高校對信息和結(jié)果的使用權(quán)重是很重要的,比如一個人的學(xué)歷和學(xué)位信息,這樣重要的信息在都是采用國家認(rèn)證機構(gòu)來進行認(rèn)證,但是由于屬地直接管理的權(quán)限,高校還是一個信息最直接的管理方,就像出現(xiàn)爭議等實際問題,作為數(shù)據(jù)來源方的高校仍然要進行最終的審核和事務(wù)說明,對于區(qū)塊鏈技術(shù)在信息加工上所能達到的結(jié)果,可以讓這樣繁瑣不可追溯的信息工作成為歷史。這樣的學(xué)習(xí)證書管理中心通過構(gòu)建一套低成本、自動化、安全可信的證書認(rèn)證系統(tǒng),使學(xué)習(xí)證書認(rèn)證、鑒定與管理更加有效、安全。讓每一個參與者的每一個鏈條狀的信息證據(jù)鏈可信度提高。
通過本文的論述,對現(xiàn)有的基于區(qū)塊鏈的高校共識管理平臺的設(shè)計進行了敘述,在今后的實際應(yīng)用過程中,也會對實際的結(jié)果進行追蹤分析,對系統(tǒng)進行改進,從而進一步讓系統(tǒng)更加穩(wěn)定地對高校進行服務(wù)。