基于区块链的数据共享和隐私保护方法与流程

专利2024-08-10  18


本发明涉及的是一种信息安全领域的技术,具体是一种基于区块链的数据共享和隐私保护方法。



背景技术:

区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。但是目前的区块链技术还存在着诸多技术瓶颈,需要合理设计区块链节点,实现多层次的用户结构,让不同层次的用户用于其硬件设备可以承担的任务,才有可能使区块链的吞吐量达到我们想要的水平。另外,考虑到区块链网络中用户所使用的硬件设备的存储能力有一定的限制,而传统的区块链往往需要同步链上的所有数据。而经过时间推移,区块链的体积将越来越庞大,用户一直同步显然是不合适的,我们需要制定更好的存储方案,让不同层次的用户有不同的存储任务,在保证链上信息公开透明的同时,降低普通用户的存储压力,为扩大用户群体创造可能。



技术实现要素:

本发明针对现有技术存在的上述不足,提出一种基于区块链的数据共享和隐私保护方法,通过构建拥有多节点组织、多种类节点、多链结构和复合共识机制的区块链系统,用于支撑上层应用开发。通过双层共识机制控制用户和应用的读写数据权限,做到共享数据的同时保证用户数据安全。

本发明是通过以下技术方案实现的:

本发明涉及一种基于区块链的数据共享和隐私保护方法,通过在同一区块链系统内构建多条区块链且设置同一节点同时维护至少一条区块链,使得拥有同一个区块链底层的不同上层应用之间共享链上数据的同时,所有的链上数据调用记录均同样地记录在区块链中,以实现数据共享的同时实现真实隐私信息的保护。

所述的区块链子链包括:公开链、隐私链和记录链,其中:公开链通过共识层和合约层控制权限及其有效期,共识层将用户数据加密压缩后,分块打包成多个共识请求随机上传到不同的隐私链上,记录链中同步记录有公开链的访问记录。

所述的区块链系统包括:若干个节点组织、与所有节点组织进行通信用于接收数据请求并初次打包的队列服务节点以及节点组织进行通信的通信节点,其中:队列服务节点按请求顺序发送给链上节点进行共识,得到共识结果后,再将下一个数据请求初次打包后发送给节点。

所述的共识包括:预备阶段(pre-prepare)、准备阶段(prepare)和承诺阶段(commit),其中:预备阶段是指:外部应用发送的数据请求直接进入队列服务节点的消息队列中,当队列服务节点要处理一个数据请求时,队列服务节点将该请求广播给对应子链所包含的所有节点组织,收到请求的节点组织的通信节点将请求发送给主节点进行验证;准备阶段是指:各个主节点首先进行基本验证,即检查上个阶段中接收到的消息签名是否正确,消息摘要是否正确,验证通过后再进行共识验证;承诺阶段是指:各个主节点检查收到的prepare消息的消息签名和消息摘要是否正确,然后将根据消息内容解读出其他节点组织是否通过共识后,主节点向队列服务节点提交通过情况并由队列服务节点收到2f以上个同意提交后向客户端发出通过响应,f是指:。

所述的队列服务节点在数据请求中给每个消息一个唯一的id且提供摘要和签名以保证消息直接的共识不受干扰和方便验证。

所述的共识验证是指:用户是否有权限获取其他用户的数据,即主节点验证权限后得到结果,并通过通信节点广播给其他节点组织;同样地,每个广播的消息也应该包含消息的唯一id,且提供摘要和签名。

所述的共识是指:当主节点接收到的消息中有2f以上个同意提交时,该节点会根据共识情况在本地的区块链中做出相应修改,并同步到该节点组织内的从节点中,否则不修改。

所述的队列服务节点内置所有通信节点的信息,以组成队列服务集群,提供更快的服务。队列服务集群采用消息队列进行实现。

所述的节点组织,即物理层面上的节点的集合,包括:至少1个主节点、3个从节点和1个通信节点,其中:同时有且只有一个的主节点为节点组织的领导节点,用于当前的共识,当其服务到期或停止后,从节点中将选举产生新的主节点;从节点用于共识且通过选举成为主节点。

所述的节点组织中进一步包括:轻节点,该轻节点不参与共识过程但具有查看区块链上的公开信息的权限;该类型节点服务于用户所使用的网页或移动客户端。方便用户使用其查看数据,且不需要同步区块链,减轻存储压力。轻节点必须通过区块链系统的用户管理服务进行注册,方可正常使用。

技术效果

本发明整体解决了现有区块链技术在共享用户信息的同时,无法有效管理未授权用户和应用对用户隐私信息的滥用的问题。

