一种可满足多种场景的联盟链数据权限管理系统和方法转让专利

申请号 : CN202211254193.4

文献号 : CN115567312B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 吕火生孔令超林国友陈啟铭毛凌云邓维滔黄世志

申请人 : 佛山众陶联供应链服务有限公司西藏众陶联供应链服务有限公司林周佳住家网络科技有限公司林周利利佳供应链服务有限公司共青城市众陶联供应链服务有限公司

摘要 :

本发明涉及数据管理领域,公开一种可满足多种场景的联盟链数据权限管理系统和方法,系统包括数据加密上传模块,用于支持联盟链节点根据数据机密程度选择不同的数据加密等级进行数据,将加密后的数据上传至联盟链;数据授权查询模块,用于根据查询数据的节点不同,支持联盟链中不同节点之间、没有维护一个联盟链节点的机构和联盟链节点之间以及监管机构三种场景,进行不同的数据授权查询;区块链数据存储模块,用于支持智能合约读写数据,利用区块链技术同步到联盟链的其他所有节点。本发明完善联盟链中的去中心化数据权限管理,避免联盟链节点机密或隐私数据泄露的问题,激励联盟链上的参与者们进行数据共享,进而提升联盟链数据传输和业务效率。

权利要求 :

1.一种可满足多种场景的联盟链数据权限管理系统,其特征在于,包括:数据加密上传模块,用于支持联盟链节点根据数据机密程度选择不同的数据加密等级进行数据加密,并将加密后的数据上传至联盟链;

数据授权查询模块,用于根据查询数据的节点不同,支持联盟链中不同节点之间、没有维护一个联盟链节点的机构和联盟链节点之间以及监管单位三种场景,进行不同的数据授权查询,包括:第一场景授权:对于联盟链上的主要节点之间的数据授权,仅需将对应的密钥传输给对方,对方就可以直接通过数据接口客户端进行数据查询;

第二场景授权:对于没有维护一个联盟链节点的机构,通过与联盟成员协商后,联盟成员将交易数据的密钥提供给没有维护一个联盟链节点的机构,没有维护一个联盟链节点的机构可通过平台代理服务端查询联盟链上的数据;

第三场景授权:在事先与监管单位交涉之后,监管单位生成一对公私钥对,所有数据上链加密之后都会将其对应的密钥以及对应的数据索引打包后用监管单位的公钥加密后存储在监管信息库中,监管单位可利用其私钥解密获得所有加密数据和对应的密钥;

区块链数据存储模块,用于支持智能合约读写数据,并利用区块链技术同步到联盟链的其他所有节点;

根据查询数据的节点不同,根据联盟链中不同节点之间、没有维护一个联盟链节点的机构和联盟链节点之间进行不同数据授权查询包括:步骤D1:第一用户将欲授权共享数据对应的加密密钥发送给第二用户,其中,第一用户为一个联盟链节点,第二用户为除第一用户外的一个联盟链节点或没有维护一个联盟链节点的一机构;

步骤D2:第二用户访问平台代理服务端,上传需要查询的交易索引信息以及联盟链节点授权的加密密钥,平台代理服务端将接收到的信息打包传输给数据接口服务端;

步骤D3:数据接口服务端接收平台代理服务端上传的信息,调用区块链数据索引库,获取欲查询数据对应的区块信息;

步骤D4:数据接口服务端调用取证智能合约,根据区块信息从区块链数据存储模块中读取加密数据,并利用平台代理服务端上传的加密密钥进行解密;

步骤D5:若解密成功,则将完成解密的数据传输给平台代理服务端,返回给第二用户,若解密失败,则返回解密失败的信息;

根据查询数据的节点不同,根据监管单位进行不同数据授权查询包括:步骤E1:监管单位访问监管代理服务端,上传需要查询的数据索引信息以及监管单位的密钥;

步骤E2:监管代理服务端从监管信息库中读取欲查询数据对应的加密密钥,并采用监管单位的密钥进行解密,解密完成之后,将数据索引信息以及对应密钥传输给数据接口服务端;

步骤E3:数据接口服务端接收监管代理服务端上传的信息,调用区块链数据索引库,获取欲查询数据对应的区块信息;

步骤E4:数据接口服务端调用取证智能合约,根据区块信息从区块链数据存储模块中读取加密数据,并利用监管代理服务端上传的加密密钥进行解密;

步骤E5:若解密成功,则将完成解密的数据传输给监管代理服务端,返回给监管单位,若解密失败,则返回解密失败的信息。

2.根据权利要求1所述一种可满足多种场景的联盟链数据权限管理系统,其特征在于:所述数据加密上传模块包括数据接口客户端;

所述数据接口客户端,用于接收联盟链节点加密上传链上数据的请求以及对应需上链的数据,并将请求以及数据传输给所述数据接口服务端;

接收所述数据接口服务端返回的数据,并将数据传输给对应的发送请求的联盟链节点,根据所发送请求的不同,返回的数据类型也不相同。

3.根据权利要求2所述一种可满足多种场景的联盟链数据权限管理系统,其特征在于:所述数据加密上传模块还包括数据接口服务端和区块链数据索引库;

所述数据接口服务端,用于接收所述数据接口客户端上传的联盟链节点请求以及对应数据;

调用区块链智能合约层中的验证智能合约进行数据验证,验证包括验证交易双方上传的贸易单号、贸易时间、金额数据是否一致;

接收验证智能合约的验证结果,若验证成功,则根据请求的数据加密等级调用对应的模块进行数据加密,并将加密数据上传联盟链;

接收所述区块链智能合约层中的加密智能合约返回的对应数据的加密密钥,以及存证智能合约返回的区块链数据索引信息,将数据索引信息上传至所述区块链数据索引库中,并根据请求的数据加密等级采取不同的方式将数据打包返回给数据接口客户端;

