基于区块链的学分信息上链模型及实现

2024-04-15 07:36陶昀翔王钧
关键词:链码学分银行区块链

陶昀翔 王钧

摘要:学分银行作为重要的学分数据信息平台,应具有高度的权威性,学分银行系统数据安全尤为重要。传统的学分银行系统无法避免人为的删除、篡改等恶意操作,难以保证数据的安全性。区块链作为去中心化系统,是天然的数据存储平台,其以链表结构将数据关联,衍生了数据难以篡改特性。本文提出了基于区块链的学分信息上链模型,制定了数据序列化方法,解离数据类型与数据元素,以“协议+数据”模式,设计协议链码和批量上链的数据链码,实现了基于区块链的学分银行系统并进行了上链实验对比。实验结果表明,本方案可以有效保障学分银行系统数据的安全性,并且可以提升上链存证业务性能。

关键词 区块链;链码;学分银行;信息存证

中图分类号:TP391.41文献标志码:A 文章编号:1001-2443(2024)01-0020-07

引言

以数字化为标志的知识经济兴起,学习、运用和创造知识的能力已成为推动经济和社会发展的动力引擎。学分银行制度是以学习成果为研究核心,以学分衡量其中的学习量和价值水平,将学生各种学习成果认证、积累及转换的学习管理制度。搭建学分银行,赋能教育信息化发展,体现在有效衔接正规和非正规学习成果,建立各区域各级教育沟通和学习者终身学习的“立交桥”。数字化改革背景下,基于区块链、大数据等新技术破解数据非法篡改、认证不透明、学分转换受阻等治理难题,是进一步推进学分银行信息服务平台建设的题中之义。

近年来国务院颁布了综合教育改革试点任务,在五省市一校开展“开放大学试点”积极探索实践学分银行建设,在一定程度上完善了我国国家政策层面从学习成果认证、积累转换制度、学分银行制度建设研究。2010年,国务院《国家中长期教育改革和发展规划纲要(2010—2020年)》中指出要建立继续教育学分积累与转换制度,实现不同类型学习成果的互认和衔接。2016年,教育部颁发的《关于推进高等教育学分认定和转换工作的意见》提出探索建立学分银行央行,鼓励区域、联盟学校建立学分认定、积累及转换系统。2017年,国务院发布《关于印发国家教育事业发展“十三五”规划的通知》,将继续教育领域的学历与非学歷互认作为学分银行制度建设的关键环节 [1]。

20世纪90年代初,欧盟成员国统一在欧洲经济区域内近50个国家中高等院校开通欧洲学分转换与累积系统,初步探索学分银行助力教育一体化和教育竞争力,美国高等教育信息化协会于2017年春季发布了文章《区块链变革与高等教育》,明确区块链在高等教育中的重要地位,有助于改进高等院校之间及其与整个社会的关系。麻省理工学院等利用区块链技术开展高校学位和证书存证溯源,提高学历证书可信性[2]。国内研究者针对学分银行现有的数据安全和信任问题,提出以区块链为技术支撑,确保学分不可篡改和真实可溯。李青和张鑫认为基于区块链搭建的去中心化学分银行服务平台能够构建可信便捷的证书管理框架,从而降低人才雇佣成本 [3]。黄庆平认为区块链技术的核心特征能为学分银行信息查询与共享、数据分布式存储、安全性管理和学习成果认证等方面的问题提供一揽子解决方案[4]。周继平提出在线下学分联盟组织基础上建设基于区块链的学分银行系统,有助于解决联盟内成员学分的信用问题,为确保学分不可篡改和真实可溯提出技术支撑[5]。

区块链的数据可追溯、去中心化、开放性和自治性等主要特征,为当前各省学分银行建设过程中出现的中心化治理难题提供了技术支撑[6],同时,利用区块链非对称加密、共识机制等技术手段,可有效避免虚假信息存入学分银行,杜绝了人为篡改数据的可能性,保证不同区域学分银行数据安全可靠。在本文中,基于区块链的学分信息上链模型,规定了数据序列化方法,解离数据类型与数据元素,以“协议+数据”模式,设计协议链码和批量上链的数据链码,不仅保障了学分银行系统数据的安全性,而且很大程度提升了上链存证业务性能。

