摘" 要:目前,大學(xué)生參加高校信息類競賽是提高信息技術(shù)能力和拓寬視野的有效途徑,也有助于提升學(xué)生素質(zhì)和就業(yè)競爭力。但是,當(dāng)前各項競賽的監(jiān)管機構(gòu)難以對競賽全流程數(shù)據(jù)進行監(jiān)管審核,競賽獲獎證書查詢方式也存在效率低、數(shù)據(jù)被篡改等問題。針對以上問題,使用區(qū)塊鏈技術(shù)設(shè)計并實現(xiàn)競賽證書管理系統(tǒng),能夠讓監(jiān)管機構(gòu)、競賽舉辦方共同參與維護區(qū)塊鏈網(wǎng)絡(luò),保證競賽過程數(shù)據(jù)可溯源、有監(jiān)管,并提供可溯源的證書查詢方式。實驗結(jié)果表明,系統(tǒng)具備較高的實用性、可靠性,不僅能夠保證競賽數(shù)據(jù)安全不可篡改,也能夠讓監(jiān)管機構(gòu)有效參與審核。
關(guān)鍵詞:區(qū)塊鏈;證書管理;Hyperledger Fabric;競賽監(jiān)管
中圖分類號:TP311 文獻(xiàn)標(biāo)識碼:A 文章編號:2096-4706(2025)03-0164-06
Design and Implementation of a Competition Certificate Management System Based on Blockchain Technology
LUO Junyu, XU Wei
(Yulin Normal University, Yulin" 537000, China)
Abstract: Currently, participating in the information technology competitions in colleges and universities is an effective means for college students to enhance the information technology capabilities and expand horizons, and it is also helpful to improve students' quality and competitiveness in the job market. However, the supervision institutions of various competitions currently face difficulties in supervising and auditing the entire process of competition data, and there are also issues with the poor efficiency and the risk of data tampering of the competition award certificate query methods. To address the above issues, a competition certificate management system has been designed and implemented using blockchain technology, allowing supervision institutions and competition organizers to jointly maintain the blockchain network, ensuring that the competition process data is traceable and supervised, and providing a traceable certificate query method. The experimental results indicate that the system has high practicality and reliability, not only ensuring the security and immutability of competition data but also enabling supervision institutions to effectively participate in the audit process.
Keywords: blockchain; certificate management; Hyperledger Fabric; competition supervision
0" 引" 言
當(dāng)前,信息科技前沿技術(shù)蓬勃發(fā)展,其中區(qū)塊鏈技術(shù)以其去中心化、可溯源等特點被廣泛運用在物聯(lián)網(wǎng)、金融貿(mào)易等領(lǐng)域。我國2021年頒布的“十四五”規(guī)劃綱要[1]將區(qū)塊鏈列為數(shù)字經(jīng)濟重點產(chǎn)業(yè)之一,目前區(qū)塊鏈技術(shù)正作為基礎(chǔ)架構(gòu)被各行各業(yè)廣泛研究應(yīng)用。但是在信息競賽領(lǐng)域仍缺少落地應(yīng)用和實踐案例。
目前各類競賽證書的查詢驗證方式大多依賴于賽事官方網(wǎng)站信息查詢,例如全國大學(xué)生數(shù)據(jù)建模大賽需要下載獲獎名單文件、全國大學(xué)生信息安全大賽和全國大學(xué)生物聯(lián)網(wǎng)設(shè)計競賽需要查閱靜態(tài)頁面、中國互聯(lián)網(wǎng)+大學(xué)生創(chuàng)新創(chuàng)業(yè)大賽可以在線查詢證書編號。然而查看網(wǎng)頁信息、文件下載方式不僅效率低下,也存在網(wǎng)頁文件被篡改、傳輸失敗等問題。并且這些賽事網(wǎng)站都是由各個主辦方的中心化的服務(wù)器部署,存在被攻擊者篡改網(wǎng)頁的風(fēng)險。同時,這些競賽的監(jiān)管方式不透明,競賽過程數(shù)據(jù)難以追溯,容易遭到來自內(nèi)部的攻擊。
陳澤虹等人[2]針對高校教務(wù)系統(tǒng)管理學(xué)生各類證書存在的信息記錄不完整、難以追溯和易被篡改等問題,提出了基于Hyperleadge Fabric區(qū)塊鏈技術(shù)的證書管理系統(tǒng),能夠讓學(xué)生、學(xué)校方管理和查詢證書,保證各類證書真實有效,但是缺少賽事官方和監(jiān)督機構(gòu)參與認(rèn)證過程,存在學(xué)校單獨管理、單獨認(rèn)證、單獨上鏈的中心化問題。針對學(xué)歷證書的存儲存在單點故障以及交易吞吐量問題,劉東偉等人[3]提出了基于Hyperleadge Fabric區(qū)塊鏈技術(shù)的學(xué)位證書存證系統(tǒng),該系統(tǒng)相比Arenas等人[4]提出的方案具有更高的TPS交易量。針對競賽過程存在的指標(biāo)不全面不客觀以及比賽過程數(shù)據(jù)被篡改問題,梁旭[5]提出了基于區(qū)塊鏈的數(shù)字教育競賽管理系統(tǒng),該系統(tǒng)利用區(qū)塊鏈特性防止競賽相關(guān)評審數(shù)據(jù)被篡改,同時利用主觀、客觀權(quán)重模型的成績評價方式保證成績評價結(jié)果客觀有效。
當(dāng)前,針對當(dāng)前大學(xué)生競賽的獲獎證書查證存在的缺少統(tǒng)一查詢方式、競賽網(wǎng)站信息容易被篡改、競賽過程數(shù)據(jù)以及證書頒發(fā)監(jiān)管困難的問題,本文提出了基于聯(lián)盟鏈區(qū)塊鏈技術(shù)的競賽證書管理系統(tǒng)。底層利用區(qū)塊鏈中聯(lián)盟鏈的特點,保證放入?yún)^(qū)塊的證書信息可溯源,區(qū)塊鏈部署的去中心化防止單點故障或被攻擊導(dǎo)致信息可用性下降,同時聯(lián)盟鏈證書頒發(fā)機制保證區(qū)塊鏈參與的節(jié)點可信。
另外,本系統(tǒng)能夠讓第三方企業(yè)、參賽學(xué)生進行證書查驗,防止出現(xiàn)偽造證書進行欺騙的行為,方便用人單位和學(xué)生在招聘環(huán)節(jié)進行信息核實。同時,本文設(shè)計的系統(tǒng)能夠讓競賽舉辦方、監(jiān)管機構(gòu)參與區(qū)塊鏈共識環(huán)節(jié),使得競賽過程、證書頒發(fā)和監(jiān)督合理合規(guī)。
1" 背景知識
在以下部分中,將詳細(xì)介紹區(qū)塊鏈所需的背景知識。區(qū)塊鏈(Blockchain)的名稱來源于其技術(shù)結(jié)構(gòu):即一系列區(qū)塊的鏈。每個區(qū)塊(Block)都通過加密哈希與前一個區(qū)塊相連。其中區(qū)塊是一種數(shù)據(jù)結(jié)構(gòu),允許存儲一個時間段內(nèi)產(chǎn)生的交易(Transaction)。交易由區(qū)塊鏈網(wǎng)絡(luò)中的節(jié)點創(chuàng)建和交換,交易可以用來交換加密貨幣,也可以在智能合約中執(zhí)行任意代碼。區(qū)塊鏈參與的節(jié)點之間通過P2P網(wǎng)絡(luò)和共識算法來維護一條主鏈,每個節(jié)點都擁有主鏈的副本。主鏈類似于一個總賬本,這也是區(qū)塊鏈也被稱之為分布式賬本的原因。
區(qū)塊的結(jié)構(gòu)如圖1所示,主要分為區(qū)塊頭和區(qū)塊體。區(qū)塊頭包含的主要數(shù)據(jù)為上一個區(qū)塊的Hash值、時間戳、版本、Merkle樹根[6]等信息,根據(jù)使用的共識算法不同,會包含隨機值Nonce、目標(biāo)Hash值等。區(qū)塊體則包含一個時間段內(nèi)的交易以及交易的Hash值。區(qū)塊和區(qū)塊之間通過Hash值聯(lián)系,形成一個單向增長的鏈表結(jié)構(gòu)。
1.1" 區(qū)塊鏈技術(shù)
區(qū)塊鏈分為聯(lián)盟鏈、公有鏈、私有鏈三種類型。公有鏈?zhǔn)侵溉魏喂?jié)點都可以參與或退出的區(qū)塊鏈網(wǎng)絡(luò)。私有鏈?zhǔn)侵竷H只有被允許的節(jié)點才能夠加入的區(qū)塊鏈網(wǎng)絡(luò),區(qū)塊鏈的運行是隱私的,僅在內(nèi)部進行使用。聯(lián)盟鏈?zhǔn)侵赣缮贁?shù)節(jié)點作為區(qū)塊鏈的控制者,其余的節(jié)點作為參與者,具有一定中心化的區(qū)塊鏈技術(shù),聯(lián)盟鏈的節(jié)點也同樣是需要被認(rèn)可才能加入。
1.1.1" 共識算法
共識算法包括工作量證明[7](Proof of Work),權(quán)益證明[8](Proof of Stake)、實用拜占庭容錯[9](PBFT)、RAFT[10]等。不同的共識算法區(qū)別在于產(chǎn)生區(qū)塊的方式不同。工作量證明通過消耗節(jié)點算力來產(chǎn)生新的區(qū)塊,是比特幣所使用的共識算法。權(quán)益證明是根據(jù)節(jié)點在網(wǎng)絡(luò)中持有的代幣數(shù)量來決定其產(chǎn)生新區(qū)塊的概率,是目前以太坊所使用的共識算法。聯(lián)盟鏈和私有鏈通常使用PBFT、RAFT算法。
共識算法的作用是讓區(qū)塊鏈所有的節(jié)點能夠維護一個相同的主鏈。對區(qū)塊鏈的任何操作必須通過節(jié)點間的共識算法進行,共識算法能夠保證存在部分惡意的節(jié)點時也能夠維護一致的賬本。
1.1.2" 智能合約
智能合約是基于區(qū)塊鏈技術(shù)的數(shù)字化合約,本質(zhì)上是一段代碼,代碼的執(zhí)行不需要人工干預(yù),代碼保存在區(qū)塊鏈上,也具有不可篡改、去中心化的特點。智能合約代碼通常由Solidity、Go等高級語言編寫,在滿足特定條件下自動觸發(fā)執(zhí)行,可以用于管理數(shù)字資產(chǎn)、支付、投票等方面的去中心化應(yīng)用(Dapp)。
1.1.3" Hyperleadger Fabric超級賬本
Hyperledger超級賬本是由Linux基金會托管的開源區(qū)塊鏈項目,其中Fabric是其中的開源聯(lián)盟鏈項目,F(xiàn)abric是其開源聯(lián)盟鏈項目之一。Fabric網(wǎng)絡(luò)的不同的聯(lián)盟之間可以創(chuàng)建Channel以管理不同的賬本,每個Channel可以部署鏈碼(Chaincode),也就是智能合約。Fabric使用的共識機制是RAFT。
Fabric網(wǎng)絡(luò)的交易過程:第一步客戶端向背書節(jié)點發(fā)送交易提案;第二步背書節(jié)點模擬執(zhí)行驗證,將結(jié)果簽名之后返回給客戶端;第三步客戶端將交易提案發(fā)送給排序節(jié)點,排序節(jié)點對交易提案排序形成交易并發(fā)送給記賬節(jié)點;第四步,所有記賬節(jié)點驗證交易正確之后更新賬本。其中客戶端作用主要是交易的發(fā)起方,背書節(jié)點作用是對交易進行預(yù)先的驗證,排序節(jié)點作用是對交易進行排序打包成區(qū)塊,記賬節(jié)點作用是驗證區(qū)塊并記錄在區(qū)塊鏈上。背書節(jié)點和排序節(jié)點也叫Peer,擁有完整的賬本。排序節(jié)點僅僅對交易進行排序以及廣播區(qū)塊。Fabric網(wǎng)絡(luò)中還存在MSP成員服務(wù)提供商,作用是為網(wǎng)絡(luò)中每個節(jié)點頒發(fā)證書,形成不同組織。
2" 系統(tǒng)設(shè)計
本系統(tǒng)的參與者主要有競賽舉辦方、競賽監(jiān)管機構(gòu)、參賽人員、查詢機構(gòu)。
競賽舉辦方經(jīng)過認(rèn)證之后可以部署客戶端節(jié)點,使用本系統(tǒng)進行競賽全過程管理,將競賽各階段數(shù)據(jù)上鏈,競賽結(jié)果以及獲獎證書上鏈。
監(jiān)管機構(gòu)經(jīng)過認(rèn)證之后,可以使用本系統(tǒng)與參與競賽監(jiān)管,具體來說在每個階段結(jié)束之后對過程、結(jié)果數(shù)據(jù)進行審查,審查通過之后才將數(shù)據(jù)上鏈。
參賽人員經(jīng)過認(rèn)證之后可以使用本系統(tǒng)查詢階段競賽結(jié)果和過程數(shù)據(jù),對于獲獎證書的查詢則不需要認(rèn)證。查詢機構(gòu)例如正在招聘的企業(yè),可以使用本系統(tǒng)進行證書信息核實。
區(qū)塊鏈網(wǎng)絡(luò)結(jié)構(gòu)如圖2所示,監(jiān)管機構(gòu)和競賽舉辦方需要部署不同組織的區(qū)塊鏈網(wǎng)絡(luò)節(jié)點。每個賽事舉辦方以及監(jiān)管機構(gòu)需要部署為單獨的組織。監(jiān)管機構(gòu)與每個舉辦方形成一個獨立的Channel,不同Channel使用不同的賬本。
本系統(tǒng)功能模塊劃分如圖3所示,包括兩大模塊:競賽管理模塊以及系統(tǒng)管理模塊。其中競賽管理模塊根據(jù)使用者進一步細(xì)分為競賽舉辦方模塊、競賽監(jiān)管機構(gòu)模塊和競賽證書查詢模塊。競賽舉辦方模塊的功能主要包括競賽數(shù)據(jù)的上傳、更新、刪除、查詢以及競賽證書的頒發(fā)。競賽監(jiān)管機構(gòu)模塊的功能主要包括審核競賽數(shù)據(jù)和結(jié)果、審核證書的頒發(fā)和撤銷以及競賽數(shù)據(jù)的溯源。競賽證書查詢模塊的功能則包括證書的查詢、下載和證書信息的核驗。系統(tǒng)管理模塊包含對底層區(qū)塊鏈架構(gòu)的管理以及上層系統(tǒng)的管理。區(qū)塊鏈管理模塊功能主要包括區(qū)塊鏈節(jié)點及組織管理,區(qū)塊鏈網(wǎng)絡(luò)及交易監(jiān)控,鏈碼安裝維護管理,區(qū)塊鏈節(jié)點身份證書管理,區(qū)塊數(shù)據(jù)查詢。上層系統(tǒng)管理主要功能為用戶管理、系統(tǒng)日志管理、數(shù)據(jù)管理、用戶權(quán)限管理。
系統(tǒng)架構(gòu)如圖4所示,可以分為:應(yīng)用層、邏輯層、接口層、智能合約層、區(qū)塊鏈架構(gòu)層。其中應(yīng)用層包括競賽管理模塊,此模塊是面向系統(tǒng)用戶使用,包含競賽數(shù)據(jù)監(jiān)管、競賽數(shù)據(jù)管理、證書管理模塊等;區(qū)塊鏈網(wǎng)絡(luò)管理模塊面向系統(tǒng)管理員,主要包括對區(qū)塊鏈網(wǎng)絡(luò)的監(jiān)控和管理。第二層邏輯層是上層兩個模塊的具體實現(xiàn)邏輯,包括用戶管理、競賽證書管理、競賽過程數(shù)據(jù)監(jiān)管、鏈碼管理、區(qū)塊鏈組織節(jié)點管理、區(qū)塊鏈信息監(jiān)控。第三層為借口層,是邏輯層實現(xiàn)區(qū)塊鏈交互時所調(diào)用的接口,主要是Fabric-SDK、Express框架接口、API接口。第四層是合約層,也就是鏈碼的具體實現(xiàn),鏈碼功能主要包括競賽數(shù)據(jù)的新增、審核、查詢和更新,以及競賽證書的驗證、撤銷和新增。第五層是區(qū)塊鏈架構(gòu)層,本系統(tǒng)基于Fabric區(qū)塊鏈架構(gòu)進行部署和交互。
當(dāng)競賽舉辦機構(gòu)需要對區(qū)塊數(shù)據(jù)進行操作,例如對競賽數(shù)據(jù)進行新增、刪除、修改等操作時,必須經(jīng)過區(qū)塊鏈共識機制才能實現(xiàn),監(jiān)管機構(gòu)節(jié)點需要參與交易過程,實現(xiàn)全過程監(jiān)管。以舉辦方新增競賽數(shù)據(jù)為例,如圖5所示,當(dāng)競賽舉辦方需要將競賽數(shù)據(jù)發(fā)布到區(qū)塊鏈上時,第一步競賽舉辦方需要將新增的競賽數(shù)據(jù)提交給監(jiān)管機構(gòu)的Peer節(jié)點進行背書,此時監(jiān)管機構(gòu)一方面對交易合法性進行審核,另一方面對競賽數(shù)據(jù)進行審核,確認(rèn)合規(guī)無誤后進行交易背書。第二步舉辦方將數(shù)據(jù)存儲到MySQL數(shù)據(jù)庫中,并將經(jīng)過背書的交易發(fā)送給排序節(jié)點,排序節(jié)點部署在網(wǎng)絡(luò)任意位置。第三步,排序節(jié)點將交易打包成區(qū)塊,發(fā)布到Channel中的所有Peer節(jié)點。第四步,舉辦方和監(jiān)管機構(gòu)的Peer節(jié)點將區(qū)塊寫入賬本中。
當(dāng)參賽選手或查詢機構(gòu)想查看證書數(shù)據(jù)時,可以登錄本系統(tǒng)使用Fabric客戶端從區(qū)塊鏈中查詢數(shù)據(jù)。
3" 鏈碼設(shè)計
在Fabric中,智能合約被稱之為鏈碼。鏈碼的設(shè)計目標(biāo)是完成本系統(tǒng)的競賽證書的查詢、添加、撤銷功能,以及競賽數(shù)據(jù)查詢、添加、修改、審核和撤銷功能。本文使用Java語言編寫鏈碼。
表1展示了智能合約中保存的競賽數(shù)據(jù)結(jié)構(gòu)。由于競賽數(shù)據(jù)文件多樣且體積大,因此在區(qū)塊鏈中僅保存本回合數(shù)據(jù)的Hash值,具體的數(shù)據(jù)文件保存在MySQL數(shù)據(jù)庫中。
表2展示了競賽證書的數(shù)據(jù)結(jié)構(gòu),主要包括唯一標(biāo)識certID、最后一回合競賽數(shù)據(jù)的ID、頒發(fā)日期、詳細(xì)證書數(shù)據(jù)的Hash值。詳細(xì)的數(shù)據(jù)保存在MySQL數(shù)據(jù)庫中,區(qū)塊鏈僅保存Hash值。
圖6展示了競賽數(shù)據(jù)的添加功能的Java鏈碼示例。
4" 實驗過程
本系統(tǒng)基于Hyperledger Fabric區(qū)塊鏈架構(gòu)實現(xiàn)。實驗所使用環(huán)境為:CPU AMD 3600,內(nèi)存16 GB,操作系統(tǒng)為CentOS 7。軟件版本為:Fabric 2.4,Docker Compose 20.04,Java 1.8,F(xiàn)abric Blocker Explorer 2.4。區(qū)塊鏈網(wǎng)絡(luò)結(jié)構(gòu)設(shè)計為一個監(jiān)管機構(gòu)組織、一個競賽舉辦方組織,每個組織下有一個Peer節(jié)點,網(wǎng)絡(luò)中有一個Order排序節(jié)點。
競賽舉辦方添加競賽數(shù)據(jù)頁面如圖7所示,需要上傳競賽數(shù)據(jù)壓縮包、競賽結(jié)果數(shù)據(jù)壓縮包,系統(tǒng)自動計算文件Hash值,之后填寫日期、回合信息摘要等相關(guān)信息并提交。
監(jiān)管方審核競賽數(shù)據(jù)頁面如圖8所示,可以在頁面下載競賽數(shù)據(jù)壓縮包并檢查Hash值。
監(jiān)管方通過審核之后,將Hash值等數(shù)據(jù)寫入?yún)^(qū)塊鏈中,監(jiān)管方和舉辦方可以在區(qū)塊鏈瀏覽器上查看區(qū)塊數(shù)據(jù),如圖9所示。
參賽選手以及查詢機構(gòu)可以登錄本系統(tǒng)進行查詢,查詢頁面和結(jié)果如圖10所示,需要輸入證書編號下載證書查看。
5" 結(jié)" 論
區(qū)塊鏈技術(shù)擁有去中心化、可溯源、不可篡改等特點,對于教育領(lǐng)域的證書溯源具有獨特的優(yōu)勢。本文基于Hyperledger Fabric聯(lián)盟鏈架構(gòu)設(shè)計并實現(xiàn)了競賽證書管理系統(tǒng),最后對系統(tǒng)進行數(shù)據(jù)上鏈和查詢的功能測試,結(jié)果表明能夠有效對競賽產(chǎn)生的數(shù)據(jù)進行全過程上鏈監(jiān)管,同時也能夠讓參賽選手和查詢機構(gòu)快捷方便查詢到證書信息。聯(lián)盟鏈系統(tǒng)由監(jiān)管方、競賽舉辦方共同維護,既能保證競賽全過程數(shù)據(jù)監(jiān)管透明,也能保證競賽數(shù)據(jù)安全保密。
參考文獻(xiàn):
[1] 劉權(quán),劉宗媛,周澤宇,等.“十四五”時期中國區(qū)塊鏈發(fā)展重點及趨勢 [J].科技與金融,2021(6):7-12.
[2] 陳澤虹,劉境源,張濱,等.基于區(qū)塊鏈技術(shù)的學(xué)生證書管理系統(tǒng)的設(shè)計與實現(xiàn) [J].惠州學(xué)院學(xué)報,2024,44(3):28-34.
[3] 劉東偉,張學(xué)旺,郭曉金.基于區(qū)塊鏈的學(xué)位證書存證系統(tǒng)設(shè)計與實現(xiàn) [J].計算機工程與設(shè)計,2020,41(2):567-573.
[4] ARENAS R,F(xiàn)ERNANDEZ P. CredenceLedger: A Permissioned Blockchain for Verifiable Academic Credentials [C]//2018 IEEE International Conference on Engineering, Technology and Innovation (ICE/ITMC).Stuttgart:IEEE,2018:1-6.
[5] 梁旭.基于區(qū)塊鏈的數(shù)字教育競賽管理系統(tǒng)研究與實現(xiàn) [J].計算機應(yīng)用與軟件,2023,40(11):11-15.
[6] 邵奇峰,金澈清,張召,等.區(qū)塊鏈技術(shù):架構(gòu)及進展 [J].計算機學(xué)報,2018,41(5):969-988.
[7] NAKAMOTO S. Bitcoin: A Peer-to-Peer Electronic Cash System [EB/OL].[2024-08-03].https://bitcoin.org/bitcoin.pdf.
[8] KING S,NADAL S. PPCoin: Peer-to-Peer Crypto-Currency with Proof-of-Stake [EB/OL].(2012-08-19).https://people.cs.georgetown.edu/~clay/classes/fall2017/835/papers/peercoin-paper.pdf.
[9] CASTRO M,LISKOV B. Practical Byzantine Fault Tolerance and Proactive Recovery [J].ACM Transactions on Computer Systems(TOCS),2002,20(4):398-461.
[10] ONGARO D,OUSTERHOUT J. In Search of an Understandable Consensus Algorithm [C]//2014 USENIX conference on USENIX Annual Technical Conference.Berkeley:ACM,2014:305-320.
作者簡介:羅鈞予(1996—),男,壯族,廣西玉林人,教師,碩士,研究方向:區(qū)塊鏈、網(wǎng)絡(luò)安全;通信作者:徐維(1990—),女,漢族,廣西玉林人,助理實驗師,本科,研究方向:教育應(yīng)用。