所述区块链数据索引库,用于存储加密数据与对应的联盟链的区块链信息之间的对应关系,其中,区块链信息包括区块编号。

4.根据权利要求3所述一种可满足多种场景的联盟链数据权限管理系统,其特征在于:所述数据加密上传模块还包括区块链智能合约层和区块链数据存储层;

所述区块链智能合约层包括验证智能合约、加密智能合约和存证智能合约;

所述验证智能合约,用于被所述数据接口服务端调用,验证同一交易的交易双方上传的数据是否一致,并将数据验证的结果返回给所述数据接口服务端以决定是否将数据上传上联盟链;

所述加密智能合约,用于根据请求的数据加密等级由数据接口服务端调用,自动生成对称加密算法的密钥,并利用该密钥对数据进行加密,数据加密完成后,将加密数据传输给所述存证智能合约,并将密钥传输给所述数据接口服务端;

所述存证智能合约,用于根据请求的数据加密等级,接收所述数据接口服务端或所述加密智能合约传输的数据,将接收到的数据上传至所述区块链数据存储层中进行数据存储,并将对应区块链数据索引信息传输至所述数据接口服务端;

所述区块链数据存储层,用于存储所述存证智能合约上传的数据。

5.根据权利要求4所述一种可满足多种场景的联盟链数据权限管理系统,其特征在于:所述数据加密等级包括:

第一等级加密、第二等级加密和第三等级加密;

所述第一等级加密包括:

用户直接进行数据上传,数据上联盟链前无需加密处理,联盟链上所有节点都可以直接访问该数据;

所述第二等级加密包括:

用户直接进行数据上传,数据经过对称加密之后再上传上联盟链,仅持有加密密钥的节点才能够访问该数据;

所述第三等级加密包括:

用户利用非对称加密的方式进行数据上传,数据经过对称加密之后再上传上联盟链,同时利用非对称加密的方式将加密密钥返回给用户,仅持有加密密钥的节点才能够访问该数据。

6.根据权利要求5所述一种可满足多种场景的联盟链数据权限管理系统,其特征在于:针对第一场景或第二场景授权,所述数据授权查询模块包括:

通过平台代理服务端或所述数据接口客户端接收用户查询数据的请求,读取用户上传的索引信息以及密钥;接收所述数据接口服务端传输的数据,并返回给用户;

通过所述数据接口服务端接收平台代理服务端或数据接口客户端上传的请求及信息,从区块链索引数据库中读取区块索引信息,并调用取证智能合约从所述区块链数据存储层读取数据,利用用户上传的加密密钥对加密数据进行解密,将解密完成的数据传输给平台代理服务端或数据接口客户端;

针对第三场景授权,所述数据授权查询模块包括:

通过监管代理服务端接收监管单位查询区块链上数据的请求,读取监管单位上传的私钥,从监管信息库中读取经过加密的密钥,并用监管单位的私钥解密,将解密之后的加密密钥以及欲查询数据索引信息传输给数据接口服务端;

通过数据接口服务端接收监管代理服务端上传的请求及信息,从区块链索引数据库中读取区块索引信息,并调用取证智能合约从所述区块链数据存储层读取数据,利用用户上传的加密密钥对加密数据进行解密,将解密完成的数据传输给监管代理服务端;

通过监管信息库存储利用监管单位公钥加密的区块链上所有加密数据对应的加密密钥。

7.一种可满足多种场景的联盟链数据权限管理方法,其特征在于:应用于如权利要求

1‑6任一项所述可满足多种场景的联盟链数据权限管理系统,所述权限管理方法包括:联盟链节点根据数据机密程度选择不同的数据加密等级进行数据加密并上传上联盟链;

根据查询数据的节点不同,根据不同场景进行不同数据授权查询,其中,场景包括联盟链中不同节点之间、没有维护一个联盟链节点的机构和联盟链节点之间和监管单位三种场景;

根据查询数据的节点不同,根据联盟链中不同节点之间、没有维护一个联盟链节点的机构和联盟链节点之间进行不同数据授权查询包括:步骤D1:第一用户将欲授权共享数据对应的加密密钥发送给第二用户,其中,第一用户为一个联盟链节点,第二用户为除第一用户外的一个联盟链节点或没有维护一个联盟链节点的一机构;

步骤D2:第二用户访问平台代理服务端,上传需要查询的交易索引信息以及联盟链节点授权的加密密钥,平台代理服务端将接收到的信息打包传输给数据接口服务端;

步骤D3:数据接口服务端接收平台代理服务端上传的信息,调用区块链数据索引库,获取欲查询数据对应的区块信息;

步骤D4:数据接口服务端调用取证智能合约,根据区块信息从区块链数据存储模块中读取加密数据,并利用平台代理服务端上传的加密密钥进行解密;

步骤D5:若解密成功,则将完成解密的数据传输给平台代理服务端,返回给第二用户,若解密失败,则返回解密失败的信息;

根据查询数据的节点不同,根据监管单位进行不同数据授权查询包括:步骤E1:监管单位访问监管代理服务端,上传需要查询的数据索引信息以及监管单位的密钥;

步骤E2:监管代理服务端从监管信息库中读取欲查询数据对应的加密密钥,并采用监管单位的密钥进行解密,解密完成之后,将数据索引信息以及对应密钥传输给数据接口服务端;

步骤E3:数据接口服务端接收监管代理服务端上传的信息,调用区块链数据索引库,获取欲查询数据对应的区块信息;

步骤E4:数据接口服务端调用取证智能合约,根据区块信息从区块链数据存储模块中读取加密数据,并利用监管代理服务端上传的加密密钥进行解密;

步骤E5:若解密成功,则将完成解密的数据传输给监管代理服务端,返回给监管单位,若解密失败,则返回解密失败的信息。

