基于区块链的数字化教育资源共享框架的设计与实现

作者: 高文涛 韩燕宁

基于区块链的数字化教育资源共享框架的设计与实现0

摘要:针对当前教育资源共享模式中存在的效率低下、安全性不足和透明度不高等问题,文章引入区块链技术,基于Hy⁃perledger Fabric平台设计并实现了一个高效、安全、透明的数字化教育资源共享框架。该框架结合星际文件系统(Inter⁃Planetary File System,IPFS) ,解决了Fabric在处理大文件存储方面的瓶颈问题。通过编写链码,实现了数字化资源的上链存储、共享和下载功能,并采用JMeter对系统进行性能测试,验证了框架的可行性与性能表现。实验结果表明,该区块链平台能够有效提高资源共享效率,保障资源的安全性和透明度,为高校数字化教育资源的开放共享提供了有力的技术支撑。

关键词:区块链;HyperledgerFabric;IPFS;链码;数字化教育资源共享

中图分类号:TP311.13 文献标识码:A

文章编号:1009-3044(2024)35-0039-05 开放科学(资源服务) 标识码(OSID) :

0 引言

随着数字化时代的到来,教育信息化正在从1.0 时代迈向2.0时代,推动了数字化教育资源的建设和发展,实现数字化教育资源共享也成为我国教育领域创新的关键任务。然而,在“互联网+”背景下,数字化教育资源共享仍然面临一系列挑战,如资源产权保护困难、资源质量低下、资源库共建共享机制不完善以及安全性问题等。

2019年10月24日,习近平总书记在中共中央政治局第十八次集体学习会议上强调,区块链技术的集成应用在新的技术革新和产业变革中起着重要作用[1]。区块链技术在金融领域的成功实践,引发了国内外学者对其在教育领域应用的广泛关注和研究[2-5]。国内针对区块链在教育领域的研究主要集中在数字化资源的流通共享、数据安全以及版权保护等方面[6-8]。刘丰源等[9]利用区块链的网络拓扑结构和共识验证技术,设计了一个包含资源存储层、资源评估层、资源互连层的教育资源共享框架;许智勇等[10] 以MOOC平台为研究对象,构建了一个基于区块链技术的数字教育资源评价机制模型,旨在促进信息共享;李文峰等[11]则从资源发布、资源交易、运营管理、接口管理等多个层面出发,构建了高校数字化教育资源开放服务平台,以解决传统数字化资源平台面临的问题。然而,区块链技术在教育领域的应用目前还处于探索阶段,更多偏向于理论研究,缺乏具体的实践和应用。

区块链技术作为一种融合了分布式数据库存储、点对点传输、共识机制和加密算法等计算机技术的新型应用模式,为数字化教育资源的建设带来新的发展机遇,在实现数字化教育资源的分布式存储和开放共享方面展现出重要的实践价值。因此,本文将区块链技术与教育领域相结合,构建一个基于区块链的数字化教育资源开放和共享原型系统,进一步探索区块链技术在数字化教育领域的应用潜力。

1 相关知识

1.1 区块链

区块链技术作为比特币的底层技术,本质上是一个去中心化的数据库。它依赖于一个由众多节点组成的分布式网络,这些节点协同工作,共同维护数据库的完整性和一致性。区块链由一系列区块组成,每个区块都封装了一定数量的交易记录。这些区块按照时间顺序依次连接,形成一条连续的数据链,每个新生成的区块都包含前一个区块的哈希值[12]。

区块链技术融合了分布式存储、点对点传输、共识机制、密码学和智能合约等多种技术,具有去中心化、不可篡改、安全透明等特点。区块链网络通过多个节点共同参与数据维护,每个节点都持有完整的账本副本。区块链网络中的节点通过共识机制来达成一致,确认交易的有效性。常见的共识机制包括工作量证明(Proof of Work,PoW) 、权益证明(Proof of Stake,PoS) 等。一旦交易被记录在区块链上,就无法被更改或删除。区块链的加密机制保障了数据的安全和隐私,所有交易被记录到区块链之前,都必须经过严格的加密和验证过程。智能合约则使得区块链能够执行复杂的业务逻辑和自动化操作,进一步提高了操作透明度。随着区块链的不断扩展,能够更加高效地记录和验证大量交易信息[13],进而有效解决当前资源共享网络中存在的安全性问题。

