一种分布式数据存储方法、装置及数据存储设备与流程

文档序号:19745554发布日期:2020-01-21 18:19阅读:311来源:国知局
一种分布式数据存储方法、装置及数据存储设备与流程

本说明书涉及数据信息技术领域,尤其涉及一种分布式数据存储方法、装置及数据存储设备。



背景技术:

在信息时代,数据是蕴含了生产价值的信息资源。不同的行业通过信息数据进行信息交互,进而实现数据共享。然而实现数据共享,则需要对数据进行安全的存储,才能保证数据准确性。由此,如何在不同的平台之间实现数据存储、共享则成为科技人员需要解决的问题。



技术实现要素:

有鉴于此,本申请提供了一种基于区块链的分布式数据存储方法及装置,用于解决如何实现不同平台之间数据存储共享安全的问题。

为解决上述技术问题,本说明书实施例是这样实现的:

本说明书实施例提供的一种基于区块链的分布式数据存储方法,包括:

s1:获取执行区块链实例的执行指令,得到执行该执行指令的区块链节点;

s2、区块链节点将数据发送给隐私保护设备;

s3、隐私保护设备对接收到的部分数据进行隐私保护;

s4、将所述隐私保护后的数据发送给其他区块链节点,以使区块链网络中的节点对所述隐私保护数据进行共识验证;

s5、接收返回的共识结果信息并判断交易信息是否通过共识,在验证通过后,将所述隐私保护数据存入分布式网络中。

本说明书实施例提供的一种基于区块链的数据存储装置,包括:

第一单元,获取执行区块链实例的执行指令,得到执行该执行指令的区块链节点;

第二单元,区块链节点将数据发送给隐私保护设备;

第三单元,隐私保护设备对接收到的部分数据进行隐私保护;

第四单元,将所述隐私保护数据发送给其他区块链节点,以使区块链网络中的节点对所述隐私保护数据进行共识验证;

第五单元,接收返回的共识结果信息并判断所述交易信息是否通过共识,在验证通过后,将所述隐私保护数据存入分布式网络中。

本说明书实施例提供的一种数据存储设备,包括一个或多个处理器及存储器,所述存储器存储有程序,并且被配置成由所述一个或多个处理器执行上述分布式数据存储方法中的步骤。

由以上本说明书实施例提供的技术方案可见,在本说明书实施例中,区块链网络中的任一区块链节点,可以将自身的数据发送给隐私保护设备进行隐私保护,并接收隐私保护设备返回的隐私保护数据,进而将隐私保护数据广播给其他区块链节点,使各区块链节点在对隐私保护数据共识验证通过后,将所述隐私保护数据存入分布式网络中,通过这种方式实现在不同的平台之间实现数据共享,保证数据安全。

附图说明

图1为本发明基于区块链的分布式数据存储方法的流程图;

图2为本发明基于区块链的数据存储装置功能模块示意图。

具体实施例

如背景技术所述,现有的数据共享系统可以接收并保存各平台上载的数据,但由于各平台共享的数据交由中心化的数据共享平台统一存储,当有人恶意篡改平台上存储的数据,那么各平台从共享系统中查询到的数据就是错误的。

实施例一:图1是本说明书实施例提供的基于区块链的分布式数据存储方法流程图,包括以下步骤:

s1:获取执行区块链实例的执行指令,得到执行该执行指令的区块链节点;

在本发明实施例中,区块链节点是指参与到区块链网络里,进行交易和数据交换的网络节点。在区块链节点中,可以执行区块链业务逻辑,如执行交易验证、共识计算等。获取执行区块链实例的执行指令,得到执行该执行指令的区块链节点。具体的,每个业务使用不同的区块链实例,一个业务(一个区块链实例)可对应着一个或者多个区块链节点。

当确定执行该执行指令的区块链节点时,将区块链节点配置到预设的区块链分组中,其中,同一区块链分组内的区块链节点对应着同一份共享数据。需要说明的是,若一个区块链实例对应着至少两个区块链节点,则在将区块链节点配置到预设的区块链分组的过程中,要将同一个区块链实例对应着的至少两个区块链节点配置到同一区块链分组中。共享数据包括但不限于区块数据、智能合约数据和索引数据。区块数据为区块链节点运行时所需数据,包括区块头;智能合约数据包括智能合约代码和智能合约状态数据。

进一步地,对于同一区块链分组内的各个区块链节点,可以重复写入共享数据,可以读取共享数据,以及同时写入相同的共享数据。

