基于区块链的远程教育考试系统

2022-10-03 02:57
陕西开放大学学报 2022年3期
关键词:哈希答题客户端

张 娟

(陕西开放大学 新城分校 ,陕西 西安 710032)

远程教育(Distance education)是主要通过互联网及现代媒体等技术进行教学的培养方式。随着互联网和大数据技术的发展,远程教育的优势和重要性越来越明显。与传统教育方式相比,远程教育的考试面临很多问题:1.学生学习的过程基本不在同一个时间和地点,因此难以组织高效的随堂考试;2.期末考试的成绩影响学生的毕业,有些学生会想办法作弊,由于可能面临的不是统一的监考,所以难以发现学生的作弊行为;3.考试组织人员等也有可能受到亲戚朋友的影响,修改考试的结果等。这些问题不光影响考试的效果和公信力,也会给远程教育本身造成恶劣的影响。

区块链是一种分布式记账技术,具有“去中心化,数据不可篡改”等特性。“区块链”技术已逐渐成熟,目前已被广泛应用于金融,医药,物流,公安等领域。本文介绍了如何在现有的远程考试系统基础上,结合“区块链”技术打造一个公正可信的数据管理系统,减少作弊和篡改成绩的可能性,提高远程教育的质量。

一、相关研究

(一)区块链技术及其在远程教育中的应用

2008年,化名为“中本聪”的日裔美国人首先提出了区块链的概念。区块链技术作为一种去中心化的分布式账本数据库,以密码学技术,共识机制为基础,采用在多数节点中递增式hash后追加记录的方法,保证了数据存在多个节点,以及不可篡改和不可伪造的特性。因其功能有限,且更新数据速度慢,数据存储代价高,区块链早期的应用仅限于比特币。以太坊提出了智能合约的概念,利用分布式节点上的自动化脚本生成和操作数据,大大提高了区块链的能力。研究普遍认为比特币为代表的数字货币是区块链1.0应用,以以太坊为代表的智能合约是区块链2.0,超越货币的其他应用是区块链3.0。

从国内论文发表的情况来看,区块链应用于教育的研究仍处于起始阶段[1]。区块链与教育结合主要在学分认证,区块链成绩单与证书认证等环节[2][3]。2016年起麻省理工大学首次启用基于区块链技术的学历证书。蒋明蓉的文章介绍了牛津大学学者创建的第一个基于区块链的伍尔夫大学,包括该大学的教学支持服务,资源支持服务和管理支持服务,其核心是追踪教育过程,确保教学质量和学位授予的有效性。[4]朱珂的文章介绍了将基于数字孪生和区块链技术的元宇宙技术应用于远程教育的实施路径和框架,探索了适用于不同知识的学习情境的远程教育模式。[5]黄涛的文章提出了用区块链保存学习过程中的数据,保护学生隐私。[6]李凤英的文章分析了在远程教育中应用区块链技术面临的扩展、效率和安全问题。[7]沈忠华的文章分析了区块链技术对在线教育评估的影响。这些论文多从应用区块链面临的问题和挑战角度出发,分析区块链技术对远程教育的影响,利用区块链技术设计并实现具体系统的研究较少。[8]

(二)远程考试系统

申田静的文章分析了1998年至2014年的在线考试系统的2237篇文献,发现在2006年之后,每年都有上百篇相关期刊文献,说明国内学者对在线考试系统的功能模块,架构和应用领域都进行了充分的研究。远程教育考试中,在局域网内部署的在线考试系统可以采用和传统考试相同的方式监考,其公正性更强,现在很多全国性的考试均采用这种方式,如驾校科目一,雅思等。[9]

在互联网上进行的考试系统可以采用B/S,C/S和混合架构。B/S架构中,用户只需要通过浏览器打开指定网址在线答题即可,不需要安装额外的客户端。C/S架构中用户安装客户端,答题在客户端中进行。混合架构则是同时需要浏览器和安装客户端。随着信息技术的发展和疫情的原因,在国内大量的复试和面试均采用基于互联网的在线考试系统。华为,字节跳动等公司的技术面试均采用在线答题,在线编程的方式考核。2020年以来多所高校的研究生复试也采用双机位,在线复试的方式进行。

二、基于区块链的远程考试系统架构