8.根据权利要求7所述一种可满足多种场景的联盟链数据权限管理方法,其特征在于:联盟链节点根据数据机密程度选择不同的数据加密等级进行数据加密并上传上联盟链,包括根据第一等级对数据进行加密并上传上联盟链的过程:步骤A1:联盟链节点通过数据接口客户端提出加密第一等级的数据上传请求,并上传欲上链的数据;

步骤A2:数据接口客户端接收到联盟链节点的请求以及对应的数据之后,将对应信息打包传输给数据接口服务端;

步骤A3:数据接口服务端调用区块链智能合约层中的验证智能合约对数据进行验证,验证内容包括判断同一交易的交易双方上传的数据信息是否一致;

步骤A4:数据接口服务端接收验证智能合约返回的数据验证结果,若验证通过,则调用区块链智能合约层中的存证智能合约,将数据上传存储到区块链数据存储层中;若验证未通过,则将验证失败的结果返回给数据接口客户端;

步骤A5:数据成功上传到区块链数据存储之后,存证智能合约将对应的区块链数据索引信息传输给数据接口服务端;

步骤A6:数据接口服务端将区块链数据索引信息上传到区块链数据索引库,同时将索引信息传输给数据接口客户端,返回给联盟链节点;

包括根据第二等级对数据进行加密并上传上联盟链的过程:

步骤B1:联盟链节点通过数据接口客户端提出加密第二等级的数据上传请求,并上传欲上链的数据;

步骤B2:数据接口客户端接收到联盟链节点的请求以及对应的数据之后,将对应信息打包传输给数据接口服务端;

步骤B3:数据接口服务端调用区块链智能合约层中的验证智能合约对数据进行验证,验证内容包括判断同一交易的交易双方上传的数据信息是否一致;

步骤B4:数据接口服务端接收验证智能合约返回的数据验证结果,若验证通过,则调用区块链智能合约层中的加密智能合约进行数据加密;若验证未通过,则将验证失败的结果返回给数据接口客户端;

步骤B5:加密智能合约根据上传的信息自动生成一个对应的对称加密密钥,并利用该密钥对数据进行加密,加密之后调用区块链智能合约中的存证智能合约将加密数据上传到区块链数据存储层中进行存储,同时将加密密钥传输给数据接口服务端;

步骤B6:数据成功上传到区块链数据存储之后,存证智能合约将对应的区块链数据索引信息传输给数据接口服务端;

步骤B7:数据接口服务端将区块链数据索引信息上传到区块链数据索引库,同时将索引信息以及加密密钥打包传输给数据接口客户端,返回给联盟链节点;

包括根据第三等级对数据进行加密并上传上联盟链的过程:

步骤C1:联盟链节点通过数据接口客户端提出加密第三等级的数据上传请求,并上传利用节点私钥加密的数据;

步骤C2:数据接口客户端接收到联盟链节点的请求以及对应的数据之后,将对应信息打包传输给数据接口服务端;

步骤C3:数据接口服务端首先利用对应节点的公钥对数据进行解密,然后调用区块链智能合约层中的验证智能合约对解密后的数据进行验证,验证内容包括判断同一交易的交易双方上传的数据信息是否一致;

步骤C4:数据接口服务端接收验证智能合约返回的数据验证结果,若验证通过,则调用区块链智能合约层中的加密智能合约进行数据加密;若验证未通过,则将验证失败的结果返回给数据接口客户端;

步骤C5:加密智能合约根据上传的信息自动生成一个对应的对称加密密钥,并利用该密钥对数据进行加密,加密之后调用区块链智能合约中的存证智能合约将加密数据上传到区块链数据存储层中进行存储,同时利用联盟链用户的公钥对加密密钥进行加密之后,再传输给数据接口服务端;

步骤C6:数据成功上传到区块链数据存储之后,存证智能合约将对应的区块链数据索引信息传输给数据接口服务端;

步骤C7:数据接口服务端将区块链数据索引信息上传到区块链数据索引库,同时将索引信息以及利用节点公钥加密的加密密钥打包,传输给数据接口客户端,返回给联盟链节点。

说明书 :

一种可满足多种场景的联盟链数据权限管理系统和方法

技术领域

[0001] 本发明涉及数据管理技术领域,尤其涉及一种可满足多种场景的联盟链数据权限管理系统和方法。

背景技术

[0002] 随着智慧城市的不断深入发展,各种电子设备所产生的数据数量也正在以惊人的速度增长。在这种背景下,高效准确的数据存储,数据有效性、真实性的确保以及用户隐私保护等问题也变得越发重要。现有的大部分数据存储方式都依赖于中心化的数据存储平台,数据的有效性、真实性以及隐私数据的保护高度依赖于用户对平台的信任。区块链,是一种去中心化分布式的数字账本技术,具有去中心化、匿名性、不可篡改性等重要特征,同时支持智能合约技术。区块链技术能够保证上链数据的真实性以及不可篡改性,同时智能合约的应用也有助于链上数据权限的管理。
[0003] 现有的数据权限管理系统大部分依托于中心化的数据存储管理平台,这种方式存在一定的局限性:(1)中心化服务器中存储的数据存在被篡改或者删除的风险,数据的真实性和有效性难以得到保证;(2)中心化数据权限管理平台本身拥有访问所有数据的权限,存在平台利用隐私数据牟利的问题;(3)一旦中心化服务器出现故障,可能会导致数据遭到损坏活丢失且无法修复的情况。

发明内容

