文摘

近年来,在线跨校课程的关注一直增加,高校和学生想提高他们的知识和专业技能通过在线课程从不同的大学,这提高了问题当然信用验证。过去,学生获得的学分在线课程缺乏教育部门的认可,和学生的学习过程不能被证实。因此,网络课程在一个大学的学分不能被其他大学。一些国家和地区的教育部门实施信用转换规则转换学分通过在线课程的学生进入大学学分或证书了教育部的支持。然而,这些计划过于依赖教育部门的权威,和学生获得学分的过程无法得到证实。此外,教育部门的集中存储方法使数据泄漏的风险或篡改。区块链技术的出现,一些研究人员提出使用区块链来存储学生的学分,从而能够达到共识区块链上的多个政党同时确保学分不篡改,但这些计划不能测试学生的学习过程和承认学分仍然依赖于教育的权威部门。解决上述问题,本文提出一种跨校课程学习系统和可核查的信用基于Hyperledger织物财团区块链技术,和该财团包括许多大学。学生获得的学分的课程和学习记录的散列值存储区块链,和区块链上的数据是共同维护的大学系统。一所大学可以验证学生的作业和期末考试来检查学生的实际能力,从而认识到来自其他大学的学分,同时,保护学生的隐私,学生的重要数据进行加密传输。

1。介绍

1.1。背景

教育是一种对学生提高自己,和高等教育直接关系到学生的发展方向和就业前景。想了解更多课程的学生在他们的大学,甚至在大学选修,扩大他们的知识和技能。目前,跨校在线课程受到了学生的欢迎,学生们可以从不同的大学通过互联网在线课程。特别是在2020年的爆发COVID-19蔓延全球,全世界几乎所有的大学停止线下课程,在线课程确保可持续性的教育(1]。2021年4月,Udemy,美国在线学习平台,拥有超过4000万名学生(2]。从2020年9月到2021年7月,学习者在一个国家完成了140000多个美国Coursera平台课程(3]。然而,跨校在线课程有局限性。学生可以获得更多的知识和技能通过跨校课程,但他们缺乏简单和有效的方法来证明自己的能力。大学提供的课程来自其他大学的学生,它促进专业知识的传播和大学的声誉,和学生的在线课程的成绩可以作为入学考试成绩的一部分。不幸的是,当涉及到其他大学的网络课程,大学很难认识到成绩即使学生表现良好。为教师提供课程在线学习,他们可以展示他们的研究方向和吸引更多的学生从事相关领域的研究,但它成为一个挑战来检查学生的学习成果因为老师不知道学生的能力。

与跨校课程学习者的数量的增加,越来越多的学生想要获得学分在线课程学习深造或就业的凭证,和接收学分或证书意味着在线课程的成绩认可的大学课程所属。印度管理学院(IIM-Kozhikode)宣布与Coursera合作推出课程证书业务,战略,营销,和产品管理4]。然而,存在一个识别问题,通过获得的学分课程在大学。在线课程的学分是共同授予的学习平台和大学,缺乏权威机构的认证。尽管在线课程是由大学,很难达成共识的两所大学课程内容和学习者的能力。因此,完成在线课程后,在一个大学的学生获得的学分不能被其他大学。

解决信贷问题识别,欧洲信贷转移和积累系统(颜色)5)帮助学生之间转移学分的大学。在此系统中,学生在大学获得的学分可以转换成一定数量的颜色的学分,如果一个学生想转到另一所大学,学生的未来信用将被转换成目标大学的学分。此外,信贷银行系统(CBS) (6)在韩国允许学生将学习成果转化为学分,然后高等教育学分转换成度。然而,上述方案有一些问题:首先,他们依靠中央教育机构的管理,这是因为中央的权威教育机构的信用系统可以识别。其次,信用转换规则缺乏对学生的学习过程验证。虽然信贷系统中被所有的大学,它不能完全反映学生的能力。最后,从系统数据存储在一个集中的方式,数据丢失或篡改的风险。

