一种基于区块链的隐私保护方法及系统技术方案

技术编号:29674239 阅读:11 留言:0更新日期:2021-08-13 21:56
本发明专利技术公开了一种基于区块链的隐私保护方法及系统,包括将接收的CONTRACT发布到区块链并将生成的数组RATIO持久化到存储区里;调用Allocate()函数,将各相关方对应的公钥分别存入数组PUB_KEY;调用Encrypt()函数,用PUB_KEY里对应的公钥对接收的明文信息M进行加密;分别调用Sign()函数,对CIPHERTEXT里各相关对应的密文片段进行签名;当SIGNATURE被填满,触发ReadOnly()函数将readOnly置为True。

【技术实现步骤摘要】
一种基于区块链的隐私保护方法及系统
本专利技术涉及区块链
,尤其涉及一种基于区块链的隐私保护方法及系统。
技术介绍
在互联网金融日益深入到经济发展的各个方面的当下,隐私保护是目前互联网领域的重点研究方向之一。区块链是一种颠覆性的技术,产生了新的计算范式,实现从信息互联网到价值互联网的转变。区块链的应用潜力巨大,应用范围广泛,各国的政治、经济、文化、军事等重要领域都陆续发布了区块链的研究计划。其中,通过区块链及其相关技术实现隐私保护是比较热门的研究方向,但目前制约区块链相关技术在隐私保护上的应用的关键难题是大部分算法无法兼顾去中心化与效率,无法支撑实际的商业应用。目前常用的策略,比如地址混淆、信息隐藏、通道隔离等,存在系统性能下降、可扩展性不足等问题。在对这些算法进行充分调研后,业界致力于提出具备去中心化、可扩展性强的隐私保护算法。后来,人们提出了Fabric区块链。Fabric区块链是一个由不同的组织共同组成的联盟链。在一条链上Fabric可以隔离出多个账本。如图1所示,一个Fabric区块链中多个不同的组织可以组成联盟。在联盟之下若干不同的组织建立了一个一个的通道,每个通道都有一个独立的账本,只有通道成员组织之间才能共享账本。从这个角度来看,通道机制可以保证在成员组织之间形成一个专有的私密网络,交易在其上以保密方式执行,而与外部的无关组织或个人隔离开来。当访问Peer节点或Orderer提供的不同服务时,尽管访问者属于某个通道成员组织,但是针对不同的角色应有不同的访问权限限制(比如:只有组织管理员才允许修改通道配置)。因此,Fabric需要有一种管理通道成员关系的能力,主要包括以下几点:1、能够认证和识别参与者的身份;2、以通道为边界建立信任域(TrustDomain)。这样所有通道成员组织的各个参与实体(Principal,即节点或应用程序客户端)之间可以相互通信和访问服务;3、能够识别参与实体的角色。这样可以针对访问请求做相应的权限控制。Fabric实现了MSP(MembershipServiceProvider)模块来支持以上各项能力。具体做法是,MSP基于PKI体系为通道成员组织和组织内的各个参与实体创建并管理了一组X.509证书和私钥,用它们来认证身份和角色,以及验证成员资格。Fabric实现了支持密码算法可插拔的BCCSP模块(BlockchainCryptoServiceProvider)。然而,目前的基于区块链的隐私保护算法,通常无法确保隐私信息的完全保密性。由于区块链的公开透明特性,信息一旦上链就很难保证信息只在特定的用户间传输。即使是如Fabric项目采用的上述方案,其通过将不同的节点划分到不同的通道里,每个通道里的信息只在成员节点里流通,从而一定程度上增加了不相关的节点获取通道内的信息的难度,但由于信息对通道内全体成员公开,只要有一个节点不诚实,那么信息即有泄露的风险。而基于其他技术的隐私保护算法,基本的策略是对信息进行加密,并存放在非公开的信息存储介质内,其最大的问题是,如果该存储介质丢失或保管人忘记关键参数后,该信息将无法恢复。同时,当该隐私信息涉及到多方合作时,仍没有一种有效的方法确保信息可永久保存。综上所述,目前的隐私保护算法都存在缺点,因此,如何提出一种具备去中心化、可扩展性强的隐私保护算法仍然是目前本领域技术人员亟需解决的技术问题。以上信息作为背景信息给出只是为了辅助理解本公开,并没有确定或者承认任意上述内容是否可用作相对于本公开的现有技术。
技术实现思路
本专利技术提供一种基于区块链的隐私保护方法及系统,以解决现有技术的不足。为实现上述目的,本专利技术提供以下的技术方案:第一方面,本专利技术实施例提供一种基于区块链的隐私保护方法,所述方法包括:接收需要全体相关方共同保护的隐私信息的明文信息M以及一份用于管理所述隐私信息的智能合约CONTRACT;根据其中一方输入的命令将所述CONTRACT发布到区块链上,并将所述CONTRACT初始化时生成的数组RATIO持久化到所述CONTRACT的存储区里;根据各相关方输入的命令分别调用所述CONTRACT的Allocate()函数,将各相关方对应的公钥分别存入数组PUB_KEY中,并将所述PUB_KEY持久化到所述CONTRACT的存储区里;根据任何一方输入的命令调用所述CONTRACT的Encrypt()函数,用所述PUB_KEY里对应的公钥对所述明文信息M按照所述RATIO里的各个比例进行加密,将加密得到的密文片段存放到数组CIPHERTEXT里,并将所述CIPHERTEXT持久化到所述CONTRACT的存储区里;根据各相关方输入的命令,分别调用所述CONTRACT的Sign()函数,对所述CIPHERTEXT里各相关对应的密文片段进行签名,将签名数据存放在数组SIGNATURE里,并将所述SIGNATURE持久化到所述CONTRACT的存储区里;当所述SIGNATURE被填满时,触发所述CONTRACT的ReadOnly()函数将布尔变量readOnly置为True,使得任何一方都无法修改所述CONTRACT的数组或变量的值。进一步地,所述基于区块链的隐私保护方法中,所述接收需要全体相关方共同保护的隐私信息的明文信息M以及一份用于管理所述隐私信息的智能合约CONTRACT的步骤包括:接收全体相关方共同确定的需要共同保护的隐私信息的明文信息M;接收由其中一方或多方制定的一份用于管理所述隐私信息的智能合约CONTRACT。进一步地,所述基于区块链的隐私保护方法中,所述根据其中一方输入的命令将所述CONTRACT发布到区块链上,并将所述CONTRACT初始化时生成的数组RATIO持久化到所述CONTRACT的存储区里的步骤包括:根据其中一方输入的命令将所述CONTRACT发布到区块链上,记下区块链返回的合约地址ADDRESS,并将所述ADDRESS发给全体相关方;将所述CONTRACT初始化时生成的数组RATIO持久化到所述CONTRACT的存储区里。进一步地,所述基于区块链的隐私保护方法中,在所述当所述SIGNATURE被填满时,触发所述CONTRACT的ReadOnly()函数将布尔变量readOnly置为True,使得任何一方都无法修改所述CONTRACT的数组或变量的值的步骤之后,所述方法还包括:接收第三方输入的命令,向全体相关方发送获取所述隐私信息的请求;根据各相关方响应于所述请求而输入的命令,分别通过各相关方对应的私钥对各相关方所对应的密文片段进行解密,并解密后的明文片段发送给所述第三方;根据所述第三方输入的命令调用所述CONTRACT的Recombine()函数,将所述明文片段组成一个完整的明文。进一步地,所述基于区块链的隐私保护方法中,所述根据各相关方响应于所述请求而输入的命令,分别通过各相关方对应的私钥对各相关方所对应的密文本文档来自技高网
...