[0004] 本发明的目的在于针对背景技术中的缺陷,提出一种可满足多种场景的联盟链数据权限管理系统和方法,完善联盟链中的去中心化数据权限管理,避免联盟链节点机密或隐私数据泄露的问题,激励联盟链上的参与者们进行数据共享,进而提升联盟链数据传输和业务效率。
[0005] 为达此目的,本发明采用以下技术方案:
[0006] 一种可满足多种场景的联盟链数据权限管理系统,包括:
[0007] 数据加密上传模块,用于支持联盟链节点根据数据机密程度选择不同的数据加密等级进行数据,并将加密后的数据上传至联盟链;
[0008] 数据授权查询模块,用于根据查询数据的节点不同,支持联盟链中不同节点之间、没有维护一个联盟链节点的机构和联盟链节点之间以及监管机构三种场景,进行不同的数据授权查询;
[0009] 区块链数据存储模块,用于支持智能合约读写数据,并利用区块链技术同步到联盟链的其他所有节点。
[0010] 优选的,所述数据加密上传模块包括数据接口客户端;
[0011] 所述数据接口客户端,用于接收联盟链节点加密上传链上数据的请求以及对应需上链的数据,并将请求以及数据传输给所述数据接口服务端;
[0012] 接收所述数据接口服务端返回的数据,并将数据传输给对应的发送请求的联盟链节点,根据所发送请求的不同,返回的数据类型也不相同。
[0013] 优选的,所述数据加密上传模块还包括数据接口服务端和区块链数据索引库;
[0014] 所述数据接口服务端,用于接收所述数据接口客户端上传的联盟链节点请求以及对应数据;
[0015] 调用所述区块链智能合约层中的验证智能合约进行数据验证,验证包括验证交易双方上传的贸易单号、贸易时间、金额等数据是否一致;
[0016] 接收验证智能合约的验证结果,若验证成功,则根据请求的数据加密等级调用对应的模块进行数据加密,并将加密数据上传联盟链;
[0017] 接收所述区块链智能合约层中的加密智能合约返回的对应数据的加密密钥,以及存证智能合约返回的区块链数据索引信息,将数据索引信息上传至所述区块链数据索引库中,并根据请求的数据加密等级采取不同的方式将数据打包返回给数据接口客户端;
[0018] 所述区块链数据索引库,用于存储加密数据与对应的联盟链的区块链信息之间的对应关系,其中,区块链信息包括区块编号。
[0019] 优选的,所述数据加密上传模块还包括区块链智能合约层和区块链数据存储层;
[0020] 所述区块链智能合约层包括验证智能合约、加密智能合约和存证智能合约;
[0021] 所述验证智能合约,用于被所述数据接口服务端调用,验证同一交易的交易双方上传的数据是否一致,并将数据验证的结果返回给所述数据接口服务端以决定是否将数据上传上联盟链;
[0022] 所述加密智能合约,用于根据请求的数据加密等级由数据接口服务端调用,自动生成对称加密算法的密钥,并利用该密钥对数据进行加密,数据加密完成后,将加密数据传输给所述存证智能合约,并将密钥传输给所述数据接口服务端;
[0023] 所述存证智能合约,用于根据请求的数据加密等级,接收所述数据接口服务端或所述加密智能合约传输的数据,将接收到的数据上传至所述区块链数据存储层中进行数据存储,并将对应区块链数据索引信息传输至所述数据接口服务端;
[0024] 所述区块链数据存储层,用于存储所述存证智能合约上传的数据。
[0025] 优选的,所述数据加密等级包括:
[0026] 第一等级加密、第二等级加密和第三等级加密;
[0027] 所述第一等级加密包括:
[0028] 用户直接进行数据上传,数据上联盟链前无需加密处理,联盟链上所有节点都可以直接访问该数据;
[0029] 所述第二等级加密包括:
[0030] 用户直接进行数据上传,数据经过对称加密之后再上传上联盟链,仅持有加密密钥的节点才能够访问该数据;
[0031] 所述第三等级加密包括:
[0032] 用户利用非对称加密的方式进行数据上传,数据经过对称加密之后再上传上联盟链,同时利用非对称加密的方式将加密密钥返回给用户,仅持有加密密钥的节点才能够访问改数据。
[0033] 优选的,所述数据授权查询模块用于根据查询数据的节点不同,支持联盟链中不同节点之间、没有维护一个联盟链节点的机构和联盟链节点之间以及监管机构三种场景,进行不同的数据授权查询,包括:
[0034] 第一场景授权:对于联盟链上的主要节点之间的数据授权,仅需将对应的密钥传输给对方,对方就可以直接通过所述数据接口客户端进行数据查询;
[0035] 第二场景授权:对于没有维护一个联盟链节点的机构,通过与联盟成员协商后,联盟成员将交易数据的密钥提供给该机构,该机构可通过平台代理服务端查询联盟链上的数据;
[0036] 第三场景授权:在事先与监管机构交涉之后,监管单位生成一对公私钥对,所有数据上链加密之后都会将其对应的密钥以及对应的数据索引打包后用监管单位的公钥加密后存储在监管信息库中,监管单位可利用其私钥解密获得所有加密数据和对应的密钥。
[0037] 优选的,针对第一场景或第二场景授权,所述数据授权查询模块包括:
[0038] 通过平台代理服务端或所述数据接口客户端接收用户查询数据的请求,读取用户上传的索引信息以及密钥;接收所述数据接口服务端传输的数据,并返回给用户;
[0039] 通过所述数据接口服务端接收平台代理服务端或数据接口客户端上传的请求及信息,从区块链索引数据库中读取区块索引信息,并调用取证智能合约从所述区块链数据存储层读取数据,利用用户上传的加密密钥对加密数据进行解密,将解密完成的数据传输给平台代理服务端或数据接口客户端;
[0040] 针对第三场景授权,所述数据授权查询模块包括:
[0041] 通过监管代理服务端接收监管单位查询区块链上数据的请求,读取监管单位上传的私钥,从监管信息库中读取经过加密的密钥,并用监管单位的私钥解密,将解密之后的加密密钥以及欲查询数据索引信息传输给数据接口服务端;
[0042] 通过数据接口服务端接收监管代理服务端上传的请求及信息,从区块链索引数据库中读取区块索引信息,并调用取证智能合约从所述区块链数据存储层读取数据,利用用户上传的加密密钥对加密数据进行解密,将解密完成的数据传输给监管代理服务端;
[0043] 通过监管信息库存储利用监管机构公钥加密的区块链上所有加密数据对应的加密密钥。
[0044] 一种可满足多种场景的联盟链数据权限管理方法,应用于任一项所述可满足多种场景的联盟链数据权限管理系统,所述权限管理方法包括:
[0045] 联盟链节点根据数据加密程度选择不同的数据加密等级进行数据加密并上传上联盟链;
[0046] 根据查询数据的节点不同,根据不同场景进行不同数据授权查询,其中,场景包括联盟链中不同节点之间、没有维护一个联盟链节点的机构和联盟链节点之间和监管机构三种场景。
[0047] 优选的,联盟链节点根据数据加密程度选择不同的数据加密等级进行数据加密并上传上联盟链,包括根据第一等级对数据进行加密并上传上联盟链的过程:
[0048] 步骤A1:联盟链节点通过数据接口客户提出加密第一等级的数据上传请求,并上传欲上链的数据;
[0049] 步骤A2:数据接口客户接收到联盟链节点的请求以及对应的数据之后,将对应信息打包传输给数据接口服务端;
[0050] 步骤A3:数据接口服务调用区块链智能合约层中的验证智能合约对数据进行验证,验证内容包括判断同一交易的交易双方上传的数据信息是否一致;
[0051] 步骤A4:数据接口服务端接收验证智能合约返回的数据验证结果,若验证通过,则调用区块链智能合约层中的存证智能合约,将数据上传存储到区块链数据存储层中;若验证未通过,则将验证失败的结果返回给数据接口客户端;
[0052] 步骤A5:数据成功上传到区块链数据存储之后,存证智能合约将对应的区块链数据索引信息传输给数据接口服务端;
[0053] 步骤A6:数据接口服务:将区块链数据索引信息上传到区块链数据索引库,同时将索引信息传输给数据接口客户端,返回给联盟链节点;
[0054] 包括根据第二等级对数据进行加密并上传上联盟链的过程:
[0055] 步骤B1:联盟链节点通过数据接口客户:提出加密第二等级的数据上传请求,并上传欲上链的数据;
[0056] 步骤B2:数据接口客户接收到联盟链节点的请求以及对应的数据之后,将对应信息打包传输给数据接口服务端;
[0057] 步骤B3:数据接口服务调用区块链智能合约层中的验证智能合约对数据进行验证,验证内容包括判断同一交易的交易双方上传的数据信息是否一致;
[0058] 步骤B4:数据接口服务:接收验证智能合约返回的数据验证结果,若验证通过,则调用区块链智能合约层中的加密智能合约进行数据加密;若验证未通过,则将验证失败的结果返回给数据接口客户端;
[0059] 步骤B5:加密智能合约根据上传的信息自动生成一个对应的对称加密密钥,并利用该密钥对数据进行加密,加密之后调用区块链智能合约:中的存证智能合约将加密数据上传到区块链数据存储层中进行存储,同时将加密密钥传输给数据接口服务端;
[0060] 步骤B6:数据成功上传到区块链数据存储之后,存证智能合约将对应的区块链数据索引信息传输给数据接口服务端;
[0061] 步骤B7:数据接口服务:将区块链数据索引信息上传到区块链数据索引库,同时将索引信息以及加密密钥打包传输给数据接口客户端,返回给联盟链节点;
[0062] 包括根据第三等级对数据进行加密并上传上联盟链的过程:
[0063] 步骤C1:联盟链节点通过数据接口客户端提出加密第三等级的数据上传请求,并上传利用节点私钥加密的数据;
[0064] 步骤C2:数据接口客户接收到联盟链节点的请求以及对应的数据之后,将对应信息打包传输给数据接口服务端;
[0065] 步骤C3:数据接口服务:首先利用对应节点的公钥对数据进行解密,然后调用区块链智能合约层中的验证智能合约对解密后的数据进行验证,验证内容包括判断同一交易的交易双方上传的数据信息是否一致;
[0066] 步骤C4:数据接口服务:接收验证智能合约返回的数据验证结果,若验证通过,则调用区块链智能合约层中的加密智能合约进行数据加密;若验证未通过,则将验证失败的结果返回给数据接口客户端;
[0067] 步骤C5:加密智能合约根据上传的信息自动生成一个对应的对称加密密钥,并利用该密钥对数据进行加密,加密之后调用区块链智能合约:中的存证智能合约将加密数据上传到区块链数据存储层中进行存储,同时利用联盟链用户的公钥对加密密钥进行加密之后,再传输给数据接口服务端;
[0068] 步骤C6:数据成功上传到区块链数据存储之后,存证智能合约将对应的区块链数据索引信息传输给数据接口服务端;
[0069] 步骤C7:数据接口服务:将区块链数据索引信息上传到区块链数据索引库,同时将索引信息以及利用节点公钥加密的加密密钥打包,传输给数据接口客户端,返回给联盟链节点。
[0070] 优选的,根据查询数据的节点不同,根据联盟链中不同节点之间、没有维护一个联盟链节点的机构和联盟链节点之间进行不同数据授权查询包括:
[0071] 步骤D1:第一用户将欲授权共享数据对应的加密密钥发送给第二用户,其中,第一用户为一个联盟链节点,第二用户为除第一用户外的一个联盟链节点或没有维护一个联盟链节点的一机构;
[0072] 步骤D2:第二用户访问平台代理服务端,上传需要查询的交易索引信息以及联盟链节点授权的加密密钥,平台代理服务端将接收到的信息打包传输给数据接口服务端;
[0073] 步骤D3:数据接口服务端接收平台代理服务端上传的信息,调用区块链数据索引库,获取欲查询数据对应的区块信息;
[0074] 步骤D4:数据接口服务端调用取证智能合约,根据区块信息从区块链数据存储模块中读取加密数据,并利用平台代理服务端上传的加密密钥进行解密;
[0075] 步骤D5:若解密成功,则将完成解密的数据传输给平台代理服务端,返回给第二用户,若解密失败,则返回解密失败的信息;
[0076] 根据查询数据的节点不同,根据监管机构进行不同数据授权查询包括:
[0077] 步骤E1:监管单位访问监管代理服务端,上传需要查询的数据索引信息以及监管单位的密钥;
[0078] 步骤E2:监管代理服务端从监管信息库中读取欲查询数据对应的加密密钥,并采用监管单位的密钥进行解密,解密完成之后,将数据索引信息以及对应密钥传输给数据接口服务端;
[0079] 步骤E3:数据接口服务端接收监管代理服务端上传的信息,调用区块链数据索引库,获取欲查询数据对应的区块信息;
[0080] 步骤E4:数据接口服务端调用取证智能合约,根据区块信息从区块链数据存储模块中读取加密数据,并利用监管代理服务端上传的加密密钥进行解密;
[0081] 步骤E5:若解密成功,则将完成解密的数据传输给监管代理服务端,返回给监管单位,若解密失败,则返回解密失败的信息。
[0082] 本发明的技术方案所实现的技术效果:
[0083] 1、本发明中的数据加密上传模块,可以满足联盟链节点在不同贸易场景下不同的数据加密需求。针对无需加密的数据,可以尽可能地减少数据上链共享所需的时间,提高联盟链数据交互的效率。而针对机密数据,则可以能够保证链上数据只有拥有对应加密密钥的用户可以访问,而且还尽可能地降低了机密数据或密钥在传输过程中遭到泄露的风险,减轻了联盟链节点数据共享的顾虑,提高了联盟链数据共享的程度,有助于联盟链节点之间更进一步的合作共赢。
[0084] 2、本发明中的数据授权查询模块,可以满足不同用户不同场景的不同需求。例如:联盟链之间只需简单的共享加密密钥就可以完成对应数据的共享,而且由于各联盟链节点都分别维护了一条联盟链,因此链上数据的真实性和安全性也具有保障。对于银行和其他金融机构,则需要首先得到联盟链节点的授权之后才能够通过平台代理服务获取数据。而针对监管机构应该有权利获取所有数据的场景,监管代理服务和监管信息库的创建则能够帮助监管单位在无需联盟链节点授权的情况下读取所有数据。