区块链技术的出现(7)提供了一种新的方式来解决信用验证问题8]。区块链可以被视为一个分布式数据库,数据明显被拆封了的,可追踪性(9- - - - - -11),由多个政党,可以在多个政党之间达成共识(12]。提出了一种分散的跨校课程学习系统基于财团区块链技术,该财团包括许多大学的地方。对于学生,他们可以从任何大学的课程体系并获得学分。学生作业和期末考试的散列值存储区块链,区块链上的数据是由系统中所有的大学。因为每个大学管理其教师和学生,区块链上的数据可以达成共识在所有大学中,老师,和学生不依赖一个中央机构,和一个来自其他大学的学生获得的大学承认课程学分通过验证学生的作业和期末考试。

1.2。相关的工作

目前,在教育领域的研究侧重于存储学生的学分、证书和学习记录通过区块链技术和使用分布式存储技术和加密技术确保区块链上的数据是明显被拆封了的,从而促进共享数据在多个政党。表中列出的相关作品1

2016年,Sharples和Domingue [13]提出使用区块链来存储学生的学习过程和成果,从而使student-related数据的分布式存储,但是本文没有介绍系统架构。

2018年,Turkanovićet al。14)提出了一个区块链教育信贷平台叫EduCTX教育机构可以奖学生学分,可以由第三方检查和学生可以转移学分不同教育机构。不幸的是,这个系统只能检查学生是否获得学分,没有办法核实学生的学习过程。

2020年,赵et al。15)提出了一个学生组合管理系统存储学生的学习记录和教师评估学生通过区块链技术。然而,教师的评价是主观的,不能客观地反映学生的能力。此外,本文未能提供一个方法来保护学生隐私的学习记录。

2021年,Mishra et al。16)提出了一个Ethereum-based学生凭证共享系统,大学加密学生“凭证上传他们区块链之前,如果第三方想要检查学生的证书,学生们加密证书之前把他们保护他们的隐私。考虑到学生可能无法负担得起在Ethereum气体,系统建立了一个基金组织提供金融支持体系成员。

基于上述研究,可以发现,承认学生的学分仍然依赖于权威和获得学分不能验证的过程。因此,本文提出了一个跨校课程与学分可核查的学习系统,学生需要完成家庭作业和期末考试获得信贷的大学和其他大学可以验证学生的家庭作业和期末考试认识到信用。这个系统加密学生作业和期末考试,从而有效地保护学生的隐私。此外,系统采用财团区块链架构没有令牌的消费,公共区块链架构相比,提高运营效率。

本文的其余部分组织如下:部分2简要介绍了初步的。部分3显示了拟议的系统结构和应用场景。本文给出了安全与功能分析部分4并提出了讨论部分5。最后,部分6本文总结道。

2。初步

2.1。椭圆曲线密码学ECDSA

区块链,椭圆曲线密码(18用于数字签名。如果一个成员 系统中想要传达一个信息 一个成员 ,会员 需要进行数字签名信息。签名算法的过程如下。

2.1.1。确定参数并生成密钥

该系统将首先确定参数 椭圆曲线的 ,基地 ,和原点 ,然后系统将生成私钥 为成员 ,分别生成公钥 的成员

2.1.2。生成签名

成员 选择一个随机数字 ,然后计算 , , , ,并发送ECDSA签名 的消息 的成员

2.1.3。验证签名

在收到签名 和消息 ,会员 计算 , , , 如果 ,成员 确认签名 和消息 发送的成员 是正确的。

2.2。聪明的合同

1996年,尼克。萨博首次提出的概念智能合同(19在现实世界中,数字化合同。在一个聪明的合同,双方将提前同意合同的内容,和合同将自动执行条件得到满足时,不需要由第三方监督。区块链nontampering数据和分散的特点。区块链技术的出现提供了一个平台来支持智能的执行合同,共同执行的整个区块链网络的节点和执行的结果无法篡改后整个网络达到共识。合同区块链和智能技术在许多行业存在的问题提供新的解决方案(20.],本文旨在解决信用验证的问题在大学。

2.3。Hyperledger织物

Hyperledger织物提出了由IBM在2018年(21),这是一个开源的区块链平台和最受欢迎的财团blockchains迄今为止(22]。与公共区块链系统,如比特币和Ethereum Hyperledger织物使用财团区块链技术,系统成员达成共识事务没有使用令牌。不同于比特币和Ethereum数据是公开23),所有成员加入Hyperledger结构网络需要身份验证,以确保不相关的人无法加入网络并获得区块链上的数据。由于网络中所有成员的身份,Hyperledger织物的节点不需要通过证明工作达成共识(战俘)[24],Hyperledger织物中产生交易的数量可以达到3500每秒,这是远远高于3.5的比特币和5.4 Ethereum [25]。

除了Hyperledger织物,目前在市场上很多财团区块链平台,如Ethereum [26],变化[27),法定人数(28),和多链29日]。与上面的平台相比,Hyperledger织物具有较高的吞吐量和更短的延迟(30.),它有广泛的兴趣和应用在许多行业(包括财务、物联网、供应链、制造、和技术)(31日]。因此,本文选择设计一个信贷可核查的跨校课程学习系统基于Hyperledger织物。