与现有技术相比,本发明使用区块链技术解决信息共享的难题,比传统的分布式数据库更加实用,功能更加丰富;上层应用共享用户,用户作为轻节点由区块链系统统一管理,方便安全;利用区块链技术去中心化、不可篡改的特性,保证数据真实可靠,不被伪造;信息共享的同时,解决了区块链自身数据安全性问题,通过设计避免了链上隐私数据的泄露;避免隐私泄露的同时,方便用户管理隐私数据的权限,用户可以自行决定与谁共享自己的数据;优化共识算法,摒弃纯粹的实用拜占庭共识(pbft)算法,极大降低了通信开销,提高了区块链系统的吞吐率;上层接口统一,方便上层应用开发,支持丰富的数据类型和应用类型;数据公开透明,所有人可以通过公共接口查看其他人的调用记录,让隐私数据访问有据可循;普通用户不需要下载庞大的区块链本体,降低使用门槛。

附图说明

图1为本发明涉及的区块链节点组织结构示意图;

图2为本发明涉及的区块链节点组织层次示意图。

具体实施方式

如图1所示,为本实施例涉及一种区块链的节点组织结构,其中:节点组织作为一个参与者基本单元,包括:1个通信节点和4个共识节点,其中同一时间内有且仅有1个共识节点经选举产生主节点。

所述的选举,具体是指:在每个节点组织中,每个主节点在停止服务或参与n次共识服务到期后,节点组织内将重新选举主节点。其中,n可以视节点组织的节点数而预设。若主节点服务到期,则由主节点主动发起投票;若主节点服务意外停止,则由排序节点向节点组织内其他节点发起投票。同时,每个节点都有自己的地址(私钥),节点组织中的成员们会共同维护的该节点组织内所有的节点地址的有序列表。在选举时,每个节点计算一个由自己私钥和选举事件戳产生的哈希值,选取该值最小者为主节点;若最小者仍是上轮的节点,则新的主节点为地址列表中该主节点的下一个节点。节点组织内的选举通过pbft算法达成共识,保证一定的容错能力。

如图2所示,为本实施例涉及的区块链系统中的节点组织,由上而下依次包括:用于执行自动触发逻辑实现权限管理、用于节点之间的共识逻辑的共识层、维护授权关系应用层和合约层、用于节点之间数据的传输的网络层、用于数据的存储的存储层,其中:应用层接收各类上层应用的用户请求信息,进行规范化处理并输出统一格式的请求信息至合约层;合约层接收用户关于其他用户授权的请求(相当于社交软件中的加好友请求),并自动转发至用户管理方案,根据实际用户的权限,当用户无权限访问数据,则将请求信息推送至被请求的用户,反之则将用户请求信息传递至共识层;共识层接收共识请求,每个共识节点对请求信息进行验证,并输出共识结果信息至其他节点,网络层接收共识层信息,进行根据共识结果进行相应的共识处理和数据同步,并输出相应信息至其他节点和共识层,存储层接收各类存储操作信息,负责链上信息的储存。

所述的存储层的介质包括:区块链的每一个块和内嵌型的k-v数据库,其中,内嵌的k-v数据库用于保存字段的全局状态,而区块链的块按序保存字段的全局状态的转移。本实施例中区块链的区块是基于mpt(merklepatriciatrie)结构进行存储。

所述的mpt结构是一种树形的数据结构,也称为prefixtree,或者简称为trie。其特点是,某节点的key是从根节点到该节点的路径,即不同的key有相同前缀时,他们共享前缀所对应的路径。这种数据结构可用于快速查找前缀相同的数据,内存开销较少,因此一般被用作验证计算机之间存储和传输数据的一致性。mpt在trie的基础上,给每个树节点计算了一个哈希值,该值通过对节点内容进行blake2算法计算,用来索引数据和计算merkleroot。

所述的blake2是一种哈希算法,可以基于32或64位的单词产生最长256或512位的哈希结果。其核心操作是不断地将8个散列中间结果和16个输入单词进行组合,从而产生下一轮组合的8个中间结果,在约10轮(不同版本轮数不同)后,截取一定长度作为最终的哈希结果。

所述的网络层采用gossip协议进行节点之间数据的传输,区块链中的每个节点组织的通信节点会不断、实时的接收到来自同一子链的其他节点组织的通信节点发送的账本数据信息,来保证不同节点、节点组织账本数据的一致性。

为了保证节点容错能力和提高共识速度,所述的共识层包括:位于节点组织外部、以节点组织为基本单位且基于pbft算法进行的共识层以及位于节点组织内部、由当时节点组织内选举的主节点决定的共识层。

