区块链,构建网上远程考试信任机制

       在疫情防控形势下,学校大规模开学难以实施,新生复试(笔试)、学生补考等工作如何开展,成为很多院校共同面临的问题。通过互联网开展网上远程考试是目前较为可取的机制,一方面降低学生的时间和经济成本,另一方面提高学校考试工作的效率,特别是在疫情期间,学生足不出户参加考试,减少了人群聚集概率。然而,网上远程考试存在的一系列信任问题制约着其广泛开展和应用。

  本文从学校的实际需求出发,利用区块链自身的分布式、难篡改、可溯源等特点,辅以数字签名、数字证书和视频监考等技术,设计与实现了一种网上远程考试的考试双方的互信机制,从“出题——考试——判卷——存档——复查”各个环节,保障线上考试能够在权威、可信和透明的环境下开展和进行。

信任机制问题

  传统笔试环境中的考生集中、手写答题和纸质试卷等特征确保了考试的可信性,但在互联网这个分布式、不可信和不确定的环境中,存在考试双方的彼此信任问题。具体体现在如下几个方面:

  1.校方如何为提供给考生的电子试卷的真实性进行背书;

  2.如何确保电子试卷和答案在互联网传输过程中不被泄露和篡改;

  3.考生如何登录到真实学校考试网站而不是冒名的网站平台;

  4.如何确保是考生本人参加了远程考试;

  5.如何防止考生对自己的试卷和已提交的答案进行否认和抵赖,如何应对考生对试卷、成绩等电子数据真实性和完整性的质疑;

  6.如何防止内外部人员对相关考试电子资料等的修改;

  7.后期考生申请复查,如何提供权威可信的考试原始电子数据及追溯资料。

关键技术

  区块链存证:

  区块链本质是一个分布式的共享账本和数据库,具有去中心化、不可篡改、全程留痕、可以追溯、长期存储、权威可信等特点。这些特征确保了区块链的“诚实”,为可信存证提供了支撑。

  不可篡改性确保了数据的完整性,一切数据只要写入区块链就不能被修改。

  可溯源性保证了存证的连续性,完整记录了存证数据从最初状态到获取状态之间的全部变化。在区块链中修改和删除数据,都将被完全和连续地审计记录而不会将之前的行为覆盖。

  长期存储性以不可篡改和可溯源特性为前提,区块链具备数据长期存储的特点。利用区块链对电子考试数据进行存证可确保数据的真实性,实现考试数据全程追溯,增强考试的公信力。

  数字签名:

  数字签名是只有信息的发送者才能产生的别人无法伪造的一段数字串,这段数字串同时也是对信息的发送者发送信息真实性的一个有效证明,具有不可否认性等特点。利用数字签名实现考试双方对试卷、答案和成绩等电子数据的确认和不可抵赖。

  数字证书:

  数字证书是指在互联网通讯中标志通讯各方身份信息的一个数字认证,人们可以在网上用它来识别对方身份,因此数字证书又称为数字标识。数字证书对网络用户在计算机网络交流中的信息和数据等,以加密或解密的形式保证了信息和数据的完整性和安全性。利用数字证书可实现考试双方对彼此身份的认证和识别。

  WebRTC视频监考:

  WebRTC是一项在浏览器内部进行实时视频和音频数据通信的技术,可以使浏览器成为实时音视频的通信平台。通过WebRTCAPI利用考生考试时使用的电脑摄像头对考试场景进行实时监控和记录,对发现他人替考、多人作答、擅自离开、中途换人等情况保存记录,对考生的现场行为起到威慑和记录作用。

信任机制的设计与工作流程

  信任机制的工作流程如下,可参看图1:


图1 互信机制的工作时序

  1.通过CA系统为学校和考生颁发权威的数字证书;

  2.网上考试系统采用双向数字证书验证机制,一方面确保只有考生才能登录到真实的考试网站,无关人员无法登录,另一方面实现试卷的加密传输;

  3.考试系统在向每位考生出具的试卷上加盖学校的数字签名,为试卷的真实性背书;

  4.考生登录考试系统下载试卷,并对试卷上的学校签名校验无误后开始在线答题;

  5.考试期间,考试系统通过WebRTC利用考生的电脑摄像头对现场实时监控和随机抓拍;

  6.答题完毕后考试系统将自动计算成绩。考生对成绩、试题和其填写的答案等确认无误后,加盖自己的数字签名,上述数据被打包回传到考试系统中;

  7.对于考试中生成的考卷、答案和视频等电子资料,提取数据特征和数据指纹后,放入学校的区块链存证平台长期保存;

  8.考生如后期对成绩、试卷等存在异议,可通过区块链存证平台提出申请复查。存证系统从区块链中检索原始数据及溯源信息,通过双方电子签名进行验证。