在互联网上的在线考试成本低,更加方便快捷,但是难以杜绝作弊的发生,尤其是采用B/S架构的系统,仅通过用户名,密码鉴定考试者身份,无法杜绝替考,查阅资料的事情。一些互联网公司在基于B/S的系统上增加了禁止切换窗口的功能,禁止考生在考试过程中查资料。但是也有考生外接两台显示器和键盘鼠标,有其他学生看到题目在另外的机器上查答案并给予提示。

在远程教育中举行的大规模考试中,大量学生考卷内容是一样的。在考试过程中学生可以通过即时通讯等手段交换题目和答案信息进行作弊。有些在线考试系统提出了打乱题目或答案顺序的方式避免学生作弊,由于题目各不相同,系统管理人员可以调整题目的内容达到更改学生成绩的目的。

为了避免以上的问题,本文提出了一种B/S和C/S混合架构的远程考试系统。该远程考试系统与通常的在线考试系统功能基本一致,如图 1所示,分为考试子系统和后台管理系统两大部分。与传统在线考试相比,在线考试子系统增强了考试过程中的过程监控和证据采集,主要包括监控考试过程中的软硬件活动,以及通过摄像头录制考生考试过程。相关监控和证据采集的功能主要由客户端程序执行。在大规模在线考试过程中,所有考生将视频传至考试服务器会浪费大量带宽,影响考试的正常进行。在考试过程中仅将视频和提交的答案哈希后定时上传至区块链,在考试结束后进行证据的收集和验证。教师后台管理部分可以查看考试过程分析的相关内容,包括获取视频,分析答案提交过程等。

图1 基于区块链的远程考试系统功能图

在使用方面,考生使用浏览器访问在线考试网站,网页提示用户下载并安装客户端程序。客户端程序主要实现以下功能:

监控硬件设备,禁止使用双屏幕,双键盘鼠标等。

监控软件活动,限定切换程序次数,监控并记录考试器件的复制粘贴等。

与服务器定期通讯,用心跳电文的形式包括是否有异常情况。

作为区块链节点,与其他考生和考试中心的机器组成区块链网络。

将考生答题信息和关键特征信息上链保存。

在考试过程中考生仅需通过浏览器答题,不需要操作客户端程序。客户端通过WMI(Windows Management Instrumentation)可以查询显示器,键盘和鼠标的个数和信息。需要注意的是查询的是指点设备的信息,包括鼠标和触摸板等。对于软件信息的监控只需要监控在最前端的窗口和系统剪贴板即可。这类信息一般信息量不大,在考试过程中一旦发生变化,一方面客户端会弹出提示警示考试,另一方面会把异常信息发送给服务器。区块链相关的设计与实现将在第三节进行说明。

三、关键技术及其实现

本节主要介绍本系统的关键技术及其实现,主要包括区块链的设计与实现,以及如何利用区块链进行考试过程证据的验证。

(一)区块链相关的设计与实现

区块链是一种分布式数据管理技术,其核心思想是将数据分成不同的区块,根据区块的产生时序前后相连,组成类似链表的结构。在新的区块上链的过程中,区块头部包含前一个区块的哈希值,结合本区块的数据,以及一个长的随机数(Nounce)进行哈希,只有该哈希结果符合特定要求(如前三位为0)的随机数才被认为是合法的区块数据。第一个发现这个随机数的节点具有记账权。通过链式存储和复杂的加密算法,存储于区块链系统的数据具有不可伪造、可溯源、集体维护等特点。

区块链可以分为公有链,私有链、和联盟链三类。公有链是对所有人公开,用户不需要注册和授权就能够匿名访问网络和区块,任何人都可以自由加入和退出网络,并参与记账和交易,像比特币,以太坊都是公有链。联盟链仅限于联盟成员进行读写和查询。因其只针对成员开放全部或部分功能,所以联盟链上的读写权限、以及记账规则都按联盟规则指定。联盟链上的共识过程由预先选好的节点控制,一般来说,联盟链适用于机构间的交易、结算、或清算等B2B场景,如人民银行开发的实时结算系统。私有链仅在私有企业使用,私有链上的读写权限,参与记账的权限都由私有企业来制定。由于私有链规模小,所以数据读写都很快,也并不需要每个节点都进行验证,所以对各节点的配置要求不高。私有链的主要价值在于提供安全、可溯源,不可篡改的数据存储。