主要有以下组件的Hyperledger织物网络:(1)证书颁发机构(CA):证书颁发机构为系统用户提供身份验证机制。用户可以与区块链网络交互之前,他或她需要连接到一个CA服务器,为用户提供身份信息以及公钥和私钥。(2)订货方:订货方节点收集支持事务的用户在发送客户机节点和包成块,然后将这些块发送到对等节点。(3)点:点节点分为支持同行、领导同行,和锚点,在支持对等调用chaincode来模拟一个事务的执行和支持事务,领导同行阻止收到订货方节点广播给所有的对等节点组织,并与其他锚锚对等交换数据不同组织之间的同行。所有对等节点可以被认为是检查每个事务的提交者同行收到块和更新后的分类帐检查完成后,和商店的分类帐包括区块链的所有事务和世界状态存储系统中所有成员的状态数据。(4)客户:客户节点由一个系统成员,必须连接到对等节点或订货人的节点与区块链通信网络。首先,客户机节点发送一个交易提案支持组织的同行。一旦客户机节点收到足够数量的签署提议的回应支持同行,客户机节点发送事务包含支持事务的提议反应订货人节点,和订货人节点订单交易成块。(5)通道:通道可以实现隔离不同的服务和只有一个区块链在一个通道。用户需要从CA节点首先获得证书,他们可以与对等节点或订货人节点通过通信通道。(6)企事业单位等组织:组织代表实体的区块链网络。每个组织都包含支持同行,同行领袖,存储分类帐和锚同行,每个成员在系统中属于一个组织。(7)Chaincode: Chaincode可以被视为智能合同Hyperledger织物,用一些语言编写和部署在每个对等节点,用户可以实现查询和修改的数据调用Chaincode区块链。

3所示。系统模型

3.1。系统架构

本研究提出了一个跨校课程学习系统基于Hyperledger织物,该财团包括许多大学。系统的主要成员包括大学管理员和用户和用户包括教师和学生。教师、学生和校方在同一个大学形成一个组织,和每个大学都有管理员管理用户。系统体系结构如图1

的成员系统描述如下。(1)证书颁发机构(CA): CA节点提供证书,公钥和私钥的用户想要加入这个系统,和每个大学都有自己的CA节点。(2)大学:大学是由校方管理,有很多教师和学生在每个大学和一些管理员。(3)大学管理员:大学管理员创建通道,连接通道与同龄人在他或她的组织中,每个对等节点并初始化安装chaincode chaincode,评论用户的身份,并创建系统账户,检查课程由教师和检查学生的成绩。通过调用chaincode,管理员添加课程信息,教师的账户,奖励学分的学生,并检查学生的作业和期末考试。(4)老师:老师向大学申请教学课程和年级学生的作业和期末考试。通过调用chaincode、教师添加课程信息和成绩学生账户。(5)学生向老师申请学习课程,向老师提交作业和期末考试成绩和申请大学课程学分。通过调用chaincode,学生添加他们的作业和期末考试的散列值。

3.2。应用场景