考试数据存证平台的设计与实现

  考试数据区块链存证平台实现了网上考试相关电子数据的 永久性存档。平台利用区块链技术确保考试数据的难更改和可追 溯,并提供了电子数据存证、原始数据复查等多项功能,构成了 学校电子考试管理体系中的重要一环。

  1.整体架构


图2 考试数据存证平台整体架构

  由图2可以看出,存证平台主要由表示层、业务逻辑层、数据存储层三部分组成。

  表示层负责UI界面和用户交互,用户通过客户端浏览器使用平台提供各项功能。表示层在开发过程中采用了JQuery+AJAX等前端技术,为用户提供了便捷的功能界面。

  业务逻辑层负责依据预定的学校业务逻辑实现各项内外服务功能,其中包括考试数据存证、存证信息检索、存证数据溯源、复查申请及审批、平台用户管理、系统参数设置等功能。业务逻辑层通过调用智能合约来实现对区块链网络的数据访问。

  数据存储层实现了相关考试电子数据的存储和操作。平台采用文档型数据库MongoDB存放平台本身的配置数据,以及数据量大、重复程度高、操作频繁、共享需求高的考试业务信息。区块链网络存储部分则用于考试数据的永久存证存储。

  2.区块链存储网络

  整个区块链存储网络采用纯IPv6网络环境,由多个分布式节点Peer组成,按其功能与角色可分为提交节点、排序节点、背书节点等,如图3所示。


图3 IPv6 网络下区块链存储网络拓扑框架

  提交节点:负责验证从排序服务节点接收到的区块中的交易,然后将块提交(写入/追加)到其本地账本中,将区块中的每个交易标记为有效或无效。

  背书节点:所谓背书就是指特定节点Peer执行模拟交易并向生成交易提案的客户端应用程序返回响应的过程。只有在客户端向节点发起交易背书请求时才成为背书节点,其他时候是普通的提交节点,只负责验证交易并记账。

  排序节点:排序节点接收包含有背书签名的交易信息,对其排序打包并生成区块,广播给节点Peer进行上链存储。

  考试信息在区块链网络中的存证存储流程如下,参见图4:


图4 存证存储过程时序

  (1)存证客户端首先发起一笔考试数据存证交易提案,并发送给背书节点;

  (2)背书节点对存证交易提案验证无误后加盖自己的数字签名,并返回给存证客户端;

  (3)当存证客户端收到足够多的背书签名后,将存证交易信息发送给排序服务节点,排序节点对其验证无误后,将此存证交易信息加入现有或新生成的区块中;

  (4)排序节点将该区块广播给通道内的所有背书和提交节点,将该区块永久记录在区块链账本上。

  3.考试数据存证功能

  对于要存证的考试数据,操作人员首先对其加盖自己的数字签名,随后批量导入存证平台,平台调用对应的智能合约实现考试数据在区块链中的存储。如图5所示。


图5 存证功能设计架构

  4.考试数据复查追溯功能

  考生提出复查申请获批后,平台首先从数据库中找到相关的考试资料索引编号,然后调用智能合约在区块链中查找对应存证及溯源数据并反馈给考生核对。如图6所示。


图6 复查追溯功能设计架构

  本文设计的信任机制是区块链等技术在院校远程网上考试领域应用的一次尝试,力图减少人为因素造成的信任问题,避免考生与学校之间的纠纷,实现每一笔考试数据的确认、存储并固化,方便社会各界的追溯和监管,为解决网上考试权威可信性提出了一种新的思路。

  本文刊载于《中国教育网络》杂志2020年4月刊,原标题为《以区块链打造网上远程考试信任机制》,作者:郭涛1、李鹏祖1、罗佳2、程永强1、牛变玲1、翟峰1,单位:1为太原理工大学;2为太原市第三十六中学;责编:朴艺娜。本文刊载于《中国教育网络》杂志2020年4月刊,原标题为《以区块链打造网上远程考试信任机制》,作者:郭涛1、李鹏祖1、罗佳2、程永强1、牛变玲1、翟峰1,单位:1为太原理工大学;2为太原市第三十六中学;责编:朴艺娜。)