【技术保护点】
1.一种基于区块链的隐私保护方法,其特征在于,所述方法包括:/n接收需要全体相关方共同保护的隐私信息的明文信息M以及一份用于管理所述隐私信息的智能合约CONTRACT;/n根据其中一方输入的命令将所述CONTRACT发布到区块链上,并将所述CONTRACT初始化时生成的数组RATIO持久化到所述CONTRACT的存储区里;/n根据各相关方输入的命令分别调用所述CONTRACT的Allocate()函数,将各相关方对应的公钥分别存入数组PUB_KEY中,并将所述PUB_KEY持久化到所述CONTRACT的存储区里;/n根据任何一方输入的命令调用所述CONTRACT的Encrypt()函数,用所述PUB_KEY里对应的公钥对所述明文信息M按照所述RATIO里的各个比例进行加密,将加密得到的密文片段存放到数组CIPHERTEXT里,并将所述CIPHERTEXT持久化到所述CONTRACT的存储区里;/n根据各相关方输入的命令,分别调用所述CONTRACT的Sign()函数,对所述CIPHERTEXT里各相关对应的密文片段进行签名,将签名数据存放在数组SIGNATURE里,并将所述SIGNATURE持久化到所述CONTRACT的存储区里;/n当所述SIGNATURE被填满时,触发所述CONTRACT的ReadOnly()函数将布尔变量readOnly置为True,使得任何一方都无法修改所述CONTRACT的数组或变量的值。/n...

