摘要:區塊鏈技術曾被認為是解決網絡集中化問題的方法。雖然關注度在降低,但正如Docker之于Linux容器,AJAX之于動態網頁,區塊鏈并非銷聲匿跡了,而是在醞釀一次突破。本文不是區塊鏈技術的研究實現,而是一種區塊鏈程序的設計方法和這種設計中區塊鏈發展方向的研究。
關鍵詞:學校管理;區塊鏈;程序設計
一、區塊鏈
2009 年誕生的比特幣[1],運用區塊鏈來保證生態,開創了區塊鏈 1.0 時代。2013 年出現的以太坊[2],結合智能合約和區塊鏈以應對豐富的應用場景的挑戰,標志著區塊鏈2.0時代的到來。
本文以聯盟鏈中的超級賬本作為研究對象。區塊鏈網絡中的基本單位是節點。在節點上保存賬本和智能合約。節點之間的交互用交易來描述。首先,交易發起節點生成交易提案,交由區塊鏈網絡背書;其次,將交易信息和背書信息打包成區塊,在區塊鏈賬本中排序;最后,區塊鏈網絡向背書節點驗證區塊鏈信息的有效性,更新區塊鏈賬本。[3]
二、學校管理
下面討論在學校現有信息系統和區塊鏈程序的不同。本文研究的過程在教學工作四個步驟上:招生,教學計劃,教學行為和結業。這些步驟包含學校主體工作,覆蓋學生、教師和學校三個對象,因此具有代表性。下文中的信息系統指現有的信息系統,不再重復指出。
2.1 招生
學校根據政府部門提供的信息錄取考生并發送錄取通知書。信息系統的作用是輔助錄入學籍并管理數據。區塊鏈程序中,學校節點、政府部門節點和學生節點需要在同一個區塊鏈網絡中,交互發生在學校和學生之間,區塊鏈賬本中包含通知書的相關信息,區塊鏈網絡驗證學校節點和學生節點的背書情況。
學生接到錄取通知單后持證件入學。信息系統中登記學籍數據的入學狀態。區塊鏈程序中,學校節點、政府部門節點和考生節點在同一個區塊鏈網絡中,交互發生在學校和學生之間,區塊鏈賬本中包含學生報道的相關信息,區塊鏈網絡驗證學校節點和考生節點的背書情況。
2.2 教學計劃
學校根據培養方案制定學期教學計劃,安排授課教師、班級學生、上課時間和上課地點,形成課表。教師根據課表安排教學進程,進行課堂設計。信息系統按規律制定班級教學計劃和課表初稿,輔助排課工作中的交互,管理教學計劃和課表數據。
區塊鏈程序中,學校節點、教師節點和學生節點在同一區塊鏈網絡中,交互發生在學校、教師和學生之間,區塊鏈賬本中包含教學計劃和課表信息,區塊鏈網絡驗證學校節點、教師節點和學生節點的背書情況。
2.3 教學行為
學校按照課表上課。教師按照課堂設計進行過程考核。信息系統的作用是查詢課表、調課輔助和過程考核輔助。
學期結束時,教師根據考試結果和過程考核數據給學生打分。信息系統輔助打分工作;根據學生評價、同行評價和督導評價得出教師的教學質量;記錄學時數據、成績學分數據和教學質量數據。
區塊鏈程序中,學校節點、教師節點和學生節點在同一區塊鏈網絡中,交互發生在學校、教師和學生之間,區塊鏈賬本中包含調課數據、過程考核數據、成績學分數據,評價數據、教學質量數據和課時數據,區塊鏈網絡驗證學校節點、教師節點和學生節點的背書情況。
2.4 結業
所有學期結束后,學校根據學生的學習情況給學生結業。信息系統提供課程成績學分的查詢功能、輔助結業操作和管理結業信息數據。區塊鏈程序中,學校節點、政府部門節點和學生節點在同一個區塊鏈網絡中,交互發生在學校和學生之間,區塊鏈賬本中包含畢業證書的相關信息,區塊鏈網絡驗證學校節點和學生節點的背書情況。
2.5 區塊鏈的問題
1、生命周期。區塊鏈程序需要開始時間和結束時間限制,否則賬本會無限增長。像信息系統那樣設計區塊鏈程序的生命周期,就相當于要備份數據庫給所有人。這造成了不必要的存儲壓力,比如:學生入學時會因為下載和驗證區塊鏈花費過長的時間。從另一角度說,這些無用的冗余數據比例過高,很難說是成功的設計。區塊鏈程序的目標應該是可以全民驗證,而并非必須。
區塊鏈程序的生命周期的規劃類似信息系統數據庫的切分工作。不同的是,數據庫切分工作是在信息系統的基礎上,基于產品性能需求對數據庫進行切分;而區塊鏈程序需要在設計時完成此項工作。數據庫切分之后,程序還是可以訪問所有數據;不同區塊鏈網絡之間的數據是隔離且保密的。
可以按學期按部門規劃生命周期,這符合學校工作的周期規律。
2、功能。信息系統的功能設計是數據驅動的,根據需求先設計數據庫再實現功能。學校信息系統一般都可分為學生模塊、教師模塊和教學模塊等,每個模塊對應一個主數據庫表和若干子表。信息系統功能設計時不考慮角色的問題,角色權限只在觸發時有限制。這樣的設計使系統架構和系統維護變得容易而被稱為優雅。區塊鏈程序中的角色有且只有發起者和接受者,節點功能因交易內容有區別,所有節點維護同一賬本。信息系統中通過數據運算驗證操作的合法性,區塊鏈程序的交互需要背書。
區塊鏈程序更類似信息系統中的微服務設計。區塊鏈程序需要做到更小,比如任務驅動。學校信息系統可以保留,不同的是操作記錄是不可更改的,數據交互都是經過背書的,接口是通過智能合約顯式聲明的。這樣就相當于把區塊鏈當做網絡結構的第八層來設計:應用層確定通訊對象并提供訪問接口,區塊鏈確定可信范圍和可信內容,在此基礎上完成程序功能。當然,這要求工作人員的編程能力。
3、節點。區塊鏈網絡中節點的不同于個人終端的概念,更類似個人服務器。因用戶的個人終端關閉而導致錄入成績失敗的情況是不能發生的。容器技術已經解決的很好,只是目前價格不菲。
三、區塊鏈程序設計
3.1 用戶
用戶在學校區塊鏈網絡中的有一個節點,保存該用戶與學校相關的區塊鏈信息。
學校節點中只保留該用戶的必要信息,如學號、職工號和姓名。用戶的私人信息保留在用戶節點上。學校節點每一次訪問用戶私人信息必須通過訪問用戶節點進行。用戶只訪問用戶節點,不訪問學校節點。用戶節點與學校區塊鏈網絡進行交互。用戶的學校信息如班級、專業等只保留在學校節點,用戶必須通過用戶節點與學校節點交互獲取學校信息。
學校的每個部門有自己的節點,管理該部門相關的區塊鏈信息。
學校需要提供節點服務,并在辦理離校手續時回收此節點,用戶隨時通過學校的區塊鏈網絡獲取用戶節點信息。除了節點的智能合約部署外,學校需要提供節點的信息呈現程序。
3.2 功能
除了節點管理的功能外,節點不提供其他功能。節點管理功能包括:接受邀請,新增區塊鏈和刪除區塊鏈。節點管理之外的功能由任務本身提供,也就是任務驅動。任務可以分成五個階段:
1. 任務發起:主管部門建立區塊鏈網絡,邀請協作部門加入。
2. 任務分配:各協作部門邀請該部門在此任務的負責人;
3. 任務執行:各負責人通過區塊鏈網絡交互執行任務;
4. 任務確認:各負責人邀請各相關人員和部門主管,確認任務結果。
5. 任務完成:主管部門終止此任務,并按規定在生命周期外維護此區塊鏈網絡。
任務在部門之間協作。每個部門同時進行多個任務。每個任務有不同的操作員。
3.3 信息
學校節點整合零散的區塊鏈數據,通過信息系統呈現學校信息。學校為用戶節點提供節點信息程序。用戶也可以自己編寫信息程序,這對編程能力、數據整理能力提出了要求。需要指出的是,信息共享目前是通過接口對接進行的,并沒有更敏捷的處理方法。區塊鏈程序不同的是,處理數據的主動權是在用戶手中。
四、小結
網絡的意義在于共享。區塊鏈解決了可靠傳遞難題,從而能夠去中心化,進而滿足了獨立性、開放性和安全性的要求。在形成合理的程序環境之前,程序設計是在創造整個生態,就如域名之于網絡、輸入輸出之于電腦、應用商店之于智能手機,目前的區塊鏈程序需要完整的產品設計才會有用戶價值。另外,區塊鏈實現的是數據的可靠傳遞,不是可靠的信息傳遞。區塊鏈技術的目標不是可信網絡,而是用戶控制自己的數據。基于此、別與此的社會目標,都是更遠的遠景。
參考文獻:
[1]王延川.“除魅”區塊鏈:去中心化、新中心化與再中心化[J/OL].西安交通大學學報(社會科學版):1-11[2020-05-19].http://kns.cnki.net/kcms/detail/61.1329.c.20200327.1203.002.html.
[2]邵奇峰,張召,朱燕超,周傲英.企業級區塊鏈技術綜述[J].軟件學報,2019,30(09):2571-2592.
[3]史文斌. 基于Hyperledger Fabric的區塊鏈應用系統云服務化[D].浙江大學,2018.
作者簡介:
郭偉(1985-),男,漢族,籍貫:河南漯河,單位:漯河醫學高等專科學校,研究方向:計算機應用。
基金項目:
漯河醫學高等專科學校基礎科學研究資助項目(2015-S-LMC15)