基于双区块链保护下教育数据共享方法

专利2023-02-03  120



1.本发明涉及数据共享技术领域,具体地说,涉及一种基于双区块链保护下教育数据共享方法。


背景技术:

2.学生在学习活动产生了海量的教育数据,教育数据已成为一种能够流动的资产宝库,通过大量教育数据能够提炼出有意义、有价值的信息,并依据实际教学活动将提取的信息应用于教学活动中,以达到完善教学计划、优化教学效果的目标。另外,企业通过教育数据能有效地了解高校人才,让其人尽其用,为生产活动创造出更大的经济价值和社会价值。
3.为了挖掘教育数据中存在的价值,数据共享变得必不可少。但由此必然会打破原有的教育数据管理安全边界,让原本的数据管理变得模糊,进而出现的多种权限管理问题,让数据面临随时泄露的风险。为实现安全、可控的教育数据资源流通与共享,是教育数据应用及其发展所面临的核心科学问题。为了在保证数据安全性同时,对数据进行共享,因此需要一种精细化的数据管理方法以满足多种权限管理需要。
4.在传统的教育模式中,老师要负责学生的成绩汇总、学生要通过老师了解自己的学习成绩、学校可以直接查看各班的成绩等。在这种教育模式下,出现了不同身份对数据有着不同操作需要,更细致的表现在教育领域中精细化的数据管理需求而出现的多种权限管理问题。对于出现的这类问题,传统的区块链系统中人人平等的理念没有很好的办法满足其需要。另外,在企业与学校的数据共享中,学校为了保护学生个人隐私情况,仅仅希望企业能够看到企业所需的学生信息。但在传统的区块链系统中,不管是公有链(public blockchain)、私有链(privateblockchain)或者联盟链(consortium)在智能合约权限管理方面还是处于相对较粗的粒度级别,没有很好的办法保护用户的个人信息。因此,目前对教育数据的管理主要还是依赖于对系统中心或者第三方实体的信任,如中心数据、数据库管理人员等,一旦数据中心遭受到黑客入侵对数据库进行篡改等操作,系统中心将不在可信,教育数据的真实性将荡然无存。


技术实现要素:

