Hyperledger Fabric区块链隐私数据存储与访问系统及其方法技术方案

技术编号:24251834 阅读:64 留言:0更新日期:2020-05-22 23:43
本发明专利技术公开一种Hyperledger Fabric区块链隐私数据存储与访问系统及其方法,包括客户端模块、SDK模块、智能合约模块以及数据库模块,客户端模块通过SDK模块调用隐私数据存储链码函数,智能合约模块根据客户端模块证书中的角色信息判断有效链码集合是否包含隐私数据存储链码函数,如果包含,加密数据的隐私属性,与非隐私属性一同存入数据库;客户端模块通过SDK模块调用隐私数据查询链码函数,智能合约模块根据客户端模块证书中的角色信息判断有效链码集合是否包含隐私数据查询链码函数,如果包含,解密数据库模块的查询结果,将真实数据返回给客户端模块,否则直接密文数据返回给客户端模块。本发明专利技术能够有效提高Hyperledger Fabric数据存储中的个人隐私安全,具有保密、安全的优点。

Hyperledger fabric blockchain privacy data storage and access system and its method

【技术实现步骤摘要】
HyperledgerFabric区块链隐私数据存储与访问系统及其方法
本专利技术涉及区块链
,特别是一种HyperledgerFabric区块链隐私数据存储与访问系统及方法。
技术介绍
区块链作为一种分布式账本技术,账本数据对网络中所有节点开放。然而,在保证数据共享的同时,如何保障数据共享环境下的个人隐私安全成为区块链发展的核心问题。当用户的所有交易信息都暴露在大众面前时,一旦被恶意节点或用户恶意挖掘和利用,将会给用户隐私带来严重的威胁。HyperledgerFabric区块链作为最广泛的企业级区块链应用平台,接入区块链网络的全部节点和用户共享所有的交易数据。2018年HyperledgerFabricv1.2引入私有数据存储方法,采用私有数据库privateDB进行隐私数据的存储,针对同一通道中的节点之间进行隐私保护,限制节点的私有数据权限。该方法存在的不足之处包括以下三个方面:(1)隐私数据仍以明文存储,数据存储缺乏机密性;(2)仅在节点之间进行隐私保护,缺乏在客户端用户之间进行隐私保护;(3)由于增加了私有数据库,容易降低HyperledgerFabric区块链本身的性能,很难满足现实场景中的性能需求。
技术实现思路
本专利技术的目的在于提供一种可以确保分布式网络中个人隐私安全的HyperledgerFabric区块链隐私数据存储与访问系统及其方法。实现本专利技术目的的技术解决方案为:一种HyperledgerFabric区块链隐私数据存储与访问系统及其方法,包括客户端模块、SDK模块、智能合约模块以及数据库模块,所述客户端模块通过SDK模块调用隐私数据存储链码函数,智能合约模块根据客户端模块证书中的角色信息判断有效链码集合是否包含隐私数据存储链码函数,如果包含,加密数据的隐私属性,与非隐私属性一同存入数据库模块;客户端模块通过SDK模块调用隐私数据查询链码函数,智能合约模块根据客户端模块证书中的角色信息判断有效链码集合是否包含隐私数据查询链码函数,如果包含,解密数据库模块的查询结果,将真实数据返回给客户端模块,否则直接密文数据返回给客户端模块。本专利技术与现有方法相比,其显著优点为:(1)可以确保HyperledgerFabric区块链数据存储中的机密性与隐私性,提高个人隐私安全;(2)可以动态控制客户端用户对隐私数据的访问权限;(3)不容易降低HyperledgerFabric区块链本身的性能。下面结合附图对本专利技术的内容作进一步说明。附图说明图1为本专利技术HyperledgerFabric区块链隐私数据存储与访问系统的原理架构示意图。图2为本专利技术HyperledgerFabric区块链隐私数据存储与访问方法中存储隐私数据流程图。图3为本专利技术HyperledgerFabric区块链隐私数据存储与访问方法中访问隐私数据流程图。具体实施方式结合图1,本专利技术HyperledgerFabric区块链隐私数据存储与访问系统,包括客户端模块、SDK模块、智能合约模块以及数据库模块,所述客户端模块通过SDK模块调用隐私数据存储链码函数,智能合约模块根据客户端模块证书中的角色信息判断有效链码集合是否包含隐私数据存储链码函数,如果包含,加密数据的隐私属性,与非隐私属性一同存入数据库模块;客户端模块通过SDK模块调用隐私数据查询链码函数,智能合约模块根据客户端模块证书中的角色信息判断有效链码集合是否包含隐私数据查询链码函数,如果包含,解密数据库模块的查询结果,将真实数据返回给客户端模块,否则直接密文数据返回给客户端模块。所述客户端模块包括数据上传终端、数据访问终端以及管理员终端,其中数据上传终端用于提交隐私数据存储请求,并获取请求结果;数据访问终端用于提交隐私数据查询请求,并获取查询结果;管理员终端用于提交权限管理请求,为数据上传终端、数据访问终端创建和更新链码权限。所述SDK模块,用于向智能合约模块提交链码函数调用请求,为客户端模块服务,包括交易提交SDK和交易查询SDK,其中交易提交SDKinvokeTx()用于调用背书交易类链码函数;交易查询SDKqueryTx()用于调用非背书交易类链码函数。所述智能合约模块,用于接收SDK模块的请求,执行对应链码函数,包括权限管理链码函数、隐私数据链码函数以及基础链码函数,其中权限管理链码函数用于为数据上传终端和数据访问终端创建、更新链码权限矩阵,以及验证数据上传终端和数据访问终端的链码权限;隐私数据链码函数用于根据SDK模块提交的请求进行隐私数据的存储和查询;基础链码函数用于与数据库模块进行数据交互。本专利技术的智能合约模块中的权限管理链码函数,用于创建、验证、更新客户端模块数据上传终端和数据访问终端的链码函数调用权限,即初始化智能合约模块时,执行函数createPermissionMatrix()创建链码权限矩阵,根据角色信息为客户端模块数据上传终端和数据访问终端设置有效链码函数集合,存入数据库模块;智能合约模块收到链码函数调用请求后,调用函数verifyPermission(),从数据库模块获取链码权限矩阵,根据客户端模块身份证书中的角色信息获取有效链码函数集合,验证当前链码函数的调用权限;管理员终端可以根据实际情况调用背书交易类链码函数updatePermission()更新链码权限矩阵,动态管理数据上传终端和数据访问终端的链码函数调用权限。本专利技术的智能合约模块中的隐私数据链码函数,用于存储、查询隐私数据,即智能合约模块验证客户端模块的链码权限后,权限有效则执行背书交易类链码函数writePvt()将隐私数据存储到数据库模块,或执行非背书交易类链码函数readPvt()从数据库模块查询指定的隐私数据。本专利技术的智能合约模块中的基础链码函数,用于从数据库模块中读取数据,即非背书交易类链码函数read()用于从数据库模块读取一条key-value形式的数据记录;函数getCert()用于从数据库模块读取当前客户端模块的身份证书并进行解析,为函数verifyPermission()提供服务。系统还包括中间件模块,用于提供便携式交互接口,简化智能合约模块中隐私数据链码函数的数据处理逻辑,包括密钥生成接口、加密接口、解密接口。本专利技术中间件模块中的密钥生成接口,用于生成AES会话密钥,即初始化智能合约模块时,通过密钥生成接口GenKey()生成会话密钥,对智能合约模块中的隐私数据进行加解密处理。本专利技术中间件模块中的加密接口,采用AES算法加密隐私数据的隐私属性,即执行隐私数据存储链码函数writePvt()过程中,调用加密接口EncryptAES()加密数据的隐私属性。本专利技术中间件模块中的解密接口,采用AES算法解密隐私数据的隐私属性,即执行隐私数据查询链码函数readPvt()过程中,调用解密接口DecryptAES()解密数据的隐私属性。所述数据库模块,用于以key-value形式存储HyperledgerFabric区块链数据,包本文档来自技高网...