2显示了应用程序场景,学生B大学想学课程的老师来自大学B, C和大学想验证学生获得的信贷。步骤1:大学第一个创建一个频道的管理员,每个大学的系统的管理员和同伴之间的连接通道在他或她的组织中,每个对等节点上安装chaincode,初始化chaincode。所有用户(包括教师和学生)需要申请大学第一个获得系统的管理员帐户。步骤2:老师B适用于大学教学课程B,需要回顾了他的大学。大学课程被批准后,B添加课程信息通过调用chaincode老师B的帐户。步骤3:学生学习课程适用于老师B B, B和教师将课程信息添加到账户的学生通过调用chaincode。在课程学习期间,学生需要上传作业和期末考试的散列值和B寄给老师评分,然后老师B将上传年级学生通过调用chaincode。步骤4:适用于他的大学获得信贷当然B从老师收到成绩后通过调用chaincode,大学检查学生的成绩和奖励信用等级是否合格。第五步:学生想从大学大学C, C和大学,因此,想要验证学生的学分A C将信用验证请求提交给大学学生,和学生作业和期末考试大学发送C之前检查作业和期末考试的内容,大学C需要计算作业和期末考试的散列值,然后比较它与学生上传的散列值,以确保作业和期末考试从来没有被篡改。

3.3。初始阶段

在初始阶段,大学管理员创建一个通道,然后安装,初始化chaincode组织中的每个对等节点。步骤1:大学管理员登录系统通过一个应用程序,然后开始一个客户机节点并创建一个频道。步骤2:大学管理员依次连接到每个组织中的对等节点通过通道,然后安装chaincode chaincode每个对等节点和初始化。显示了chaincode算法1

(1) Chaincode struct类型{
(2) }
(3) 类型教师结构{
(4) 名称字符串的json:“名字”
(5) 大学字符串的json:“大学”
(6) 当然字符串的json:“课程”
(7) }
(8) 学生结构体类型{
(9) 名称字符串的json:“名字”
(10) 大学字符串的json:“大学”
(11) 哈希字符串的json:“希”
(12) 年级int的json:“年级”
(13) 信贷int的json:“信用”
(14) }
(15) func (tChaincode) Init(存根shim.ChaincodeStubInterface)同行。响应{
(16) 返回shim.Success(零)
(17) }
(18) func (tChaincode)调用(存根shim.ChaincodeStubInterface)对等。响应{
(19) 函数参数:= stub.GetFunctionAndParameters ()
(20) 如果函数= =“CheckCourse”{
(21) 返回t。CheckCourse(存根,args)
(22) 其他}如果函数= =“LearnCourse”{
(23) 返回t。LearnCourse(存根,args)
(24) 其他}如果函数= =“WorkUpload”{
(25) 返回t。WorkUpload(存根,args)
(26) 其他}如果函数= =“AddGrade”{
(27) 返回t。AddGrade(存根,args)
(28) 其他}如果函数= =“CheckStudent”{
(29) 返回t。CheckStudent(存根,args)
(30) 其他}如果函数= =“AwardCredit”{
(31) 返回t。AwardCredit(存根,args)
(32) }
(33) 返回垫片。错误(“合同无效的智能功能的名字。”)
(34) }
3.4。用户注册阶段

在这个阶段,用户X提交注册申请和身份信息,他或她的大学。验证身份后,大学管理员连接到CA节点生成证书,公钥和私钥的用户X。图3显示了用户注册阶段的流程图。步骤1:用户X生成注册应用程序 和身份信息 ,然后传送 他或她的大学步骤2:大学管理员验证 ,然后传输 如果CA节点 是有效的。CA生成的私钥 ,公共密钥 ,和证书 的用户X基于 第三步:应用程序生成系统账户和 的用户X基于 , , ,然后发送 用户X

3.5。课程注册阶段

在这个阶段,老师将课程B大学进行审查。如果课程B是有效的,大学B的管理员添加课程信息的帐户B通过调用chaincode老师。图4显示课程注册阶段的流程图。步骤1:老师希望添加课程B系统,首先他生成的 和课程教学的要求 ,然后选择一个随机数字 ,计算 , , , ,并发送 大学B。步骤2:在收到 从老师B, B大学的管理员第一次使用 确认时间戳是否有效,然后搜索公钥 B老师的 ,验证 通过 ,并计算出 , , , ,检查 。如果签名验证通过,大学管理员审核课程B,生成结果 ,,并调用chaincode CheckCourse。显示了chaincode算法2