5.本发明的内容是提供一种基于双区块链保护下教育数据共享方法,其能够克服现有技术的某种或某些缺陷。
6.根据本发明的一种基于双区块链保护下教育数据共享方法,其包括以下步骤:
7.步骤1、用户dg-id-a通过tdsc合约修改自己待分享课程的shate;若shate为0级,需要将dg-id-b写入合约中sc-id对应的分享列表;
8.步骤2、用户dg-id-b使用私钥skb对待分享课程的课程标识sc-id和身份标识dg-id进行签名操作,并发送到智能合约;tdsc合约收到请求后,先调用dircc合约对其身份进行权限检查,并且权限结果返回给tdsc合约,将 dg-id-b的权限等级与sc-id的shate进行匹配;若权限匹配成功,系统将返回sc-id对应的aes加密的密钥和对应的哈希,并通过tdsc
合约向dg-id-a 发送请求;若权限不匹配,tdsc合约将调取sc-id中的分享列表的信息与 dg-id-b进行对比;若信息一致,将返回sc-id对应的aes加密的哈希数据进行解密,并通过tdsc合约向dg-id-a发送请求;
9.步骤3、dg-id-a收到dg-id-b的请求后,使用私钥ska将aes密钥进行加密发送给dg-id-b,dg-id-b通过dg-id-a公钥对数据进行解密,得到aes 密钥;
10.步骤4、dg-id-b通过aes密钥对数据进行解密,得到原始数据。
11.作为优选,其采用的教育数字系统包括:
12.高校数字库,用于作为数字教育联盟链的权威节点参与到联盟区块链中,享有教育数据的加密、存储、查询、保护、共享以及审核服务;
13.权限管理库,即权限链,用于通过精细化的权限管理来控制用户的操作,操作包括验证用户权限、用户权限调整;
14.数据管理库,即数据链,用于以课程的形式来存储教育数据,并受到权限管理库的操作控制;
15.系统服务,用于以接口的形式为系统提供智能合约以及接口调用,并为数据链与权限链各自的智能合约调用提供通信;
16.数据链和权限链,共同实现了联盟区块链的身份的注册、教育数据加密存储以及教育数据保护与共享业务逻辑,并通过定期查询的方式增强了数据的原始性和真实性保护。
17.作为优选,联盟链中的智能合约包括数字身份权限控制合约dircc、数字身份权限管理合约dirmc和数字教育管理合约demc。
18.作为优选,dircc为全局合约,拥有身份权限记录和验证功能,合约记录联盟链中所有用户的身份标识dg-id、对应的公钥pubkey和与其对应的相关权限power信息;在创建dircc合约时,用户的数字身份、公钥、权限等级会被一起记录,并且相关的合约也被一起创建。
19.作为优选,dirmc通过民族投票的方式实现教育联盟数字身份的内部自治,包括身份权限创建投票合约dircvc、身份权限调整合约dirac、身份权限重置合约dirrc和身份权限验证合约dac;dircvc合约用于为新成员加入教育联盟,在dircc合约中对应权限的成员创建投票请求并为其投票;dirac 合约用于对成员的权限进行调整,通过对应权限成员的投票为成员进行权限调整;dirrc合约用于在联盟链私钥泄露时,通过民族投票的方式重置其公钥; dac合约用于数据存储、分享数据和验证数据权限控制,当成员达到相应的权限后,才能通过合约的验证。
20.作为优选,demc用于实现教育数据的存储、保护、验证、恢复和共享业务逻辑;包括教育数据存储合约edsc、教育数据共享合约tdsc;edsc合约用于教育数据的信息存储,包括课程号cs-id、学校号s-id、创建者的公钥、课程信息、学生成绩、哈希值、创建时间;tdsc合约用于存储的教育数据共享信息,包括课程号cs-id、学校号s-id、共享等级shate(sharing level),一个课程情况可以共享给多个成员进行访问。
21.作为优选,当shate的值为-1时,为不可共享该数据;当shate的值为 0时,为只有创建者指定的成员可以获得数据;当shate的值为1时,为仅1 级权限成员可以获取数据;当shate的值为2时,内部2级权限以上的成员都可以访问并获得数据;当shate的值为3时,表
示该数据是完全对外部开放的,所有成员都可以自由从数据链中直接获得。
22.通过双区块链中权限链与数据链相互结合的方式,在保障了教育数据安全性的同时针对不同权限划分出了不同管理操作,有效提升了数据的管理能力,更好的对隐私进行保护。并通过智能合约和数字签名等技术,实现了身份确认和教育数据的共享。本发明与传统的区块链之间进行了对比,在安全性、查询速度方面表现出良好的性能,并在不同的共识算法下对延迟的优劣进行了比较。该方法具有细致的权限管理机制、可扩展性、不可篡改等特点,以满足教育领域中精细化的权限管理需求。
附图说明
23.图1为实施例中教育数据的共享与获取流程图;
24.图2为实施例中系统架构图;
25.图3为实施例中智能合约架构图;
26.图4(a)为实施例中成功完成攻击节的概率与区块高度差h(h为3)间的关系图;
27.图4(b)为实施例中成功完成攻击节的概率与区块高度差h(h为4)间的关系图;
28.图5为实施例中不同数据量下查询速度的对比示意图;
29.图6为实施例中不同用户情况下的数据查询时间对比示意图;
30.图7为实施例中poa与pow共识对智能合约调用延迟的对比示意图。
具体实施方式
31.为进一步了解本发明的内容,结合附图和实施例对本发明作详细描述。应当理解的是,实施例仅仅是对本发明进行解释而并非限定。
32.实施例
33.如图1所示,本实施例提供了一种基于双区块链保护下教育数据共享方法,其包括以下步骤:
34.步骤1、用户dg-id-a通过tdsc合约修改自己待分享课程的shate;若 shate为0级,需要将dg-id-b写入合约中sc-id对应的分享列表;
35.步骤2、用户dg-id-b使用私钥skb对待分享课程的课程标识sc-id和身份标识dg-id等信息进行签名操作,并发送到智能合约;tdsc合约收到请求后,先调用dircc合约对其身份进行权限检查,并且权限结果返回给tdsc合约,将dg-id-b的权限等级与sc-id的shate进行匹配;若权限匹配成功,系统将返回sc-id对应的aes加密的密钥和对应的哈希,并通过tdsc合约向 dg-id-a发送请求;若权限不匹配,tdsc合约将调取sc-id中的分享列表的信息与dg-id-b进行对比;若信息一致,将返回sc-id对应的aes加密的哈希数据进行解密,并通过tdsc合约向dg-id-a发送请求;
36.步骤3、dg-id-a收到dg-id-b的请求后,使用私钥ska将aes密钥进行加密发送给dg-id-b,dg-id-b通过dg-id-a公钥对数据进行解密,得到aes 密钥;
37.步骤4、dg-id-b通过aes密钥对数据进行解密,得到原始数据。
38.区块链
39.区块链是分布式去中心化账本,使用块链式数据结构存储和验证数据,利用分布式节点共识算法来生成和更新区块、利用智能合约来编程和操作数据,并以经济激励的形
式来确保每一个节点都参与到区块链的活动中。以以太坊 (ethereum)为例,以太坊可以分为三层,分别是顶层应用、核心层、底层服务。顶层应用主要包括智能合约和api接口,核心层由区块、共识算法等组成,底层服务包括p2p网络、密码学算法等。其中区块由块头、交易列表和叔区块块头三部分组成。区块链目前分为公有链(public blockchain)、私有链 (privateblockchain)、联盟链(consortium)三种形式,公有链中所有节点中立、开放,不受任何区块链参与者的控制,任何拥有计算机的人都可以参与。私有链通常用于个人或者单位内部,其数据管理由个人或者该组织控制,不能很好的解决信任问题。联盟链又被人称为许可链,仅允许联盟内部成员按照联盟制定的规定进行投票、记账等操作。联盟内部节点需要通过联盟其他成员的验证后在能加入,其可信度一般比较高。公有链、私有链和联盟链对比如表1。
40.表1公有链、私有链和联盟链对比
[0041][0042]
区块链为了解决去中心化而带来的节点数据不一致问题,其采用共识协议来实现节点的数据一致性。目前,区块链体系中主要的共识算法包括工作量证明(proof of work,简称pow)、权益证明(proof of stake,简称pos)和权威证明(proofof authority,简称poa)等。pow共识算法,要求所有节点以自身算力共同计算出一个数学难题,最快解出该数学难题的节点将获得一个区块的打包权限。pos 共识算法,以持有数据货币的数量来决定打包的节点,最多数据货币的节点具有最大的概率获得一个区块的打包权限。poa共识算法则是通过权威节点产生区块的共识机制。虽然pow共识算法的去中心化程度以及节点间的公平性较弱,但联盟链中拥有有效的验证机制以及可靠的权威节点,pow共识算法非常适用联盟链中。
[0043]
数据保护机制
[0044]
非对称加密(asymmetric encryption)是区块链中数据安全的基础之一,它由公钥和私钥这组成。系统根据输入的数据信息,通过sha256hash算法计算得出私钥,然后将该私钥通过secp256k1椭圆算法计算分解出公钥,此过程是不可逆转。生成的私钥需要生成者谨慎保存,一旦丢失将难以找回;生成的公钥需要通过区块链广播给链上其他用户。目前,非对称加密主要用于数据加密和数字签名这两个方面。数据加密,用户a通过用户b的公钥对信息进行加密并发送,用户b收到信息后,使用用户b自己的私钥对信息进行解密。数字签名,用户a使用自己的私钥对信息进行加密并发送,用户b接受到信息后,使用用户a的公钥与信息的哈希对比并解出原始信息。
[0045]
高级加密算法(aes,advanced encryption standard)为常见的对称加密算法 (本实施例采用aes加密中的aes-256对数据加密),采用相同的密钥对数据进行加密和解密。aes加密过程,将明文p和密钥k作为参数放入aes加密函数c=e(k,p)中,生成密文c。aes解密过程,将密文c和密钥k作为参数放入 aes解密函数p=d(k,c)中,输出明文p。
[0046]
智能合约
[0047]
智能合约是一种部署在区块链上可自动执行的特殊程序代码,目前比较著名的系
统有以太坊和超级账本(hyperledger)。智能合约拥有使用灵活、防篡改性强等特点。所有智能合约成功调用后,都会将程序代码和数据存储到区块链上,并且不能修改。因此,智能合约部署到区块链上前要进行可行性和安全性的检查,排除合约中所有出现的系统漏洞。目前智能合约的开发,采用的是类似于javascript语法的高级语言solidity进行智能合约的开发。
[0048]
系统架构
[0049]
本实施例提出的双区块链下的教育数据共享方法由高校数字库、权限管理库(权限链)、数据管理库(数据链)、系统服务(system service)这4部分构成系统协同完成,如图2。高校数字库作为数字教育联盟链的权威节点参与到联盟区块链中,享有教育数据的加密、存储、查询、保护、共享以及审核等服务。权限管理库是通过精细化的权限管理来控制用户的操作,主要操作有验证用户权限、用户权限调整等,权限(power)可划分为1级权限、2级权限、3级权限共3种,如表2。用户访问教育联盟链需要先通过权限管理库的验证。系统服务(system service)是一种去中心化应用,其本身不存储任何教育数据和身份信息, 以接口的形式为教育数字系统提供智能合约以及接口调用。系统服务(systemservice)也为数据链与权限链各自的智能合约调用提供了通信。数据管理库主要作用是以课程的形式来存储教育数据,并受到权限管理库的操作控制。数据链和权限链,共同实现了联盟区块链的身份的注册、教育数据加密存储以及教育数据保护与共享等业务逻辑,并通过定期查询的方式增强了数据的原始性和真实性保护。由于本系统主要面向对象主要为学校与教育机构,该群体都具有身份真实可信,权威性高等特点。poa共识算法对该联盟高度契合,并且无需依靠算力奖励机制维持系统运行,可以大大降低方法成本,减小能源消耗。
[0050]
表2权限说明
[0051][0052]
合约架构
[0053]
本方法主要利用智能合约中的一致性和不可篡改性这两个特性,在保证区块链原始安全性的基础上进行灵活的编程。本方法的智能合约体系(如图3所示)由联盟链中数据链合约和权限链合约共同构成。部署在联盟链中,并将合约内容保存在联盟链的区块内。联盟链中的智能合约包括数字身份权限控制合约(dircc,digital identity rights control contract)、数字身份权限管理合约 (dirmc,digital identity rights management contract)、数字教育管理合约 (demc,digital education management contract)等。
[0054]
dircc作为全局合约拥有着身份权限记录和验证的功能,该合约记录了联盟链中所有用户的身份标识(dg-id)、对应的公钥(pubkey)和与其对应的相关权限(power)等信息。在创建dircc合约时,用户的数字身份、公钥、权限等级会被一起记录,并且相关的合约也被一起创建。
[0055]
dirmc通过民族投票的方式实现教育联盟数字身份的内部自治,包括身份权限创建投票合约(dircvc,digital identity rights create voting contract)、身份权限调
整合约(dirac,digital identity rights adjustment contract)、身份权限重置合约(dirrc,digital identity rights reset contract)和身份权限验证合约 (dac,digital authentication contract):dircvc合约用于为新成员加入教育联盟,在dircc合约中权限1的成员创建投票请求并为其投票。dirac合约用于对成员的权限进行调整,通过权限1成员的投票为成员进行权限调整。dirrc 合约用于在联盟链私钥泄露时,通过民族投票的方式重置其公钥。dac合约用于数据存储、分享数据和验证数据等权限控制,当成员达到相应的权限后,才能通过该合约的验证。
[0056]
demc用于实现教育数据的存储、保护、验证、恢复和共享等业务逻辑。包括教育数据存储合约(edsc,education data storage contract)、教育数据共享合约(tdsc,education data sharing contract)。edsc合约用于教育数据的信息存储,包括课程号cs-id、学校号s-id、创建者的公钥、课程信息、学生成绩、哈希值、创建时间等。tdsc合约用于存储的教育数据共享信息,包括课程号 cs-id、学校号s-id、共享等级等(shate),一个课程情况可以共享给多个成员进行访问。shate的具体分为如表3所示:当shate的值为-1时,为不可共享该数据。当shate的值为0时,为只有创建者指定的成员可以获得数据。当shate的值为1时,为仅1级权限成员可以获取数据。当shate的值为2 时,内部2级权限以上的成员都可以访问并获得数据。当shate的值为3时,表示该数据是完全对外部开放的,所有成员都可以自由从数据链中直接获得。
[0057]
表3 shate分类
[0058][0059]
身份权限注册与重置
[0060]
教育联盟的数字身份代表是否能参与到联盟链中,是数据保护、共享等活动的基础。每个想加入联盟的成员都需要获得半数以上1级权限的联盟成员的同意,才可以在联盟中完成注册。具体流程如下:
[0061]
1、首先,加入数值联盟前,需要在本地根据sha256hash算法与secp256k1 算法生成自己的公私密钥对《pk,sk》,并将自己的密钥sk好好保存。
[0062]
2、然后,通过正确渠道联系上联盟内部1级权限成员,并将自己的pk公钥以及身份信息告知对方,等待对方确认后,委托其成创建dircvc合约并参与投票。dircvc会显示该成员的信息,便于其他投票者确认情况。
[0063]
3、最后,当权限1的成员完成投票后,票数超过一半时,dircc合约将保存该成员的公钥信息,然后生成对应的dg-id和默认的权限等级(3级权限),并为其创建对应的权限的dirmc和demc等合约,在等待完成区块确认后,完成对教育联盟的身份注册。
[0064]
由于sha256hash椭圆曲线算法生成的密钥比较复杂难以记忆,容易出现 sk密钥丢失的等情况。另外,一旦内部人员的sk密钥被黑客非法盗取,就可能为找该成员的身份对教育数据进行查看、修改和共享等操作。这极大的危害了联盟链的安全。因此本实施例设计了基于投票机制的密钥重置方案。具体方案如下:
[0065]
1、首先,需要在本地重新生成一对新的公私密钥《pk
new
,sk
new
》,通过可靠信道,将新的pk
new
和dg-id等信息发送给联盟内部的其他成员,并请求一名权限1以上的成员创建身份重置投票。
[0066]
2、权限为1以上的联盟成员为其进行重置投票,当票数超过半数时,dircc 合约将重置该成员的公钥。
[0067]
本方法充分考虑密钥丢失的可能性,通过投票审核的方式有效的解决了密钥重置的问题,通过身份标识dg-id实现了公钥与业务逻辑的解耦。由于数据查询和共享等操作都是基于成员的身份标识dg-id对应的权限进行判断,即使 dg-id对应的公钥发生重置,只要签名对应的公钥与dg-id保持一致,依然可以通过权限验证对数据进行访问。
[0068]
身份权限调整
[0069]
在身份注册时限定了用户的权限等级(默认权限等级为3),导致用户不能正常使用demc合约中的教育数据存储等操作。因此,本实施例设计过程中充分考虑了权限调整问题,通过投票审核机制,对用户的权限进行调整。具体方案如下:
[0070]
1、首先,用户通过可信渠道联系联盟内部其他成员,然后创建dirac合约填写dg-id、调正权限、申请理由等信息,等待其他成员(权限等级1)进行投票审核。
[0071]
2、其他联盟成员为其进行权限调整的投票审核操作,并根据自己的了解对其进行投票。当票数超过半数时,dircc将对用户的权限进行重置。
[0072]
身份权限调整在设计过程中充分考虑到联盟内部可能存在少量的恶意节点,该恶意节点为黑客非法盗取到成员私钥等原因导致,为了避免数据大量泄漏。本实施例设计了权限下调方案,该方法与权限上调区别在于合约的发起者不同,具体流程如下:
[0073]
1)首先,成员a在联盟内发现有成员恶b意进行数据存储、修改和分享等操作,可以创建dijpvp合约进行权限下调投票。
[0074]
2)联盟中权限1的成员,对该恶意成员的行为进行验证,并参与投票。
[0075]
3)最后,当票数超过半数时,dircc合约将根据该恶意成员的dg-id下调其权限等级,并将下调结果告知所有成员。
[0076]
教育数据保护
[0077]
教育数据保护是指通过数据链上的智能合约,将教育数据存储在区块链上。能有效的防止数据内容被非法篡改和破坏等,并为其提供了数据验证和恢复等操作,从而达到教育数据保护的目的。创建新课程档案是将课程信息存储在数据链的edsc合约中,并且生成课程唯一标识课程号sc-id、版本号。课程档案更新是根据课程号sc-id寻找到该课程信息并更新其课程的课程数据和对应的版本号。
[0078]
创建新课程流程如下:首先随机生成一组aes密钥key,此密钥由用户和学校一起进行保存。通过system service将课程中的教学信息进行加密 keyinformation,并对该数据进行哈希操作生成哈希值(hash
datasha256
)。然后,将课程标号(sc-id)、数据的哈希值(hash
datasha256
)、等信息生成课程对象json
hash
,并对其进行签名处理。签名后的教学数据将调用的edsc合约。edsc合约在收到创建新课程档案请求后,调用dac合约从签名中恢复用户的公钥信息,并与 dircc合约中记录的密钥进行对比,若身份权限检查通过,则将合约中添加课程号sc-id、版本编verson和创建时间等信息的映射。在等待一段时间后,将该课程档案中的信息上传到区块链中。
[0079]
课程档案更新流程与创建新课程流程类似。系统会根据课程标识(sc-id) 从数据链中寻找到对应课程档案,通过edsc合约对档案中的数据进行解密,从中获得json形式结构化数据,然后根据更新的数据信息生成新的json结构,并使用aes对称加密算法对数据进行加密。最后将调用edsc合约进行存储。
[0080]
在课程数据存储时出现异常错误,本实施例提供了与之对应的恢复手段。在发现异常后可以继续与edsc合约之前存储的区块信息进行对比,定位出异常区块的位置,并调用edsc合约重新在数据链中基于此数据重新创建新的课程,版本号随之改变。
[0081]
方法实现
[0082]
本实施例基于双区块链保护的基础上提出了对教育数据共享方法的研究,并在slither上对智能合约的可行性、安全性等进行了测试。并部署了5台物理服务器上进行了实验。服务器的配置如下:处理器采用4台e7-4820@2。0ghz *232logic core和1台e5-2640v3@2。60ghz*232logic core;内存为16gb;操作系统采用vmware esxi 6。7u3。这5台服务器分别命名为blockchain1、 blockchain2