1 技术概述

1.1 区块链分类

根据区块链的中心化程度,通常将区块链分为公有链、联盟链和私有链,如图1所示。

公有链的去中心化程度最高,所有节点都可以自由加入和退出系统;联盟链中存在少量中心化节点,分散化程度降低,节点的加入和退出需要联盟之间的协商;私有链依靠中心去中心化节点运行,去中心化程度最低,节点的加入和退出也受到私有链所有者的限制。根据节点的准入条件,区块链也可分为许可链和非许可链,非许可链包含公有链,许可链包含联盟链和私有链[7]。目前最具影响力的区块链项目比特币和以太坊均是公有链。比特币就像一个货币体系,支持加密货币的铸造、发行和流通。以太坊将区块链和智能合约相结合,拓展了区块链的功能,使其成为一个基于区块链技术构建的去中心化应用平台,允许任何人在这个平台应用上构建和使用去中心化的应用。

1.2 超级账本

Hyperledger Fabric就是一种具有代表性的联盟链系统,不同于比特币、以太坊的是,Hyperledger Fabric没有代币的概念,正因为其处于联盟链的环境中,不需要通过代币的方式维护区块链系统的生态,亦不需要挖矿的公式激励机制,这样的设计也进一步提升了链上的性能表现、更降低了挖矿带来的能源消耗。此外,Fabric提供了通道channel的概念,网络中的参与者可以根据实际社会关系、企业地位生成多个通道,通道内的数据只有通道内部的成员才能看到[8]。当网络中的一些参与者是竞争对手或者存在秘密内部共享的数据时,通道功能的设计可以大大增强联盟链场景下的安全性。

从许可链和非许可链的范围来看,Hyperledger Fabric可以归类为许可链,即成员的加入和参与活动需要特定的授权和许可,而不是完全暴露在公网上的,许可链的机制有效的解决了分支问题,在公链中,区块链有可能在共识中分支成多个分支,届时短链将失效。这在企业级别的业务中是绝对不能接受的。Hyperledger Fabric的运行机制是一种不会导致链分叉的算法,可以使用传统的拜占庭容错(BFT)共识,也可以采用依赖权威组织背书的共识(PoA),这样任意一笔进行的交易都会得到积极的确认。

1.3 智能合约和链码

智能合约可以理解为是一个建立在区块链上的分布式计算机系统,其革命性的创新点在于其可以实现图灵完备的程序运行[9],智能合约本身的含义是共同的,但每个不同的区块链系统可能有不同的名称。

智能合约的一个特点是,如果满足条件,合同和交易就会执行。以自动售货机的工作模式为例:在自动售货机,购买饮料的交易需要两个操作:支付足够的货币,售货机放出饮料。在人工商店中,上述流程应该通过售货员完成,但在自动售货机中,上述流程是自动化的。智能合约便是通过编程,在区块链上运行来实现自动化,流程中的任何一环没有完成,最终交易都不会成功,这也体现了智能合约的原子性特点。

在联盟链的场景下,应用可以使用一种类似智能合约的程序,叫作链码(ChainCode)来支持复杂业务逻辑需求,可以通过Java、Golang等语言编写[10]。它支持模块化可插拔共识协议,允许系统根据特定场景和信任模型进行定制共识规则,而不依赖于加密代币。当区块链被赋予了智能合约的功能后,便可以实现许多丰富多彩的链上应用,如去中心化金融Defi、拍卖、募捐、众筹、NFT、代币、二次扩容。

Fabric网络中主要存在着两种节点,分别是共识节点(Peer节点)和排序节点(Order 节点),上述的每一种节点都运行、保存着完整的区块链数据,当用户发起交易时,共识节点会从联盟网络上抓取交易,如果Peer节点的docker容器上安装有链码程序,可以在本地模拟执行,如果执行结果合法,Peer节点会用自己的私钥为这个交易签名背书,当交易收集到了足够多的签名后,Order节点将会把这笔交易收录进待打包的交易池,最终完成上链。