(1) func (tChaincode) CheckCourse (APIstub垫片。ChaincodeStubInterface, arg游戏[]字符串)同行。响应{
(2) 如果len (args) ! = 4 {
(3) 返回垫片。错误(“ν敢于不正确的参数。期待4”)
(4) }
(5) var老师=老师{名称:args (1),大学:args (2),课程:args (3]}
(6) teacherAsBytes _: = json.Marshal(老师)
(7) APIstub。teacherAsBytes PutState (args [0])
(8) 返回shim.Success(零)
(9) }
步骤3:在收到 从大学B, B老师第一次使用 确认时间戳是否有效,然后搜索公钥 大学B的 ,验证 通过 ,并计算出 , , , ,
3.6。课程学习阶段

如果学生想学的课程从大学B B,他将首先申请课程学习老师B和B老师将课程信息添加到他的账户通过调用chaincode。期间的学习课程,学生上传作业的散列值和期末考试通过调用B chaincode并将它们发送给老师评分,然后老师B调用chaincode上传学生的年级。图5显示课程学习阶段的流程图。步骤1:学生选择课程B,他想学习,然后生成课程学习应用程序 ,选择一个随机数 ,计算 , , , ,并发送 老师B。步骤2:在收到 从学生,教师第一次使用 确认时间戳是否有效,然后搜索公钥 学生的 ,验证 通过 ,并计算出 , , , , 如果签名验证通过,老师B调用chaincode LearnCourse。显示了chaincode算法3然后,学生选择一个随机数字 ,计算 , , , ,并发送 老师B。第四步:收到 从学生,教师第一次使用 确认时间戳是否有效,然后验证 通过 ,解密 与他的私钥 ,生成 并计算出 , , , , 如果签名验证通过,老师评论 并生成的品位 ,然后他上传年级通过调用chaincode AddGrade。显示了chaincode算法5

(1) func (tChaincode) LearnCourse (APIstub垫片。ChaincodeStubInterface, arg游戏[]字符串)同行。响应{
(2) 如果len (args) ! = 6 {
(3) 返回垫片。错误(“不正确的数量的参数。期待6”)
(4) }
(5) var学生={名称:args (1),大学:args (2),散列:args (3),年级:args (2),信贷:args (3]}
(6) studentAsBytes _: = json.Marshal(学生)
(7) APIstub。studentAsBytes PutState (args [0])
(8) 返回shim.Success(零)
(9) }
步骤3:当学生完成家庭作业和期末考试 ,他搜索的公钥 B老师的 ,加密 的公钥 ,生成 ,计算 ,和上传 通过调用chaincode WorkUpload。显示了chaincode算法4
(1) func (tChaincode) WorkUpload (APIstub垫片。ChaincodeStubInterface, arg游戏[]字符串)同行。响应{
(2) 如果len (args) ! = 2 {
(3) 返回垫片。错误(“不正确的数量的参数。期待2”)
(4) }
(5) studentAsBytes _: = APIstub.GetState (args [0])
(6) 学生:学生= {}
(7) json。Unmarshal (studentAsBytes行业)
(8) student.Hash =参数(3]。
(9) studentAsBytes _ = json.Marshal(学生)
(10) APIstub。studentAsBytes PutState (args [0])
(11) 返回shim.Success(零)
(12) }
(1) func (tChaincode) AddGrade (APIstub垫片。ChaincodeStubInterface, arg游戏[]字符串)同行。响应{
(2) 如果len (args) ! = 2 {
(3) 返回垫片。错误(“不正确的数量的参数。期待2”)
(4) }
(5) studentAsBytes _: = APIstub.GetState (args [0])
(6) 学生:学生= {}
(7) json。Unmarshal (studentAsBytes行业)
(8) student.Grade =参数(4]。
(9) studentAsBytes _ = json.Marshal(学生)
(10) APIstub。studentAsBytes PutState (args [0])
(11) 返回shim.Success(零)
(12)}
3.7。信贷程序阶段

在这个阶段,学生当然适用于他的大学信贷b .如果合格学生的年级,大学的管理员信贷通过调用chaincode奖励他。图6显示了信贷程序阶段的流程图。步骤1:学生产生信贷应用程序 并发送 上大学。步骤2:在收到 从学生,管理员的大学一个调用chaincode CheckStudent检查成绩 学生a显示了chaincode算法6。如果成绩 是合格的,管理员添加信用账户的学生通过调用chaincode AwardCredit。显示了chaincode算法7