【技术特征摘要】
1.一种基于区块链的隐私保护方法,其特征在于,所述方法包括:
接收需要全体相关方共同保护的隐私信息的明文信息M以及一份用于管理所述隐私信息的智能合约CONTRACT;
根据其中一方输入的命令将所述CONTRACT发布到区块链上,并将所述CONTRACT初始化时生成的数组RATIO持久化到所述CONTRACT的存储区里;
根据各相关方输入的命令分别调用所述CONTRACT的Allocate()函数,将各相关方对应的公钥分别存入数组PUB_KEY中,并将所述PUB_KEY持久化到所述CONTRACT的存储区里;
根据任何一方输入的命令调用所述CONTRACT的Encrypt()函数,用所述PUB_KEY里对应的公钥对所述明文信息M按照所述RATIO里的各个比例进行加密,将加密得到的密文片段存放到数组CIPHERTEXT里,并将所述CIPHERTEXT持久化到所述CONTRACT的存储区里;
根据各相关方输入的命令,分别调用所述CONTRACT的Sign()函数,对所述CIPHERTEXT里各相关对应的密文片段进行签名,将签名数据存放在数组SIGNATURE里,并将所述SIGNATURE持久化到所述CONTRACT的存储区里;
当所述SIGNATURE被填满时,触发所述CONTRACT的ReadOnly()函数将布尔变量readOnly置为True,使得任何一方都无法修改所述CONTRACT的数组或变量的值。


2.根据权利要求1所述的基于区块链的隐私保护方法,其特征在于,所述接收需要全体相关方共同保护的隐私信息的明文信息M以及一份用于管理所述隐私信息的智能合约CONTRACT的步骤包括:
接收全体相关方共同确定的需要共同保护的隐私信息的明文信息M;
接收由其中一方或多方制定的一份用于管理所述隐私信息的智能合约CONTRACT。


3.根据权利要求1所述的基于区块链的隐私保护方法,其特征在于,所述根据其中一方输入的命令将所述CONTRACT发布到区块链上,并将所述CONTRACT初始化时生成的数组RATIO持久化到所述CONTRACT的存储区里的步骤包括:
根据其中一方输入的命令将所述CONTRACT发布到区块链上,记下区块链返回的合约地址ADDRESS,并将所述ADDRESS发给全体相关方;
将所述CONTRACT初始化时生成的数组RATIO持久化到所述CONTRACT的存储区里。


4.根据权利要求1所述的基于区块链的隐私保护方法,其特征在于,在所述当所述SIGNATURE被填满时,触发所述CONTRACT的ReadOnly()函数将布尔变量readOnly置为True,使得任何一方都无法修改所述CONTRACT的数组或变量的值的步骤之后,所述方法还包括:
接收第三方输入的命令,向全体相关方发送获取所述隐私信息的请求;
根据各相关方响应于所述请求而输入的命令,分别通过各相关方对应的私钥对各相关方所对应的密文片段进行解密,并解密后的明文片段发送给所述第三方;
根据所述第三方输入的命令调用所述CONTRACT的Recombine()函数,将所述明文片段组成一个完整的明文。


5.根据权利要求1所述的基于区块链的隐私保护方法,其特征在于,所述根据各相关方响应于所述请求而输入的命令,分别通过各相关方对应的私钥对各相关方所对应的密文片段进行解密,并解密后的明文片段发送给所述第三方的步骤包括:
接收各相关方响应于所述请求而输入的命令,并判断输入的命令是否为同意;
若是,则根据各相关方响应于所述请求而输入的命令,分别通过各相关方对应的私钥对各相关方所对应的密文片段进行解密...

【专利技术属性】
技术研发人员:陈胜俭梁增健黄永丰
申请(专利权)人:广州蚁比特区块链科技有限公司
类型:发明
国别省市:广东;44

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

1