2 方案设计

学分信息上链模型主要有以下三种角色:校方管理用户、教师用户、学生用户。三种角色贯穿于学分银行业务系统与区块链底层之间,经过学生基本信息、学生学分信息、学生证书信息等数据收集;利用数据序列化方法,将上链协议与上链数据解耦,易于实现学分银行场景下数据批量上链,提高数据上链性能;配合Hyperledger Fabric 2.2区块链底层,将学生基本信息、学生证书信息、学生学分信息等数据上链操作下沉,利于开发者简化链码编写。此外,基于区块链的学分信息上链模型保证了学分等信息数据的难以篡改性和数据修改历程可溯源性,维护了学分银行系统的高可信度。

学分信息上链模型总体架构如图2所示。学分银行系统主要由教师端、学生端和校方端维护着学生基本信息、证书信息以及学分信息。底层区块链系统采用Hyperledger Fabric 2.2版本。教师用户、学生用户和校方具有链上身份。学生基本信息、证书信息以及学分信息经过数据序列化后,由相应端/身份调用数据链码进行上链存证。上链数据反序列化需要数据链码对应的协议链码。协议链码定义了数据类型后上链。数据链码与协议链码关联,当用户获取到数据后,调用协议链码获取对应的数据类型,完成数据反序列化后可视化展示。

2.1 数据收集

本方案中主要参与者有学生用户、教师用户以及校方。方案参与者皆為校园内部用户,因此没有系统注册环节,所有参与者登录名确定,初始登录密码统一固定为个人证件号某几位。学生用户其登录名为学生学号,教师用户和校方登录名为工作工号。初始登录时,操作平台会为用户生成一对公私钥对,以形成链上身份。此后,学分银行系统数据与区块链存证数据的来源于三方参与者。

系统中学生基本信息主要从入学信息开始,由校方端输入,同时为学生端提供可变动信息的修改功能。初始基本信息的上链存证操作由校方统一调用触发。更改后的基本信息的上链存证操作由学生用户触发,校方审核。

系统中学生证书信息由校方输入或者学生用户输入。对于校方为授予证书官方的相关证书,由校方统一输入,触发存证上链操作。对于其他官方授予的证书,由学生输入证书相关信息后触发存证上链操作,后由校方审核。

系统中学生学分信息由校方输入或者教师用户输入。对于证书类的学分认定,完成学生证书信息审核后由校方统一输入,触发存证上链操作。对于课程成绩类的学分认定,由教师用户根据每位学生成绩是否达到学分标准,确定达到标准给予学分后由教师用户触发存证上链操作,后由校方审核。

通过对数据收集的输入审核,保证了系统中学生信息的真实性,同时确定了链上学生基本信息的有效性和链上学分数据和证书数据来源的可靠性。

2.2 数据序列化

数据序列化后,存在可读性差、灵活性不强等弱点,但数据序列化后存储容量小,尤其适于学生学分信息上链这类数据量较大的业务场景。因此对于学生学分信息等数据需要经过序列化处理后进行上链。本方案中设计的数据序列化方法如表1所示。

将各种数据类型根据编码转化方法,进行序列化处理成byte数组。对byte数组数据进行上链,提升区块链节点数据存储能力。

2.3 数据上链

数据序列化处理后,转化为可读性极差的byte数组格式。为了解决数据可读性问题,设计了“协议+数据”模式。协议链码模块规定数据类型,数据链码模块为业务数据元素,两者结合还原为可读性强的数据格式。

协议链码模块中将协议定义成一个或者多个结构体的组合体。一个结构体由多条属性组成。一条属性由类型、名称和该属性的描述等组成。结构体名称相当于协议的类型。可以按照业务划分。协议对象序列化是将协议对象实例序列化为byte数组。协议相当于一个类,一个协议对象就是一个实例。根据既定的序列化方法将协议对象实例序列化为byte数组后,将其与属性结合起来,完成协议对象的序列化。