s2、区块链节点将数据发送给隐私保护设备;

在本说明书实施例中,隐私保护设备不是区块链节点,而是对数据进行隐私保护和解密的设备,为各区块链节点提供公共服务。其中,隐私保护设备可以采用对称隐私保护算法对接收到的数据进行隐私保护,以及对接收到的隐私保护数据进行解密。

需要说明的是,隐私保护设备作为第三方设备,其功能仅是采用特定的隐私保护算法对接收到的数据进行隐私保护以及采用与所述隐私保护算法对称的解密算法对接收到的隐私保护数据进行解密,任何区块链节点都无法获知所述隐私保护设备进行隐私保护和解密时所使用隐私保护算法。也就是说,任何区块链节点都无法擅自对自身维护的区块链存储的隐私保护数据进行解密。

在本说明书实施例中,倘若区块链节点想要共享自身的数据,那么可以将数据发送给隐私保护数据,以使所述隐私保护设备对接收到的数据进行隐私保护,并将隐私保护得到的隐私保护数据返回给所述区块链节点。

s3、隐私保护设备对接收到的部分数据进行隐私保护;

得到数据隐私保护数据的步骤如下:

s31:隐私保护设备接收区块链节点发送的数据。

s32:对所述数据中的部分数据进行隐私保护。

s33:将隐私保护后的数据返回给所述区块链节点。

其中所述部分数据是具有分享价值的业务数据,而其他数据则是不重要的解释性数据。

在本说明书实施例中,隐私保护设备接收区块链节点发送的数据后,可以仅对数据中的部分数据进行隐私保护。该部分数据对对其他区块链节点而言,没有保密的必要。

隐私保护设备先生成openpgp加密算法的密钥,利用openpgp加密算法对区块信息进行加密,生成加密后的区块信息。生成密钥具体的步骤包括:按照预定步长每次生成不同的密钥,所述的密钥可以为随机的字符串数据,这样可以有效提高区块信息隐私保护的安全性。

进一步的,采用openpgp加密算法时,可以每次加密前随机产生一组数据,如:通用唯一识别码。可以以通用唯一识别码作为此次存储隐私保护的区块信息的会话处理的会话密钥。然后利用明文加密算法如aes算法,根据该生成的通用唯一识别码对区块信息进行加密,生成加密后的区块信息。

采用约定方式加密所述密钥,生成密钥密文,所述约定方式包括使第一节点和区块链中与所述第一节点关联的第二节点按照预设方式加密解密所述密钥密文的算法。

本实施例的实施方案中,加密区块信息后,可以进一步的对加密所述区块信息所使用的密钥进行加密。如第一节点为a节点,a节点与节点c共同参与了一笔需要隐私保护的交易t,此时节点c为与第一a节点关联的第二节点。隐私保护设备设定为第三节点。客户端将t发送给a节点后,a节点识别到该交易需要进行隐私保护,则将该交易t发送给第三节点,第三节点基于openpgp的加密算法先随机生成一个通用唯一识别码作为此次对交易t进行隐私保护处理的会话密钥。然后,分别使用a节点的公钥和节点c的公钥来加密会话密钥,分别生成对应于a节点的第一密钥密文和节点c的第二密钥密文。这样一来,由于使用了第一节点和关联节点的公钥来加密密钥,最终生成的密钥密文同样可以由a节点使用a节点的私钥来解密第一密钥密文,而关联节点c也可以直接使用自己的节点的私钥来解密第二密钥密文。对于其他节点如b节点,尽管可以获取得到加密后的密钥密文,但却无法得到会话密钥,因而也无法得到交易t的内容信息。

s4、将所述隐私保护数据发送给其他区块链节点,以使区块链网络中的节点对所述隐私保护数据进行共识验证。

区块链节点将自身的节点标识、第一数值和隐私保护数据一并广播给其他区块链节点进行共识验证,若共识验证通过,则各区块链节点将隐私保护数据存入区块链。

具体而言,所述区块链节点根据隐私保护数据生成隐私保护数据的摘要,根据所述摘要,使用区块链节点的私钥生成签名,然后将所述隐私保护数据和签名发送给其他区块链节点。而接收到隐私保护数据和签名的每个其他区块链节点,都会一方面使用所述区块链节点的公钥对签名进行解密,进而得到摘要;另一方面根据接收到的隐私保护数据生成摘要,将解密得到的摘要和生成的摘要进行对比,若对比结果一致,则说明隐私保护数据在传输过程中未被篡改。