blockchain5,其中blockchain1、blockchain2、blockchain3保存教育数据;blockchain4、blockchain5保存权限数据。所有虚拟的所有节点都会作为联盟成员节点。
[0083]
本系统采用文献提供的mooc数据集与头哥实践教学平台提供的数据进行系统测试,数据集的基本信息如表4。mooc数据集包括课程(课程名称、课程介绍、课程id、视频id、视频名)、学校(学校名称、学校介绍)、老师(老师姓名、老师介绍)、用户(用户姓名、课程顺序、注册实践)、视频(视频名称、持续时间、开始时间、结束时间、文本)等属性。头哥实践教学平台的数据集包括课程id、课程名称、章节数、实训数、学习人数、章节数据(章节名、描述、包含的实训)、实训唯一标识、实训名称、关卡数据(关卡id、名称、任务描述、通过人数、正在进行人数)等31个属性。
[0084]
表4评估数据集
[0085][0086]
运行成本分析
[0087]
假设系统中每月需要进行数据的存储维护等操作的平均次数为α,数据分享等操作的平均次数为β,身份权限验证、管理操作平均需要α+β+γ,其中γ为每个月身份权限注册和权限调整等操作的次数。则在联盟链上部署的智能合约的每月成本为cost
ethereum
见公式(1)。
[0088]
cost
ethereum
=α
×
cost
save