协议链码在Fabric节点上安装完成部署完成后,会生成链码id。协议对象序列化为byte数组后,通过调用协议链码上链。该类协议对象定义的数据类型上链后返回协议id,唯一确定该类数据类型。同时,协议链码模块会生成协议文件SDK,便于业务端实现该类业务数据的序列化。协议上链流程如下图3所示。

数据链码模块中利用协议文件SDK,学分银行系统将对应的学生基本信息数据、学生证书信息以及学生学分信息传入并生成byte数组,选择对应的数据类型的上链协议id,调用该协议下的数据链码中的方法进行上链。数据上链流程如图4所示。

已上链的学分信息等数据解析展示方法,需要分别调用协议链码和数据链码,获取链上学分信息等数据和协议信息。将byte数组类型数据按照反序列化方法顺序解码,得出可读性强的原始数据。

2.4 链码设计

链码模块主要涉及链上的协议链码和数据链码。协议链码管理各类业务数据的协议,数据链码根据对应协议生成。

协议链码中需要提供生成协议对象的方法,输入协议对象的byte数组,生成协议id且存入协议链码中。生成协议对象方法伪代码如下算法1所示:

考虑到学生数据量庞大,对于数据链码的设计需要考虑批量上链方法,因此对应协议生成数据鏈码时,其中需要生成批量上链方法。批量上链方法中需要输入数据id以及数据序列化后的byte数组,将byte存入数据链码中。批量上链方法伪代码如下算法2所示:

当调用协议链码中方法或者数据链码中方法,交易经过共识后产生的交易哈希,即为上链数据的存证哈希,将其与方法返回值一并返回给学分银行系统业务端。

3 方案实现与分析

3.1 方案实现

基于本文设计的基于区块链的学分信息上链模型,部署了一条超级账本联盟链,并实现了学分银行业务系统,包括学生用户端、教师用户端、校方管理端。

超级账本联盟链选用Hyperledger Fabric 2.2,其作为常用的联盟链系统,稳定性较好,且具备较完善的配套SDK和浏览器,可以使用多种常用的语言进行智能合约,利用其搭建了一个具有2个Peer节点和1个Order节点的联盟链。两台服务器配置一致,一台服务器上启动了Order节点和Peer1节点,另一台服务器上部署了Peer2节点。服务器环境配置以及Fabric链环境配置如表2和表3所示:

学分银行业务系统,包括学生用户端、教师用户端、校方端,采用MySql进行数据存储,使用Redis作缓存处理,使用nginx进行反向代理,框架上采用Vue2+SpringBoot进行前后端开发。学生用户端分别开发了Android系统和iOS系统,教师用户端、校方端开发了Web端系统。

此外,使用了Fabric2.2提供的GO语言版本的高级链码接口API:fabric-contract-api-go完成了协议链码和数据链码的开发。学分银行基础功能如下:

3.1.1学生基本信息存证 学生基本信息上链存证后返回交易存证哈希。学生基本信息存证记录包含基本信息存证哈希、上链存证时间、学生姓名、手机号、院系专业、级数班级、学号、性别等信息。

3.1.2 学生证书信息存证 学生证书信息上链存证后返回交易存证哈希。点击证书信息,可以查看到该账户在链上证书信息,包括证书类型、存证哈希以及上链时间等。

3.1.3 学生学分信息存证 学生学分信息由教师用户和校方确认后,会触发完成上链存证返回存证哈希。学生用户可以查看个人的学分获取的具体情况,包括学分信息,学分存证哈希、上链时间等。点击具体的学分信息和课程信息,可以进一步查阅学生用户的具体学习情况,如图5所示。

3.1.4 校方端数据全览 校方端系统的数据全览主要统计学生及学生证书的相关数据。可查看的数据项有证书总数、学生总数、区块总数、证书分布的排行、学生分布情况、系统账号列表、查询次数以及学院学生情况。