所述的pbft共识算法,即实用拜占庭容错算法,是一种基于消息传递的一致性算法,算法经过三个阶段达成一致性。在区块链系统中,pbft算法可以保证在少数节点作恶(如伪造消息)的情况下达成共识。它采用签名验证、哈希算法等密码学手段确保消息在传递的过程中不被篡改、伪造。pbft在传统的拜占庭容错算法(bft)的基础上进行了优化,将拜占庭容错算法复杂度从指数级降低到多项式级别。

例如在一个拥有3f+1个节点的系统中,只要有不少于2f+1个非恶意节点正常工作,该系统就能达成一致性。如:10个节点的系统中,允许出现最多3个恶意节点。

所述的应用层包括:用户管理以及上层应用,其中:用户管理用于管理轻节点之间的权限。开发者可以基于本实施例中的区块链系统,利用本实施例中区块链系统的高吞吐率、共享性、隐私性、安全性和不可篡改性等特性,进行其他上层应用的开发。

本实施例涉及上述系统的基于区块链的数据共享和隐私保护方法,以应用层的一个轻节点(普通用户)注册以及访问数据的过程为例,包括用户管理和数据访问。

步骤1)用户提交用户名和助记词(3个单词),用户子系统以此为种子,生成用户的私钥,之后根据私钥生成公钥,再将公钥进行哈希运算,生成公钥地址,公钥地址即为该用户的唯一id。

步骤2)用户根据自己的需要,将自己的相关数据分块上传到区块链的隐私链上。分块的工作由共识层完成。共识层使用公钥对隐私数据进行加密、压缩后,对数据进行分块,并打包成多个共识请求到不同的子链上,子链包括记录链、公开链和多条隐私链。对于通过认证的用户,本实施例所涉及的区块链技术中,用户管理方案将为用户数据提供签名和摘要(包含时间戳信息)。只有通过共识层正确签名的、摘要验证通过的数据才是链上的合法数据。

步骤3)公开链记录了一些用户希望公开分享的信息,方便其他拥有权限的用户翻阅查看。公开链的访问记录会同步更新到记录链中。用户a得到用户b的数据权限后,等待共识层验证通过。之后,合约层收集用户b的数据后解密、打包,使用用户a的公钥加密后,将数据放到公开链上。用户a获取到数据后,使用自己的私钥进行解密即可。

步骤4)记录链的功能为记录每一次数据访问,如用户a访问了用户b的数据,那么记录链上将记录这个访问过程。这样保证隐私数据的访问能够得到有效的记录,方便用户查看自己的数据的访问情况。记录链提供全节点访问接口,用户随意查看上面的数据。

步骤5)隐私链记录着用户不希望其他用户随意访问的信息。且隐私链有多条,分块存储用户的隐私数据,对用户数据进行脱敏处理,使得单独获得某块数据并无意义。隐私链提供类似分布式数据库的服务,其他用户需要经过合约层和共识层的认证,才成功访问隐私链上的数据,且访问记录同样会记录到记录链上。

经过在cpu32核内存256gb的测试服务器上部署使用该方法的区块链系统,区块链系统为一个包含8个节点的节点组织,运行上述方法后,在能够做到数据共享的同时,可以充分保障用户数据的隐私性,单一节点无法破解用户所有的隐私数据,且该方法在区块链系统中的处理速度约为220次/秒。

综上,本发明通过结合分链和分层共识实现区块链上隐私保护,并通过多层次的共识结构,保证以上过程拥有足够的效率,满足上层应用对区块链系统吞吐率的要求。

上述具体实施可由本领域技术人员在不背离本发明原理和宗旨的前提下以不同的方式对其进行局部调整,本发明的保护范围以权利要求书为准且不由上述具体实施所限,在其范围内的各个实现方案均受本发明之约束。


技术特征:

1.一种基于区块链的数据共享和隐私保护方法,其特征在于,通过在同一区块链系统内构建多条区块链且设置同一节点同时维护至少一条区块链,使得拥有同一个区块链底层的不同上层应用之间共享链上数据的同时,所有的链上数据调用记录均同样地记录在区块链中,以实现数据共享的同时实现真实隐私信息的保护;

所述的区块链系统包括:若干个节点组织、与所有节点组织进行通信用于接收数据请求并初次打包的队列服务节点以及节点组织进行通信的通信节点,其中:队列服务节点按请求顺序发送给链上节点进行共识,得到共识结果后,再将下一个数据请求初次打包后发送给节点;

所述的区块链子链包括:公开链、隐私链和记录链,其中:公开链通过共识层和合约层控制权限及其有效期,共识层将用户数据加密压缩后,分块打包成多个共识请求随机上传到不同的隐私链上,记录链中同步记录有公开链的访问记录。