(1) func (tChaincode) CheckStudent (APIstub垫片。ChaincodeStubInterface, arg游戏[]字符串)同行。响应{
(2) 如果len (args) ! = 1 {
(3) 返回垫片。错误(“不正确的数量的参数。期待1”)
(4) }
(5) studentAsBytes _: = APIstub.GetState (args [0])
(6) 返回shim.Success (studentAsBytes)
(7) }
(1) func (tChaincode) AwardCredit (APIstub垫片。ChaincodeStubInterface, arg游戏[]字符串)同行。响应{
(2) 如果len (args) ! = 2 {
(3) 返回垫片。错误(“不正确的数量的参数。期待2”)
(4) }
(5) studentAsBytes _: = APIstub.GetState (args [0])
(6) 学生:学生= {}
(7) json。Unmarshal (studentAsBytes行业)
(8) student.Credit =参数(5]。
(9) studentAsBytes _ = json.Marshal(学生)
(10) APIstub。studentAsBytes PutState (args [0])
(11) 返回shim.Success(零)
(12) }
3.8。信用验证阶段

学生想从大学大学C, C,因此大学想核实学生的学分C A大学第一次申请信用验证,然后学生发送作业和期末考试加密解密后大学C .消息并确保数据没有篡改,大学C的管理员审查作业和期末考试的内容。图7显示了信贷的流程图验证阶段。步骤1:大学C生成信用验证应用程序 ,选择一个随机数 ,计算 , , , ,并发送 学生A。步骤2:在收到 从大学C,学生第一次使用 确认时间戳是否有效,然后搜索公钥 C大学的 ,验证 通过 ,并计算出 , , , , 如果签名验证通过,学生产生 ,加密 的公钥 ,生成 ,选择一个随机数 ,计算 , , , ,并发送 学生A。步骤3:在收到 从学生,管理员大学C的第一次使用 确认时间戳是否有效,然后搜索公钥 学生的 ,验证 通过 ,解密 的私钥 ,生成 并计算出 , , , , 如果签名验证通过,管理员检查 这是上传的学生通过调用chaincode CheckStudent和计算 如果 ,这意味着 发送的学生一个上大学C是一样的学生提交的作业和期末考试在学习阶段。确保作业和期末考试不是篡改,大学C的管理员评论的内容

4所示。安全与功能分析

4.1。相互认证

在这篇文章中,禁止逻辑32)是用于身份验证。禁止的符号逻辑描述如下。(1) 的消息 结合是关键吗 (2) 相信 (3) 使用共享密钥 沟通(4) 的消息 是新鲜的(5) 有管辖权 (6) 看到 (7) 曾经说过

该计划的主要目标是用户之间的身份验证X和用户Y。(1)G1: (2)G2: (3)G3: (4)G4: (5)G5: (6)G6: (7)七国集团(G7): (8)八国集团:

禁止逻辑用于生产一种理想化的形式如下:(1)M1: (2)M2:

有必要分析该方案前做以下假设:(1)A1: (2)A2: (3)A3: (4)A4: (5)A5: (6)A6: (7)A7: (8)A8:

根据这些假设,验证的主要证据如下:

以下4.4.1。用户Y对用户进行身份验证X

M1和看到规则,推导

A2和新鲜的规则,推导

A6、表述和消息的含义规则,推导

语句2、语句3,现时标志验证规则,推导

声明4和信念法则,推导

A6,声明中5,管辖规则,推导

通过声明6和信仰规则,推导

A8,声明7,管辖规则,推导

4.1.2。用户X对用户进行身份验证Y

平方米,看到规则,推导

A3和新鲜规则,推导

A5, 9日的声明中,和消息的含义规则,推导

通过语句,语句11,现时标志验证规则,推导

通过声明12和信仰规则,推导

A5,声明13日和管辖规则,推导

通过声明14和信仰规则,推导

到A7,声明15,管辖规则,推导

7 5的声明,声明,声明,声明,声明13日14日的声明中,声明15,16和语句,它可以证明,用户X和用户Y互相验证。

4.2。数据完整性