之所以要将隐私保护数据发送给其他区块链节点,是因为某个区块链节点不一定有权限查询所有其他区块链节点共享的数据,为了对各区块链节点的数据查询权限进行控制,区块链节点共享的数据需要经过隐私保护后才能被广播给其他区块链节点。也就是说,倘若区块链节点共享的数据不经隐私保护直接被发送给其他区块链节点,那么全部其他区块链节点也就获得了该区块链节点共享的数据。

s5、接收返回的共识结果信息并判断交易信息是否通过共识,在验证通过后,将所述隐私保护数据存入分布式网络中。

获得要被存储的隐私保护数据,生成针对隐私保护数据的哈希值。将哈希值存储在区块链网络中。在区块链网络中保存所生成的哈希值,其用于标识隐私保护数据。将隐私数据存储在分布式网络中,其中隐私保护数据在分布式网络中基于哈希值被定位。

实施例二:图2是本说明书实施例提供的基于区块链的数据存储装置流程图,包括以下步骤:

第一单元,获取执行区块链实例的执行指令,得到执行该执行指令的区块链节点;

在本发明实施例中,区块链节点是指参与到区块链网络里,进行交易和数据交换的网络节点。在区块链节点中,可以执行区块链业务逻辑,如执行交易验证、共识计算等。获取执行区块链实例的执行指令,得到执行该执行指令的区块链节点。具体的,每个业务使用不同的区块链实例,一个业务(一个区块链实例)可对应着一个或者多个区块链节点。

当确定执行该执行指令的区块链节点时,将区块链节点配置到预设的区块链分组中,其中,同一区块链分组内的区块链节点对应着同一份共享数据。需要说明的是,若一个区块链实例对应着至少两个区块链节点,则在将区块链节点配置到预设的区块链分组的过程中,要将同一个区块链实例对应着的至少两个区块链节点配置到同一区块链分组中。共享数据包括但不限于区块数据、智能合约数据和索引数据。区块数据为区块链节点运行时所需数据,包括区块头;智能合约数据包括智能合约代码和智能合约状态数据。

进一步地,对于同一区块链分组内的各个区块链节点,可以重复写入共享数据,可以读取共享数据,以及同时写入相同的共享数据。

第二单元,区块链节点将数据发送给隐私保护设备;

在本说明书实施例中,隐私保护设备不是区块链节点,而是对数据进行隐私保护和解密的设备,为各区块链节点提供公共服务。其中,隐私保护设备可以采用对称隐私保护算法对接收到的数据进行隐私保护,以及对接收到的隐私保护数据进行解密。

需要说明的是,隐私保护设备作为第三方设备,其功能仅是采用特定的隐私保护算法对接收到的数据进行隐私保护以及采用与所述隐私保护算法对称的解密算法对接收到的隐私保护数据进行解密,任何区块链节点都无法获知所述隐私保护设备进行隐私保护和解密时所使用隐私保护算法。也就是说,任何区块链节点都无法擅自对自身维护的区块链存储的隐私保护数据进行解密。

在本说明书实施例中,倘若区块链节点想要共享自身的数据,那么可以将数据发送给隐私保护数据,以使所述隐私保护设备对接收到的数据进行隐私保护,并将隐私保护得到的隐私保护数据返回给所述区块链节点。

第三单元,隐私保护设备对接收到的部分数据进行隐私保护;

得到数据隐私保护数据的步骤如下:

第一模块:隐私保护设备接收区块链节点发送的数据;

第二模块:对所述数据中的部分数据进行隐私保护;

第三模块:将隐私保护后的数据返回给所述区块链节点。

在本说明书实施例中,隐私保护设备接收区块链节点发送的数据后,可以仅对数据中的部分数据进行隐私保护。该部分数据对对其他区块链节点而言,没有保密的必要。

隐私保护设备先生成openpgp加密算法的密钥,利用openpgp加密算法对区块信息进行加密,生成加密后的区块信息。生成密钥具体的步骤包括:按照预定步长每次生成不同的密钥,所述的密钥可以为随机的字符串数据,这样可以有效提高区块信息隐私保护的安全性。

进一步的,采用openpgp加密算法时,可以每次加密前随机产生一组数据,如:通用唯一识别码。可以以通用唯一识别码作为此次存储隐私保护的区块信息的会话处理的会话密钥。然后利用明文加密算法如aes算法,根据该生成的通用唯一识别码对区块信息进行加密,生成加密后的区块信息。