3.2 方案分析

3.2.1 数据真实性 传统的学分银行系统,记录学生基本信息、证书信息以及学分信息等。这些信息全由人工审核,没有相关的数据证据做背书,使得操作人员容易操作数据库数据进行信息造假,更甚至删除系统操作日志,导致恶意操作完全不可查,产生学分信息数据可信度危机。本方案中,基于Fabric联盟链底层,将学生基本信息、证书信息以及学分信息通过既定的链码逻辑进行上链存证,学生基本信息、证书信息以及学分信息上链记录或者修改记录无法人为删除,信息流全程可追溯。再者,涉及到证书的学分认定环节,证书信息上链后,链上可查证书数据真实有效,作为学分认定依据,明确学生学分信息来源,提高学分信息数据真实可靠度。

3.2.2 数据访问权限 Fabric联盟链中,链码归属于通道。Fabric的通道配置中规定可加入通道中的排序节点、背书节点,规定了各账户身份权限,例如对通道中的交易或者区块的读操作、部署/调用通道中链码的交易的写操作、修改通道的配置信息等管理操作。这些策略严格规定了通道中数据、链码数据的访问权限,保证了学生学分信息等数据的隐私性。

4 性能分析

学分银行系统各业务端通过Hyperledger Fabric官方提供的链码软件开发工具包,连接Peer节点客户端,输入待上链数据,调用已部署成功的数据链码,向Peer节点提交交易提案,获取模拟执行结果,最后提交签名背书和模拟执行结果给Order节点,共识过程完成后,获取交易哈希和区块高度返回给学分银行业务系统展示。Fabric节点所在服务器配置及Fabric通道配置如3.1章节,表2及表3所示。

单记录上链速度

在上述环境下,开展了单条上链速率的分析实验,分别从业务端开始调用数据链码,将学分信息数据上链10次、100次、500次和1000次操作,并记录了数据成功上链10次、100次、500次和1000次的耗时,如表4所示。

从表4可以看出,单条记录上链场景下,从业务端调用链码开始到获取到链上成功返回的交易哈希的过程中,每条记录/交易平均耗时为739ms,平均每秒的记录数RPC(Record Per Second)为1.355。产生此现象的主要原因是每个区块中只包含一条交易记录。

批量上链速度

在同样实验环境下,调用2.4章节算法2开展了批量上链速率的分析实验。从业务端开始调用数据链码4次,分别上链学分数据10条、100条、500条和1000条,记录耗时,结果如表5所示。

从上表中可以看出,批量记录上链场景下,从业务端调用链码开始到获取到链上成功返回的交易哈希的过程中,每条记录/交易平均耗时为41ms,平均每秒的记录数RPC为182.378。产生此现象的主要原因是上链方案充分利用了区块/交易空间,每个区块中包含了多条数据记录。

方案对比

基于表4和表5中实验结果数据,从耗时对比和RPC对比两方面绘制了如下方案对比图,如图6所示。

从图中可以看出,单记录上链方式耗时高于批量记录上链耗时。批量记录上链方式每秒能够处理的记录条数远多于单记录上链方式。本方案设计的数据序列化方法,解离了数据类型与数据元素,结合数据批量上链方法,充分考虑了Fabric链自身的特性,提高了数据上链的吞吐量,进而提升业务系统性能。

5 结语

区块链技术正渗透在各行各业应用里,其防篡改等特性赋予了业务应用数据的真实可信度,解决了传统行业里的业务应用数据被恶意操作修改的问题[11]。本文基于區块链的学分信息上链方法将大数据量的学分信息等数据通过序列化方法处理,结合“协议+数据”上链模式,保障了学分数据信息的安全,维护了学分银行系统的权威性,同时进一步满足了数据批量上链的需求,实现系统整体性能的提升。

但本方案仍有些不足之处,如学生学分信息数据的类型可能会更为复杂,比如文件类型等,目前的数据序列化方法还未包含。在下一步的优化设计中,需要考虑更多复杂数据类型,将本方案中的上链方法推广到更多行业应用中。