×
cost
share
+(α+β+γ)
×
cost
power
ꢀꢀꢀ
(1)
[0089]
在联盟规模较小时,γ值较小;随着联盟的规模不断扩大,γ值会逐渐变大;当联盟达到一定规模后,γ值会逐渐变小,后趋于稳定。
[0090]
在联盟规模较小时,需要频繁对数据进行查询操作(μ为间隔时间);随着联盟链的规模不断扩大,系统的安全性和稳定性随之提升,数据查询操作频率逐渐减小。μ参数的值越大,系统的经济成本越低。
[0091]
安全性对比分析
[0092]
本实施例主要面临的威胁是区块数据被篡改,会极大的威胁到数据链的安全。假
设当前最新的区块为第α块,攻击者试图篡改最新区块前的第β块上的权限数据,需要通过分叉攻击来代替该区块。攻击者需要重新计算α-β块的哈希值。假设当前联盟链中诚实节点的算力为p次哈希每秒,攻击者控制的节点算力为q次哈希每秒。在没有大量的节点的加入或退出的情况下,新区块的计算难度不会有明显的改变。为了方便计算,假设当前没有出现该情况。此时,诚实节点每秒产生新区块的概率为w,攻击节点获取新区块的概率为u。假设h表示诚实节点与攻击节点区块高度差,则每秒高度差h有3种可能的结果,即高度差缩小、高度差变大和高度差不变。此时,高度差缩小情况出现的概率为 p1=w(1-u),高度差变大情况出现的概率为p2=u(1-w),高度差不变情况出现的概率为p3=1-u-w。因此在t秒后会出现t种结果,每种结果出现的次数分别为p1t、 p2t、p3t。如果攻击者想在t秒内攻击成功,需要满足p1∈{0,[(t-h-1)/2]/t}, p2=(p1t+h+k)/t且1≤k≤t-2tp
1-h,p1+p2+p3=1。在t秒内,诚实节点被攻击者追上概率符合公式(2)。
[0093][0094]
由公式(2)可以得出攻击者成功完成攻击节的概率与区块高度差h间的关系,并将本实施例方法修改为单链+权限管理模式与本实施例的方法在相同的算力情况(攻击节点算力为诚实节点的50%)下进行了对比,如图4(a)和图4 (b)。横坐标为时间t(单位:以太坊上发现一个区块的平均时间),纵坐标为攻击者获得新区块的概率p。
[0095]
由上可知,攻击者成功篡改该区块数据的概率会随着区块高度差h的增大而减小。当区块高度差为3时,攻击者成功的概率不到0.5%;当区块链高度差为4时,攻击者成功的概率不到0.4%。在进行数据篡改时。攻击者会预先计算几个区块的哈希值,因此,篡改的成功率会先增大后减小,逐渐趋于0。由于本实施例基于双区块链保护下,攻击节点产生区块难度比单链+权限管理模式下更高,因此本实施例攻击节点获取新区块的概率远小于单链+权限管理模式的概率。在实际的应用场景中,攻击节点很难达到诚实节点的50%的算力。因此,攻击节点成功篡改数据的概率要远远小于0.5%。
[0096]
性能对比
[0097]
由于区块链查询速度一种被人诟病,而教育数据共享速度主要受到区块查询速度影响,因此本实施例进行了分组实验对双区块链与单区块链之间查询速度进行了比较。本实施例按照数量等值的原则设置了6组递增的实验,如图5,分别测试了单链加权限管理方法、单链不加权限管理方法和本实施例的双区块链方法。由于三种方法在相同数据量下产生的区块数量不同,因此本实施例以数据数量作为分组的依据,并以查询相同的数据所用的平均时间作为实验结果。另外,由于本实施例的方法与单链加权限管理方法都会受到记录用户权限的数量影响,因此我们假设用户为500。
[0098]
由图5可以看出,在用户数量保存一致时,查询时间随着查询数据的增加呈现线性增长。在初始的时候,本实施例方法要比单链不加权限管理方法慢3s 左右,但却优于单链加权限管理的方法。随着查询的数据数量的增加,在用户数量保存不变的情况下,本实施例方法会逐渐趋向于单链不加权限的方法。这是由于用户数量在保存不变的情况下,用户数量对双区块链的影响会逐渐变小。从本实施例两个数据集中可以明显看出,在实际应用场景中记录信息会远远大于用户的数量。因此,教育数据的数量对双区块链的查询速度影响比较大。
[0099]
由于本实施例的方法与单链加权限管理方法都会受到记录用户的权限数量的影响,因此本实施例针对权限数据量不同进行了对比实验,本实施例假设实验中假设存入了10000条数据,实验结果如图6。随着用户数量不断增加,本实施例的方法会越来越优于单链加权限管理方法。其主要原因是单链加权限管理方法会将用户权限和教育数据存放在一条链中,而用户在共享时需要对区块链进行两次查询,因此单链加权限管理方法需要查询的区块数量会远远多于本实施例方法的区块数量,导致单区块链加权管理方法下的查询速度远远慢于本实施例方法。
[0100]
共识算法对比
[0101]
当前区块链系统主要以pow和poa作为主流共识算法。为了测试不同的共识算法下对系统智能合约的响应速度。分别搭建了基于poa与pow共识算法的联盟链,并使用了aleth测试工具进行评估测试。对实验数据比较结果如图 7。具体划分为5个部分进行相应测试。
[0102]
a:部署智能合约
[0103]
b:身份权限注册
[0104]
c:身份权限的调整
[0105]
d:数据存储
[0106]
e:数据共享
[0107]
由图7可知,由于poa共识算法的特性决定了事务的验证在数量有限且被指定的验证者中进行,而pow共识算法中节点数量会不断的增多,信息广播到全部验证节点所需要等待的时间更久,导致智能合约需要更久的延迟调用时间。因此,poa共识算法的联盟链比pow共识算法延迟时间更小。另外,在处理上链的事务上,poa共识算法的共识特性决定了其处理速度远优于pow共识算法。在e部分数据共享方面,poa联盟链的延迟时间几乎等于pow联盟链,这是因为该部分考虑的是在对应权限查寻对应分享等级情况下进行的,该部分仅仅对存储在联盟链上的数据进行读取与对比的操作,未改变存储在联盟链中的数据,无需创建上链事务与事务广播,因此与是否使用pow共识算法还是 poa共识算法没有直接的关系。
[0108]
本实施例重要贡献如下:
[0109]
a、提出了一种基于双区块链的权限控制机制,以满足精细化的数据管理需求而出现的多种权限管理问题。
[0110]
b、提出了在双区块链的权限控制机制,数据共享的方法。使得学校在与企业之间进行数据共享时,可以充分的对学生个人隐私进行了保证。
[0111]
c、通过对双区块链和单区块链之间进行了对比,分析出了双区块链性能方面的优势。
[0112]
以上示意性的对本发明及其实施方式进行了描述,该描述没有限制性,附图中所示的也只是本发明的实施方式之一,实际的结构并不局限于此。所以,如果本领域的普通技术人员受其启示,在不脱离本发明创造宗旨的情况下,不经创造性的设计出与该技术方案相似的结构方式及实施例,均应属于本发明的保护范围。