附图说明

[0085] 图1是本发明的可满足多种场景的联盟链数据权限管理系统的架构图;
[0086] 图2是本发明其中一个实施例的数据加密上传模块的架构图;
[0087] 图3是本发明其中一个实施例的数据加密上传模块基于第一加密等级上传数据的架构流程图;
[0088] 图4是本发明其中一个实施例的数据加密上传模块基于第二加密等级上传数据的架构流程图;
[0089] 图5是本发明其中一个实施例的数据授权查询模块基于第一和第二场景授权的架构流程图;
[0090] 图6是本发明其中一个实施例的数据授权查询模块基于第三场景授权的架构流程图。

具体实施方式

[0091] 下面结合附图并通过具体实施方式来进一步说明本发明的技术方案。
[0092] 本发明提出可满足多种场景的联盟链数据权限管理系统,如图1所示,包括:
[0093] 数据加密上传模块,如图1和2所示,用于支持联盟链节点根据数据机密程度选择不同的数据加密等级进行数据,并将加密后的数据上传至联盟链;
[0094] 数据授权查询模块,用于根据查询数据的节点不同,支持联盟链中不同节点之间、没有维护一个联盟链节点的机构和联盟链节点之间以及监管机构三种场景,进行不同的数据授权查询;
[0095] 区块链数据存储模块,用于支持智能合约读写数据,并利用区块链技术同步到联盟链的其他所有节点。
[0096] 优选的,所述数据加密上传模块包括数据接口客户端A;
[0097] 所述数据接口客户端A,用于接收联盟链节点加密上传链上数据的请求以及对应需上链的数据,并将请求以及数据传输给所述数据接口服务端B;
[0098] 接收所述数据接口服务端B返回的数据,并将数据传输给对应的发送请求的联盟链节点,根据所发送请求的不同,返回的数据类型也不相同。
[0099] 优选的,所述数据加密上传模块还包括数据接口服务端B和区块链数据索引库C;
[0100] 所述数据接口服务端B,用于接收所述数据接口客户端A上传的联盟链节点请求以及对应数据;
[0101] 调用所述区块链智能合约层D中的验证智能合约进行数据验证,验证包括验证交易双方上传的贸易单号、贸易时间、金额等数据是否一致;
[0102] 接收验证智能合约的验证结果,若验证成功,则根据请求的数据加密等级调用对应的模块进行数据加密,并将加密数据上传联盟链;
[0103] 接收所述区块链智能合约层D中的加密智能合约返回的对应数据的加密密钥,以及存证智能合约返回的区块链数据索引信息,将数据索引信息上传至所述区块链数据索引库C中,并根据请求的数据加密等级采取不同的方式将数据打包返回给数据接口客户端A;
[0104] 所述区块链数据索引库C,用于存储加密数据与对应的联盟链的区块链信息之间的对应关系,其中,区块链信息包括区块编号。
[0105] 优选的,所述数据加密上传模块还包括区块链智能合约层D和区块链数据存储层E;
[0106] 所述区块链智能合约层D包括验证智能合约、加密智能合约和存证智能合约;
[0107] 所述验证智能合约,用于被所述数据接口服务端B调用,验证同一交易的交易双方上传的数据是否一致,并将数据验证的结果返回给所述数据接口服务端B以决定是否将数据上传上联盟链;
[0108] 所述加密智能合约,用于根据请求的数据加密等级由数据接口服务端B调用,自动生成对称加密算法的密钥,并利用该密钥对数据进行加密,数据加密完成后,将加密数据传输给所述存证智能合约,并将密钥传输给所述数据接口服务端B;
[0109] 所述存证智能合约,用于根据请求的数据加密等级,接收所述数据接口服务端B或所述加密智能合约传输的数据,将接收到的数据上传至所述区块链数据存储层E中进行数据存储,并将对应区块链数据索引信息传输至所述数据接口服务端B;
[0110] 所述区块链数据存储层E,用于存储所述存证智能合约上传的数据。
[0111] 优选的,所述数据加密等级包括:
[0112] 第一等级加密、第二等级加密和第三等级加密;
[0113] 所述第一等级加密包括:
[0114] 用户直接进行数据上传,数据上联盟链前无需加密处理,联盟链上所有节点都可以直接访问该数据;
[0115] 所述第二等级加密包括:
[0116] 用户直接进行数据上传,数据经过对称加密之后再上传上联盟链,仅持有加密密钥的节点才能够访问该数据;
[0117] 所述第三等级加密包括:
[0118] 用户利用非对称加密的方式进行数据上传,数据经过对称加密之后再上传上联盟链,同时利用非对称加密的方式将加密密钥返回给用户,仅持有加密密钥的节点才能够访问改数据。
[0119] 优选的,所述数据授权查询模块用于根据查询数据的节点不同,支持联盟链中不同节点之间、没有维护一个联盟链节点的机构和联盟链节点之间以及监管机构三种场景,进行不同的数据授权查询,包括:
[0120] 第一场景授权:对于联盟链上的主要节点之间的数据授权,仅需将对应的密钥传输给对方,对方就可以直接通过所述数据接口客户端A进行数据查询;
[0121] 第二场景授权:对于没有维护一个联盟链节点的机构,通过与联盟成员协商后,联盟成员将交易数据的密钥提供给该机构,该机构可通过平台代理服务端A查询联盟链上的数据;
[0122] 第三场景授权:在事先与监管机构交涉之后,监管单位生成一对公私钥对,所有数据上链加密之后都会将其对应的密钥以及对应的数据索引打包后用监管单位的公钥加密后存储在监管信息库D中,监管单位可利用其私钥解密获得所有加密数据和对应的密钥。
[0123] 优选的,针对第一场景或第二场景授权,所述数据授权查询模块包括:
[0124] 通过平台代理服务端A或所述数据接口客户端A接收用户查询数据的请求,读取用户上传的索引信息以及密钥;接收所述数据接口服务端B传输的数据,并返回给用户;
[0125] 通过所述数据接口服务端B接收平台代理服务端A或数据接口客户端A上传的请求及信息,从区块链索引数据库中读取区块索引信息,并调用取证智能合约C从所述区块链数据存储层E读取数据,利用用户上传的加密密钥对加密数据进行解密,将解密完成的数据传输给平台代理服务端A或数据接口客户端A;
[0126] 针对第三场景授权,所述数据授权查询模块包括:
[0127] 通过监管代理服务端A接收监管单位查询区块链上数据的请求,读取监管单位上传的私钥,从监管信息库D中读取经过加密的密钥,并用监管单位的私钥解密,将解密之后的加密密钥以及欲查询数据索引信息传输给数据接口服务端B;
[0128] 通过数据接口服务端B接收监管代理服务端A上传的请求及信息,从区块链索引数据库中读取区块索引信息,并调用取证智能合约C从所述区块链数据存储层E读取数据,利用用户上传的加密密钥对加密数据进行解密,将解密完成的数据传输给监管代理服务端A;
[0129] 通过监管信息库D存储利用监管机构公钥加密的区块链上所有加密数据对应的加密密钥。
[0130] 一种可满足多种场景的联盟链数据权限管理方法,应用于任一项所述可满足多种场景的联盟链数据权限管理系统,所述权限管理方法包括:
[0131] 联盟链节点根据数据加密程度选择不同的数据加密等级进行数据加密并上传上联盟链;
[0132] 根据查询数据的节点不同,根据不同场景进行不同数据授权查询,其中,场景包括联盟链中不同节点之间、没有维护一个联盟链节点的机构和联盟链节点之间和监管机构三种场景。
[0133] 优选的,联盟链节点根据数据加密程度选择不同的数据加密等级进行数据加密并上传上联盟链,包括根据第一等级对数据进行加密并上传上联盟链的过程,如图3所示:
[0134] 步骤A1:联盟链节点通过数据接口客户提出加密第一等级的数据上传请求,并上传欲上链的数据;
[0135] 步骤A2:数据接口客户接收到联盟链节点的请求以及对应的数据之后,将对应信息打包传输给数据接口服务端B;
[0136] 步骤A3:数据接口服务调用区块链智能合约层D中的验证智能合约对数据进行验证,验证内容包括判断同一交易的交易双方上传的数据信息是否一致;
[0137] 步骤A4:数据接口服务端B接收验证智能合约返回的数据验证结果,若验证通过,则调用区块链智能合约层D中的存证智能合约,将数据上传存储到区块链数据存储层E中;若验证未通过,则将验证失败的结果返回给数据接口客户端A;
[0138] 步骤A5:数据成功上传到区块链数据存储之后,存证智能合约将对应的区块链数据索引信息传输给数据接口服务端B;
[0139] 步骤A6:数据接口服务:将区块链数据索引信息上传到区块链数据索引库C,同时将索引信息传输给数据接口客户端A,返回给联盟链节点;
[0140] 包括根据第二等级对数据进行加密并上传上联盟链的过程,如图4所示:
[0141] 步骤B1:联盟链节点通过数据接口客户:提出加密第二等级的数据上传请求,并上传欲上链的数据;
[0142] 步骤B2:数据接口客户接收到联盟链节点的请求以及对应的数据之后,将对应信息打包传输给数据接口服务端B;
[0143] 步骤B3:数据接口服务调用区块链智能合约层D中的验证智能合约对数据进行验证,验证内容包括判断同一交易的交易双方上传的数据信息是否一致;
[0144] 步骤B4:数据接口服务:接收验证智能合约返回的数据验证结果,若验证通过,则调用区块链智能合约层D中的加密智能合约进行数据加密;若验证未通过,则将验证失败的结果返回给数据接口客户端A;
[0145] 步骤B5:加密智能合约根据上传的信息自动生成一个对应的对称加密密钥,并利用该密钥对数据进行加密,加密之后调用区块链智能合约:中的存证智能合约将加密数据上传到区块链数据存储层E中进行存储,同时将加密密钥传输给数据接口服务端B;
[0146] 步骤B6:数据成功上传到区块链数据存储之后,存证智能合约将对应的区块链数据索引信息传输给数据接口服务端B;
[0147] 步骤B7:数据接口服务:将区块链数据索引信息上传到区块链数据索引库C,同时将索引信息以及加密密钥打包传输给数据接口客户端A,返回给联盟链节点;
[0148] 包括根据第三等级对数据进行加密并上传上联盟链的过程,第三等级的流程图可参见图4的第二等级加密流程图,两者主要区别在于步骤C1中用户上传的经过其节点私钥加密的数据,以及步骤C7中返回的是经过用户节点公钥加密的加密密钥:
[0149] 步骤C1:联盟链节点通过数据接口客户端A提出加密第三等级的数据上传请求,并上传利用节点私钥加密的数据;
[0150] 步骤C2:数据接口客户接收到联盟链节点的请求以及对应的数据之后,将对应信息打包传输给数据接口服务端B;
[0151] 步骤C3:数据接口服务:首先利用对应节点的公钥对数据进行解密,然后调用区块链智能合约层D中的验证智能合约对解密后的数据进行验证,验证内容包括判断同一交易的交易双方上传的数据信息是否一致;
[0152] 步骤C4:数据接口服务:接收验证智能合约返回的数据验证结果,若验证通过,则调用区块链智能合约层D中的加密智能合约进行数据加密;若验证未通过,则将验证失败的结果返回给数据接口客户端A;
[0153] 步骤C5:加密智能合约根据上传的信息自动生成一个对应的对称加密密钥,并利用该密钥对数据进行加密,加密之后调用区块链智能合约:中的存证智能合约将加密数据上传到区块链数据存储层E中进行存储,同时利用联盟链用户的公钥对加密密钥进行加密之后,再传输给数据接口服务端B;
[0154] 步骤C6:数据成功上传到区块链数据存储之后,存证智能合约将对应的区块链数据索引信息传输给数据接口服务端B;
[0155] 步骤C7:数据接口服务:将区块链数据索引信息上传到区块链数据索引库C,同时将索引信息以及利用节点公钥加密的加密密钥打包,传输给数据接口客户端A,返回给联盟链节点。
[0156] 优选的,如图5所示,根据查询数据的节点不同,根据联盟链中不同节点之间、没有维护一个联盟链节点的机构和联盟链节点之间进行不同数据授权查询包括:
[0157] 步骤D1:第一用户将欲授权共享数据对应的加密密钥发送给第二用户,其中,第一用户为一个联盟链节点,第二用户为除第一用户外的一个联盟链节点或没有维护一个联盟链节点的一机构;
[0158] 步骤D2:第二用户访问平台代理服务端A,上传需要查询的交易索引信息以及联盟链节点授权的加密密钥,平台代理服务端A将接收到的信息打包传输给数据接口服务端B;
[0159] 步骤D3:数据接口服务端B接收平台代理服务端A上传的信息,调用区块链数据索引库C,获取欲查询数据对应的区块信息;
[0160] 步骤D4:数据接口服务端B调用取证智能合约C,根据区块信息从区块链数据存储模块中读取加密数据,并利用平台代理服务端A上传的加密密钥进行解密;
[0161] 步骤D5:若解密成功,则将完成解密的数据传输给平台代理服务端A,返回给第二用户,若解密失败,则返回解密失败的信息;
[0162] 如图6所示,根据查询数据的节点不同,根据监管机构进行不同数据授权查询包括:
[0163] 步骤E1:监管单位访问监管代理服务端A,上传需要查询的数据索引信息以及监管单位的密钥;
[0164] 步骤E2:监管代理服务端A从监管信息库D中读取欲查询数据对应的加密密钥,并采用监管单位的密钥进行解密,解密完成之后,将数据索引信息以及对应密钥传输给数据接口服务端B;
[0165] 步骤E3:数据接口服务端B接收监管代理服务端A上传的信息,调用区块链数据索引库C,获取欲查询数据对应的区块信息;
[0166] 步骤E4:数据接口服务端B调用取证智能合约C,根据区块信息从区块链数据存储模块中读取加密数据,并利用监管代理服务端A上传的加密密钥进行解密;
[0167] 步骤E5:若解密成功,则将完成解密的数据传输给监管代理服务端A,返回给监管单位,若解密失败,则返回解密失败的信息。
[0168] 以上结合具体实施例描述了本发明的技术原理。这些描述只是为了解释本发明的原理,而不能以任何方式解释为对本发明保护范围的限制。基于此处的解释,本领域的技术人员不需要付出创造性的劳动即可联想到本发明的其它具体实施方式,这些方式都将落入本发明的保护范围之内。