【技术保护点】
1.一种Hyperledger Fabric区块链隐私数据存储与访问系统,其特征在于包括客户端模块、SDK模块、智能合约模块以及数据库模块,所述客户端模块通过SDK模块调用隐私数据存储链码函数,智能合约模块根据客户端模块证书中的角色信息判断有效链码集合是否包含隐私数据存储链码函数,如果包含,加密数据的隐私属性,与非隐私属性一同存入数据库模块;客户端模块通过SDK模块调用隐私数据查询链码函数,智能合约模块根据客户端模块证书中的角色信息判断有效链码集合是否包含隐私数据查询链码函数,如果包含,解密数据库模块的查询结果,将真实数据返回给客户端模块,否则直接密文数据返回给客户端模块。/n

【技术特征摘要】
1.一种HyperledgerFabric区块链隐私数据存储与访问系统,其特征在于包括客户端模块、SDK模块、智能合约模块以及数据库模块,所述客户端模块通过SDK模块调用隐私数据存储链码函数,智能合约模块根据客户端模块证书中的角色信息判断有效链码集合是否包含隐私数据存储链码函数,如果包含,加密数据的隐私属性,与非隐私属性一同存入数据库模块;客户端模块通过SDK模块调用隐私数据查询链码函数,智能合约模块根据客户端模块证书中的角色信息判断有效链码集合是否包含隐私数据查询链码函数,如果包含,解密数据库模块的查询结果,将真实数据返回给客户端模块,否则直接密文数据返回给客户端模块。