1.2 超级账本

超级账本(Hyperledger Fabric,简称Fabric) 是一个开源的企业级区块链框架,致力于提供一种可扩展、可靠且高效灵活的区块链解决方案。它采用了模块化的架构设计,涵盖了从节点管理到智能合约(链码) 执行,再到可配置的共识和成员服务[14]。Fabric网络由多个节点构成,每个节点都是一个独立的参与方,共同维护一个共享账本。这个账本记录了所有的交易记录和当前状态数据,其真实性和完整性则是通过共识机制和独特的排序服务共同保障[15]。共识机制确保了所有参与方对交易的一致性认可,而排序服务则负责交易的顺序处理,保障了区块链的一致性和不可篡改性。

在Fabric网络中,存在记账节点(Peer Nodes) 和排序节点(Orderer Nodes) 两种节点类型[16]。其中,记账节点是网络中的核心节点,参与交易的验证和共识,负责处理链码的执行,并直接与账本数据交互;排序节点则负责为网络中的交易进行排序,不参与交易的验证或执行,而是将交易打包成区块并广播到网络中的所有记账节点,确保区块链的一致性。Fabric账本由两部分组成:世界状态(World State) 和事务日志(Transaction Log) 。世界状态是一个以键值对形式存储的数据库,提供了对账本当前状态的直接访问;而事务日志记录了所有导致当前世界状态的事务历史。

Hyperledger Fabric 为数字化教育资源的开放共享提供了一个功能强大、灵活安全的区块链平台。利用Fabric的功能和特性,可以实现数字化教育资源的数据透明、安全共享以及可靠追溯。

1.3 IPFS

星际文件系统(InterPlanetary File System,IPFS) 是一个分布式文件系统,解决了传统中心化存储中成本高昂、效率低下以及安全性不足等问题。与依赖HTTP协议的中心化存储模式相比,IPFS具有去中心化、分布式、内容寻址等特点。由于相同内容的文件在IPFS网络中只会生成一个唯一的哈希值,避免了数据冗余存储,从而也极大地节省了区块链的存储资源。用户可以根据内容的哈希值快速检索文件,而不需要中心化的服务器节点。IPFS通过其独特的分布式文件系统和内容寻址机制[17],提高了数据检索的效率,增强了数据安全性,为数字化教育资源的存储和访问提供了一个高效、安全、去中心化的存储方案。

2 利用区块链构建数字化教育资源开放共享平台

2.1 总体架构

本文提出的基于区块链的数字化教育资源开放共享平台的总体架构如图1所示,自下而上分为三个层次:数据管理层、智能合约层和Web应用层。

2.1.1 数据管理层

数据管理层是平台的基础,通过区块链和IPFS共同实现教育资源的存储操作。区块链分为联盟链和私有链:联盟链由各高校节点组成,利用共识算法达成一致;私有链则用于处理数字化资源数据。IPFS负责存储视频、音频、文档、图片等各种格式的数字化教育资源,并将资源的唯一哈希值存储到区块链上,确保数据的不可篡改性和安全性。此外,数据管理层还负责记录教育资源的元数据和交易信息,为上层应用提供必要的数据支持。

2.1.2 智能合约层

智能合约层定义了教育资源共享的具体规则和条件,该层包括资源上传、共享、下载以及状态更新等多个合约。智能合约一旦部署到区块链上,便能够在满足特定条件时自动执行相应的操作,从而实现资源交易的可追溯性,显著提升资源共享的效率和透明度。

