黎富贵 李敏 莫秋荣
[摘 要]学分银行是实现终身学习的关键环节,文章提出基于区块链技术的学分银行信息管理模型(BCBM)。首先给出管理模型框架设计原理;其次提出一种联盟式学分银行区块链系统共识算法——GPBFT算法,用有序组平衡多叉树改进merkle树—B_merkle树,快速生成新的区块,提升查询认证验证效率;最后,设计权限合约、学习成果转换标准合约、认证标准合约等学分银行智能合约,保证区块链的自动运行和无篡改执行。实验分析表明,该管理模型使学分银行的学习成果数据透明化、不被篡改,在网络开销和系统开销等方面有着良好的表现,为学分银行信息管理提供新的技术思路和方法。
[关键词]学分银行;区块链;共识算法;B_merkle树;智能合约
[中图分类号]TP311 [文献标识码]A [文章编号]1008-7656(2021)02-0015-05
引言
随着科技的不断进步,信息技术深入社会的每个层面,社会各行业对人才的需求呈现多元化趋势,传统在校、线下单一的教育模式已经难以满足信息时代就业市场对创新人才的要求。学分银行打破传统的教育模式与管理方式,满足现代学习者终身教育和个性化学习的需求。学分银行的推行使学习者可以跨领域、跨专业、跨时空选择学习内容并进行存储、转换、兑换教育成果(学分),实现各类教育(培训)机构相互认证,搭建起基于教育大数据的终身学习“立交桥”。这就需要一个集安全性、分布式、透明性于一体的成果记录体系。
目前,一些学历信用记录体系存在数据不完整、缺乏简单高效的验证手段、学分银行平台体系之间(学习信息管理平台)相互独立、产生数据孤岛等问题,导致管理者难以获得完整的有效信息,很多学者对学分银行如何管理教育成果作了一些研究,主要是通过建立标准体系和信息管理系统平台进行管理、认证和转换,但难以保证学习成果的安全可靠,如采用大数据—云计算技术向学习者推荐学习相关服务,尚未完全解决好学分银行中云管理可靠性和安全性问题[1];通过引入SaaS 多租户模式的中心化学分银行系统,在学分银行系统中实现单一实例应用多次,在后台数据库实现租户间的数据共享和隔离[2];有的学者从学分银行商业和技术需求的角度,提出了一个实用的分步指南,以识别系统中的服务[3]。
为了解决海量的学习成果数据壁垒问题,实现数据的安全性、完整性,本文设计了基于区块链技术的学分银行信息管理模型,实现学习过程记录透明化、学习成果难以篡改、学习成果认定和转换高效可信的功能,提供需求分析和决策支持,由学分银行教育机构负责维护以太坊区块的生成与校验,实现账户间交易的去中心化执行。
一、区块链技术概述
区块链技术是一种应用于数字货币—比特币的底层技术(分布式数据库系统),具有去中心化、自治性、防篡改、不可伪造、可追溯等特点[4]。区块链的数据结构分为区块内和区块间链式结构。区块包括区块头和区块体,头部信息是元数据,为区块间提供关联数据,包含版本号、时间戳、前驱区块地址、随机数、哈希值、Merkle根值等信息内容;区块体包括区块间交易的数量和交易记录,交易的记录由Merkle树生成的哈希值(Merkle根值)记录到区块头。获得记账权的矿工将当前区块链接到前一区块,形成最新记账权的矿工将当前区块链接到前一区块,即为最新的區块主链。区块间依次相连,形成从创初区块到当前区块的一条主链,就是记录了区块链数据的完整历史数据。完整历史数据可提供区块链数据的溯源和历史定位。根据节点的访问权限开放程度(去中心化程度),区块链分为私有链、联盟链、公有链3种[5]。本文采用的是hyperledger fabric1.4联盟链,依据一是学分银行是由各教育机构(高校)、政府部门、企业等共同参与管理,二是联盟链支持和扩展PBFT等共识算法。
二、基于区块链技术学分银行管理模型设计
(一)区块链模型框架设计
多数据源-区块链学分银行区块链框架如图1所示。
通常情况下,学习者是学分银行成果的主要提供者,原始学习成果存储到学分银行节点数据库中。教育(培训机构)、企业(用人单位)是学习成果的管理者、数据查询方。为了保证原始成果可信、不可篡改,本文对学习者学习成果采用B_Merkle树进行哈希算法运算,计算出摘要值并存放在B_Merkle树根,在下文会详细描述该算法。
联盟节点中发起读取学习成果存入学分银行区块的指令,联盟的节点使用改进的PBFT进行验证,经过共识机制验证学习成果合法性后,则根据认证标准、兑换机制、转换标准的智能合约条款完成学分转换,并写入区块链中,副本保存到各节点的数据库中。
(二)学分银行节点管理
学分银行节点是由验证交易单 (Transaction) 和区块验证器(Validator)、 区块生成器 (Blocker)组成,这三者之间通过共识算法协作运行(如图2所示)。本文采用联盟链的PBFT算法作为联盟式学分银行区块链系统共识算法——GPBFT算法。
1.客户端
联盟式学分银行区块链系统是由多源无中心化节点组成的分布式网络体系,客户端是通过数字签名和记录区块ID而生成交易单的组件,具有防篡改、防删除、可溯源的特点。客户端主要有3类人员:学习者、教育(培训)机构管理员、用人单位(企业)。学习者注册学习,并授权节点管理的信息。节点管理员审核学习者的注册信息、授权信息、授权其他节点提取数据等,保证平台的服务。用人单位(企业)主要查看学习者的相关信息(学习成果、学习过程、学分获得情况等)。
2.基于学分银行的PBFT共识算法
在学分银行链(CB chain)中挖矿节点是区块验证器节点,有全节点和轻量级节点两种。全节点用于保存用户最新的、完整的数据,轻量级节点仅保存部分信息。以用户登录的节点为全节点,其他节点为轻量级节点。验证器为PBFT共识算法的副本节点,负责交易单和区块消息的验证,验证流程:接收客户端的交易单信息或区块消息→校验消息哈希签名是否正确,信息是否符合规定(用户授权范围)→验证“正确”,主节点验证器生成预准备信息→广播各备份节点→PBFT共识算法三阶段→各节点接收交易单并保存交易信息。
3.新区块生成
在传统的 PBFT 算法中, 比特币区块链每隔一定时间T通过“矿工挖矿”生成一个区块。矿工挖矿过程的实质是不断生成随机数, 与区块头相关信息经哈希算法运算后得到哈希值。若该哈希值大于一个设定的阙值, 则矿工挖矿不成功;若该哈希值小于一个设定的阙值, 则矿工挖矿成功, 生成一个区块广播至全网, 同时可得到一笔报酬, 即获得比特币[6]。在联盟式学分银行区块链系统中,区块的生成需经过验证器集群校验。鉴于区块链部署的学分银行在各地的培训机构、教育行政机构、学校和学习点(学习中心),其服务器和网络均比较稳定,主机的加入和退出需要一定的手续,服务器管理规范,因此,本文采用新的区块链生成方式。
(1)为了减少网络带宽占有率,节点的验证器和打包器部署在节点的内网中,减少不必要的网络传输,提高交易单的验证效率。
(2)考虑main_节点负责接收客户端发来的信息,本文中main_节点不参与打包过程。区块链BLOCKCHAIN_节点在T时间范围内验证、接受学习、学分等信息交易单后,根据公式B=R%(N-1)来判断是否由自己生成新的区块。其中,B为当前需要生成新区块的节点,R为当前区块链的长度。当区块链BLOCKCHAIN_节点检测到需要生成新的区块时,则收集已检验且符合条件的交易单ID,并生成B_merkle树,打包成区块发给main_节点并加入区块链尾。
4.平衡多叉树改进merkl树-B_merkle树
大数据背景下的终身教育蕴含海量及繁杂数据,使用传统的merkle树会增加文件分块数量,子叶节点数量随之增多,树的深度(高度)呈线性增长,时间和空间消耗大,遍历路径增加,检验的时间随之增长,造成运行效率低。因此,本文采用B_merkle树[7],可以有效控制树高度,提升访问效率。
(1)建造B_merkle树算法伪代码
初始化B_merkle树T根节点并创建根,设节点关键字个数最大为M;
插入文件分块;
计算哈希函数,插入key_K;
检测比较Kn ,n≥2;
If T 有多个叶节点 then
检测节点_Kn ;
If 节点_Kn含有>M个关键字 then
调用分裂函数
If 节点_Kn 含有 调用删除节点函数 Else更新哈希值 End (2)分裂函数 if 节点_Kn 含有≥M个关键字 then 节点_Kn分裂为两个节点_Kn和节点_Kn+1; 节点_Kn和节点_Kn+1 各含有M/2个关键字; End (3)删除节点函数 when 节点_Kn 含有 Delete 节点_Kn ; 合并关键字到兄弟节点或者父节点; End (三)学分银行智能合约设计 学分银行智能合约设计了权限合约、成果转换标准合约、认证标准合约,保证区块链的自动运行和无篡改执行。 1.权限合约 交易进入区块时,节点调用配置信息检测用户执行交易的权限范围。如在合约中获取用户的权限,则将该笔交易打包进入区块,添加到区块链上;如无获取用户权限信息,则中止退出,调用流程算法伪代码描述如下。 Check user_transaction key value; If user.mesg in key value list then 获取准入准出权限; 添加到区块链; Else end 2.成果转换机制合约 成果转换标准合约由教育管理部门、联盟教育(培训)、发证机构之间协商确定需要转换的学习成果机制标准并代码化,调用时自动执行。学习者的学习成果被记录存储后,当需要转换为某一机构的学分银行学分或证书,则调用成果转换标准合约进行转换。条件符合,则进行转换;条件不符合,中止转换,返回失败原因,算法伪代码描述如下。 根据user_transaction operation key value list; 根据user所需要的服务; Check成果标准转换机制; If 成果标准转换机制存在 then 执行user_学习成果转换并打印输出; Else 返回失败原因 End 3. 认证机制合约 学习者的学习成果通过区块链网络各节点达成共识并记录存储后,将调用由教育管理部门、联盟教育(培訓)、发证机构等制定的认证标准机制合约,执行学分认证指令操作。如学习者的学分认证符合认证标准机制合约,则执行学分认证操作命令;如不符合,则中止命令,返回失败原因,算法伪代码描述如下。 学习者发起认证指令; 根据user_certification operation key value list; Check user所需认证的内容; If 满足认证条件 then 执行学分认证操作 Else 返回失败原因 End 三、实验分析 本文从算力、存储开销、网络吞吐量等方面进行验证方案的有效性。实验环境:采用MATLAB编程进行模拟;处理器Intel-i7四核3.20GHz;内存DDR3 1600MHz 8GB;硬盘2T,操作系统为Windows7。 (一)系统开销 本文对传统基于merkle树的PBFT 共识机制和改进后的基于B_merkle树的共识机制的系统开销进行实验和分析,如图3所示。选取节点数50,100,150,200,250,300,350,400,450,500,550,600进行仿真测试。从仿真实验结果的曲线可以得到,传统PBFT算法共识机制系统开销随着节点数量增加,系统开销曲线斜率陡峭不断增大;而本文提出B+_merkle的共识机制的系统开销曲线较平缓,节点数的增加对于系统开销影响非常小。这是因为传统 Merkle 树的深度H为 ,而B_merkle树的深度H小于 ,M≥2,所以在执行查询命令时缩减了访问节点数,交易完成时间短,从而降低系统的开销。 (二)网络开销 本文分别对 PBFT算法和改进的GPBFT算法在节点容错的场景下进行验证分析。设节点总数为500个,选取出错的节点数30、50、70、90、 110、130、150、170进行实验。从实验结果图中显示得到,随着容错节点数的增加,达成共识时间也不断增加,网络开销随着增大。改进的GPBFT算法中,各节点相对稳定,无需进行大量的“挖矿”运算(算力很小),节点采用区块验证器和区块生成器,仅在内部局域网就可以完成,减少网络传输时间和网络带宽资源的消耗,提高验证和達成共识速度,因此,容错节点增加时,曲线仍较平缓。 四、结语 目前,区块链技术成为了学术界研究的热点,本文提出在联盟式学分银行区块链系统中采用PBFT共识机制,节点管理采用验证交易单 、区块验证器、区块生成器,并采用B_merkle树遍历提高访问速度;通过采用权限合约、成果转换机制合约、认证机制合约等智能合约模式,使学分银行系统实现去中心化、安全、透明。下一步,我们将区块链与大数据、数字签名技术相融合,运用到学分银行信息管理中,确保学分银行用户的学习过程成果和隐私信息的安全。 [参考文献] [1]鄢小平.基于云架构的学分银行信息平台设计研究[J].中国远程教育,2014(5):66-71+96. [2]毛佳伟. SaaS多租户模式在学分银行系统中的应用研究[D].北京:北京工业大学,2014. [3]LIN Hui-ping, LI Wei-ping, WU Si. A Service in Education: SOA-Based Credit Bank System [J]. Computer Systems and Applications, 2009,18(6): 1-5. [4]蔡维德,郁莲,王荣,等.基于区块链的应用系统开发方法研究[J].软件学报,2017(6):1474-1487. [5]袁勇,王飞跃.区块链技术发展现状与展望[J].自动化学报,2016(4):481-494. [6]雷长剑,林亚平,李晋国,等.志愿云环境下的拜占庭容错研究[J].计算机工程,2016(5):1-7. [7]李宏宏,康凤举.基于改进B树的多层次仿真系统搜索算法[J].系统仿真学报,2017(2):332-336. [作者简介]黎富贵,广西开放大学教务处副处长,硕士,研究方向:网络协议、远程教育;李敏,广西开放大学教务处考务科科长,工程师,硕士,研究方向:成人教育;莫秋荣,广西开放大学教务处综合科科长,讲师,硕士,研究方向:教育管理。 [责任编辑 韦书令]