技术新讯 > 计算推算,计数设备的制造及其应用技术 > 数据存储方法、装置、计算机设备、程序产品和存储介质  >  正文

数据存储方法、装置、计算机设备、程序产品和存储介质

  • 国知局
  • 2024-09-05 14:20:55

本技术涉及区块链,更具体而言,涉及一种数据存储方法、数据存储装置、计算机设备、计算机程序产品和非易失性计算机可读存储介质。

背景技术:

1、目前,在区块链上进行数据存储时,可采用在区块链的各个节点上都存储一份完整的数据副本的全复制方案。在采用全复制方案时,即使某些节点发生数据丢失,也能通过和其他节点进行通信从而重新获取到完整的数据。

2、但是,在某个区块链节点被恶意攻击的情况下,容易导致完整的数据都被非法盗取,影响数据存储的安全性。

技术实现思路

1、本技术实施方式提供一种数据存储方法、数据存储装置、计算机设备、计算机程序产品和非易失性计算机可读存储介质。能够避免某个区块链节点被恶意攻击后,所有数据都被盗取的问题,提高了数据存储的安全性。

2、本技术的数据存储方法包括:对待存储数据进行校正编码,以生成n个数据块和m个冗余块,在所述数据块或所述冗余块缺失的情况下,所述待存储数据能够基于剩余的所述数据块和所述冗余块进行恢复,所述n根据第一区块链节点的数量确定,所述m根据第二区块链节点的数量确定,所述第二区块链节点的可信度低于所述第一区块链节点的可信度;将各个所述数据块分别存储到各个所述第一区块链节点,将各个所述冗余块分别存储到各个所述第二区块链节点。

3、在某些实施方式中,所述对待存储数据进行校正编码,以生成n个数据块和m个冗余块,包括:对所述待存储数据进行分割,以得到所述n个数据块;基于所述第一区块链节点的数量和所述第二区块链节点的数量,生成编码矩阵;将所述编码矩阵和所述n个数据块的列向量相乘,以得到所述m个冗余块。

4、在某些实施方式中,所述基于所述第一区块链节点的数量和所述第二区块链节点的数量,生成编码矩阵,包括:生成第一矩阵和第二矩阵,所述第一矩阵的行数和列数均与所述第一区块链节点的数量相同,所述第一矩阵为单位矩阵,所述第二矩阵的列数和所述第一区块链节点的数量相同,所述第二矩阵的行数和所述第二区块链节点的数量相同;将所述第一矩阵和第二矩阵进行垂直拼接,以生成所述编码矩阵。

5、在某些实施方式中,所述将各个所述数据块分别存储到各个所述第一区块链节点,包括:在所述数据块的块尺寸大于所述第一区块链节点预设的块存储阈值的情况下,基于第一区块链节点的数量,再次对所述数据块进行分割,以得到分割后的数据块,所述分割后的数据块的块尺寸小于或等于所述块存储阈值;将各个所述分割后的数据块分别存储到各个所述第一区块链节点。

6、在某些实施方式中,所述数据存储方法还包括:基于所述第一区块链节点的数量t和虚拟区块链节点的数量p,生成i个密钥,所述第一区块链节点和所述虚拟区块链节点组成的各个区块链节点与所述密钥一一对应,所述虚拟区块链节点包括多个所述第二区块链节点,t、p、i均为正整数;基于所述i个密钥,为所述第一区块链节点和所述虚拟区块链节点分配密钥数据;基于所述密钥数据,生成用于解密的私钥和用于加密的公钥。

7、在某些实施方式中,所述密钥数据包括第一密钥数据、第二密钥数据和第三密钥数据,所述基于所述i个密钥,为所述第一区块链节点和所述虚拟区块链节点分配密钥数据,包括:基于所述i个密钥为每个所述第一区块链节点分配所述第一密钥数据;基于所述虚拟区块链节点对应的第一目标密钥,为所述虚拟区块链节点中的各个所述第二区块链节点分配所述第二密钥数据;基于t个所述第一区块链节点分别对应的t个第二目标密钥,为所述虚拟区块链节点分配所述第三密钥数据,并将所述第三密钥数据拆分到所述虚拟区块链节点中的各个所述第二区块链节点中。

8、在某些实施方式中,所述第三密钥数据包括t个,所述第三密钥数据和所述第二目标密钥一一对应,所述将所述第三密钥数据拆分到所述虚拟区块链节点中的各个所述第二区块链节点中,包括:基于所述虚拟区块链节点中的所述第二区块链节点的数量对t个所述第三密钥数据进行拆分,以将t个所述第三密钥数据分别分配到各个所述第二区块链节点中。

