CN110866265A - 一种基于区块链的数据存储方法、设备及存储介质 - Google Patents
一种基于区块链的数据存储方法、设备及存储介质 Download PDFInfo
- Publication number
- CN110866265A CN110866265A CN201911135689.8A CN201911135689A CN110866265A CN 110866265 A CN110866265 A CN 110866265A CN 201911135689 A CN201911135689 A CN 201911135689A CN 110866265 A CN110866265 A CN 110866265A
- Authority
- CN
- China
- Prior art keywords
- data
- original
- numerical value
- verification
- text data
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/602—Providing cryptographic facilities or services
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/64—Protecting data integrity, e.g. using checksums, certificates or signatures
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Computer Hardware Design (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Storage Device Security (AREA)
Abstract
本发明公开一种基于区块链的数据存储方法、设备及存储介质,其中方法包括:获取所输入的原始原文数据,获取所述原始原文数据的加密数值;基于所述原始原文数据的加密数值生成所述原始原文数据对应的原始数据树状结构,获取所述原始数据树状结构的原始树根数值;将所述原始树根数值上链存储至存证区块链的存储区块中,并记录所述存储区块对应的区块标识;将所述原始原文数据和所述区块标识存储于本地存储设备中;其中,所述原始树根数值用于对本地存储设备中的原始原文数据进行数据完整验证。采用本发明,可以在保证数据完整性的情况下,提升区块链中区块节点设备的存储资源的可用空间,保证对存储资源的合理使用。
Description
技术领域
本发明涉及计算机技术领域,尤其涉及一种基于区块链的数据存储方法、设备及存储介质。
背景技术
随着计算机技术不断的开发和完善,现如今可以通过区块链完成多种业务场景,例如:数据记录存储、交易、数据查询等,由于区块链为去中心化且具备不可篡改以及可追溯的特征,使得数据安全得以保障。随着区块链技术的持续普及,一些需要存证的数据可以实现上链存储,例如:证据数据、路况数据、原创作品数据等,这些存证数据往往包含大篇幅文字、图片、视频等较大的数据,需要占用较多的存储资源,由于区块节点设备的存储资源空间是有限的,因而无法很好的保证对存储资源的合理使用。
发明内容
本发明实施例提供一种基于区块链的数据存储方法、设备及存储介质,可以在保证数据完整性的情况下,提升区块链中区块节点设备的存储资源的可用空间,保证对存储资源的合理使用。
本发明实施例一方面提供了一种基于区块链的数据存储方法,包括:
获取所输入的原始原文数据,获取所述原始原文数据的加密数值;
基于所述原始原文数据的加密数值生成所述原始原文数据对应的原始数据树状结构,获取所述原始数据树状结构的原始树根数值;
将所述原始树根数值上链存储至存证区块链的存储区块中,并记录所述存储区块对应的区块标识;
将所述原始原文数据和所述区块标识存储于本地存储设备中;
其中,所述原始树根数值用于对本地存储设备中的原始原文数据进行数据完整验证。
其中,所述获取所输入的原始原文数据之前,还包括:
基于用户信息在存证区块链中获取账户信息,对所述账户信息进行存储;
则所述将所述原始树根数值上链存储至存证区块链的存储区块中,并记录所述存储区块对应的区块标识,包括:
基于所述账户信息将所述原始树根数值上链存储至存证区块链的存储区块中,并记录所述存储区块对应的区块标识。
其中,所述基于所述原始原文数据的加密数值生成所述原始原文数据对应的原始数据树状结构,获取所述原始数据树状结构的原始树根数值,包括:
将所述原始原文数据的加密数值作为初始树状结构中叶子节点的数值,采用加密算法并基于所述叶子节点的数值获取所述初始树状结构中子节点的数值以及树根节点的数值;
分别将所述叶子节点的数值、子节点的数值以及树根节点的数值添加至所述初始树状结构中,以得到所述原始原文数据对应的原始数据树状结构;
将所述树根节点的数值确定为所述原始数据树状结构的原始树根数值。
其中,所述基于所述原始原文数据的加密数值生成所述原始原文数据对应的原始数据树状结构,获取所述原始数据树状结构的原始树根数值,包括:
在原文数据集合中获取所述原始原文数据的关联数据,并获取所述关联数据的加密数值;
将所述原始原文数据的加密数值以及所述关联数据的加密数值分别作为初始树状结构中叶子节点的数值,采用加密算法并基于所述叶子节点的数值获取所述初始树状结构中子节点的数值以及树根节点的数值;
分别将所述叶子节点的数值、子节点的数值以及树根节点的数值添加至所述初始树状结构中,以得到所述原文数据对应的原始数据树状结构;
将所述树根节点的数值确定为所述原始数据树状结构的原始树根数值。
其中,所述将所述原始原文数据和所述区块标识存储于本地存储设备中,包括:
将所述原始原文数据、所述原始数据树状结构和所述区块标识存储于本地存储设备中。
其中,还包括:
获取所输入的验证数据集合,所述验证数据集合包括验证原文数据以及原始树根数值在存证区块链中的区块标识;
在所述存证区块链中获取所述区块标识对应的存储区块,在所述存储区块中获取所述原始树根数值;
基于所述原始树根数值对所述验证原文数据进行数据完整验证以得到验证结果。
其中,所述基于所述原始树根数值对所述验证原文数据进行数据完整验证以得到验证结果,包括:
获取所述验证原文数据的加密数值;
基于所述验证原文数据的加密数值生成所述验证原文数据对应的验证数据树状结构,获取所述验证数据树状结构的验证树根数值;
当所述原始树根数值与所述验证树根数值相同时,确定所述原始原文数据与所述验证原文数据相同;
当所述原始树根数值与所述验证树根数值不相同时,确定所述原始原文数据与所述验证原文数据不相同。
本发明实施例一方面提供了一种数据存储设备,包括:
加密数值获取单元,用于获取所输入的原始原文数据,获取所述原始原文数据的加密数值;
树根数值获取单元,用于基于所述原始原文数据的加密数值生成所述原始原文数据对应的原始数据树状结构,获取所述原始数据树状结构的原始树根数值;
第一数据存储单元,用于将所述原始树根数值上链存储至存证区块链的存储区块中,并记录所述存储区块对应的区块标识;
第二数据存储单元,用于将所述原始原文数据和所述区块标识存储于本地存储设备中;
其中,所述原始树根数值用于对本地存储设备中的原始原文数据进行数据完整验证。
其中,还包括:
账户信息存储单元,用于基于用户信息在存证区块链中获取账户信息,对所述账户信息进行存储;
则所述第一数据存储单元,具体用于基于所述账户信息将所述原始树根数值上链存储至存证区块链的存储区块中,并记录所述存储区块对应的区块标识。
其中,所述树根数值获取单元包括:
第一数值获取子单元,用于将所述原始原文数据的加密数值作为初始树状结构中叶子节点的数值,采用加密算法并基于所述叶子节点的数值获取所述初始树状结构中子节点的数值以及树根节点的数值;
第一树状结构生成子单元,用于分别将所述叶子节点的数值、子节点的数值以及树根节点的数值添加至所述初始树状结构中,以得到所述原始原文数据对应的原始数据树状结构;
第一树根数值确定子单元,用于将所述树根节点的数值确定为所述原始数据树状结构的原始树根数值。
其中,所述树根数值获取单元包括:
加密数值获取子单元,用于在原文数据集合中获取所述原始原文数据的关联数据,并获取所述关联数据的加密数值;
第二数值获取子单元,用于将所述原始原文数据的加密数值以及所述关联数据的加密数值分别作为初始树状结构中叶子节点的数值,采用加密算法并基于所述叶子节点的数值获取所述初始树状结构中子节点的数值以及树根节点的数值;
第二树状结构生成子单元,用于分别将所述叶子节点的数值、子节点的数值以及树根节点的数值添加至所述初始树状结构中,以得到所述原文数据对应的原始数据树状结构;
第二树根数值确定子单元,用于将所述树根节点的数值确定为所述原始数据树状结构的原始树根数值。
其中,所述第二数据存储单元具体用于将所述原始原文数据、所述原始数据树状结构和所述区块标识存储于本地存储设备中。
其中,还包括:
集合获取单元,用于获取所输入的验证数据集合,所述验证数据集合包括验证原文数据以及原始树根数值在存证区块链中的区块标识;
原始数值获取单元,用于在所述存证区块链中获取所述区块标识对应的存储区块,在所述存储区块中获取所述原始树根数值;
数据验证单元,用于基于所述原始树根数值对所述验证原文数据进行数据完整验证以得到验证结果。
其中,所述数据验证单元包括:
验证数值获取子单元,用于获取所述验证原文数据的加密数值;
树根数值获取子单元,用于基于所述验证原文数据的加密数值生成所述验证原文数据对应的验证数据树状结构,获取所述验证数据树状结构的验证树根数值;
结果确定子单元,用于当所述原始树根数值与所述验证树根数值相同时,确定所述原始原文数据与所述验证原文数据相同;
所述结果确定子单元,还用于当所述原始树根数值与所述验证树根数值不相同时,确定所述原始原文数据与所述验证原文数据不相同。
本发明实施例一方面提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序包括程序指令,所述程序指令当被处理器执行时,执行上述的方法步骤。
本发明实施例一方面提供了一种计算机设备,包括处理器、存储器、输入输出接口;
其中,所述处理器分别与所述存储器和所述输入输出接口相连,其中,所述输入输出接口用于页面交互,所述存储器用于存储程序代码,所述处理器用于调用所述程序代码,以执行上述的方法步骤。
在本发明实施例中,通过将原文数据转换为加密数值,生成原文数据对应的数据树状结构,进而将数据树状结构中的树根数值进行上链存储,由于树根数值与原文数据存在唯一关系,可以用于验证原文数据是否存在恶意篡改,同时树根数值所需的存储空间很小,因而在保证数据完整性的情况下,进一步提升了区块链中区块节点设备的存储资源的可用空间,保证了对存储资源的合理使用。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的数据存储的系统架构图;
图2是本发明实施例提供的区块链搭建的示意图;
图3是本发明实施例提供的一种基于区块链的数据存储方法的流程示意图;
图4是本发明实施例提供的一种基于区块链的数据存储方法的流程示意图;
图5是本发明实施例提供的存储阶段的数据树状结构生成的流程示意图;
图6是本发明实施例提供的存储阶段的数据树状结构生成的举例示意图;
图7是本发明实施例提供的存储阶段的数据树状结构生成的流程示意图;
图8是本发明实施例提供的存储阶段的数据树状结构生成的举例示意图;
图9是本发明实施例提供的验证阶段的数据完整验证的流程示意图;
图10是本发明实施例提供的验证阶段的数据树状结构生成的举例示意图;
图11是本发明实施例提供的验证阶段的数据树状结构生成的举例示意图;
图12是本发明实施例提供的一种数据存储设备的结构示意图;
图13是本发明实施例提供的一种数据存储设备的结构示意图;
图14是本发明实施例提供的树根数值获取单元的结构示意图;
图15是本发明实施例提供的树根数值获取单元的结构示意图;
图16是本发明实施例提供的数据验证单元的结构示意图;
图17是本发明实施例提供的一种计算机设备的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
请结合图1-图11所示实施例,对本发明实施例提供的基于区块链的数据存储方法进行详细介绍。
请参见图1,为本发明实施例提供了一种数据存储的系统架构图。如图1所示,对于基于存证区块链的原始原文数据存储的处理,例如:法院搜集的证据数据、交警实时获取的路况数据、作者的原创作品数据等,都对应有多个用户群体,也就是说,针对同一存储业务的用户(用户1、2、…、N)可以通过各自持有的用户终端(用户终端1、2、…、N)实现数据存储的处理。所述用户终端可以包括但不限于手机、电子阅读器、平板电脑、个人电脑、车载设备、电子摄像头设备等终端设备,所述用户终端可以获取所输入的原始原文数据,获取所述原始原文数据的加密数值,基于所述原始原文数据的加密数值生成所述原始原文数据对应的原始数据树状结构,获取所述原始数据树状结构的原始树根数值,将所述原始树根数值上链存储至存证区块链的存储区块中,并记录所述存储区块对应的区块标识,并将所述原始原文数据和所述区块标识存储于本地存储设备中,区块节点设备(区块节点设备1、2、…、N)可以获取用户终端所发送的原始数据树状结构的原始树根数值并进行存储,同时可以将所存储的存储区块的区块标识返回至所述用户终端,在后续对原始原文数据进行数据完整验证的过程中,存证终端(存证终端1、2、…、N)作为数据验证的主体,用于采用存证区块链中的原始树根数值对本地存储设备中的原始原文数据进行数据完整验证,即验证原始原文数据是否存在篡改的行为,所述存证终端具体可以为权威验证机构的验证终端,例如:法院的电脑终端、交警大队的电脑终端、著作权机构的电脑终端等,可以理解的是,所述用户终端和所述存证终端可以为同一终端,即用户通过权威验证机构的验证终端实现数据存储的过程,验证机构的人员也可以通过该验证终端实现数据验证的过程,所述本地存储设备具体可以为用户终端中的本地存储组件、存证终端中的本地存储组件或者移动存储设备等。
请参见图2,为本发明实施例提供了区块链搭建的示意图。如图2所示,为了进一步保证区块链中存储资源的合理使用,本发明实施例搭建了一种数据存储场景的区块链,该区块链可以包括区块链底层平台、平台产品服务层以及应用服务层。
区块链底层平台可以包括用户管理、基础服务、智能合约以及运营监控等处理模块。其中,用户管理模块负责所有区块链参与者的身份信息管理,包括维护公私钥生成(账户管理)、密钥管理以及用户真实身份和区块链地址对应关系维护(权限管理)等,并且在授权的情况下,监管和审计某些真实身份的交易情况,提供风险控制的规则配置(风控审计);基础服务模块部署在所有区块链节点设备上,用来验证业务请求的有效性,并对有效请求完成共识后记录到存储上,对于一个新的业务请求,基础服务先对接口适配解析和鉴权处理(接口适配),然后通过共识算法将业务信息加密(共识管理),在加密之后完整一致的传输至共享账本上(网络通信),并进行记录存储;智能合约模块负责合约的注册发行以及合约触发和合约执行,开发人员可以通过某种编程语言定义合约逻辑,发布到区块链上(合约注册),根据合约条款的逻辑,调用密钥或者其它的事件触发执行,完成合约逻辑,同时还提供对合约升级注销的功能;运营监控模块主要负责产品发布过程中的部署、配置的修改、合约设置、云适配以及产品运行中的实时状态的可视化输出,例如:告警、监控网络情况、监控节点设备健康状态等。
平台产品服务层提供典型应用的基本能力和实现框架,开发人员可以基于这些基本能力,完成业务逻辑的区块链实现。应用服务层提供基于区块链方案的应用服务给业务参与方进行使用。
在数据存储场景中,区块节点设备可以分布在实体对应的范围内,也可以布置于云端服务设备中,所述实体可以包括但不限于权威机构所在地、存证数据采集地等,通过基于区块链的方式搭建数据存储的场景,可以优化存证数据对存储资源的合理使用,在保证数据完整性的情况下,进一步提升了区块链中区块节点设备的存储资源的可用空间。
基于图1和图2的实现框架,请一并参见图3,为本发明实施例提供了一种基于区块链的数据存储方法的流程示意图。如图3所示,本发明实施例的所述方法可以包括以下步骤S101-步骤S104。
S101,获取所输入的原始原文数据,获取所述原始原文数据的加密数值;
具体的,数据存储设备可以获取用户所输入的原始原文数据,所述原始原文数据具体可以为需要进行上链存储的原文数据,可以包括但不限于证据数据、路况数据、原创作品数据等多媒体数据,例如:文字数据、图片数据、视频数据等,所述数据存储设备可以采用加密算法对所述原始原文数据进行加密处理,以得到所述原始原文数据的加密数值,可选的,所述加密算法可以为哈希算法。
S102,基于所述原始原文数据的加密数值生成所述原始原文数据对应的原始数据树状结构,获取所述原始数据树状结构的原始树根数值;
具体的,所述数据存储设备可以基于所述原始原文数据的加密数值生成所述原始原文数据对应的原始数据树状结构,所述原始数据树状结构具体可以为记录有所述原始原文数据的树状结构,所述树状结构优选为默克尔树状结构,进一步的,所述数据存储设备可以将所述原始原文数据的加密数值作为初始树状结构的叶子节点的数值,所述初始树状结构具体为叶子节点、子节点、树根节点均为空值的初始化的树状结构,所述数据存储设备可以通过对叶子节点的数值进行计算得到子节点的数值,再对子节点的数值进行计算得到树根节点的数值,将叶子节点的数值、子节点的数值和树根节点的数值添加至所述初始树状结构中,以得到所述原始原文数据对应的原始数据树状结构,所述数据存储设备可以获取所述树根节点的数值,将所述树根节点的数值作为所述原始数据树状结构的原始树根数值。
S103,将所述原始树根数值上链存储至存证区块链的存储区块中,并记录所述存储区块对应的区块标识;
具体的,所述数据存储设备可以将提取的所述原始树根数值上链存储至存证区块链的存储区块中,可以理解的是,所述存证区块链中的存储区块可以依据预设的时间间隔生成,也可以由存证区块链的管理人员手动设置,所述原始树根数值具体可以存储于所述存储区块的区块体中,可以理解的是,所述原始树根数值还可以与用户的账户信息、存储的时间戳进行关联存储于所述存储区块的区块体中,所述数据存储设备可以记录所述存储区块对应的区块标识,所述区块标识具体可以为所述存储区块的区块高度或者所述存储区块的区块版本号。
S104,将所述原始原文数据和所述区块标识存储于本地存储设备中;
具体的,所述数据存储设备可以将所述原始原文数据和所述区块标识存储于本地存储设备中,可以理解的是,对于仅采用原始原文数据的加密数值生成原始数据树状结构时,由于原始原文数据已经存在于本地存储中,因此本地存储设备可以仅对所述原始原文数据和所述区块标识进行存储,后续验证阶段,可以直接提取原始原文数据复原树状结构,以此实现原始树根数值对原始原文数据的验证过程。通过将原始树根数值上链存储,将原文数据存储在本地存储设备中,可以避免由于原文数据的数据量过大而占用存证区块链中较多的存储资源,同时通过原始树根数值的上链存储,可以用于后续对原文数据进行完整性验证,在保证数据完整性的情况下,进一步提升了区块链中区块节点设备的存储资源的可用空间,保证了对存储资源的合理使用。
在本发明实施例中,通过将原文数据转换为加密数值,生成原文数据对应的数据树状结构,进而将数据树状结构中的树根数值进行上链存储,由于树根数值与原文数据存在唯一关系,可以用于验证原文数据是否存在恶意篡改,同时树根数值所需的存储空间很小,因而在保证数据完整性的情况下,进一步提升了区块链中区块节点设备的存储资源的可用空间,保证了对存储资源的合理使用。
基于图1和图2的实现框架,请一并参见图3,为本发明实施例提供了一种基于区块链的数据存储方法的流程示意图。如图3所示,本发明实施例的所述方法可以包括以下步骤S201-步骤S208。
S201,基于用户信息在存证区块链中获取账户信息,对所述账户信息进行存储;
具体的,用户可以采用数据存储设备并基于个人的用户信息在存证区块链中进行账户信息的注册,所述用户信息可以包括但不限于姓名、联系信息、工号信息、身份标识等,所述账户信息可以唯一标识用户在存证区块链中用户身份信息,所述账户信息可以用于用户对数据进行上链存储,所述数据存储设备可以对所述账户信息进行存储。
S202,获取所输入的原始原文数据,获取所述原始原文数据的加密数值;
具体的,数据存储设备可以获取用户所输入的原始原文数据,所述原始原文数据具体可以为需要进行上链存储的原文数据,可以包括但不限于证据数据、路况数据、原创作品数据等多媒体数据,例如:文字数据、图片数据、视频数据等,所述数据存储设备可以采用加密算法对所述原始原文数据进行加密处理,以得到所述原始原文数据的加密数值,可选的,所述加密算法可以为哈希算法。
S203,基于所述原始原文数据的加密数值生成所述原始原文数据对应的原始数据树状结构,获取所述原始数据树状结构的原始树根数值;
具体的,所述数据存储设备可以基于所述原始原文数据的加密数值生成所述原始原文数据对应的原始数据树状结构,所述原始数据树状结构具体可以为记录有所述原始原文数据的树状结构,所述树状结构优选为默克尔树状结构,进一步的,所述数据存储设备可以将所述原始原文数据的加密数值作为初始树状结构的叶子节点的数值,所述初始树状结构具体为叶子节点、子节点、树根节点均为空值的初始化的树状结构,所述数据存储设备可以通过对叶子节点的数值进行计算得到子节点的数值,再对子节点的数值进行计算得到树根节点的数值,将叶子节点的数值、子节点的数值和树根节点的数值添加至所述初始树状结构中,以得到所述原始原文数据对应的原始数据树状结构,所述数据存储设备可以获取所述树根节点的数值,将所述树根节点的数值作为所述原始数据树状结构的原始树根数值。
可以理解的是,对于原始数据树状结构的生成方式可以仅采用原始原文数据的加密数值进行运算生成,也可以结合原始原文数据的关联数据的加密数值进行运算生成,所述关联数据可以为与原始原文数据相关联的时间信息、目录信息、引用信息等,也可以为与原始原文数据相同数据类型的其它原文数据,例如:同一类型的其它已经存储的作品数据、同一路段上传的路况数据、同一法院采集的证据数据等,还可以为与原始原文数据选取的随机原文数据。
在本发明实施例的第一种可行的实施方式中,当仅采用原始原文数据的加密数值生成原始数据树状结构时,请结合参见图5和图6,如图5所示,为本发明实施例提供了存储阶段的数据树状结构生成的流程示意图,可以包括:
S301,将所述原始原文数据的加密数值作为初始树状结构中叶子节点的数值,采用加密算法并基于所述叶子节点的数值获取所述初始树状结构中子节点的数值以及树根节点的数值;
具体的,所述数据存储设备可以将所述原始原文数据的加密数值作为初始树状结构中叶子节点的数值,如图6所示,原始原文数据可以具体划分为原始原文数据1、原始原文数据2、原始原文数据3以及原始原文数据4,具体可以依据原始原文数据的章节、数据类型等进行划分,划分后的原始原文数据的加密数值分别为原始原文数据的加密数值1、原始原文数据的加密数值2、原始原文数据的加密数值3以及原始原文数据的加密数值4,所述数据存储设备将原始原文数据的加密数值1、原始原文数据的加密数值2、原始原文数据的加密数值3以及原始原文数据的加密数值4作为初始树状结构中叶子节点的数值。
所述数据存储设备进一步采用加密算法并基于所述叶子节点的数值获取所述初始树状结构中子节点的数值以及树根节点的数值,再请参见图6,所述数据存储设备可以对叶子节点的数值进行两两划分,再采用加密算法分别对划分后的叶子节点的数值进行计算,得到子节点的数值1和子节点的数值2,所述数据存储设备再采用加密算法对子节点的数值1和子节点的数值2进行计算,得到树根节点的数值,所述加密算法优选为哈希算法。
S302,分别将所述叶子节点的数值、子节点的数值以及树根节点的数值添加至所述初始树状结构中,以得到所述原始原文数据对应的原始数据树状结构;
S303,将所述树根节点的数值确定为所述原始数据树状结构的原始树根数值;
具体的,所述数据存储设备可以提取所述原始数据树状结构的树根节点的数值,将所述树根节点的数值确定为所述原始数据树状结构的原始树根数值。
在本发明实施例的第二种可行的实施方式中,当结合原始原文数据的加密数值以及关联数据的加密数值生成原始数据树状结构时,请结合参见图7和图8,如图7所示,为本发明实施例提供了存储阶段的数据树状结构生成的流程示意图,可以包括:
S401,在原文数据集合中获取所述原始原文数据的关联数据,并获取所述关联数据的加密数值;
具体的,所述数据存储设备可以在原文数据集合中获取所述原始原文数据的关联数据,所述关联数据可以由所述数据存储设备在所述原始原文数据中进行提取,也可以由用户在所述原文数据集合中自行选取,所述数据存储设备可以采用加密算法对所述关联数据进行加密处理,以得到所述关联数据的加密数值,可选的,所述加密算法可以为哈希算法。如图8所示,可以选取关联数据1、关联数据2和关联数据3该3个关联数据,也可以将选取的关联数据划分为关联数据1、关联数据2和关联数据3,采用加密算法得到对应的关联数据的加密数值1、关联数据的加密数值2和关联数据的加密数值3。
S402,将所述原始原文数据的加密数值以及所述关联数据的加密数值分别作为初始树状结构中叶子节点的数值,采用加密算法并基于所述叶子节点的数值获取所述初始树状结构中子节点的数值以及树根节点的数值;
具体的,所述数据存储设备可以将所述原始原文数据的加密数值以及所述关联数据的加密数值分别作为初始树状结构中叶子节点的数值,如图8所示,所述数据存储设备将原始原文数据的加密数值、关联数据的加密数值1、关联数据的加密数值2和关联数据的加密数值3作为初始树状结构中叶子节点的数值。
所述数据存储设备进一步采用加密算法并基于所述叶子节点的数值获取所述初始树状结构中子节点的数值以及树根节点的数值,再请参见图8,所述数据存储设备可以对叶子节点的数值进行两两划分,再采用加密算法分别对划分后的叶子节点的数值进行计算,得到子节点的数值1和子节点的数值2,所述数据存储设备再采用加密算法对子节点的数值1和子节点的数值2进行计算,得到树根节点的数值,所述加密算法优选为哈希算法。
S403,分别将所述叶子节点的数值、子节点的数值以及树根节点的数值添加至所述初始树状结构中,以得到所述原始原文数据对应的原始数据树状结构;
S404,将所述树根节点的数值确定为所述原始数据树状结构的原始树根数值;
具体的,所述数据存储设备可以提取所述原始数据树状结构的树根节点的数值,将所述树根节点的数值确定为所述原始数据树状结构的原始树根数值。
S204,将所述原始树根数值上链存储至存证区块链的存储区块中,并记录所述存储区块对应的区块标识;
具体的,所述数据存储设备可以将提取的所述原始树根数值上链存储至存证区块链的存储区块中,可以理解的是,所述存证区块链中的存储区块可以依据预设的时间间隔生成,也可以由存证区块链的管理人员手动设置,所述原始树根数值具体可以存储于所述存储区块的区块体中,可以理解的是,所述原始树根数值还可以与用户的账户信息、存储的时间戳进行关联存储于所述存储区块的区块体中,所述数据存储设备可以记录所述存储区块对应的区块标识,所述区块标识具体可以为所述存储区块的区块高度或者所述存储区块的区块版本号。
S205,将所述原始原文数据和所述区块标识存储于本地存储设备中;
具体的,所述数据存储设备可以将所述原始原文数据和所述区块标识存储于本地存储设备中,可以理解的是,对于仅采用原始原文数据的加密数值生成原始数据树状结构时,由于原始原文数据已经存在于本地存储中,因此本地存储设备可以仅对所述原始原文数据和所述区块标识进行存储,后续验证阶段,可以直接提取原始原文数据复原树状结构,以此实现原始树根数值对原始原文数据的验证过程。而对于结合原始原文数据的加密数值以及关联数据的加密数值生成原始数据树状结构时,由于关联数据的选取具备随机性,因此本地存储设备需要对所述原始原文数据、所述原文数据对应的原始数据树状结构和所述区块标识进行存储,后续验证阶段,可以将提取原始原文数据代入原始数据树状结构,以此实现原始树根数值对原始原文数据的验证过程。通过将原始树根数值上链存储,将原文数据存储在本地存储设备中,可以避免由于原文数据的数据量过大而占用存证区块链中较多的存储资源,同时通过原始树根数值的上链存储,可以用于后续对原文数据进行完整性验证,在保证数据完整性的情况下,进一步提升了区块链中区块节点设备的存储资源的可用空间,保证了对存储资源的合理使用。
在本发明实施例中,当需要对本地存储的原始原文数据进行使用之前,例如:法官需要使用证据数据、交警需要提取路况数据进行分析、作者需要与他人争取版权等,还需要对原始原文数据的真实性进行验证,即验证原始原文数据是否存在篡改行为。
S206,获取所输入的验证数据集合;
具体的,所述数据存储设备可以获取用户所输入的验证数据集合,具体可以为获取用户在本地存储设备中选择的验证数据集合,所述验证数据集合可以包括验证原文数据以及原始树根数值在存证区块链中的区块标识,可以理解的是,所述验证原文数据与上述原始原文数据具体为同一个数据,在此采用“验证”和“原始”的命名方式,仅用于区分验证阶段和存储阶段的不同时段的原文数据,需要说明的是,当所述本地存储设备中还存储有原始数据树状结构时,所述数据存储设备还可以获取所述原始数据树状结构。
S207,在所述存证区块链中获取所述区块标识对应的存储区块,在所述存储区块中获取所述原始树根数值;
具体的,所述数据存储设备在所述存证区块链中查找所述区块标识对应的存储区块,所述数据存储设备可以在查找到的所述存储区块中获取所述原始树根数值,优选的,可以通过用户账户在所述存储区块中获取到所述原始树根数值。
S208,基于所述原始树根数值对所述验证原文数据进行数据完整验证以得到验证结果;
具体的,所述数据存储设备可以基于所述原始树根数值对所述验证原文数据进行数据完整验证以得到验证结果,进一步的,所述数据存储设备可以获取验证原文数据的加密数值,并基于所述验证原文数据的加密数值生成或复原所述验证原文数据对应的验证数据树状结构,提取所述验证数据树状结构中的验证树根数值,当所述原始树根数值与所述验证树根数值相同时,确定所述原始原文数据与所述验证原文数据相同,也就是说,本地存储设备所存储的原始原文数据并未被篡改,可以直接进行使用;而当所述原始树根数值与所述验证树根数值不相同时,确定所述原始原文数据与所述验证原文数据不相同,也就是说,当前本地存储设备所存储的原始原文数据已经存在篡改,需要进一步核实。
具体的,请一并参见图9,为本发明实施例提供了验证阶段的数据完整验证的流程示意图。如图9所示,可以包括:
S501,获取所述验证原文数据的加密数值;
具体的,所述数据存储设备可以采用加密算法对所述验证原文数据进行加密处理,以得到所述验证原文数据的加密数值,可选的,所述加密算法可以为哈希算法。
S502,基于所述验证原文数据的加密数值生成所述验证原文数据对应的验证数据树状结构,获取所述验证数据树状结构的验证树根数值;
具体的,所述数据存储设备可以基于所述验证原文数据的加密数值生成所述验证原文数据对应的验证数据树状结构,获取所述验证数据树状结构的验证树根数值。
针对上述第一种实施方式,请一并参见图10,当仅采用原始原文数据的加密数值生成原始数据树状结构时,在验证阶段的过程中,所述数据存储设备可以依据原始原文数据的划分方式及排布方式,将所述验证原文数据划分为验证原文数据1、验证原文数据2、验证原文数据3以及验证原文数据4,划分后的验证原文数据的加密数值分别为验证原文数据的加密数值1、验证原文数据的加密数值2、验证原文数据的加密数值3以及验证原文数据的加密数值4,所述数据存储设备将验证原文数据的加密数值1、验证原文数据的加密数值2、验证原文数据的加密数值3以及验证原文数据的加密数值4作为初始树状结构中叶子节点的数值。
所述数据存储设备进一步采用加密算法并基于所述叶子节点的数值获取所述初始树状结构中子节点的数值以及树根节点的数值,再请参见图10,所述数据存储设备可以对叶子节点的数值进行两两划分,再采用加密算法分别对划分后的叶子节点的数值进行计算,得到子节点的数值3和子节点的数值4,所述数据存储设备再采用加密算法对子节点的数值3和子节点的数值4进行计算,得到树根节点的数值,所述加密算法优选为哈希算法。
所述数据存储设备分别将所述叶子节点的数值、子节点的数值以及树根节点的数值添加至所述初始树状结构中,以得到所述验证原文数据对应的验证数据树状结构,所述数据存储设备可以提取所述验证数据树状结构的树根节点的数值,将所述树根节点的数值确定为所述验证数据树状结构的验证树根数值。
针对上述第二种实施方式,请一并参见图11,当结合原始原文数据的加密数值以及关联数据的加密数值生成原始数据树状结构时,在验证阶段的过程中,所述数据存储设备可以将所述验证原文数据的加密数值替换原始数据树状结构中的原始原文数据的加密数值,如图11所示,所述数据存储设备将验证原文数据的加密数值、关联数据的加密数值1、关联数据的加密数值2和关联数据的加密数值3作为初始树状结构中叶子节点的数值。
所述数据存储设备进一步采用加密算法并基于所述叶子节点的数值更新所述原始数据树状结构中子节点的数值以及树根节点的数值,再请参见图11,所述数据存储设备可以对叶子节点的数值进行两两划分,再采用加密算法分别对划分后的叶子节点的数值进行计算,得到子节点的数值3和子节点的数值4,所述数据存储设备再采用加密算法对子节点的数值3和子节点的数值4进行计算,得到树根节点的数值,所述加密算法优选为哈希算法。
所述数据存储设备分别将所述叶子节点的数值、子节点的数值以及树根节点的数值更新至所述原始数据树状结构中,以得到所述验证原文数据对应的验证数据树状结构,所述数据存储设备可以提取所述验证数据树状结构的树根节点的数值,将所述树根节点的数值确定为所述验证数据树状结构的验证树根数值。
S503,当所述原始树根数值与所述验证树根数值相同时,确定所述原始原文数据与所述验证原文数据相同;
具体的,当所述原始树根数值与所述验证树根数值相同时,确定所述原始原文数据与所述验证原文数据相同,也就是说,本地存储设备所存储的原始原文数据并未被篡改,可以直接进行使用。
S504,当所述原始树根数值与所述验证树根数值不相同时,确定所述原始原文数据与所述验证原文数据不相同;
具体的,当所述原始树根数值与所述验证树根数值不相同时,确定所述原始原文数据与所述验证原文数据不相同,也就是说,当前本地存储设备所存储的原始原文数据已经存在篡改,需要进一步核实。
需要说明的是,本发明实施例提供的树状结构仅为举例,具体的数据的数量、加密数值的数量、子节点的数量以及树状结构中的计算层数均需要依据实际的原文数据进行决定;本发明实施例中所采用的“原始”和“验证”的命名方式,仅用于区分原文数据在执行存储阶段和验证阶段的不同阶段的实现过程;本发明实施例在执行存储阶段和验证阶段时的数据存储设备可以为同一个设备,也可以为不同的设备,具体可以依据实际使用场景进行决定。
在本发明实施例中,通过将原文数据转换为加密数值,生成原文数据对应的数据树状结构,进而将数据树状结构中的树根数值进行上链存储,由于树根数值与原文数据存在唯一关系,可以用于验证原文数据是否存在恶意篡改,同时树根数值所需的存储空间很小,因而在保证数据完整性的情况下,进一步提升了区块链中区块节点设备的存储资源的可用空间,保证了对存储资源的合理使用;通过采用链上存储的树根数值对本地存储的原文数据进行验证,具体实现了在原文数据不进行链上存储的情况下仍然可以避免原文数据被恶意篡改的过程,有效的保证了数据的安全性。
基于图1和图2的实现框架,下面将结合附图12-附图16,对本发明实施例提供的数据存储设备进行详细介绍。需要说明的是,附图12-附图16所示的设备,具体可以为图1和图2所示实施例中的用户终端和存证终端,所述用户终端与所述存证终端具体可以为同一个终端设备,也可以为不同的终端设备,例如:用户终端用于执行存储阶段,存证终端用于执行验证阶段等,具体需要依据实际情况决定,附图12-附图16所示的设备,用于执行本发明图3-图11所示实施例的方法,为了便于说明,仅示出了与本发明实施例相关的部分,具体技术细节未揭示的,请参照本发明图3-图11所示的实施例。
请参见图12,为本发明实施例提供了一种数据存储设备的结构示意图。如图12所示,本发明实施例的所述数据存储设备1可以包括:加密数值获取单元11、树根数值获取单元12、第一数据存储单元13和第二数据存储单元14。
加密数值获取单元11,用于获取所输入的原始原文数据,获取所述原始原文数据的加密数值;
树根数值获取单元12,用于基于所述原始原文数据的加密数值生成所述原始原文数据对应的原始数据树状结构,获取所述原始数据树状结构的原始树根数值;
第一数据存储单元13,用于将所述原始树根数值上链存储至存证区块链的存储区块中,并记录所述存储区块对应的区块标识;
第二数据存储单元14,用于将所述原始原文数据和所述区块标识存储于本地存储设备中。
在本发明实施例中,通过将原文数据转换为加密数值,生成原文数据对应的数据树状结构,进而将数据树状结构中的树根数值进行上链存储,由于树根数值与原文数据存在唯一关系,可以用于验证原文数据是否存在恶意篡改,同时树根数值所需的存储空间很小,因而在保证数据完整性的情况下,进一步提升了区块链中区块节点设备的存储资源的可用空间,保证了对存储资源的合理使用。
请参见图13,为本发明实施例提供了一种数据存储设备的结构示意图。如图13所示,本发明实施例的所述数据存储设备1可以包括:加密数值获取单元11、树根数值获取单元12、第一数据存储单元13、第二数据存储单元14、账户信息存储单元15、集合获取单元16、原始数值获取单元17和数据验证单元18。
账户信息存储单元15,用于基于用户信息在存证区块链中获取账户信息,对所述账户信息进行存储;
加密数值获取单元11,用于获取所输入的原始原文数据,获取所述原始原文数据的加密数值;
树根数值获取单元12,用于基于所述原始原文数据的加密数值生成所述原始原文数据对应的原始数据树状结构,获取所述原始数据树状结构的原始树根数值;
具体的,在本发明实施例的第一种可行的实施方式中,请一并参见图14,为本发明实施例提供了树根数值获取单元的结构示意图。如图14所示,所述树根数值获取单元12可以包括:
第一数值获取子单元121,用于将所述原始原文数据的加密数值作为初始树状结构中叶子节点的数值,采用加密算法并基于所述叶子节点的数值获取所述初始树状结构中子节点的数值以及树根节点的数值;
第一树状结构生成子单元122,用于分别将所述叶子节点的数值、子节点的数值以及树根节点的数值添加至所述初始树状结构中,以得到所述原始原文数据对应的原始数据树状结构;
第一树根数值确定子单元123,用于将所述树根节点的数值确定为所述原始数据树状结构的原始树根数值。
具体的,在本发明实施例的第二种可行的实施方式中,请一并参见图15,为本发明实施例提供了树根数值获取单元的结构示意图。如图15所示,所述树根数值获取单元12可以包括:
加密数值获取子单元124,用于在原文数据集合中获取所述原始原文数据的关联数据,并获取所述关联数据的加密数值;
第二数值获取子单元125,用于将所述原始原文数据的加密数值以及所述关联数据的加密数值分别作为初始树状结构中叶子节点的数值,采用加密算法并基于所述叶子节点的数值获取所述初始树状结构中子节点的数值以及树根节点的数值;
第二树状结构生成子单元126,用于分别将所述叶子节点的数值、子节点的数值以及树根节点的数值添加至所述初始树状结构中,以得到所述原文数据对应的原始数据树状结构;
第二树根数值确定子单元127,用于将所述树根节点的数值确定为所述原始数据树状结构的原始树根数值。
第一数据存储单元13,用于将所述原始树根数值上链存储至存证区块链的存储区块中,并记录所述存储区块对应的区块标识;
第二数据存储单元14,用于将所述原始原文数据和所述区块标识存储于本地存储设备中;
集合获取单元16,用于获取所输入的验证数据集合,所述验证数据集合包括验证原文数据以及原始树根数值在存证区块链中的区块标识;
原始数值获取单元17,用于在所述存证区块链中获取所述区块标识对应的存储区块,在所述存储区块中获取所述原始树根数值;
数据验证单元18,用于基于所述原始树根数值对所述验证原文数据进行数据完整验证以得到验证结果;
具体的,请一并参见图16,为本发明实施例提供了数据验证单元的结构示意图。如图16所示,所述数据验证单元18可以包括:
验证数值获取子单元181,用于获取所述验证原文数据的加密数值;
树根数值获取子单元182,用于基于所述验证原文数据的加密数值生成所述验证原文数据对应的验证数据树状结构,获取所述验证数据树状结构的验证树根数值;
结果确定子单元183,用于当所述原始树根数值与所述验证树根数值相同时,确定所述原始原文数据与所述验证原文数据相同;
所述结果确定子单元183,还用于当所述原始树根数值与所述验证树根数值不相同时,确定所述原始原文数据与所述验证原文数据不相同。
在本发明实施例中,通过将原文数据转换为加密数值,生成原文数据对应的数据树状结构,进而将数据树状结构中的树根数值进行上链存储,由于树根数值与原文数据存在唯一关系,可以用于验证原文数据是否存在恶意篡改,同时树根数值所需的存储空间很小,因而在保证数据完整性的情况下,进一步提升了区块链中区块节点设备的存储资源的可用空间,保证了对存储资源的合理使用;通过采用链上存储的树根数值对本地存储的原文数据进行验证,具体实现了在原文数据不进行链上存储的情况下仍然可以避免原文数据被恶意篡改的过程,有效的保证了数据的安全性。
本发明实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质可以存储有多条程序指令,所述程序指令适于由处理器加载并执行如上述图3-图11所示实施例的方法步骤,具体执行过程可以参见图3-图11所示实施例的具体说明,在此不进行赘述。
请参见图17,为本发明实施例提供了一种计算机设备的结构示意图。如图17所示,所述计算机设备1000可以包括:至少一个处理器1001,例如CPU,至少一个网络接口1004,输入输出接口1003,存储器1005,至少一个通信总线1002。其中,通信总线1002用于实现这些组件之间的连接通信。其中,网络接口1004可选的可以包括标准的有线接口、无线接口(如WI-FI接口)。存储器1005可以是高速RAM存储器,也可以是非不稳定的存储器(non-volatile memory),例如至少一个磁盘存储器。存储器1005可选的还可以是至少一个位于远离前述处理器1001的存储装置。如图17所示,作为一种计算机可读存储介质的存储器1005中可以包括操作系统、网络通信模块、输入输出接口模块以及数据存储应用程序。
在图17所示的计算机设备1000中,输入输出接口1003主要用于为用户提供输入的接口,获取用户输入的数据。
在一个实施例中,处理器1001可以用于调用存储器1005中存储的数据存储应用程序,并具体执行以下操作:
获取所输入的原始原文数据,获取所述原始原文数据的加密数值;
基于所述原始原文数据的加密数值生成所述原始原文数据对应的原始数据树状结构,获取所述原始数据树状结构的原始树根数值;
将所述原始树根数值上链存储至存证区块链的存储区块中,并记录所述存储区块对应的区块标识;
将所述原始原文数据和所述区块标识存储于本地存储设备中;
其中,所述原始树根数值用于对本地存储设备中的原始原文数据进行数据完整验证。
可选的,所述处理器1001在执行获取所输入的原始原文数据之前,还执行以下步骤:
基于用户信息在存证区块链中获取账户信息,对所述账户信息进行存储。
可选的,所述处理器1001在执行基于所述原始原文数据的加密数值生成所述原始原文数据对应的原始数据树状结构,获取所述原始数据树状结构的原始树根数值时,具体执行以下步骤:
将所述原始原文数据的加密数值作为初始树状结构中叶子节点的数值,采用加密算法并基于所述叶子节点的数值获取所述初始树状结构中子节点的数值以及树根节点的数值;
分别将所述叶子节点的数值、子节点的数值以及树根节点的数值添加至所述初始树状结构中,以得到所述原始原文数据对应的原始数据树状结构;
将所述树根节点的数值确定为所述原始数据树状结构的原始树根数值。
可选的,所述处理器1001在执行基于所述原始原文数据的加密数值生成所述原始原文数据对应的原始数据树状结构,获取所述原始数据树状结构的原始树根数值时,具体执行以下步骤:
在原文数据集合中获取所述原始原文数据的关联数据,并获取所述关联数据的加密数值;
将所述原始原文数据的加密数值以及所述关联数据的加密数值分别作为初始树状结构中叶子节点的数值,采用加密算法并基于所述叶子节点的数值获取所述初始树状结构中子节点的数值以及树根节点的数值;
分别将所述叶子节点的数值、子节点的数值以及树根节点的数值添加至所述初始树状结构中,以得到所述原文数据对应的原始数据树状结构;
将所述树根节点的数值确定为所述原始数据树状结构的原始树根数值。
可选的,所述处理器1001在执行将所述原始原文数据和所述区块标识存储于本地存储设备中时,具体执行以下步骤:
将所述原始原文数据、所述原始数据树状结构和所述区块标识存储于本地存储设备中。
可选的,所述处理器1001还执行以下步骤:
获取所输入的验证数据集合,所述验证数据集合包括验证原文数据以及原始树根数值在存证区块链中的区块标识;
在所述存证区块链中获取所述区块标识对应的存储区块,在所述存储区块中获取所述原始树根数值;
基于所述原始树根数值对所述验证原文数据进行数据完整验证以得到验证结果。
可选的,所述处理器1001在执行基于所述原始树根数值对所述验证原文数据进行数据完整验证以得到验证结果时,具体执行以下步骤:
获取所述验证原文数据的加密数值;
基于所述验证原文数据的加密数值生成所述验证原文数据对应的验证数据树状结构,获取所述验证数据树状结构的验证树根数值;
当所述原始树根数值与所述验证树根数值相同时,确定所述原始原文数据与所述验证原文数据相同;
当所述原始树根数值与所述验证树根数值不相同时,确定所述原始原文数据与所述验证原文数据不相同。
在本发明实施例中,通过将原文数据转换为加密数值,生成原文数据对应的数据树状结构,进而将数据树状结构中的树根数值进行上链存储,由于树根数值与原文数据存在唯一关系,可以用于验证原文数据是否存在恶意篡改,同时树根数值所需的存储空间很小,因而在保证数据完整性的情况下,进一步提升了区块链中区块节点设备的存储资源的可用空间,保证了对存储资源的合理使用;通过采用链上存储的树根数值对本地存储的原文数据进行验证,具体实现了在原文数据不进行链上存储的情况下仍然可以避免原文数据被恶意篡改的过程,有效的保证了数据的安全性。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(Random AccessMemory,RAM)等。
以上所揭露的仅为本发明较佳实施例而已,当然不能以此来限定本发明之权利范围,因此依本发明权利要求所作的等同变化,仍属本发明所涵盖的范围。
Claims (10)
1.一种基于区块链的数据存储方法,其特征在于,包括:
获取所输入的原始原文数据,获取所述原始原文数据的加密数值;
基于所述原始原文数据的加密数值生成所述原始原文数据对应的原始数据树状结构,获取所述原始数据树状结构的原始树根数值;
将所述原始树根数值上链存储至存证区块链的存储区块中,并记录所述存储区块对应的区块标识;
将所述原始原文数据和所述区块标识存储于本地存储设备中;
其中,所述原始树根数值用于对本地存储设备中的原始原文数据进行数据完整验证。
2.根据权利要求1所述的方法,其特征在于,所述获取所输入的原始原文数据之前,还包括:
基于用户信息在存证区块链中获取账户信息,对所述账户信息进行存储;
则所述将所述原始树根数值上链存储至存证区块链的存储区块中,并记录所述存储区块对应的区块标识,包括:
基于所述账户信息将所述原始树根数值上链存储至存证区块链的存储区块中,并记录所述存储区块对应的区块标识。
3.根据权利要求1所述的方法,其特征在于,所述基于所述原始原文数据的加密数值生成所述原始原文数据对应的原始数据树状结构,获取所述原始数据树状结构的原始树根数值,包括:
将所述原始原文数据的加密数值作为初始树状结构中叶子节点的数值,采用加密算法并基于所述叶子节点的数值获取所述初始树状结构中子节点的数值以及树根节点的数值;
分别将所述叶子节点的数值、子节点的数值以及树根节点的数值添加至所述初始树状结构中,以得到所述原始原文数据对应的原始数据树状结构;
将所述树根节点的数值确定为所述原始数据树状结构的原始树根数值。
4.根据权利要求1所述的方法,其特征在于,所述基于所述原始原文数据的加密数值生成所述原始原文数据对应的原始数据树状结构,获取所述原始数据树状结构的原始树根数值,包括:
在原文数据集合中获取所述原始原文数据的关联数据,并获取所述关联数据的加密数值;
将所述原始原文数据的加密数值以及所述关联数据的加密数值分别作为初始树状结构中叶子节点的数值,采用加密算法并基于所述叶子节点的数值获取所述初始树状结构中子节点的数值以及树根节点的数值;
分别将所述叶子节点的数值、子节点的数值以及树根节点的数值添加至所述初始树状结构中,以得到所述原文数据对应的原始数据树状结构;
将所述树根节点的数值确定为所述原始数据树状结构的原始树根数值。
5.根据权利要求4所述的方法,其特征在于,所述将所述原始原文数据和所述区块标识存储于本地存储设备中,包括:
将所述原始原文数据、所述原始数据树状结构和所述区块标识存储于本地存储设备中。
6.根据权利要求1所述的方法,其特征在于,还包括:
获取所输入的验证数据集合,所述验证数据集合包括验证原文数据以及原始树根数值在存证区块链中的区块标识;
在所述存证区块链中获取所述区块标识对应的存储区块,在所述存储区块中获取所述原始树根数值;
基于所述原始树根数值对所述验证原文数据进行数据完整验证以得到验证结果。
7.根据权利要求6所述的方法,其特征在于,所述基于所述原始树根数值对所述验证原文数据进行数据完整验证以得到验证结果,包括:
获取所述验证原文数据的加密数值;
基于所述验证原文数据的加密数值生成所述验证原文数据对应的验证数据树状结构,获取所述验证数据树状结构的验证树根数值;
当所述原始树根数值与所述验证树根数值相同时,确定所述原始原文数据与所述验证原文数据相同;
当所述原始树根数值与所述验证树根数值不相同时,确定所述原始原文数据与所述验证原文数据不相同。
8.一种数据存储设备,其特征在于,包括:
加密数值获取单元,用于获取所输入的原始原文数据,获取所述原始原文数据的加密数值;
树根数值获取单元,用于基于所述原始原文数据的加密数值生成所述原始原文数据对应的原始数据树状结构,获取所述原始数据树状结构的原始树根数值;
第一数据存储单元,用于将所述原始树根数值上链存储至存证区块链的存储区块中,并记录所述存储区块对应的区块标识;
第二数据存储单元,用于将所述原始原文数据和所述区块标识存储于本地存储设备中;
其中,所述原始树根数值用于对本地存储设备中的原始原文数据进行数据完整验证。
9.一种计算机设备,其特征在于,包括处理器、存储器、输入输出接口;
所述处理器分别与所述存储器和所述输入输出接口相连,其中,所述输入输出接口用于页面交互,所述存储器用于存储程序代码,所述处理器用于调用所述程序代码,以执行如权利要求1-7任一项所述的方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,所述计算机程序包括程序指令,所述程序指令当被处理器执行时,执行如权利要求1-7任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911135689.8A CN110866265A (zh) | 2019-11-19 | 2019-11-19 | 一种基于区块链的数据存储方法、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911135689.8A CN110866265A (zh) | 2019-11-19 | 2019-11-19 | 一种基于区块链的数据存储方法、设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110866265A true CN110866265A (zh) | 2020-03-06 |
Family
ID=69654946
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911135689.8A Pending CN110866265A (zh) | 2019-11-19 | 2019-11-19 | 一种基于区块链的数据存储方法、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110866265A (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111429278A (zh) * | 2020-03-19 | 2020-07-17 | 武汉谦屹达管理咨询有限公司 | 一种基于5g和区块链的金融大数据处理系统及方法 |
CN111966749A (zh) * | 2020-08-04 | 2020-11-20 | 中国科学院上海微系统与信息技术研究所 | 一种数据处理方法、装置、电子设备及存储介质 |
CN112001731A (zh) * | 2020-04-02 | 2020-11-27 | 支付宝(杭州)信息技术有限公司 | 区块链账户余额的存证、恢复方法及装置 |
CN113569299A (zh) * | 2021-08-02 | 2021-10-29 | 深圳大学 | 基于区块链的完整数据溯源方法、装置及相关设备 |
CN115150173A (zh) * | 2022-06-30 | 2022-10-04 | 合肥学院 | 具有双向存储结构的去中心化数据云安全存储系统及方法 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106815530A (zh) * | 2016-12-26 | 2017-06-09 | 北京爱接力科技发展有限公司 | 数据存证方法、数据校验方法及装置 |
CN108696511A (zh) * | 2018-04-24 | 2018-10-23 | 深圳市元征科技股份有限公司 | 一种基于区块链的信息公示方法、装置及相关设备 |
CN109727134A (zh) * | 2018-12-29 | 2019-05-07 | 北京奇虎科技有限公司 | 一种图片的版权交易方法及装置 |
CN109784987A (zh) * | 2018-12-29 | 2019-05-21 | 北京奇虎科技有限公司 | 一种图片版权收益方法及装置 |
CN110175316A (zh) * | 2019-05-27 | 2019-08-27 | 北京亿生生网络科技有限公司 | 一种基于区块链的媒体号交互方法、系统及存储介质 |
CN110347645A (zh) * | 2019-06-19 | 2019-10-18 | 阿里巴巴集团控股有限公司 | 一种电子文件存证方法及装置 |
CN110348825A (zh) * | 2019-06-26 | 2019-10-18 | 阿里巴巴集团控股有限公司 | 基于区块链的电子票据下发方法及装置和电子设备 |
-
2019
- 2019-11-19 CN CN201911135689.8A patent/CN110866265A/zh active Pending
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106815530A (zh) * | 2016-12-26 | 2017-06-09 | 北京爱接力科技发展有限公司 | 数据存证方法、数据校验方法及装置 |
CN108696511A (zh) * | 2018-04-24 | 2018-10-23 | 深圳市元征科技股份有限公司 | 一种基于区块链的信息公示方法、装置及相关设备 |
CN109727134A (zh) * | 2018-12-29 | 2019-05-07 | 北京奇虎科技有限公司 | 一种图片的版权交易方法及装置 |
CN109784987A (zh) * | 2018-12-29 | 2019-05-21 | 北京奇虎科技有限公司 | 一种图片版权收益方法及装置 |
CN110175316A (zh) * | 2019-05-27 | 2019-08-27 | 北京亿生生网络科技有限公司 | 一种基于区块链的媒体号交互方法、系统及存储介质 |
CN110347645A (zh) * | 2019-06-19 | 2019-10-18 | 阿里巴巴集团控股有限公司 | 一种电子文件存证方法及装置 |
CN110348825A (zh) * | 2019-06-26 | 2019-10-18 | 阿里巴巴集团控股有限公司 | 基于区块链的电子票据下发方法及装置和电子设备 |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111429278A (zh) * | 2020-03-19 | 2020-07-17 | 武汉谦屹达管理咨询有限公司 | 一种基于5g和区块链的金融大数据处理系统及方法 |
CN112001731A (zh) * | 2020-04-02 | 2020-11-27 | 支付宝(杭州)信息技术有限公司 | 区块链账户余额的存证、恢复方法及装置 |
CN112001731B (zh) * | 2020-04-02 | 2022-05-24 | 支付宝(杭州)信息技术有限公司 | 区块链账户余额的存证、恢复方法及装置 |
CN111966749A (zh) * | 2020-08-04 | 2020-11-20 | 中国科学院上海微系统与信息技术研究所 | 一种数据处理方法、装置、电子设备及存储介质 |
CN111966749B (zh) * | 2020-08-04 | 2021-08-17 | 中国科学院上海微系统与信息技术研究所 | 一种数据处理方法、装置、电子设备及存储介质 |
CN113569299A (zh) * | 2021-08-02 | 2021-10-29 | 深圳大学 | 基于区块链的完整数据溯源方法、装置及相关设备 |
CN113569299B (zh) * | 2021-08-02 | 2023-09-29 | 深圳大学 | 基于区块链的完整数据溯源方法、装置及相关设备 |
CN115150173A (zh) * | 2022-06-30 | 2022-10-04 | 合肥学院 | 具有双向存储结构的去中心化数据云安全存储系统及方法 |
CN115150173B (zh) * | 2022-06-30 | 2023-09-29 | 合肥学院 | 具有双向存储结构的去中心化数据云安全存储系统及方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110933163B (zh) | 区块链合约部署方法、装置、设备以及存储介质 | |
CN110601853B (zh) | 一种区块链私钥生成方法以及设备 | |
CN110866265A (zh) | 一种基于区块链的数据存储方法、设备及存储介质 | |
CN111080295A (zh) | 一种基于区块链的电子合同处理方法以及设备 | |
CN110263585A (zh) | 测试监管方法、装置、设备及存储介质 | |
CN108197891A (zh) | 一种基于区块链的电子签约装置及方法 | |
CN110602116B (zh) | 基于区块链的数据验证方法、装置和计算机可读存储介质 | |
CN108600163B (zh) | 一种云环境分布式哈希链架构及云数据完整性验证方法 | |
CN111488372A (zh) | 一种数据处理方法、设备及存储介质 | |
CN111444211A (zh) | 区块链共识节点校验方法、装置、设备以及存储介质 | |
CN110601896B (zh) | 一种基于区块链节点的数据处理方法以及设备 | |
CN112700246B (zh) | 基于区块链的数据处理方法、装置、设备及可读存储介质 | |
CN111222841A (zh) | 一种基于区块链的数据分配方法及其设备、存储介质 | |
CN110968644A (zh) | 一种数据处理方法以及设备 | |
CN111339141A (zh) | 一种数据传输的方法、区块链节点设备以及介质 | |
CN110825776B (zh) | 空气质量检测报告处理方法、装置及计算设备、存储介质 | |
CN111274597A (zh) | 一种数据处理方法以及设备 | |
CN110647583A (zh) | 一种区块链构建方法、装置、终端及介质 | |
CN111431988A (zh) | 一种基于区块链的车辆信息存储方法、设备及存储介质 | |
CN112200680B (zh) | 区块链节点管理方法、装置、计算机以及可读存储介质 | |
CN112069529B (zh) | 基于区块链的卷宗管理方法、装置、计算机以及存储介质 | |
CN111327602B (zh) | 一种设备接入处理方法、设备及存储介质 | |
CN113129002A (zh) | 一种数据处理方法以及设备 | |
CN110601850B (zh) | 一种景点信息记录方法及相关设备、存储介质 | |
CN111427923A (zh) | 一种基于区块链的车辆信息查询方法、设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 40021500 Country of ref document: HK |