基于区块链的学生电子证书可信共享平台的研究与实现
2022-03-31蔡雪莲沈中楚
蔡雪莲 沈中楚
(1.广东工贸职业技术学院 广东省广州市 510440 2.广东工贸职业技术学院 广东省广州市 510440)
现实生活中,学生的学生证,资格证,获奖证书等证书需要在不同的场合使用。目前,这些证书大多都是纸质形式的。纸质版的证照存在着制作效率低、携带不方便、易丢失、传递性差、补办麻烦等问题。作为纸质证书的有效补充,电子证书无需携带,信息容易共享,传递性高,是证书使用和管理的新趋势。然而,电子证书造假却比纸质证书成本更低。同时,集中式的电子证书管理系统,也存在信息泄露和被恶意篡改的风险。
引入安全可信且不可篡改的区块链技术是解决上述问题的最有效方案之一。借助于区块链技术去中心化、防篡改和信息可追溯等特性,我们提出了一个新型的基于区块链技术的学生电子证书可信共享平台。该平台能够实现学生证书管理的电子化,打通学生证书颁发和使用部门的数据互通,并为证书数据的隐私性、安全性、可行性提供一个解决方案。
1 相关工作
区块链技术在 2008年由《Bitcoin:A peer-to-peer electronic cash system》[1]一文提出,是一种多方共同维护,使用加密技术保证信息传输和访问安全的分布链式结构数据库。十多年来,区块链从以比特币为代表的虚拟货币的1.0 时代,发展到智能合约与货币相结合,对金融领域提供广泛的应用的2.0 时代,再到在金融行业之外的各行业应用的3.0 时代,区块链凭借其独特的信用建立机制,正在影响并改变许多行业的运转规则,是将来发展数字化经济、构建新的信息信任体系必不可少的技术之一[2]。正因如此,全球主要发达国家和发展中国家都在加大产业扶持,提升国家在区块链技术和产业的竞争力。
2016年,工信部颁布《中国区块链技术和应用发展白皮书》中指出:“区块链系统的透明化、数据不可篡改等特征,完全适用于学生征信管理、升学就业、学术、资质证明、产学合作等方面,对教育就业的健康发展具有重要的价值”。在 2021年颁布的“十四五”规划纲当中,将区块链作为新兴数字产业之一,明确提出要“推动智能合约、共识算法、加密算法、分布式系统等区块链技术创新,以联盟链为重点发展区块链服务平台和金融科技、供应链管理、政务服务等领域的应用方案,完善监管机制。”2021年3月,教育部印发的《关于加强新时代教育管理信息化工作的通知》中提到:“探索推动区块链技术在招生考试、学历认证、学分互认、求职就业等领域的应用,提高数字认证可信性”。在此背景下,构建基于区块链技术下的学生电子证书可信共享平台具有非常重要的意义。
本文设计并实现了基于区块链技术的学生电子证书可信共享平台,为学生证书的管理带来了如下的改进:
(1)基于区块链技术。本项目利用区块链技术的数据不可篡改、可溯源的特性保障了电子证书的真实性。利用区块链技术的去中心化特点,避免数据存储于一个机构使证书数据存在伪造的可能,让证书更有说服力。
(2)基于智能合约。使用智能合约,实现了证书颁发和使用的智能化,无需第三方参与就能实现证书的历史追溯,提高了证书颁发和使用的效率。
(3)提供证书接口。系统向外提供接口,为其他招聘网站和火车购票网站等第三方机构提供服务,优化了证书在求职、乘坐公共交通工具及其他场合的使用。打通了学生证书颁发和使用部门的数据互通。
2 系统设计
2.1 设计目标
现实生活中,学生的学生证,资格证,获奖证书等证书需要在不同的场合使用。如学生凭学生证享有火车票优惠,需每年携带学生证到火车站注册以做优惠资质绑定;学生到具有学生优惠的门店消费,需出示学生证才能获取优惠。同时,学生的其他一些证件,如考证的资格证书、比赛的获奖证书等,经常需要在评优评先、面试、晋升等场合提供。学生证书的使用涉及学生、学校、证书颁发机构、证书使用机构。他们共享数据的同时,还要保证数据的安全性、完整性和可靠性。
2.2 总体设计
根据不同场景下的信任构建方式,区块链主要分为三大类:公有链、私有链和联盟链。公有链是一种完全开放的区块链,即任何人都可以加入网络并参与完整的共识记账过程,彼此之间不需要信任。私有链数据的产生、共识、维护过程完全由单个组织掌握,被该组织指定的成员仅具有账本的读取权限。联盟链是一种半开放式的区块链,只有指定的成员可以加入网络,且每个成员的参与权各有不同。联盟链往往通过颁发身份证书的方式事先建立信任关系,具备部分去中心化特点,相比于公有链拥有更高的效率。
Hyperledger (超级账本)是一组开源工具,旨在构建一个强大的、业务驱动的区块链框架[3]。Hyperledger Fabric是 Hyperledger 项目的基石。它是基于许可的区块链,是目前最主流的联盟链开发框架。和其他区块链技术一样,它有一个账本,使用智能合约,是一个参与者管理交易的系统。Hyperledger Fabric 与其他区块链系统的不同之处在于,它是私有的和许可的。Hyperledger Fabric 网络成员通过一个受信任的成员服务提供者(MSP)来注册。注册准入机制避免了由比特币共识机制(POW)所带来的计算资源开销,从而可以大幅提高交易处理效率,满足企业级应用对处理性能的诉求。我们的系统使用联盟链Hyperledger Fabric 作为项目的底层技术平台。使用智能合约实现证书的签发和撤销、用户对证书查看的权限设定、学校为学生注册学生证、学校为学生颁发结业证书等功能,将智能合约部署到多组织的区块链网络上,编写Fabric-SDK-Go,并提供功能调用接口,便于其他部门调用。
软件系统架构如图1所示。系统的前端用户界面包含PC 网页端和微信小程序端。后端采用轻量级的Web 框架Gin,用户通过浏览器向后端应用层发起请求,后端根据注册的请求进行拦截,并将请求提交给Fabric-SDK-Go,SDK调用合约层的链码,完成区块数据上链或读取区块数据的操作。
图1:系统架构
3 系统实现
3.1 功能模块的设计
系统分学校、学生、机构、管理者四种账户类型。学生可以申请电子版学生证和查看自己已有的证书。学校可以审批学生提交的学生证。机构和学校可以创建证书模板并签发电子证书(考试证书、获奖证书等)。系统同时还向外提供接口,为其他招聘网站和火车购票网站等第三方机构提供服务,优化证书在求职、乘坐公共交通工具及其他场合的使用。
注册模块:用户调用智能合约,智能合约对用户所填的密码进行sha256 非对称性加密,然后将用户信息以数字资产的形式存入区块链中。如图2所示。
图2:用户注册流程
证书签发模块:学校或机构调用智能合约,生成指定数据的证书模板,证书模板以数字资产的形式记录于区块链,当模板被创建后,学校或机构可指定模板并选择签发对象进行签发,签发时调用智能合约,根据所选模板和对象生产唯一的证书,证书以数字资产的形式记录于区块链。如图3所示。
图3:证书签发流程
证书撤销模块:学校或机构选择自己签发的证书,调用智能合约,从世界状态中删除指定证书文件,并将删除记录以数字资产的形式记录于区块链。如图4所示。
图4:证书撤销流程
查询证书模块:用户调用智能合约,根据用户ID 从世界状态中获取当前持有的证书文件,此操作不以数字资产的形式存到区块链。如图5所示。
图5:证书查询流程
3.2 区块链网络的设计
根据平台功能的设计,系统分为4 个账户:学校、学生、机构、管理者。为四个账户类型构建区块链组织和节点,区块链网络设计如表1所示。
表1:区块链网络组织及节点
3.3 智能合约设计
智能合约是系统业务逻辑实现的核心模块。一个智能合约是一套以数字形式定义的承诺(commitment),包括合约参与方可以在上面执行这些承诺的协议[4]。智能合约一般通过程序代码写入区块链中,允许在没有第三方的情况下进行可信交易。这些交易可追踪且不可逆转。Fabric 是第一个支持通用编程语言编写智能合约(如 Java、Golang 和 Node.js)的分布式账本平台。平台采用Golang 语言,设计的核心智能合约如表2所示。
表2:核心智能合约列表
4 系统运行与结果
4.1 系统运行环境
系统的前端运行环境为安装了Vue、npm 框架的Windows10 操作系统,后端环境运行环境为安装DOCKER容器、Fabric 框架、GO 语言环境的Linux-Ubuntu16.04LTS操作系统。
4.2 运行结果
注册登录:用户可选择要注册的账号类型,并填写相关的用户信息后提交。提交后显示注册的账号,需要由上级账户类型审批后才可以进行登录。用户可以使用PC 网页端进行登录登录时可选择用户类型。学生用户除了PC 网页端外还可以使用移动微信小程序进行登录(如图6)。
图6:注册登录界面
学生证申请与审批:学生注册通过后,登录到系统主页点击侧边导航栏中的证书,填写学生证信息并提交给学校进行审批(如图7)。学生提交学生证信息后,学校可查看和审批(如图8),审批通过后学生可查看学生证。学校审批通过学生的学生证后,学生可回到证书界面查看学生证(如图9)。
图7:学生申请学生证
图8:学校审批学生证
图9:查看学生证
证书签发:机构或学校账户可在主页点击侧边导航“证书管理”,进入证书管理页面,在证书管理页面的模板管理栏点击新建来创建证书模板(如图10)。学校或机构账户创建证书模板后,可点击证书管理栏,点击签发证书进行证书签发(如图11)。
图10:创建证书模板
图11:证书签发
4.3 系统测试
系统测试一般包括有白盒测试与黑盒测试,本文主要使用黑盒测试法,对系统的功能模块进行测试,检测是否能正常运行。通过对用户登录注册模块、证书签发模块、证书查询模块、证书撤销模块等功能进行系统测试,根据各项数据表明系统各项功能界面交互友好、系统运行稳定,运算数值正确,没有发现明显的错误,达到了预期的效果。
5 结束语
本文利用区块链作为底层技术,在fabric 框架的基础上开发了一个学生证书管理平台。该平台不仅简化了证书签发者(学校、企业等用户)的证书签发流程,方便了学生证书的使用,而且还保证了证书数据的高可靠性。该平台的研究与实现为除学生证书管理之外的其他证照管理提供了很好的借鉴作用,具有广泛的应用前景。