技术特征:
1.基于双区块链保护下教育数据共享方法,其特征在于:包括以下步骤:步骤1、用户dg-id-a通过tdsc合约修改自己待分享课程的shate;若shate为0级,需要将dg-id-b写入合约中sc-id对应的分享列表;步骤2、用户dg-id-b使用私钥sk
b
对待分享课程的课程标识sc-id和身份标识dg-id进行签名操作,并发送到智能合约;tdsc合约收到请求后,先调用dircc合约对其身份进行权限检查,并且权限结果返回给tdsc合约,将dg-id-b的权限等级与sc-id的shate进行匹配;若权限匹配成功,系统将返回sc-id对应的aes加密的密钥和对应的哈希,并通过tdsc合约向dg-id-a发送请求;若权限不匹配,tdsc合约将调取sc-id中的分享列表的信息与dg-id-b进行对比;若信息一致,将返回sc-id对应的aes加密的哈希数据进行解密,并通过tdsc合约向dg-id-a发送请求;步骤3、dg-id-a收到dg-id-b的请求后,使用私钥sk
a
将aes密钥进行加密发送给dg-id-b,dg-id-b通过dg-id-a公钥对数据进行解密,得到aes密钥;步骤4、dg-id-b通过aes密钥对数据进行解密,得到原始数据。2.根据权利要求1所述的基于双区块链保护下教育数据共享方法,其特征在于:其采用的教育数字系统包括:高校数字库,用于作为数字教育联盟链的权威节点参与到联盟区块链中,享有教育数据的加密、存储、查询、保护、共享以及审核服务;权限管理库,即权限链,用于通过精细化的权限管理来控制用户的操作,操作包括验证用户权限、用户权限调整;数据管理库,即数据链,用于以课程的形式来存储教育数据,并受到权限管理库的操作控制;系统服务,用于以接口的形式为系统提供智能合约以及接口调用,并为数据链与权限链各自的智能合约调用提供通信;数据链和权限链,共同实现了联盟区块链的身份的注册、教育数据加密存储以及教育数据保护与共享业务逻辑,并通过定期查询的方式增强了数据的原始性和真实性保护。3.根据权利要求2所述的基于双区块链保护下教育数据共享方法,其特征在于:联盟链中的智能合约包括数字身份权限控制合约dircc、数字身份权限管理合约dirmc和数字教育管理合约demc。4.根据权利要求3所述的基于双区块链保护下教育数据共享方法,其特征在于:dircc为全局合约,拥有身份权限记录和验证功能,合约记录联盟链中所有用户的身份标识dg-id、对应的公钥pubkey和与其对应的相关权限power信息;在创建dircc合约时,用户的数字身份、公钥、权限等级会被一起记录,并且相关的合约也被一起创建。5.根据权利要求3所述的基于双区块链保护下教育数据共享方法,其特征在于:dirmc通过民族投票的方式实现教育联盟数字身份的内部自治,包括身份权限创建投票合约dircvc、身份权限调整合约dirac、身份权限重置合约dirrc和身份权限验证合约dac;dircvc合约用于为新成员加入教育联盟,在dircc合约中对应权限的成员创建投票请求并为其投票;dirac合约用于对成员的权限进行调整,通过对应权限成员的投票为成员进行权限调整;dirrc合约用于在联盟链私钥泄露时,通过民族投票的方式重置其公钥;dac合约用于数据存储、分享数据和验证数据权限控制,当成员达到相应的权限后,才能通过合约的验
证。6.根据权利要求3所述的基于双区块链保护下教育数据共享方法,其特征在于:demc用于实现教育数据的存储、保护、验证、恢复和共享业务逻辑;包括教育数据存储合约edsc、教育数据共享合约tdsc;edsc合约用于教育数据的信息存储,包括课程号cs-id、学校号s-id、创建者的公钥、课程信息、学生成绩、哈希值、创建时间;tdsc合约用于存储的教育数据共享信息,包括课程号cs-id、学校号s-id、共享等级shate,一个课程情况可以共享给多个成员进行访问。7.根据权利要求6所述的基于双区块链保护下教育数据共享方法,其特征在于:当shate的值为-1时,为不可共享该数据;当shate的值为0时,为只有创建者指定的成员可以获得数据;当shate的值为1时,为仅1级权限成员可以获取数据;当shate的值为2时,内部2级权限以上的成员都可以访问并获得数据;当shate的值为3时,表示该数据是完全对外部开放的,所有成员都可以自由从数据链中直接获得。

技术总结
本发明涉及数据共享技术领域,涉及一种基于双区块链保护下教育数据共享方法,包括:1、用户DG-ID-A通过TDSC合约修改SHATE;2、用户DG-ID-B使用私钥SK


技术研发人员:蒙天浩 巫湘林 姜浩男 吴泽正 王逸丰 王对强 张惠鹃 张敬伟
受保护的技术使用者:桂林电子科技大学
技术研发日:2022.06.09
技术公布日:2022/11/1
转载请注明原文地址: https://tieba.8miu.com/read-638.html

最新回复(0)