基于区块链的数字结业证书管理系统及其性能评估
2020-01-11黄立波王伟徐彦军陈旭刚
黄立波 王伟 徐彦军 陈旭刚
摘要:在当下的教育环境中,线上教育缺乏可信的结业凭证;学员在教育平台学习相关课程后,无法得到具有公信力的结业证书;极少数教育平台给出的结业凭证,由于其中心化的存储,也不能被社会所认可.这些弊端严重限制了线上教育的发展.为了解决这个问题,利用区块链去中心化、不可篡改的特点,设计并实现了基于区块链的线上教育结业证书管理系统,将电子结业证书以数字资产的形式记录在区块链中,并将学员学习记录数据保存在结业证书中,保证了结业证书的真实性和可靠性.在此基础上,基于超级账本,实现了证书生成和发放等的智能合约,保证了无须第三方参与的智能化运行;同时,提供了丰富的查询接口,如结业证书的历史追溯,提高了在线教育平台学习成果验证的效率;另外,由于线上教育的课程以发布者资产的形式记录于区块链,故加强了线上教育领域的版权保护.实验结果表明,所提出的方法能够满足上述教育场景中的性能需求.
关键词:区块链;线上教育;超级账本;智能合约
中图分类号:TP311
文献标志码:A
文章编号:1000-5641(2020)06-0072-10
0引言
随着近些年互联网技术的飞速发展,将信息技术应用于教育领域,大规模建设教育信息化已成为趋势.2016年,工信部颁布了《中国区块链技术和应用发展白皮书(2016)》,白皮书明确指出,区块链系统的公开透明和数据不可篡改等特点,在高等教育的资质证明、征信管理、学员学术管理方面有较大的发展优势.在“互联网+教育”的背景下,将区块链技术与教育相结合,对线上教育的发展意义重大.
在现有的国内外知名MOOC(Massive Open Online Courses)平台中,Coursera是线上教育结业证书发放的先行者.为了保证结业证书的可靠性,电子证书往往由提供课程的高校进行背书,并采用传统的集中式数据存储模式.这种方式会增加证书发放的复杂性,降低效率;且集中式数据存储的方式会导致数据的安全难以得到保障;同时,由于缺乏可靠的查询接口,导致线上教育结业证书的真实性无法得到验证.
区块链技术的出现,为线上教育结业证书所面临的问题提供了解决方案.本文设计并实现了基于区块链的线上教育结业证书管理系统,构建了去中心化的线上教育结业证书平台,降低了线上教育结业证书的管理成本和复杂性.本文系统主要能为线上教育带来以下改进.
(1)利用区块链数据可追溯、不可更改的特点,可以为线上教育提供可靠、安全且经济的证书系统.在信息化的时代,MOOC已成为大众接受高等教育的重要方式之一,但由于MOOC平台中的学习成果认定较难,不同高校对MOOC中获得的学分的转换标准不统一,导致MOOC的发展与推广受到了阻碍.因此,为了保证线上教育能够更好地得到推广,本文将线上教育中的结业证书作为突破点,利用区块链技术改善线上教育结业证书认证效率,以提高电子结业证书的认可度;另外,使用区块链技术中智能合约的自动化运行,可降低证书的认证成本,为线上教育的推广提供有力的支持.在学习行为数据管理方面,系统记录学员在教育平台中的所有学习活动,并将学习信息全部记录于电子证书之中.这样不仅可以提高结业证书的可靠性和真实性,更可将区块链在溯源学员学习信息记录中的优势突现出来.
(2)区块链也可以作为版权保护的工具运用到线上教育中.在现阶段的线上教育环境下,课程资源、学术成果的版权保护是一个难题,高等教育院校的内部课程资源、学术成果,以及线上教育贡献者分享的优质内容,往往在网络中被肆意转载.在信息化时代,除了要提高学习人员的资源利用率,资源发布者的版权保护也尤为重要.本文利用区块链数据不可篡改和可追溯的特点,将资源发布者发布的资源以数字资产的形式记录于区块链中,任何涉嫌抄袭的行为,都可在区块链中找到充足的证据.
本文的主要工作与创新点:①将区块链技术应用到数字结业证书的发放管理中,实现了证书的真实性与可靠性;②基于超级账本,实现了证书生成和发放的智能合约,保证了无须第三方参与就能实现结业证书的历史追溯,提高了在线教育平台学习成果验证的效率;③通过实验手段验证了本文所提方法性能的有效性.
本文首先介绍了区块链技术并对其在线上教育中的应用进行了可行性分析,之后设计并实现了基于Hyperledger Fabric的线上教育结业证书管理系统.该系统在节点管理、智能合约管理和账本管理的基础上,实现了结业证书的元数据管理和发放历史追溯,可为线上教育学员提供真实、可靠的电子结业证书.
1区块链技术及可行性分析
1.1区块链技术
区块链的结构主要由3部分组成,分别是交易(Transaction)、区块(Block)、区块链(Blockchain).区块链是一个分布式账本,区块链系统中的各个节点将同一时间段内的所有交易信息打包成区块,并打上时间戳,区块是构成区块链的基本单位;随后,将生成的区块按时序通过哈希(Hash)加密的方式连接起来,其中区块头会记录前一个区块的哈希值,这样就形成了区块链.由此可以看出,任何一个区块的变更,都会影响到该区块后续的所有区块,而后续区块的修改需要耗费巨大的计算资源,这也就保证了区块链中的数据是不可篡改的.在区块链生成的过程中,会出现在同一时间生成两个或者多个区块的情况,在这种情况下,就会使区块链产生分支,这时,共识机制会确定区块链的主链和分支.目前主流的共识机制有工作量证明(Proof of Work,POW)、權益证明(Proof of Stake,POS)等.区块链的基本结构如图1所示.
1.2区块链技术特点及应用的可行性分析
区块链通过分布式共识机制和数据加密等技术,使去中心化、防篡改、去信任化的数据共享成为现实.区块链技术的特点主要体现在以下几个方面.
(1)信息公开:区块链网络中的交易都是公开透明的,所有用户都有查看的权限.
(2)数据不可篡改、可追溯:区块通过哈希加密联系在一起,保障了数据不可篡改性和可追溯性.这一特性也保证了电子结业证书是真实可靠、不可修改的.
(3)去中心化:区块链实质上是一种基于P2P(Peer-to-Peer)的分布式数据库,所有节点都拥有自主权,不存在中心化的节点.
(4)分布式共识机制:区块链网络中的各个节点都可单独为应用提供服务,防止单节点故障影响整个系统的正常运行,共识机制也保证了区块链主链的唯一性.
(5)非对称性加密:通过非对称性加密技术对数据进行加密处理,有效防止电子结业证书中的个人信息泄露.
(6)可编程性:主流区块链如以太坊、超级账本、EOS(Enterprise Operation System)等都提供图灵完备的智能合约编写语言,能够实现丰富的功能.
基于以上6个方面的主要特点,将区块链技术应用到线上教育结业证书管理系统中是切实可行的.
2基于区块链的线上教育结业证书管理系统的设计
2.1系统设计目标
在现阶段的线上教育发展状况下,线上教育的模式已经不仅仅是学员学习教师讲授的课程,其参与者更涉及学员、教师、高校和企业.学员在选修课程后,希望能获得有公信力的结业证书;教师作为内容发布者,希望其内容版权得到保护;高校作为线上教育的支持者,希望其课程能更多地在线上发布;企业则希望能够有更方便、高效的方式,去考核应聘人员通过在线上教育平台所获得的技能的真实性.因此,在线上教育结业证书管理系统中,数据共享尤为重要;数据共享的同时,还要保证数据的安全性、完整性与可靠性
针对线上教育参与者的实际需求,本文提出以下几个设计目标.
(1)为系统各方的使用者提供友好支持,共同维护同一个记录学员学习行为数据的分布式账本.
(2)提供良好的性能,保证低延迟响应,确保系统的稳定性.
(3)使用非对称加密技术,保证电子结业证书数据的安全性和用户的隐私.
(4)提供稳定高效的查询接口,为企业、高校等多方用户查询结业证书的真实性提供支持.
2.2系统技术选型与逻辑设计
本文提出的结业证书管理系统是在Hyperledger Fabric 1.0的基础上设计实现的.Hyperledger Fabric是由IBM公司主导开发的一个面向企业级客户的开源项目.与比特币和以太坊、EOS等这类公有链不同的是,Hyperledger Fabric网络中的节点必须经过授权认证后才能加入.这样的准入机制避免了由POW所带来的计算资源开销,从而大幅提高了交易处理效率,满足了企业级应用对处理性能的诉求.Hyperledger Fabric凭借其灵活的信任机制和扩展性,是目前最主流的联盟链开发框架.因此,在开发系统时,本文选择了Hyperledger Fabric架构.
本文设计实现的结业证书管理系统是由不同的线上教育参与部门共同连接成的一个教育联盟链网络,在联盟链中每一个节点都对应着一份节点总账,节点中的所有交易信息都会在账本中备份;在整个教育联盟链中,用户可以通过任一节点查询和下载账本中的数据;当某个节点被黑客攻击或数据遭到篡改时,平台会将该节点从联盟链中删除,然后,平台会提交新增数据节点的指令;在系统节点验证通过后,通过Fabric中的Order节点,把交易共识连接到其他节点上,整个平台中的节点将恢复正常.本文系统的逻辑结构如图2所示.
除此之外,本文系统还涉及了区块链的管理功能,主要包括节点的展示、智能合约的管理和账本信息的查看等基本功能.管理功能使区块链的管理更为便捷,方便了开发者在系统故障时及时进行维护.
2.3系统流程
业务流程如图3所示:内容发布者发布课程,经由平台审核通过后记录于区块链中;学员选择课程后,由智能合约管理自动生成待发放的证书,学员在线学习的数据将同步到电子证书中;当学员结束课程学习后,可申请结业,请求申请通过后,结业证书将发放到对应学员账户下;企业可以通过证书的编号,在区块链中查询证书的真实性.
2.4系统架构设计
根据系统的业务需求和区块链的管理要求,本文提出了可视化的管理操作系统,其架构如图4所示.结业证书管理系统主要分为区块链管理、结业证书管理和平台管理3个部分,其中区块链管理部分负责系统中區块链节点之间的信息交互;结业证书管理负责电子证书的生成和学员学习记录的写入,以及结业证书的查询;平台管理部分负责用户管理和系统监控.区块链节点负责数据的存储和智能合约的执行,多节点参与共同维护公共账本,保证账本数据的唯一性和准确性.业务处理机提供上层应用接口,为多方应用查询结业证书、课程版权提供支持.
2.5功能模块设计
本系统设计了账本查看模块、结业证书生成与查询模块、智能合约管理模块、元数据管理模块.本节重点介绍结业证书生成与查询模块.
2.5.1结业证书生成模块
在本文提出的线上教育结业证书管理系统中,对结业证书的操作主要有证书的生成、学习行为数据写入、证书的发放这3个过程.为此,本文设计了结业证书的数据结构,如表1所示.
当学员选择课程后,调用Certificate Enroll智能合约,生成一个空白的未发放的结业证书;结业证书以数字资产的形式记录于区块链,当结业证书被创建后,存于教师账户名下;学员在平台学习时,系统将产生的学习行为数据转化为String格式,调用Certificate Data接口,把学习行为数据以数组的形式存于结业证书中;学员课程学习结束后申请结业,若审核通过,则调用Certificate Exchange智能合约,将结业证书由课程教师名下转移到学员名下,完成结业证书的发放.
2.5.2结业证书查询模块
本文设计的线上教育结业证书管理平台实现了对电子结业证书的查询操作.根据查询的依据不同,将查询方法分为根据用户ID认证查询和使用证书ID直接查询两种方式.前者由具有相关权限的用户登录系统输入用户ID进行查询,在符合要求的条件下,返回对应用户ID下所有的证书.一般状况下,按学员ID查询显示该学员获得的所有证书,按教师ID查询显示该教师管理的所有证书.使用证书ID直接查询,则返回证书的详细信息,包括课程名称、授课教师、学员信息、学习行为记录等.
为了保障用户的隐私不泄露,在进行查询操作时,无论是根据用户ID查询还是根据证书ID查询,都需要先验证进行查询操作的用户是否具有平台公钥,且返回的结果是由公钥加密的数据,进行查询操作的用户用自己的私钥解密后,才可以查看明文数据.查询操作的流程如图5所示.
3基于区块链的线上教育结业证书管理系统的实现
3.1证书ID查询实现
在根据证书ID查询模块中,用户首先登录账号或者使用教育部门的认证信息,系统判断登录信息有效后,进行后续操作.查询时,系统通过Hyperledger Fabric自带的Get-State(key)方法定位查询信息中对应证书信息的位置,然后对加密的电子结业证书进行解密处理,并将处理结果存储在本地的临时文件中.
在根据证书ID查询过程中,若登录信息验证通过,则首先调用QueryCertificate智能合约,该智能合约首先验证参数个数和参数正确性,若证书不存在,则返回错误信息;若证书存在,则返回证书的详细数据.电子结业证书具体实现的逻辑代码如图6所示.
3.2基于Fabric-SDK-go的微服务的实现
本文基于Fabric-SDK-go项目中所提供的应用程序接口(Application Programming Interface,API),向应用层提供了丰富的表征状态转移(Representational State Transfer,REST)API.Fabric-SDK-中的SDK主要分为Json数据模块、Request解析模块、Task执行模块.
(1)Json数据模块主要负责将数据封装成Json数据,采用统一的数据格式,方便了应用层和数据层交互时数据格式的解析.
(2)Request解析模块主要负责接收来自应用层的业务请求,解析请求和接收数据,生成执行任务给Task模块.Request模块采用REST架构设计,将业务进行了分离,针对不同业务类型进行路由转发:①/users路由的Post方法通往用户的ID注册功能;②/users路由的Delete方法通往用户的销户功能;③/users/:id路由通往用户的查询功能;④/certificates/get/:id路由对应到证书的查询功能;⑤/certificates/enroll路由对应到证书的创建功能;⑥/certificates/exchange路由对应到结业证书的签授功能;⑦/certificates/exchange/history路由匹配到证书交易历史的查询功能.路由转发让业务逻辑变得清晰,也让系统有良好的可拓展性.
(3)Task执行模块是Request模块和区块链系统的中间模块,主要功能是接收Request模块发来的任务请求,与数据层区块链节点进行交互.该模块采用gRPC(google Remote Procedure Call Protocol)与区块链节点进行通信.
本文系统具体的REST API如表2所示.
3.3系统演示
本文所提系统为在线教育平台kfcoding.com提供了区块链服务,在Android客户端实现了课程选课、申请结业、证书发放的线上教育全过程.图7为教师登录后,查看学员申请结业请求和审核是否同意学员结业的界面.由图7可知,教师可以看到所有学员提交的申请结业请求,该页面调用了基于教师ID查询证书的接口.在审核页面,教师若同意结业,则调用结业证书发放智能合约,将教师名下的电子证书转移到学员名下,并把教师颁发结业证书的过程记录在该结业证书中.
4系统性能测试
(1)硬件环境:1台Mac主机.其具体配置为:①操作系统,Mac OSmojave 10.14.5;②CPU,4核2.7GHz;③内存,16GB DDR3;④硬盘,顺序读取2.5GB/s,顺序写2.2GB/s;⑤网卡,125MB/s.
(2)开发环境:Golang 1.11.5,Goland.
(3)测试方法:TPS(Transaction Per Second)=并发数/平均响应时间.
(4)测试程序:采用多线程编程,每个线程模拟一个客户端(Client)与区块链系统交互,不断在系统中增加记录.共进行多组测试,Client每组依次递增5个.记录下请求次数、响应时间等实验数据,计算不同负载下系统的吞吐量,同时监控服务器CPU、内存、磁盘I/O、网络等资源使用状况.直到TPS数据不再升高,停止测试.
实验结果如图8所示:Client数量在5-25之间,系统未达到硬件瓶颈,TPS稳定提升;当Client数量在25之后继续提升,TPS趋于稳定,但到达35时并有略微下降,此时系统所有硬件资源的使用情况均未达到峰值,猜测Fabric本身的框架缺陷造成了系统瓶颈.通过实验结果,可以得出本文系统的TPS约为209,因为线上教育电子结业证书管理系统并不需要长时间,多次数的信息交互,基本能够满足该业务场景的需求.
另外,本文提出的系统在Andriod和Web端都有应用.当在线用户较多、处理数据量较大时,保障系统的低延迟对用户体验尤為重要.为此,本文设计并实现了一个简单的Web服务器BDN(Blockchain Delivery Node).其主要目的是加快链中和链外存储内容的交付.BDN负责侦听区块链系统在正常工作流中引发的所有事件,且所有事件都添加了索引并收集;当系统处理的数据量较多时,BDN可对平台事件进行聚合并缓存,从而保证了系统的流畅性,提高了用户体验.
BDN的应用与普通Fabric应用程序在数据处理方面的比较如图9所示.由图9可知,即便当处理的数据数量达到10000条时,本文系统仍能保障低延迟的用户体验.
5总结与展望
本文基于区块链系统Hyperledger Fabric设计并实现了线上教育结业证书发放系统:将学员的选课、学员申请结业、结业证书的发放等内容存储于区块链中,利用区块链不可篡改的特点,提高了线上教育结业证书的公信力,促进了线上教育的规模化发展.同时,提供的丰富查询接口,为与教育相关的多方部门的加入提供了高效支持.
本文的研究还不够成熟,还需要进一步的研究和探讨,针对目前系统中存在的一些问题,还有很多后续的工作需要进行,主要有以下几点.
(1)本文系统的吞吐率较低,这是由Fabric中的共识耗时较长的原因导致的,后续需要考虑如何提高共识效率以应对更大规模化的线上教育.
(2)从课程版权保护的角度看,单纯地记录课程名称、创建者等信息难以做到真正意义上的版权保护,需要考虑如何将课程的完整内容映射到区块链中.
(3)当系统中的某个节点宕机时,平台恢复正常运行的时间较长,下一步工作需考虑如何快速进行故障后的数据同步.
(4)线上发放的结业证书需要权威机构进行信用背书,后续的工作将探索系统与权威机构的协作模式,进一步提高证书的可信度.