2.1.3 Web 应用层

Web应用层是平台与用户交互的界面,由用户管理和资源管理两部分组成。该层根据用户角色分配相应的权限,并通过Web页面为用户提供一个直观的操作界面,方便用户检索、查阅和购买教育资源。同时,Web应用层还负责记录和管理资源的交易信息,并将用户的购买请求通过智能合约以交易的形式记录在底层区块链上。

2.2 工作流程设计

利用区块链技术,可以促进高校间数字化教育资源的共享和流通,系统工作流程如图2所示。

首先,高校管理员负责对教师和学生进行身份认证,并根据其角色分配相应的操作权限。教师用户被赋予资源上传、查询和共享等权限,学生用户则拥有资源检索、查阅和下载等权限。身份认证通过后,教师将自行创作的教学资源上传至IPFS,并将返回的资源哈希值和其他属性信息上传至区块链进行存储。

教师可以在资源上传并存储至区块链后,选择将其发布共享并设置相应的资源币。学生随后可通过区块链平台检索并下载所需资源,使用资源币完成支付。交易完成后,交易信息将被打包成区块,并存储在区块链上。

区块链网络负责记录所有交易数据和用户行为,确保信息的真实性和完整性。通过共识机制,区块链网络确保所有高校节点能够同步数字化资源,实现去中心化的数据管理。此外,通过时间戳的方式记录用户行为,确保资源交易的不可篡改性和可追溯性,从而为交易双方提供安全保障。

2.3 智能合约设计

智能合约(链码) 是数字化教育资源开放共享平台的核心部分。智能合约一旦部署成功,便可自动执行预定的操作,如教师上传资源、学生检索和下载资源等,这些操作均需触发智能合约的执行。执行结果也会被记录在区块链上,供所有参与节点查阅和验证,从而确保了平台操作的透明性和可追溯性。

本文采用Go语言编写链码,以实现平台的业务逻辑。资源的数据结构是链码实现业务逻辑的基础,通过定义Resource结构体来存储数字化教育资源的基本信息,包括资源ID、资源名称、创作者ID、资源类型、资源简介、资源价格、资源哈希值以及资源创建时间等,Resource结构体设计如表1所示。

链码定义了在区块链网络上执行的操作,主要包括资源的上传、共享、检索以及下载等核心功能。

2.3.1 资源上传合约

资源上传合约负责处理用户的资源上传请求。在链码调用之前,资源文件先被上传到IPFS并返回一个唯一的哈希值。链码通过uploadResource函数实现资源上传的功能,同时进行用户身份验证。之后,资源信息被封装成JSON 字符串,并通过调用writeLedger函数将这些信息存储到链码的状态数据库中。

2.3.2 资源共享合约

资源共享合约处理用户的资源共享请求,允许用户设定资源的访问权限,如是否共享可见。链码通过shareResource函数实现资源共享的功能,验证资源所有权并检查该资源是否已处于共享状态。若未共享,则获取当前时间戳,调用writeLedger函数将资源价格以及时间戳等信息写入账本,并将资源状态更新为共享状态。

2.3.3 资源检索合约

资源检索合约负责处理用户的资源检索请求。链码通过queryResource函数实现资源检索功能,该函数接收资源ID作为参数,然后调用GetState函数从链码的状态数据库中检索相关资源信息,并将其转换为JSON格式返回,以便在页面上展示。

2.3.4 资源下载合约

资源下载合约处理用户对资源的下载请求以及相关的资源交易逻辑,确保用户在支付相应价格后才能获取资源。链码通过downloadResource函数实现资源下载的功能,验证下载者的身份,并检查该用户的余额是否足以支付所请求资源的价格。之后,更新当前交易状态,调用writeLedger函数将购买的交易信息记录到账本中,扣除用户的余额并在账本中更新。最后,用户可以根据唯一的哈希值下载并查阅所需资源。

上一篇 点击页面呼出菜单 下一篇