2.根据权利要求1所述的HyperledgerFabric区块链隐私数据存储与访问系统,其特征在于所述客户端模块包括数据上传终端、数据访问终端以及管理员终端,其中数据上传终端用于提交隐私数据存储请求,并获取请求结果;数据访问终端用于提交隐私数据查询请求,并获取查询结果;管理员终端用于提交权限管理请求,为数据上传终端、数据访问终端创建和更新链码权限。


3.根据权利要求1所述的HyperledgerFabric区块链隐私数据存储与访问系统,其特征在于所述SDK模块,用于向智能合约模块提交链码函数调用请求,为客户端模块服务,包括交易提交SDK和交易查询SDK,其中交易提交SDKinvokeTx()用于调用背书交易类链码函数;交易查询SDKqueryTx()用于调用非背书交易类链码函数。


4.根据权利要求1所述的HyperledgerFabric区块链隐私数据存储与访问系统,其特征在于所述智能合约模块,用于接收SDK模块的请求,执行对应链码函数,包括权限管理链码函数、隐私数据链码函数以及基础链码函数,其中权限管理链码函数用于为数据上传终端和数据访问终端创建、更新链码权限矩阵,以及验证数据上传终端和数据访问终端的链码权限;隐私数据链码函数用于根据SDK模块提交的请求进行隐私数据的存储和查询;基础链码函数用于与数据库模块进行数据交互。


5.根据权利要求4所述的HyperledgerFabric区块链隐私数据存储与访问系统,其特征在于所述权限管理链码函数,用于创建、验证、更新客户端模块数据上传终端和数据访问终端的链码函数调用权限,即初始化智能合约模块时,执行函数createPermissionMatrix()创建链码权限矩阵,根据角色信息为客户端模块数据上传终端和数据访问终端设置有效链码函数集合,存入数据库模块;智能合约模块收到链码函数调用请求后,调用函数verifyPermission(),从数据库模块获取链码权限矩阵,根据客户端模块身份证书中的角色信息获取有效链码函数集合,验证当前链码函数的调用权限;管理员终端可以根据实际情况调用背书交易类链码函数updatePermission()更新链码权限矩阵,动态管理数据上传终端和数据访问终端的链码函数调用权限。


6.根据权利要求4所述的HyperledgerFabric区块链隐私数据存储与访问系统,其特征在于所述隐私数据链码函数,用于存储、查询隐私数据,即智能合约模块验证客户端模块的链码权限后,权限有效则执行背书交易类链码函数writePvt()将隐私数据存储到数据库模块,或执行非背书交易类链码函数readPvt()从数据库模块查询指定的隐私数据。


7.根据权利要求4所述的Hype...

【专利技术属性】
技术研发人员:戚湧马娜
申请(专利权)人:南京理工大学
类型:发明
国别省市:江苏;32

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1