2.根据权利要求1所述的基于区块链的数据共享和隐私保护方法,其特征是,所述的共识包括:预备阶段、准备阶段和承诺阶段,其中:预备阶段是指:外部应用发送的数据请求直接进入队列服务节点的消息队列中,当队列服务节点要处理一个数据请求时,队列服务节点将该请求广播给对应子链所包含的所有节点组织,收到请求的节点组织的通信节点将请求发送给主节点进行验证;准备阶段是指:各个主节点首先进行基本验证,即检查上个阶段中接收到的消息签名是否正确,消息摘要是否正确,验证通过后再进行共识验证;承诺阶段是指:各个主节点检查收到的prepare消息的消息签名和消息摘要是否正确,然后将根据消息内容解读出其他节点组织是否通过共识后,主节点向队列服务节点提交通过情况并由队列服务节点收到2f以上个同意提交后向客户端发出通过响应,f是指:。

3.根据权利要求2所述的基于区块链的数据共享和隐私保护方法,其特征是,所述的队列服务节点在数据请求中给每个消息一个唯一的id且提供摘要和签名以保证消息直接的共识不受干扰和方便验证。

4.根据权利要求2所述的基于区块链的数据共享和隐私保护方法,其特征是,所述的共识验证是指:用户是否有权限获取其他用户的数据,即主节点验证权限后得到结果,并通过通信节点广播给其他节点组织;同样地,每个广播的消息也应该包含消息的唯一id,且提供摘要和签名。

5.根据权利要求2所述的基于区块链的数据共享和隐私保护方法,其特征是,所述的共识是指:当主节点接收到的消息中有2f以上个同意提交时,该节点会根据共识情况在本地的区块链中做出相应修改,并同步到该节点组织内的从节点中,否则不修改。

6.根据权利要求1所述的基于区块链的数据共享和隐私保护方法,其特征是,所述的队列服务节点内置所有通信节点的信息,以组成队列服务集群,提供更快的服务,队列服务集群采用消息队列进行实现。

7.根据上述任一权利要求所述的基于区块链的数据共享和隐私保护方法,其特征是,所述的节点组织,即物理层面上的节点的集合,包括:至少1个主节点、3个从节点和1个通信节点,其中:同时有且只有一个的主节点为节点组织的领导节点,用于当前的共识,当其服务到期或停止后,从节点中将选举产生新的主节点;从节点用于共识且通过选举成为主节点。

8.根据权利要求7所述的基于区块链的数据共享和隐私保护方法,其特征是,所述的节点组织中进一步包括:轻节点,该轻节点不参与共识过程但具有查看区块链上的公开信息的权限;该类型节点服务于用户所使用的网页或移动客户端,方便用户使用其查看数据,且不需要同步区块链,减轻存储压力,轻节点必须通过区块链系统的用户管理服务进行注册,方可正常使用。

9.根据权利要求1所述的基于区块链的数据共享和隐私保护方法,其特征是,所述的节点组织,由上而下依次包括:用于执行自动触发逻辑实现权限管理、用于节点之间的共识逻辑的共识层、维护授权关系应用层和合约层、用于节点之间数据的传输的网络层、用于数据的存储的存储层,其中:应用层接收各类上层应用的用户请求信息,进行规范化处理并输出统一格式的请求信息至合约层;合约层接收用户关于其他用户授权的请求,并自动转发至用户管理方案,根据实际用户的权限,当用户无权限访问数据,则将请求信息推送至被请求的用户,反之则将用户请求信息传递至共识层;共识层接收共识请求,每个共识节点对请求信息进行验证,并输出共识结果信息至其他节点,网络层接收共识层信息,进行根据共识结果进行相应的共识处理和数据同步,并输出相应信息至其他节点和共识层,存储层接收各类存储操作信息,负责链上信息的储存。

技术总结
一种基于区块链的数据共享和隐私保护方法,通过在同一区块链系统内构建多条区块链且设置同一节点同时维护至少一条区块链,使得拥有同一个区块链底层的不同上层应用之间共享链上数据的同时,所有的链上数据调用记录均同样地记录在区块链中,以实现数据共享的同时实现真实隐私信息的保护。本发明通过构建拥有多节点组织、多种类节点、多链结构和复合共识机制的区块链系统,用于支撑上层应用开发。通过双层共识机制控制用户和应用的读写数据权限,做到共享数据的同时保证用户数据安全。

技术研发人员:沈耀;尹猛
受保护的技术使用者:上海交通大学
技术研发日:2020.12.14
技术公布日:2021.04.06

转载请注明原文地址:https://xbbs.6miu.com/read-21039.html