一套基于区块链的可信学历学位认证系统
2020-09-26华芳丁毅孙伽宁李洁沈薇
华芳 丁毅 孙伽宁 李洁 沈薇
摘 要:学历学位是衡量学生知识水平和社会认可度的重要证明,而现有学历学位数据管理系统存在中心化、易篡改及难以追溯等问题,导致出现造假现象。区块链数据具有不可篡改、可存证、可追溯的特点,将区块链应用于学历学位管理系统,可对学历学位获得过程进行溯源。文章基于区块链和智能合约技术,设计了一套可信的学历学位认证系统,从效率和可信度平衡、访问控制安全等角度展开设计工作,并详细介绍系统的运转流程,为学历学位认证可信溯源的发展提供参考。
关键词:学历学位溯源;区块链;协同存储;智能合约
中图分类号: TP311 文献标识码:A
Abstract: Education and degree is an important certification to measure students' knowledge level and social recognition, while the current data management system of education and degree has problems. The problems are centralization management, easy to tamper with and difficult to trace, which lead to the phenomenon of fraud. Data on blockchain has the characteristics of non-tampering, credible storage and traceability. The application of blockchain in education and degree management system can trace the process of obtaining education and degree certification. In order to provide a reference for the development of credibility traceability of education and degree certification, the paper designs a trusted education and degree certification system based on the technology of blockchain and smart contract, considering the balance between efficiency and credibility, access control security measures etc., and introduces the operation process of the system in detail.
Key words: education and degree traceability; blockchain; collaborative storage; smart contract
1 引言
學历学位证书是社会衡量学生能力的重要标准之一,对于个人的求职与深造都会产生重要影响。目前,只有学信网、学位与研究生教育发展中心以及国(境)外学位认证系统,能提供国内外学历学位证书认证。但是目前学位学历管理系统普遍采用集中化的数据管理,存在单点故障以及数据被篡改的风险,且难以实现学历学位获得过程的溯源[1]。因此需要进一步研究学历学位证明管理方式,加强过程溯源、加大造假难度,从而减少学历学位造假现象。
区块链具有去中心、可追溯存证、不易篡改等特点,近几年在金融交易以及物流溯源方面已经发挥了重要作用,区块链与教育的结合也在逐步展开。2018年,教育部在两会中提出《关于探索运用区块链技术进行学位证书认证的建议》,明确表示将密切关注区块链技术,积极探索其在学生管理中的应用[2]。同年发布的《教育信息化2.0行动计划》[3]中也指出要积极探索基于区块链技术的学习效果记录、转移、交换、认证等有效方式。工业和信息化部在《中国区块链技术和应用发展白皮书》也提出了建立基于区块链的教育存证平台的构想[4]。
将区块链与学历学位溯源结合,可以防止数据被恶意篡改,学历学位判定规则执行公开透明,能有效减少数据造假的风险。但是依然存在一些问题:区块链上数据处理速度较慢、处理成本高,学历学位溯源又涉及到大量的学生数据,区块链与学位溯源结合后系统业务执行效率不高;学历学位溯源系统具有不同的用户角色、不同的操作内容,如果不对用户权限加以可信管理,易产生不正确的修改或误操作,且缺乏追责监管机制;智能合约可以用于控制学位认证规则,但规则在实际中是变化的,不同届的学生可能需要制定不同的学历学位判定规则,每次都重新编写智能合约程序,会为管理员带来许多冗余工作。
针对以上区块链与学历学位溯源认证结合后存在的问题,本文在基于区块链的学历学位溯源认证系统中,设计并实现了数据协同存储、智能合约用户访问控制、学位判定智能合约模板三部分功能,促进区块链学历学位溯源系统安全、高效运行。
2 相关工作
2.1 传统学历学位认证发展现状
为了提供学生学历学位证书有效性证明,2002年学信网上线。随后,推出了“学信二维码”,学生可将该二维码嵌入求职简历中。2018年,教育部学位中心也开始提供学位认证服务,还可通过国外学位认证系统查询国外证书的有效性[5]。
以上认证都是通过权威机构的背书,这在一定程度上增加了学位证书的伪造难度,但是这种中心化的数据管理方式依然存在数据篡改风险。具体表现为:
(1)传统学位认证数据存储在中心化的数据库中,数据可以被高权限的管理员修改,甚至访问日志也可能被改动,存在学历学位数据的不真实以及不可追溯的风险。
(2)传统学历学位的认证通常采用半人工审核的方式,认证规则可以被人为修改,审核人员具有较大权力,执行结果可能存在质疑。
(3)传统学历学位认证通常只有少数权威机构参与,其他角色如学校、教师、学生的参与度不足,缺乏公开透明的高效约束机制,且认证往往只是注重结果,认证过程追溯功能受限。
2.2 基于区块链的教育認证研究现状
近几年,众多学者积极探索区块链在各领域的应用,“区块链+教育”就是其中之一,目前已有众多区块链加教育认证项目落地。2015年Bitproof公司与霍伯顿学校联合,将区块链与教育存证结合,使用区块链记录学生学习成果。随后索尼公司、麻省理工学院[6]也展开了区块链在教育存证中的研究。2017年,欧盟委员会在发布的《区块链在教育行业(Blockchain in Education)》报告中指出区块链与教育结合中的数字认证、信用认可、学分转换和支付交易方面还需进一步研究[7]。英国开放大学知识媒体学院与英国电信也创建了一个名为“OpenBlockchain”的基于以太坊的区块链教育平台,利用区块链智能合约对开放大学的课程证书进行记录,同时还会提供证书关联信息,如接收方、颁发方、颁发标准以及颁发依据等。
部分学者也在进行“区块链+教育”的可行运作模式的探索。Sharples(2016)[8]提出利用区块链建立一个研究成果、创意以及声誉的记录系统,实现可信存证。吴莎莎(2018)[9]分析了将数字徽章认证理念与内容嵌入区块链平台可行性,并提出了基于区块链技术的在线学习凭证颁布系统的架构及应用方式。李中振(2019)[10]指出区块链技术去中心、不可篡改的特点可以有效保障学籍信息的安全和真实,作者还基于Fabric框架开发了一个学籍管理系统原型。Jirgensons (2018)[11]指出在线学习颁发的数字证书可以激励学生学习,且证书分享方便,但是存在证书失效的风险,因此提出将区块链作为在线认证证书记录、存储以及管理的底层技术,实现在线学习证书的可信认证。
我国近几年采用信息化手段实现学历学位信息管理,一定程度上增加了学位造假的难度。但是,由于传统系统采用中心化的管理方式,数据依然存在篡改风险。近几年区块链技术在物流溯源、金融交易等领域被广泛应用,但是区块链与学位认证结合的技术方案还在探索中,本文提出一套区块链学历学位溯源认证技术方案,力图在性能和效率之间寻找平衡,高效利用智能合约特征,为可信学历学位的认证发展提供支持。
3 区块链及相关技术
3.1 区块链技术
区块链是一种新兴的技术,具有分布式、不可篡改、公开透明、可追溯的特点[12]。智能合约是传统纸质合约的数字化版本,智能合约与区块链的结合,使其具备合约公开和不可篡改的特性。主流的区块链平台有以太坊(Ethereum)、Hyperledger Fabric以及EOS(Enterprise Operation System)[13]。目前,区块链平台普遍存在数据处理速度慢、存储成本高的问题,除了通过修改共识算法提高存储的效率,还可以结合分布式存储系统[14],如区块链数据库BigchainDB[15]、分布式文件系统IPFS[16]、Swarm[17]等协同存储,在高可信与高效率之间寻找平衡。
区块链技术在学位认证应用中发挥的作用主要体现在三个方面。
(1)利用区块链技术存储学历学位认证数据,可保证数据不易篡改,完成学历学位认证的全流程追溯。
(2)区块链智能合约可以将学历学位认证规则公开透明,并自动执行,具有较强的可信度。
(3)区块链基础上的学历学位认证系统可加强多角色或多单位的参与度,形成一套可信公开约束机制,有效推动可信认证模式的发展。
3.2 访问控制技术
访问控制是指在鉴别用户的身份后,通过某种方式显示的许可或限制用户对数据的访问、对功能的操作,防止违法用户进入或合法用户错误操作带来破坏。目前有基于角色(Role-Based Access Control,RBAC)、属性(Attribute-Based Access Control,ABAC)等访问控制模型[17]。
RBAC模型满足最小特权、职责分离以及数据抽象的原则,同时具有易管理、易建模的特点。目前,以RBAC为基础的访问控制模型在各企业权限管理系统中广泛应用。由于区块链上数据不可篡改,区块链智能合约一旦部署便不可篡改、全网节点共同执行、执行过程公开透明,因此区块链可作为访问控制模型的维护者,解决以往访问控制部署在中心化服务器易被篡改的问题[18]。已有学者提出将访问控制模型与区块链智能合约结合,用于物联网设备[19]以及系统[20]的访问管理。
4 学历学位可信溯源机制
本文针对当前学历学位验证的可信性挑战,设计并实现了一套基于区块链的学历学位溯源系统,并提出了数据协同存储机制、智能合约用户访问控制机制以及学位判定智能合约模板机制,以提高学历学位溯源系统的数据处理效率和信息可信度,方便管理员对学历学位系统进行维护。
4.1 系统架构
基于区块链的学历学位溯源系统架构如图1所示,该系统可分为四个模块:前端页面展示、后端业务逻辑、合约规则及可信存储。
(1)页面展示面向用户,可供学生、教务管理人员以及用人单位等更新或查询学生学历学位相关数据。
(2)业务逻辑模块支持对前端收集到的数据进行增加、更新等操作,同时包含对区块链以及链下分布式存储系统接口的调用。
(3)合约规则即区块链智能合约中的程序,用于执行关键业务逻辑,包括用户访问控制、学历学位授予和学年合格性判定等。
(4)可信存储由区块链以及链下分布式存储系统组成。区块链用于存储学生属性数据、智能合约判定所需数据以及智能合约判定结果。链下分布式系统则存储除智能合约规则以外全部数据,包括关键信息和非关键信息。关键信息包括关键属性数据,比如学生身份数据。智能合约判定所需数据为判定规则所需数据,智能合约生成结果则包括学生是否毕业等判定结果。其他非关键信息包括平时成绩各得分项、平时作业等。这些信息都可以支撑学历学位获取的全过程溯源。
在该系统中,合约规则以及可信存储中的三个模块:数据协同存储、智能合約用户访问控制、学历学位判定智能合约模板是实现学生学历学位获得过程数据溯源的重要组成部分。
4.2 数据协同存储机制
实现学历学位的溯源,需要存储用户的关键信息和大量学历学位获得的过程数据,如期末考试成绩、获奖数据、平时作业等。将这些数据都上传至区块链较为耗时且高成本,同时区块链上不易存储学生一寸照、学位证书扫描件等非结构化数据。
为了高效存储学生学历学位获得过程中产生的数据,实现学历学位过程溯源,本文将区块链与分布式存储系统结合,实现了数据的链上链下协同存储。首先,对数据进行分类,随后对这些数据进行分区存储。链下存储会存储除智能合约以外的全部数据,关键数据会同时存储在区块链中。为了保证数据可信,需要验证链上链下关键数据的一致性。
(1)数据存储分类设计
首先,对数据进行分类,分为关键数据与非关键数据。其中学生关键数据包括学生属性数据、智能合约判定所需数据以及智能合约判定结果。学生关键属性数据为学生身份数据。智能合约判定所需数据为判定规则所需数据。智能合约生成结果则包括学生是否毕业等判定结果。其他非关键数据包括平时成绩、平时作业等。这些数据都可以支撑学历学位获取的全过程溯源。其中,关键数据的重要性高于非关键数据,而非关键数据通常数据量更大,对存储的效率和存储量要求更高。
区块链存储的数据可信度更高,但是存储效率低、成本高,而链下分布式存储系统则具有比区块链更高效的数据存储能力,其中区块链数据库兼具区块链和数据库的优势,但通常存储的是结构化数据(本文主要针对BigchainDB这类区块链数据库开展工作),分布式文件存储系统没有共识机制,但可支持非结构化数据的存储。
基于以上学生学历学位数据的特点以及区块链与链下分布式存储系统的存储特征,本文对数据进行分类存储,链上链下数据协同存储策略示意图如图2所示。
链下分布式存储系统则保存除智能合约以外的所有数据,包括关键数据和非关键数据。进一步将所有结构化数据存储在区块链数据库中,而将非结构化数据存储在分布式文件存储系统中。一旦数据上传分布式文件系统后会被哈希运算并得到HASH值,该结果是由文件内容生成,可以检索到文件。数据若经过任何修改得到的HASH值都会变化。随后,该值会被加密后作为结构化数据存储在区块链数据库中。
同时,区块链用于存储智能合约,以及关键数据,主要是指学生属性数据、智能合约判定所需数据以及智能合约判定结果。当然,与这些数据相关的非结构化数据存储在分布式文件系统中,并将数据哈希计算后得到的HASH进行加密,进而上传至区块链。其中区块链数据库使用的是BigchainDB,分布式文件系统采用的是IPFS。
以上构建的区块链与链下存储系统相结合的存储方式,根据数据重要程度的不同,将数据存储在不同的存储空间。在可信度及效率之间寻求平衡,同时可以支持非结构化数据的存储。
(2)数据同步机制设计
链下分布式存储系统如区块链数据库以及分布式文件系统,查询效率更高,从中查询数据有利于提升整个系统的性能,本文设计其保存除智能合约代码外的全部数据。但由于链下存储系统的可信度不如区块链,关键信息还需要存储在区块链。因此为了保证链上链下关键数据的一致性,本文设计了如图3所示的数据同步机制。
学历学位信息溯源通常查询链下系统来保证查询效率,但对于学生关键信息,比如是否获得学历学位证书这一结果会从区块链智能合约重新判定或查询,可增强查询结果的可信度。
同步机制需要将区块链智能合约中判定生成的关键数据同步至区块链数据库中,另外还可将区块链与区块链数据库中的关键数据进行核对,保持数据一致。因此,本文设计了包含触发同步以及定时同步的数据同步中间件,对区块链与区块链数据库之间的数据进行验证、同步。
该中间件的功能模块,如图3所示。包含监听、数据库操作、计时、对比以及报警五个功能模块。其中监听模块用于监听区块链上数据的变化;数据库操作模块用于查询区块链与区块链数据库上的数据;计时模块用于在规定时间触发同步机制开始定时同步功能;对比模块则用于将区块链与区块链数据库上查询到的数据进行对比;报警模块则用于区块链与区块链数据库数据不一致时向相关人员报警。
本文使用以太坊区块链平台,而区块链数据库则是BigchainDB。
本文同步机制监听模块的实现依赖于智能合约的监听功能。下面举例描述以太坊智能合约监听功能实现方式。以太坊智能合约可定义用于监听合约方法是否被执行的事件(event),当智能合约方法被执行,定义在该方法中的事件会被触发(emit),系统就能监听到数据的变化。比如可以监听如算法1的判断学生是否毕业的JudgeGraduate方法。定义一个名为MonitJudgeGraduate的事件,入参为学生ID和学生是否毕业graduateState,该事件被JudgeGraduate方法触发。
算法1:监听毕业判定
输入:学生ID,总学分CC,四级成绩CET,毕业论文成绩CP
输出:学生是否毕业graduateState
1:function JudgeGraduate(ID,CC,CET,CP)
2: if(CC,CET,CP satisfy the graduation requirements) then
3: graduateState=”graduate”
4: else
5: graduateState=”ungraduate”
6:emit MonitJudgeGraduate(ID, graduateState)
7:end function
区块链支持对学生任意數据的附加更新。在区块链数据库中,本文将一般不会改变的关键数据如学生标识信息:姓名、出生年月、性别、学号、学校等信息标注为资产数据,将四级成绩、是否毕业等会变化的信息设置为关键元数据,元数据可以进行更新,本文将学生学历学位溯源数据在区块链数据库中存储为关键元数据与非关键元数据。为了保证用户在区块链数据库查询到的关键数据是可信的,可以通过区块链或者智能合约运行对关键元数据核对,进而更新,加强数据的可信性。
为了实现区块链与区块链数据库系统的同步,本文设计了触发同步与定时同步两种同步方式。
功能1:触发式同步
触发同步功能用于监听区块链智能合约判定后产生的数据。例如,当区块链上执行是否毕业的判定,中间件就会利用触发同步功能进行数据同步。
下文以学生是否毕业这一数据的同步过程为例,对该实时同步机制的运行方式进行描述。中间件的模块调用关系,如图4所示。
当区块链智能合约执行判定学生是否毕业的函数时,会触发毕业判定事件,此时系统上中间件的监听模块会监听到数据的变化,如图4中①所示。随后通知数据操作模块,如图4中②所示。数据操作模块会调用区块链数据库模块中的数据查询函数,根据该学生ID查询学生在区块链数据库中对应的关键元数据,如图4中③所示。随后,对比模块会对区块链与区块链数据库上是否毕业这一数据进行对比,如图4中④所示。若数据一致,则不进行操作;不一致则更新区块链数据库中数据,如图4中⑤所示。进而将结果也存储到区块链,如图4中⑥所示。
功能2:定时同步
定时同步功能可以在规定的时间对系统中智能合约计算相关的学生关键元数据进行同步。该定时同步时间间隔T可以根据系统对数据一致性的要求、系统的数据处理能力以及数据量的大小等因素进行设定,例如可以设置T为1天、2天、1周等。定时同步,中间件的模块调用关系,如图5所示。
当间隔时间为T1时,计时模块每隔T1就会发起数据同步操作,如图5中①所示。此时数据操作模块会分别调用区块链数据查询模块和区块链数据库数据查询模块,根据学生ID对区块链与区块链数据库上的学生数据进行遍历,如图5中②所示。数据获得后,会进入对比模块,如图5中③所示。对比模块会根据学生ID对学生在区块链与区块链数据库上的关键数据进行对比。数据一致则不进行操作,数据不一致且区块链上数据更新时间更晚时则调用区块链数据库上的数据更新模块,将区块链中查询到的数据同步至区块链数据库,如图5中④所示。若双方数据不一致,且区块链数据库中数据更新时间更晚,则说明可能存在数据被恶意篡改的情况,需要调用报警模块,通知相关人员数据存在异常,如图5中⑤所示。
以上描述的链上链下数据存储模式,包含对数据的分类存储的设计、数据协同机制的设计,该模式有效解决了学历学位溯源系统的数据安全与数据处理效率之间的矛盾,有利于加快基于区块链的学历学位信息溯源系统在实际中落地应用。
4.3 智能合约用户访问控制
通过对用户赋予不同的角色,不同角色又赋予不同的权限,来完成数据和功能访问控制,可以减少数据违法操作与误操作,保证学生学历学位溯源数据的可信。
实际中,学校各岗位的设置比较固定,但是各岗位上的人员变动较大,因此该模式适合基于角色的访问控制模型(RBAC)。
模型中角色将用户与权限分离,可以减少人员职位变动时,权限数据做过多调整。另外,本文将区块链智能合约与RBAC模型结合,改变以往访问控制中心化的管理方式。本文实现的访问控制机制在实现自动执行、不可篡改的同时,还可以记录在什么时间、什么人员,进行了什么数据变更操作,方便追责。
本文在区块链智能合约中实现了该权限管理模型。首先,在智能合约中建立了可以存储用户、角色以及权限信息的结构体,并增加用户、角色以及权限相关信息的新增、修改、查询以及禁用等功能。其中,用户相关操作包含用户新增、修改、禁用、查询以及用户角色修改五个功能。角色相关操作包含角色新增、修改、查询、禁用以及角色权限修改五个功能。权限相关操作包含权限新增、修改、查询以及权限禁用四个功能。
如图6所示,为该区块链学历学位溯源系统访问控制中的用户、角色以及权限的关系。可见该系统主要包含五类角色:管理员、教师、学生、用人单位以及第三方监管单位。为了更加简单的表达使用方法,特将角色权限简化,各个角色的权限表达为:管理员具有配置用户角色的权限;教师具有上传学生成绩和相关信息的权限;学生具有查询和确认数据的权限;用人单位和第三方监管具有查询数据的权限。
4.4 学历学位判定智能合约模板
该基于区块链的学历学位溯源系统采用数据与逻辑分离的设计模式,区块链上的数据与智能合约定义的逻辑代码也遵守该原则。
高校在学生入学时会与学生签订毕业协议,学生满足毕业协议才能毕业。将毕业协议转化为区块链智能合约代码,能保证学位授予规则自动执行,执行过程的不可篡改、执行结果的可信。
高校每一届学生的毕业协议都具有一定的共性,但也会根据课程和教育改革等实际情况进行调整。高校管理人员进行学历学位授予智能合约或其他判定合约的开发需要一定编程基础,且智能合约一次部署不能中途更新,对代码具有较高的要求。因此构建通用的学历学位溯源智能合约规则模块,通过规则模块组合,方便快速的构建特定智能合约,有利于系统在实际中应用。
[10] 李中振,高超越,刘敏,代成琴,范轶. 基于区块链技术的学籍管理系统[J]. 四川大学学报(自然科学版), 2019, 56(03): 450-456.
[11] Jirgensons M, Kapenieks J. Blockchain and the future of digital learning credential assessment and management[J]. Journal of Teacher Education for Sustainability, 2018, 20(1): 145-156.
[12] 袁勇, 王飞跃. 区块链技术发展现状与展望[J]. 自动化学报,2016,42(4).
[13] 邵奇峰, 金澈清, 张召等. 区块链技术:架构及进展[J]. 计算机学报, 2018, 425(05): 3-22.
[14] Salah K, Rehman M H U, Nizamuddin N, et al. Blockchain for AI: Review and open research challenges[J]. IEEE Access, 2019, 7: 10127-10149.
[15] McConaghy T, Marques R, Müller A, et al. BigchainDB: A Scalable Blockchain Database[J]. white paper, BigchainDB, 2016.
[16] Benet J. IPFS - Content Addressed, Versioned, P2P File System (DRAFT 3)[J]. Eprint Arxiv, 2014.
[17] 以太坊團队. Storage and communication infrastructure for a sovereign digital society [EB/OL]. https://swarm-guide.readthedocs.io/en/latest/introduction.html, 2019/2020-05-27.
[18] 王于丁, 杨家海, 徐聪, et al. 云计算访问控制技术研究综述[J]. 软件学报, 2015, 26(05): 1129-1150.
[19] 刘敖迪, 杜学绘, 王娜, et al. 基于区块链的大数据访问控制机制[J]. 软件学报, 2019, 30(09): 2636-2654.
[20] 史锦山,李茹. 物联网下的区块链访问控制综述[J]. 软件学报, 2019, 30(06): 1632-1648.
[21] Ding Y, Jin J, Zhang J, et al. SC-RBAC: A Smart Contract based RBAC Model for DApps[C]//International Conference on Human Centered Computing. Springer, Cham, 2019: 75-85.