9、在某些实施方式中,所述基于所述密钥数据,生成用于解密的私钥和用于加密的公钥,包括:获取所述第一密钥数据;在至少部分所述第一密钥数据缺失的情况下,获取所述第二密钥数据和所述第三密钥数据,并基于未缺失的所述第一密钥数据、所述第二密钥数据和所述第三目标密钥,生成用于解密的私钥和用于加密的公钥;在所述第一密钥数据未缺失的情况下,基于未缺失的所述第一密钥数据,生成用于解密的私钥和用于加密的公钥。

10、在某些实施方式中,所述密钥包括多项式,所述多项式的项数根据所述第一区块链节点的数量t确定。

11、在某些实施方式中,在将各个所述数据块分别存储到各个所述第一区块链节点,将各个所述冗余块分别存储到各个所述第二区块链节点之前,所述数据存储方法还包括:基于所述公钥对所述数据块和所述冗余块进行加密。

12、在某些实施方式中,所述数据存储方法还包括:在接收到所述第一区块链节点的数据块和所述第二区块链节点的冗余块中至少一个的情况下,基于所述私钥对接收的所述数据块和所述冗余块进行解密。

13、在某些实施方式中,所述数据存储方法还包括:在上一次生成所述公钥和私钥之后,若各个节点的已存储数据满足预设条件,则重新进入所述基于所述第一区块链节点的数量t和虚拟区块链节点的数量p,生成i个密钥的步骤。

14、在某些实施方式中,所述预设条件包括以下条件中至少一种:所述已存储数据的存储轮数大于预设轮数;所述已存储数据的存储量大于预设存储量;及所述已存储数据的存储时长大于预设时长。

15、在某些实施方式中,所述数据存储方法还包括:在各个所述第一区块链节点均响应的情况下,从各个所述第一区块链节点获取所述数据块,以根据获取的各个所述数据块恢复所述待存储数据;在各个所述第一区块链节点中至少一个不响应的情况下,从各个所述第一区块链节点获取所述数据块并从各个所述第二区块链节点获取所述冗余块,以根据获取的各个所述数据块和所述冗余块恢复所述待存储数据。

16、在某些实施方式中,所述数据存储方法还包括:基于各个节点的响应次数和数据篡改信息中至少一种,在各个所述节点中确定所述第一区块链节点和所述第二区块链节点。本技术实施方式的数据存储装置包括获取模块和控制模块,获取模块用于在检测到车辆的开门动作的情况下,获取所述车辆周围的环境信息;控制模块用于在基于所述环境信息确定所述开门动作存在风险的情况下,发出数据存储信息。

17、本技术的数据存储装置包括校正编码模块和存储模块,校正编码模块用于对待存储数据进行校正编码,以生成n个数据块和m个冗余块,在所述数据块或所述冗余块缺失的情况下,所述待存储数据能够基于剩余的所述数据块和所述冗余块进行恢复,所述n根据第一区块链节点的数量确定,所述m根据第二区块链节点的数量确定,所述第二区块链节点的可信度低于所述第一区块链节点的可信度;存储模块用于将各个所述数据块分别存储到各个所述第一区块链节点,将各个所述冗余块分别存储到各个所述第二区块链节点。

18、本技术的计算机设备包括:处理器,所述处理器与存储器连接;所述存储器中存储有计算机程序,所述处理器执行所述计算机程序以实现上述任一实施方式所述的数据存储方法的指令。

19、本技术的计算机程序产品包括计算机程序,所述计算机程序包括用于上述任一实施方式所述的数据存储方法的指令。

20、本技术实施方式的非易失性计算机可读存储介质,包括计算机程序,所述计算机程序被处理器执行时,使得所述处理器执行上述任一实施方式所述的数据存储方法。

21、本技术实施方式的数据存储方法、数据存储装置、计算机设备、计算机程序产品和非易失性计算机可读存储介质,通过对待存储数据进行校正编码,以生成n个数据块和m个冗余块,并将n个数据块分散存储到各个第一区块链节点,将m个冗余块分散存储到各个第二区块链节点,即使部分区块链节点被攻击,也无法得到完整数据,从而可以避免节点被恶意攻击后,完整数据被全部盗取的问题,提高了数据存储的安全性。

22、而且在需要恢复待存储数据的情况下,不仅可将存储在可信度较高的第一区块链节点里的数据块进行组合得到待存储数据;而且即使部分数据块或冗余块缺失,也能基于剩余的数据块和冗余块恢复待存储数据,保证了待存储数据的可恢复性。

23、此外,相较于待存储数据在每个节点都完整存储,存在浪费节点存储空间的问题而言,将待存储数据进行校正编码生成的各个数据块分散存储在第一区块链节点,各个冗余块分散存储在第二区块链节点,还可以节约各个节点的存储空间。

24、本技术的实施方式的附加方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本技术的实施方式的实践了解到。

本文地址:https://www.jishuxx.com/zhuanli/20240905/285918.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 YYfuon@163.com 举报,一经查实,本站将立刻删除。