参考文献:

[1] 张鹏程,吴文文,梁琨琳,严陈.职业教育学分银行与1+X证书制度关联协同性探究[J].机械职业教育,2022(9):1-8.

[2] 刘永贵,欧梦吉,刘瑞.基于区块链的高校联盟学分管理系统研究[J].软件导刊,2020,19(11):120-125.

[3] 李青,张鑫.区块链:以技术推动教育的开放和公信[J].远程教育杂志,2017,35(1):36-44.

[4] 黄庆平.国家学分银行的未来:基于区块链技术视角[J].中国成人教育,2019(1):27-31.

[5] 周继平,陈虹,叶正茂.基于区块链技术的学分银行构建[J].中国职业技术教育,2019(18):51-58.

[6] 王艳冰,韩冰冰,郑黎明.基于区块链和学习成果认证制度的学分银行建设[J].数字技术与应用,2022,40(2):134-136.

[7] 郭上铜,王瑞锦,张凤荔.区块链技术原理与应用综述[J].计算机科学,2021,48(2):271-281.

[8] NASIR Q ,  QASSE I A ,  TALIB M A , et al. Performance analysis of hyperledger fabric platforms[J]. Security and Communication Networks, 2018:1-14.

[9]林诗意,张磊,刘德胜.基于区块链智能合约的应用研究综述[J].计算机应用研究,2021,38(9):2570-2581.

[10] 吕朋辉,张金娈,王瑜,等.基于静态分析的Fabric智能合约安全检测[J].网络新媒体技术,2022,11(1):57-66.

[11] 李洪广. 区块链证据认定问题研究[D].上海:上海师范大学,2022.

Blockchain-based Credit Information Uplink Model and Implementation

TAO Yun-xiang, WANG Jun

(Department of Information Construction and Management, Wuhu Institute of Technology,Wuhu, 241003,China)

Abstract:As an important credit data information platform, the credit bank should have a high degree of authority, and the data security of the credit bank system is particularly important. The traditional credit banking system cannot avoid malicious operations such as manual deletion and tampering, and it is difficult to ensure the security of data. As a decentralized system, blockchain is a natural data storage platform. It associates data with a linked list structure and derives the characteristics that data is difficult to tamper with. This paper proposes a blockchain based credit information uplink model, develops a data serialization method, separates data types and data elements, designs protocol chain codes and batch uplink data chain codes in the mode of "protocol+data", realizes a blockchain based credit banking system, and conducts uplink experiment comparison. The experimental results show that this scheme can effectively guarantee the security of the credit banking system data, and can improve the performance of the online certificate storage business.

Key words:blockchain;chaincode;credit bank;information deposit

(责任编辑:马乃玉)

收稿日期: 2023-01-12

基金项目:安徽省高校自然科学重点项目(2022AH052199);安徽省高校自然科学重大项目(KJ2020ZD71);安徽省职业与成人教育学会教育教学研究规划课题(Azcj2022222);安徽省高等学校质量工程项目(2020qkl44;2020qkl45;2020qkl46);芜湖职业技术学院自然科学研究重点项目(wzyzrzd202301).

作者简介:陶昀翔(1992—),男,安徽芜湖市人,硕士,讲师,主要从事信息理论及应用研究;王钧(1979—),男,安徽芜湖市人,硕士,高级工程师,主要从事信息理论及应用研究.

引用格式:陶昀翔,王钧.基于区块链的学分信息上链模型及实现[J].安徽师范大学学报(自然科学版),2023,47(1):20-26.

猜你喜欢
链码学分银行区块链
一种新压缩顶点链码
双证制嵌入学分银行社会服务体系策略研究*
试析“学分银行”在高等职业教育中的运用
学分银行—信息化时代学习体系变化的要求
区块链技术的应用价值分析
“区块链”的苟且、诗和远方
基于区块链技术的数字货币与传统货币辨析
用“区块链”助推中企走出去
基于链码特征的几何图形快速识别算法*
无损链码技术的分析与比较