摘要椭圆曲线数字签名算法(ECDSA)是用于确保数据完整性和任何重要的数据传输系统中需要签署的发送者。在数据传输过程中,数据的发送方首先计算出散列值,然后生成散列值的数字签名和他的私钥。在收到来自发送方的数据和数字签名,接收方也计算数据的散列值,然后搜索发送方的公钥。如果发送方的签名可以生成接收器的散列值和发送方的公开密钥,然后它意味着数据传输系统中没有被篡改或丢失。

场景:例如,学生想把课程学习应用程序 当然B老师B .在数据传输过程中,数据可能会丢失,或者有人想恶意篡改的内容应用程序,然后老师接收 这是不同于

分析:在收到 从学生和验证时间戳 ,老师B计算 , , , ,如果 然后意识到 不是学生所产生的。

4.3。隐私保护

为了保护学生的隐私,学生的作业和期末考试前的系统将被加密传输。消息在发送作业和期末考试,学生将与接收方的公钥加密消息,和接收器之前与他或她的私钥解密消息审查作业和期末考试的内容。

场景:大学C想核实学生的信用B,然后学生发送 这是由他的作业和期末考试吗 和公钥 大学c .假设攻击者想要获得学生的作业和期末考试没有权限,攻击者截获数据当学生传递消息。

分析:通过拦截数据,攻击者获得 它是显示为一个毫无意义的字符串和攻击者无法得到任何有效信息呢 如果攻击者想要解密 ,他需要使用私钥的大学C来计算 然而, 只有大学知道C和攻击者无法访问,因此攻击者无法作业,期末考试的内容。

4.4。分散和分布

区块链系统分散和分布的特点,和区块链上的数据不是由一个中央机构。在拟议的系统中,大学共同维护区块链上的数据,整个分类存储在每个组织的对等节点,和任何用户的操作系统中的区块链每个对等节点上执行同步。因此,跨组织的数据保持一致,任何两个系统可以达成共识的成员区块链上的数据,如学生的学分、课程成绩和学生上传的散列值。

场景:一个对等节点系统失败和节点上的数据丢失。

分析:剩下的对等节点系统仍能正常运行的事务支持和分类帐更新。因为整个分类存储在每个对等节点,失去一份总帐不会影响系统的运行。

4.5。可追溯性

所有事务在一个区块链系统打包成块按时间顺序排列而成,所以所有操作系统用户的数据区块链可以被追踪,和欺骗可以消除通过区块链的可追溯性。

场景:假设学生不能完成课程B和期末考试失败了,老师B希望帮助学生作弊通过调用chaincode AddGrade给他一个高分

分析:大学想验证学生对课程的信贷B,并获得成绩 的学生通过调用chaincode CheckStudent。大学的管理员将首先检查作业和期末考试的内容,发现 不合格,不能见面 ,然后抱怨教育部。教育部门查询相关的所有事务老师B和学生区块链找到块上老师B调用chaincode AddGrade,其中包含的不规则操作老师B和时间戳,并可以作为证据起诉。

4.6。信贷可核查的

在拟议的系统中,一个大学的学分可以验证来自其他大学的学生,以确定学生的能力满足学校的需求。如果学生的作业和期末考试是发送到大学,就意味着在大学所有老师和管理员可以检查作业和期末考试的内容。

场景:学生获得学分课程B和想要从大学大学C来验证学生对课程的学习情况B, C大学需要审查作业和期末考试的内容。

分析:学生发送 这是由他的作业和期末考试吗 和公钥 大学C, C解密和大学 的私钥 生成 为确保 由大学生成C是一样的作业和期末考试由学生在课程学习阶段,提交管理员大学C调用chaincode CheckStudent散列值 作业和期末考试由学生上传和计算 如果 ,就意味着 发送的学生没有被篡改,管理员审查作业和期末考试的内容。

5。讨论

5.1。计算成本分析

方案的计算成本分析表所示2,最高的计算成本是发现在课程学习阶段。老师B需要8乘法操作,2哈希函数操作,6比较操作,1非对称加密操作,和2签名操作。学生需要6乘法操作,3哈希函数操作,1非对称加密操作,和3签名操作。因此,该方案具有良好的计算成本。