采用约定方式加密所述密钥,生成密钥密文,所述约定方式包括使第一节点和区块链中与所述第一节点关联的第二节点按照预设方式加密解密所述密钥密文的算法。

本实施例的实施方案中,加密区块信息后,可以进一步的对加密所述区块信息所使用的密钥进行加密。如第一节点为a节点,a节点与节点c共同参与了一笔需要隐私保护的交易t,此时节点c为与第一a节点关联的第二节点。隐私保护设备设定为第三节点。客户端将t发送给a节点后,a节点识别到该交易需要进行隐私保护,则将该交易t发送给第三节点,第三节点基于openpgp的加密算法先随机生成一个通用唯一识别码作为此次对交易t进行隐私保护处理的会话密钥。然后,分别使用a节点的公钥和节点c的公钥来加密会话密钥,分别生成对应于a节点的第一密钥密文和节点c的第二密钥密文。这样一来,由于使用了第一节点和关联节点的公钥来加密密钥,最终生成的密钥密文同样可以由a节点使用a节点的私钥来解密第一密钥密文,而关联节点c也可以直接使用自己的节点的私钥来解密第二密钥密文。对于其他节点如b节点,尽管可以获取得到加密后的密钥密文,但却无法得到会话密钥,因而也无法得到交易t的内容信息。

第四单元,将所述隐私保护数据发送给其他区块链节点,以使区块链网络中的节点对所述隐私保护数据进行共识验证;

区块链节点将自身的节点标识、第一数值和隐私保护数据一并广播给其他区块链节点进行共识验证,若共识验证通过,则各区块链节点将隐私保护数据存入区块链。

具体而言,所述区块链节点根据隐私保护数据生成隐私保护数据的摘要,根据所述摘要,使用区块链节点的私钥生成签名,然后将所述隐私保护数据和签名发送给其他区块链节点。而接收到隐私保护数据和签名的每个其他区块链节点,都会一方面使用所述区块链节点的公钥对签名进行解密,进而得到摘要;另一方面根据接收到的隐私保护数据生成摘要,将解密得到的摘要和生成的摘要进行对比,若对比结果一致,则说明隐私保护数据在传输过程中未被篡改。

之所以要将隐私保护数据发送给其他区块链节点,是因为某个区块链节点不一定有权限查询所有其他区块链节点共享的数据,为了对各区块链节点的数据查询权限进行控制,区块链节点共享的数据需要经过隐私保护后才能被广播给其他区块链节点。也就是说,倘若区块链节点共享的数据不经隐私保护直接被发送给其他区块链节点,那么全部其他区块链节点也就获得了该区块链节点共享的数据。

第五单元,接收返回的共识结果信息并判断所述交易信息是否通过共识,在验证通过后,将所述隐私保护数据存入分布式网络中。

获得要被存储的隐私保护数据,生成针对隐私保护数据的哈希值。将哈希值存储在区块链网络中。在区块链网络中保存所生成的哈希值,其用于标识隐私保护数据。将隐私数据存储在分布式网络中,其中隐私保护数据在分布式网络中基于哈希值被定位。

实施例三、本说明书实施例提供的一种数据存储设备,包括一个或多个处理器及存储器,所述存储器存储有程序,并且被配置成由所述一个或多个处理器执行上述分布式数据存储方法中的步骤。

为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实施本说明书时可以把各单元的功能在同一个或多个软件和/或硬件中实现。

本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

在一个典型的配置中,计算设备包括一个或多个处理器(cpu)、输入/输出接口、网络接口和内存。

内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(ram)和/或非易失性内存等形式,如只读存储器(rom)或闪存(flashram)。内存是计算机可读介质的示例。

计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(pram)、静态随机存取存储器(sram)、动态随机存取存储器(dram)、其他类型的随机存取存储器(ram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、快闪记忆体或其他内存技术、只读光盘只读存储器(cd-rom)、数字符多功能光盘(dvd)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体,如调制的数据信号和载波。

还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。

本领域技术人员应明白,本说明书的实施例可提供为方法、系统或计算机程序产品。因此,本说明书可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本说明书可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。

本说明书可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本说明书,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。

以上所述仅为本说明书的实施例而已,并不用于限制本说明书。对于本领域技术人员来说,本说明书可以有各种更改和变化。凡在本说明书的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本说明书的权利要求范围之内。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1