本系统采用的是基于以太坊(https://ethereum.org/en/ )的私有链,以太坊是一个开源的有智能合约功能的区块链系统。以太坊提供了多个平台的运行程序,Windows版的压缩包约20M。如图 2所示,考试服务器和各考生的机器组成了一个私有的以太坊区块链网络。考试服务器通过设定起始节点的配置文件,可以创建一个独立的区块链节点,即私有链的第一个节点。随后可为每个考生创建一个私有链账户,该账户相关信息和以太坊节点程序随客户端一起下载至考生机器。考生机器上的客户端启动时会同时启动名为geth的程序,启动后将和考试服务器组成区块链网络。

图2 远程考试系统的区块链网络结构图

(二)考试过程证据的加密上链与验证

本系统使用区块链的目的是为了保存考试过程中的证据,主要包括考生答题情况和视频数据特征。web3j是Java版本的以太坊JSON RPC接口协议封装实现,浏览器和应用程序都可访问该接口存取区块链上的数据。

因为区块链的数据在所有节点都可访问,所以考试过程的考生的答题数据不能直接保存在区块链上。系统采用的方法是将多个题目的答案组成字符串序列后进行哈希,将哈希的结果保存在区块链上。其他考生即使获取了哈希的结果,也无法通过哈希获得原始的答案。另一方面,由于区块链系统的匿名性,考生不知道那份哈希具有更高的正确性。在考试结束后,考试管理系统可从原有的考试系统中获取考生的最终答案,计算哈希后与链上保存的值进行对比,如不一致说明有人考试后篡改了考生数据。

相比与传统的数据库,区块链的数据更新速度较慢。而且在大规模远程考试系统中,实时传输所有人的视频数据至服务器对带宽提出了很高的要求。本系统对视频数据采取分段保存,哈希后将特征值上链的方式锁定视频内容。在考试结束后,如需让考生提交视频数据,考试中心会根据视频的哈希值判断视频是否是原始视频。

系统增加的区块链主要用于考试过程的证据采集,最重要的一个设计准则是不影响考生使用在线考试系统进行答题。系统设计过程中答题数据通过在前端页面设计Ajax异步调用的方式提交给web3j,避免区块链服务接口服务慢影响网页加载速度。

四、系统测试

系统设计完成后进行了功能测试,功能测试情况如下∶

1)考试数据上链存证:与原有系统相比,考试过程中考生并未感到有明显的延迟; 考生提交的答案考试结束后未修改时,远程考试系统验证通过。如考试结束后答题记录有修改,远程考试系统验证不通过。

2)视频数据上链与验证∶在考试过程中,每5分钟各考生节点计算该时段视频数据的哈希值并上链;考生提交指定视频后,如视频是原始视频,则验证通过;如视频有修改,则验证失败。

3)软硬件监测∶考试过程中如发现有多个显示器或输入设备,会提示考生禁用对应设备。考试过程中如发现多进程频繁切换,会提示考生注意,并将进程切换的过程截图发给考试中心。

五、总结及分析

本文提出了一种利用“区块链”技术改进现有远程考试系统的方法,利用“区块链”系统数据不可篡改的特性,最大限度的保证了考试的公平公正。实验结果表明,结合区块链的考试系统性能和功能都能满足远程教育考试的需求,可供教师进行日常考试和期末考试等。区块链系统具有数据存储效率低,更新慢的特点。其上保存的数据同时保存在区块链网络的多数节点中,造成了存储资源的浪费。对于考试系统而言,考试的过程数据不用长期保存,将来应结合教务系统的相关规定,设计将区块链上的旧数据删除的机制和方法。另外,客户端在监考过程中可以通过目标识别和眼动跟踪等技术更智能地实现自动化监考,降低监考人员的负担。

猜你喜欢
哈希答题客户端
邀你来答题
邀你来答题
邀你来答题
邀你来答题
文件哈希值处理一条龙
如何看待传统媒体新闻客户端的“断舍离”?
县级台在突发事件报道中如何应用手机客户端
孵化垂直频道:新闻客户端新策略
基于OpenCV与均值哈希算法的人脸相似识别系统
巧用哈希数值传递文件