5.2。沟通成本分析

3显示了通信的效率提出了系统。假设ECDSA键和签名要求160位,当然,家庭作业,和期末考试信息和证书需要1024位,和加密的作业和考试信息需要3072位,而其他信息,如时间戳、身份信息,请求消息,和结果的信息,需要80位。以信用验证阶段,为例,它需要四个ECDSA签名,两个证书,一个加密的作业和考试信息,和其他八个消息。因此,它需要160×4 + 1024 3072××2 + 1 + 80×8 = 6400位总共需要0.457女士3.5 G (14 Mbps)通信环境下,0.064女士在4 G (100 Mbps)通信环境下,和0.320我们在5克(20 Mbps)的沟通环境。

5.3。比较

4显示之前的计划和方案的比较。相关工作相比,该方案侧重于提出一个大学课程学习系统优势的可核查的学习过程,没有令牌消费,保护学生的隐私和完整的安全性分析。

6。结论

与大学在线课程和学生的数量增加,信用验证成为不可避免的问题。以前,信用是由每个大学和每个单独在线教育平台,导致这一事实由学生在一个大学的学分不能被其他大学。本文提出一种跨校课程学习系统基于Hyperledger织物,这商店学生的学分和散列值的区块链作业和期末考试,和区块链上的数据是所有高校共同维护的。大学,他们可以验证学生的学分和审查的内容学生作业和期末考试通过调用chaincode,确定学生的能力是否满足他们的需求,然后承认学分。

本文给出了一个完整的系统架构,详细描述了应用程序场景,并提供chaincode。提高系统的安全,学生作业和期末考试之前加密传输,从而有效地保护学生的隐私。同时,椭圆曲线数字签名算法在通信Hyperledger织物可以确保数据的完整性。安全分析使用禁令逻辑表明,我们建议的系统使相互的身份验证系统的成员。与先前的系统基于区块链技术相比,大学提出的系统识别信用检查学生的作业和期末考试,而不是依靠中央的权威教育机构。该方案使用财团区块链结构,提高了系统运行效率和节省开采所需的钱相比,公共区块链结构。最后的分析表明,该系统也表现良好的计算成本和沟通成本。

总之,本研究取得了如下贡献:(1)提出了一种跨校课程学习系统基于Hyperledger织物,大学可以检查学生的作业和期末考试认识到学生的学分。(2)提出了一个完整的系统体系结构,详细描述了应用程序场景,并提供chaincode。(3)使用椭圆曲线数字签名算法,以确保数据完整性在沟通和非对称加密算法,以保护学生的隐私。(4)使用财团区块链架构来提高系统运行效率和节省开采所需的资金相对于公共区块链架构(5)提出了安全分析通过禁止逻辑确保相互的身份验证系统的成员

在不久的将来,这项研究将考虑增加企业的角色在系统实现验证学生的学分和学习记录的企业,从而促进企业了解学生的能力和选择他们所需要的学生。同时,随着系统成员数量的增加,如何保证学生的隐私和系统运营效率也需要考虑。

符号

用户X: 系统中任何大学或老师或学生
: 椭圆曲线
: 在椭圆曲线生成的起源
: 用户的数字证书X符合x标准
: 用户的私钥X基于椭圆曲线密码学
: 用户的公钥X基于椭圆曲线密码学
: 一门课程的身份
: 用户X的身份
: 用户X的时间戳
: 用户发送的请求消息
: 结果消息的请求
: 的用户身份信息消息
: 一个老师的信息
: 作业和期末考试的一个学生
: 一个学生对一门课程的成绩
: 由用户生成的随机数
: 由用户生成数字签名
: 单向散列函数
: 用户生成的散列值
: 不对称加密消息 的公钥
: 不对称解密消息 的私钥
: cyphertext作业和期末考试所产生的非对称加密的消息
: 验证是否 等于

数据可用性

数据支持本研究中可用的文章。

的利益冲突

作者宣称没有利益冲突。

确认

这项工作是支持由科学技术部部分,台湾,中华民国,under contract MOST 110-2218-E-305-001–MBK and MOST 110-2410-H-324 -004 - MY2, and the Education and Teaching Reform Project of the Xiamen University of Technology (no. JG2021007).