CN111090385A - 一种基于区块链的数据管理方法及装置 - Google Patents
一种基于区块链的数据管理方法及装置 Download PDFInfo
- Publication number
- CN111090385A CN111090385A CN201811234654.5A CN201811234654A CN111090385A CN 111090385 A CN111090385 A CN 111090385A CN 201811234654 A CN201811234654 A CN 201811234654A CN 111090385 A CN111090385 A CN 111090385A
- Authority
- CN
- China
- Prior art keywords
- data
- directory
- uplink
- block chain
- updated
- 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
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0608—Saving storage space on storage systems
-
- 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/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6218—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/062—Securing storage systems
- G06F3/0623—Securing storage systems in relation to content
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/067—Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
Abstract
本申请提供了一种基于区块链的数据管理方法及装置,将该数据对应的数据目录存储到区块链中,数据本身仍存储在数据所有方中。数据目录是待存储的数据的描述信息,数据目录的大小远远小于数据本身的大小。因此,解决了区块链对存储数据量的限制。而且,采用区块链技术存储数据目录,数据本身仍存储在各自的数据所有方,因此,实现去中心化数据存储。而且,数据目录存储到区块链中保证数据目录的不可篡改和伪造。此外,数据目录包含的内容丰富能够详细地描述待存储的数据,因此能够更好地实现数据管理。
Description
技术领域
本发明属于计算机领域,尤其涉及一种基于区块链的数据管理方法及装置。
背景技术
区块链是一种结合了分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式,具有不可篡改、可追溯的特点。
目前,基于区块链的数据存储方式是将数据加密后存储到区块链上,但是,区块链上存储数据的空间有限,因此,这种直接将数据存储到区块链上的方式存储的数据量有限。此外,区块链的不可修改的特性,因此如果数据发生变化无法修改区块链中的数据。
发明内容
有鉴于此,本发明的目的在于提供一种基于区块链的数据管理方法及装置,以解决直接将数据存储到区块链上存储数据量有限及无法修改的技术问题。
第一方面,本申请提供了一种基于区块链的数据管理方法,应用于数据所有方,所述方法包括:
生成待存储数据的数据目录,该数据目录为数据的描述信息;
依据所述数据目录得到待上链数据;
将所述待上链数据上传至区块链进行存储。
可选地,依据所述数据目录得到待上链数据,包括:
利用散列函数对所述数据目录进行计算,并利用私钥对计算后的结果进行签名,得到所述待上链数据。
可选地,所述方法还包括:
获取所述待存储数据对应的更新后的数据目录及该更新后的数据目录对应的当前最新数据版本号;
利用散列函数对该更新后的数据目录进行计算,并利用私钥对计算后的结果进行签名得到待更新上链数据;
将所述待更新上链数据发送至区块链,以使所述区块链对该待更新上链数据验证成功后将该待更新上链数据写入当前最新区块中,以及使服务器将所述当前最新区块的区块标识及所述待更新上链数据对应的当前最新数据版本号记录到倒排索引中,并将该倒排索引存储到该当前最新区块中。
可选地,所述方法还包括:
向所述区块链发送数据查询指令,该数据查询指令包含要查询的数据目录的版本信息及查询条件,所述区块链依据所述倒排索引查找到与版本信息及查询条件相匹配的目标数据目录;
接收所述区块链返回的目标数据目录;
根据所述目标数据目录查询得到对应的目标数据内容。
第二方面,本申请还提供了一种基于区块链的数据管理方法,应用于区块链,所述方法包括:
获取待上链数据,该待上链数据由数据所有方将待存储数据的数据目录得到,所述数据目录为所述待存储数据的描述信息;
对所述待上链数据的准确性验证成功后,存储所述待上链数据。
可选地,获取待上链数据,包括:
接收数据所有方发起的数据上链交易,该数据上链交易携带待上链数据;
解析所述数据上链交易得到所述待上链数据。
可选地,对所述待上链数据的准确性验证成功后,存储所述待上链数据,包括:
验证发送所述数据上链交易的数据所有方与所述待上链数据的数据所有方是否是同一个数据所有方;
如果是同一个数据所有方,则确定随所述待上链数据的准确性验证成功;
如果不是同一个数据所有方,则确定所述待上链数据的准确性验证失败。
可选地,所述方法还包括:
获取数据所有方发送的待更新上链数据,该待更新上链数据由数据所有方根据待存储数据对应的更新后的数据目录利用散列函数进行计算处理得到;
对所述待更新上链数据验证成功后,将该待更新上链数据写入当前最新区块中;
并将所述当前最新区块的区块标识及所述待更新上链数据对应的当前最新数据的版本号记录到倒排索引中,并将该倒排索引存储到该当前最新区块中。
可选地,所述方法还包括:
接收数据查询指令,该查询指令由数据所有方或数据使用方产生,且该数据查询指令包含要查询的数据目录的版本信息及查询条件;
依据倒排索引查找符合所述查询条件及所述数据目录的版本信息的目标数据目录;
返回该目标数据目录,以便发送数据查询指令的一方依据该目标数据目录查找到目标数据内容。
第三方面,本申请还提供了一种基于区块链的数据管理装置,应用于数据所有方,所述装置包括:
生成模块,用于生成待存储数据的数据目录,该数据目录为数据的描述信息;
第一获取模块,用于根据所述数据目录得到待上链数据;
数据上传模块,用于将所述待上链数据上传至区块链进行存储。
第四方面,本申请还提供了一种基于区块链的数据管理装置,应用于区块链,所述装置包括:
第一获取模块,用于获取待上链数据,该待上链数据由数据所有方根据待存储数据的数据目录得到,所述数据目录为所述待存储数据的描述信息;
存储模块,用于对所述待上链数据的准确性验证成功后,存储所述待上链数据。
本实施例提供的基于区块链的数据管理方法,不是将数据本身存储到区块链中,而是将该数据对应的数据目录存储到区块链中;数据本身仍存储在数据所有方中。数据目录是待存储的数据的描述信息,数据目录的大小远远小于数据本身的大小。因此,解决了区块链对存储数据量的限制。而且,采用区块链技术存储数据目录,数据本身仍存储在各自的数据所有方,因此实现去中心化数据存储。而且,数据目录存储到区块链中保证数据目录的不可篡改和伪造。此外,数据目录包含的内容丰富能够详细地描述待存储的数据,因此能够更好地实现数据管理。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例提供的一种基于区块链的数据管理系统的示意图;
图2是本申请实施例提供的一种基于区块链的数据管理方法的流程图;
图3是本申请实施例提供的另一种基于区块链的数据管理方法的流程图;
图4是本申请实施例提供的又一种基于区块链的数据管理方法的流程图;
图5是本申请实施例提供的一种基于区块链的数据管理装置的框图;
图6是本申请实施例提供的另一种基于区块链的数据管理装置的框图;
图7是本申请实施例提供的一种基于区块链的数据管理装置的框图。
具体实施方式
目前将数据存储到区块链的方式,将数据直接存储到区块链上,而区块链上存储数据的空间有限,此种方式能够存储的数据量有限,例如,比特币的交易注释字段只有40Bytes,以太坊交易的payload的大小为32KB。而且,区块链具有不可修改的特点,如果数据发生变化则无法修改区块链中的数据。为了解决上述问题,本申请提供了一种基于区块链的数据存储方法,该方法不在区块链中存储数据本身,只在区块链中存储数据目录(即,数据的描述信息),只需要在数据目录上提供数据的获取方式(例如,数据库地址、URL连接、HDFS存储地址等);数据目录的大小远远小于数据本身的大小,因此,解决了区块链对存储数据量的限制。而且,通过对数据目录的管理实现对数据的管理。
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
请参见图1,示出了本申请实施例一种基于区块链的数据管理系统的示意图,如图1所示,该系统包括数据所有方、区块链和数据使用方。
数据所有方是指具有数据所有权的一方,例如,患者诊断病例数据的数据所有方是医院,用户信用数据的数据所有方是银行。
数据使用方是指需要使用数据的一方,例如,保险公司需要使用用户病例数据和用户银行信用数据来给保单定价,此种应用场景下保险公司是数据使用方。
区块链是基于互联网技术的新型应用模式,结合了分布式数据存储、点对点传输、共识机制、加密算法等技术。
数据所有方可以将数据目录存储到区块链中,并对数据目录进行管理,例如,管理数据目录的版本。还可以对区块链中的数据目录进行查找。
数据使用方的用户可以从区块链中查找到相应的数据目录,进而根据数据目录中的获取方式从数据所有方获取到该数据目录所描述的数据。
请参见图2,示出了本申请实施例一种基于区块链的数据管理方法的流程图,本实施例将着重介绍向区块链存储数据的过程,即数据上链过程,其中数据上链是将数据目录存储到区块链上,保证数据不可伪造和篡改,而且,只有数据所有方有权对数据进行修改。
如图2所示,该方法可以包括以下步骤:
S110,数据所有方生成待存储数据的数据目录。
本申请中,数据目录即数据的描述信息,可以包括数据名称、类型、状态、描述、创建方、数据索引、获取方式(例如,数据库地址、URL连接、HDFS存储地址等)等信息。
在本申请的一个实施例中,为了更全面地、从不同的维度描述数据,数据目录可以配置多个层级,可以根据实际需求配置具体层级的数量。相邻层级之间是包含关系,上一层级包含下一层级,下一层级的目录可以属于不同的上一层级。例如,配置有市场(例如,开放市场、个人市场)、类型(例如,政务、医疗)和资产(具体的数据内容)三个层级目录,其中,数据市场包含不同的数据类型,数据类型包含了不同的数据资产;一个数据资产可以属于多个数据类型。
每个层级目录包括固定字段和扩展字段;固定字段包括:目录ID(用于唯一标识该层级的一个数据目录)、数据目录名称、目录发布机构、关键字、数据格式(最低层的具体数据目录需要,上层数据目录不需要)、数据摘要、获取方式(最低层的具体数据目录需要,上层数据目录不需要)、目录状态、发布时间、数据版本、所属的上级目录ID、包含的下级目录ID。扩展字段可以是json格式的字符串,用于对数据目录的信息进行扩展,例如,扩展字段可以包括:数据注释、数据类型、是否共享、解析方式等。
S120,数据所有方利用散列函数对所述数据目录进行计算,并利用私钥对计算后的结果进行签名,得到待上链数据。
在一种可能的实现方式中,可以采用散列函数对数据目录进行计算,散列函数即hash函数,将任意长度的输入通过散列函数变换成固定长度的输出,该输出即散列值。其中,散列函数可以采用MD5、SHA1、SHA256等函数。
为了表明该待上链数据目录是数据所有方发起,数据所有方对计算后的结果利用数据所有方的私钥进行签名。待上链数据包括计算后的结果及签名。
待上链数据需要发送到区块链。在数据上链之前,需要对上链的数据进行序列化,序列化是将数据分解成字节流,以便存储在文件中或在网络上传输。
S130,数据所有方发起数据上链交易,并利用私钥对该数据上链交易进行签名,该数据上链交易包含待上链数据及签名。
数据上链时,数据所有方发起数据上链交易,将待上链数据存储在数据上链交易的payload中发送至区块链。
为了保证数据上链交易和待上链数据属于同一个数据所有方,数据所有方生成数据上链交易后,利用自己的私钥对该数据上链交易进行签名。
S140,区块链接收到数据上链交易后,对该数据上链交易的签名进行验证;若验证通过,则执行S150;若验证失败,则结束当前流程。
本文将区块链上负责处理交易、打包区块的节点称为出块节点。
区块链上的节点接收到数据上链交易后解析该数据上链交易得到该数据上链交易所包含的待上链数据,然后,对该数据上链交易进行验证。
验证数据上链交易的签名过程:验证该数据上链交易的签名和待上链数据所包含的签名是否是同一个数据所有方的签名,若是,则验证通过;若否,则验证失败。这样保证了待上链数据目录是发起数据上链交易的数据所有方的数据。
区块链上的一个节点接收到数据上链交易后广播给其它节点,各个节点接收并处理数据上链交易,并由区块链的共识机制确定出具有记账权的出块节点,即由该出块节点生成区块并存储该数据上链交易中的数据目录。
S150,区块链将该待上链数据存储到当前最新区块中。
通过共识算法确定出具有记账权的出块节点,该具有记账权的出块节点生成区块(即,当前最新区块),并将待上链数据目录存储到该区块中。
具有记账权的出块节点向其它节点广播存储有待上链数据目录的区块,其它节点接收所述区块并对该区块验证通过后存入自身节点内,保证区块链的所有节点都存储该数据目录,保证数据的一致性。
在本申请的一个实施例中,区块链中的每个区块上都创建一个用于存储数据目录的MPT树。MPT(Merkle Patricia Tree)树结合了MerkelTree和PatricaTree两种树的特点,数据存储结构为Key-Value,具有加密安全、查找、验证效率高的特点,主要用在以太坊的账户状态、交易、收据信息的存储。
其中,数据目录上链交易中包含的待上链数据(即,计算后的结果和签名)组合在一起序列化后存入MPT树的Value值,对该Value值利用哈希函数进行运算得到一个哈希值作为存入MPT树的Key。
本实施例提供的基于区块链的数据管理方法,不是将数据本身存储到区块链中,而是将该数据对应的数据目录存储到区块链中;数据本身仍存储在数据所有方中。数据目录是待存储的数据的描述信息,数据目录的大小远远小于数据本身的大小。因此,解决了区块链对存储数据量的限制。而且,采用区块链技术存储数据目录,数据本身仍存储在各自的数据所有方,因此实现去中心化数据存储。而且,数据目录存储到区块链中保证数据目录的不可篡改和伪造。此外,数据目录包含的内容丰富能够详细地描述待存储的数据,因此能够更好地实现数据管理。
请参见图3,示出了本申请实施例提供的另一种基于区块链的数据管理方法的流程图,本实施例将着重介绍对区块链中存储的数据目录的管理过程。
数据目录上链后,如果需要对数据目录进行修改,则需要对数据目录进行版本更新,历史版本仍保留在区块链上并可以进行查找。最新的数据目录保存在最新区块上。
如图3所示,该方法可以包括以下步骤:
S210,数据所有方获取更新后的数据目录,生成更新后的数据目录对应的当前最新数据版本号,利用散列函数对该更新后的数据目录进行计算以及利用私钥对计算后的结果进行签名得到待更新上链数据。
数据所有方对自身存储的数据进行修改后,需要同步更新修改的数据相对应的数据目录,得到更新后的数据目录;以及,生成该更新后的数据目录对应的数据版本号,即当前最新数据版本号。
数据所有方得到更新后的数据目录后,可以利用散列函数对该更新后的数据目录进行计算,并利用私钥对计算后的结果进行签名,最后,对计算后的结果及签名进行序列化。此过程与数据上链中计算、签名、序列化的过程相同。
S220,数据所有方发起数据版本更新交易,并利用私钥对该数据版本更新交易进行签名,该数据版本更新交易包含所述待更新上链数据。
将S210得到的待更新上链数据,即计算后的结果及签名存储在数据版本更新交易的payload字段中。
S230,区块链接收到数据版本更新交易后,对该数据版本更新交易的签名进行验证;若验证通过,则执行S240;若验证失败,则结束当前流程。
区块链上的节点解析该数据版本更新交易获得加密后的新数据目录及对应的签名,然后,验证数据版本更新交易的签名和加密后的新数据目录的签名是否是同一个数据所有方的签名,若是,则验证通过;若否,则验证失败。这样,能够保证待更新上链数据是发起数据版本更新交易的数据所有方的数据。
S240,区块链将所述待更新上链数据写入当前最新区块中,并将该当前最新区块的区块标识及当前最新数据版本号记录到倒排索引中,并将该倒排索引存储到该当前最新区块中。
区块链上的一个节点接收到数据版本更新交易后广播给其它节点,然后通过共识机制确定出具有记账权的节点,由该节点生成新的区块,并将数据版本更新交易中的数据目录存入该区块中。与此同时,将该区块的区块标识及新数据目录的数据版本号对应记录到倒排索引中,并将该倒排索引存入该当前最新区块中。
在本实施例中,在数据目录存储的MPT树上,存储数据目录的Value中包含一个数据版本与区块标识的倒排索引。以便后续通过该倒排索引查找数据目录。
例如,通过数据目录中的目录ID唯一确定出该数据目录的历史数据版本号,并根据历史数据版本号生成新的数据版本号。并将存储新的数据目录的区块标识记录到倒排索引中。
具有记账权限的节点将新数据目录和所述倒排索引打包存储在最新区块中,即最新的数据目录都存储到最新区块中。
在本申请的一个实施例中,区块标识可以是区块高度或区块头的哈希值;区块高度是指该区块在区块链中的位置。区块头的哈希值是通过哈希算法(例如,SHA256)对区块头进行二次哈希计算而得到的数字。区块哈希值可以唯一、明确地标识一个区块,并且任何节点通过简单地对区块头进行哈希计算都可以独立地获取该区块哈希值。
本实施例提供的基于区块链的数据管理方法,数据目录上链后,如果需要修改数据目录,则需要对数据目录进行版本更新,即在区块链中增加更新后的数据目录对应的数据版本,历史版本的数据目录仍保存在区块链中以便后续进行查找。该方法通过更新数据目录版本实现对数据目录的管理,例如,版本管理、状态管理、查找、创建、分类等。
请参见图4,示出了本申请实施例又一种基于区块链的数据管理方法的流程图。本实施例将着重介绍数据目录的查找过程,其中数据查找过程可以包括查找历史版本的数据目录、最新版本的数据目录,本实施例将着重介绍查找历史版本的数据目录的过程。
如图4所示,查找历史版本的数据目录的过程包括以下步骤:
S310,区块链接收数据查询指令,该数据查询指令包含要查询的数据目录的版本信息及查询条件。
数据查找过程可以由数据所有方发起,或由数据使用方发起。
区块链上的一个节点接收到数据查询条件后,解析该查询指令获得本次将要查询的数据目录的版本信息及查询条件,例如,数据版本号、具体要查询的数据内容。其中,可以查询各个版本的数据目录。区块链对应的任意一个节点内存储的数据都相同,因此,任意一个节点接收并处理该查询指令。
S320,区块链查询当前最新区块中记录的数据目录版本与区块标识的倒排索引,获取版本信息对应的目标区块标识。
接收到查询指令的节点查询当前最新区块上存储的倒排索引,得到存储有要查询的数据目录的区块对应的区块标识,即目标区块标识。
S330,区块链获取目标区块标识对应的区块中存储的数据目录。
接收到查询指令的节点从目标区块标识的区块中读取要查询的数据目录。
在本申请的一种应用场景下,区块中以MPT树的形式存储数据目录,此种应用场景下,通过记录在目标区块标识对应的区块中的MPT树的根节点哈希值构建该区块中的MPT树,再遍历该MPT树查找到查询条件对应的数据目录。
S340,区块链根据查询条件从目标区块标识对应区块存储的数据目录中查询得到目标数据。
在查找具体的数据目录内容时,可以按查询条件直接查找,或者,可以按照数据目录层级逐层查找。
按数据目录层级查找的方式,先在高层级的数据目录中查找到对应的数据目录,然后,获取查找到的高层级数据目录的下级数据目录,逐级递进,最后得到具体的数据目录。
相应于上述的方法实施例,本申请还提供了基于区块链的数据关联装置实施例。
请参见图5,示出了本申请实施例一种基于区块链的数据管理装置的框图,该装置应用于数据所有方中,如图5所示,该装置可以包括:生成模块110、第一获取模块120和数据上传模块130;
生成模块110,用于生成待存储数据的数据目录,该数据目录为数据的描述信息。
数据所有方生成待存储数据的数据目录,该数据目录表征待存储数据的描述信息。
第一获取模块120,用于根据数据目录得到待上链数据。
该第一获取模块120采用散列函数对数据目录进行计算,并利用私钥对计算后的结果进行签名,得到待上链数据。
待上链数据包括散列函数计算后的结果及签名。
数据上传模块130,用于将待上链数据上传至区块链进行存储。
数据上链时,数据所有方发起数据上链交易,为了保证数据上链交易和待上传数据目录属于同一个数据所有方,数据所有方生成数据上链交易后,利用自己的私钥对该数据上链交易进行签名。
区块链上的节点接收到数据上链交易后解析该数据上链交易得到该数据上链交易所包含的待上链数据,然后,对该数据上链交易的签名进行验证。验证成功后,将待上链数据写入当前最新区块中。
本实施例提供的基于区块链的数据管理装置,不是将数据本身存储到区块链中,而是将该数据对应的数据目录存储到区块链中;数据本身仍存储在数据所有方中。数据目录是待存储的数据的描述信息,数据目录的大小远远小于数据本身的大小。因此,解决了区块链对存储数据量的限制。而且,采用区块链技术存储数据目录,数据本身仍存储在各自的数据所有方,因此实现去中心化数据存储。而且,数据目录存储到区块链中保证数据目录的不可篡改和伪造。此外,数据目录包含的内容丰富能够详细地描述待存储的数据,因此能够更好地实现数据管理。
请参见图6,示出了本申请实施例提供的另一种基于区块链的数据管理装置框图,该装置在图5所示实施例的基础上还包括数据目录更新和数据查找功能。本实施例提供的装置可以在图5所示实施例的基础上还包括:获取模块210、第二获取模块220、更新模块230、发送模块240、接收模块250和查询模块260;
获取模块210,用于获取待存储数据对应的更新后的数据目录及该更新后的数据目录对应的当前最新数据版本号。
第二获取模块220,用于利用散列函数对该更新后的数据目录进行计算,并利用私钥对计算后的结果进行签名,得到待更新上链数据;
更新模块230,用于将所述待更新上链数据发送至区块链;
区块链对该待更新上链数据验证成功后将该待更新上链数据写入当前最新区块中,以及将当前最新区块的区块标识及该待更新上链数据对应的当前最新数据版本号记录到倒排索引中,并将该倒排索引存储到该当前最新区块中。
发送模块240,用于向区块链发送数据查询指令。
数据所有方或数据使用方通过该发送模块向区块链发送数据查询指令。
该数据查询指令包含要查询的数据目录的版本信息及查询条件;区块链依据所述倒排索引查找到与版本信息及查询条件相匹配的目标数据目录。
接收模块250,用于接收区块链返回的目标数据目录。
数据所有方或数据使用方通过接收模块250接收区块链返回的目标数据目录。
查询模块260,用于根据目标数据目录查询得到对应的目标数据内容。
数据所有方或数据使用方通过查询模块查找目标数据目录对应的目标数据内容。
本实施例提供的基于区块链的数据管理装置,数据目录上链后,如果需要修改数据目录,则需要对数据目录进行版本更新,即在区块链中增加更新后的数据目录对应的数据版本,历史版本的数据目录仍保存在区块链中以便后续进行查找。可以查找最新版本的数据目录,进而依据最新版本的数据目录查找对应的最新的数据内容;还可以查找历史版本的数据目录,并依据历史版本的数据目录查找到历史数据内容。
相应于上述应用于数据所有方的装置实施例,本申请还提供了应用于区块链中的装置实施例。
请参见图7,示出了本申请实施例提供的一种基于区块链的数据管理装置的框图,该装置应用于区块链中,如图7所示,该装置可以包括:第一获取模块310和存储模块320;
第一获取模块310,用于获取待上链数据。
该待上链数据由数据所有方根据待存储数据的数据目录得到,所述数据目录为所述待存储数据的描述信息。
区块链接收数据所有方发起的数据上链交易,该数据上链交易携带待上链数据;通过解析所述数据上链交易得到所述待上链数据,该待上链数据包括利用散列函数对待存储数据的数据目录进行计算后的结果,以及利用私钥对该计算后的结果进行的签名。
存储模块320,用于对所述待上链数据的准确性验证成功后,存储所述待上链数据。
根据数据上链交易的签名和待上链数据中的签名验证发送所述数据上链交易的数据所有方与所述待上链数据的数据所有方是否是同一个数据所有方;如果两个签名一致,则表明是同一个数据所有方,即准确性验证成功;如果两个签名不一致,则表明不是同一个数据所有方,准确性验证失败。
可选地,在本申请的其它实施例中,该装置还可以包括:
第二获取模块330,用于获取数据所有方发送的待更新上链数据。
该待更新上链数据由数据所有方根据待存储数据对应的更新后的数据目录进行得到。
数据更新模块340,用于对所述待更新上链数据验证成功后,将该待更新上链数据写入当前最新区块中。
记录模块350,用于将当前最新区块的区块标识及待更新上链数据对应的当前最新数据的版本号记录到倒排索引中,并将该倒排索引存储到该当前最新区块中。
接收模块360,用于接收数据查询指令,该查询指令由数据所有方或数据使用方产生,且该数据查询指令包含要查询的数据目录的版本信息及查询条件;
查询模块370,用于依据倒排索引查找符合所述查询条件及所述数据目录的版本信息的目标数据目录;
返回模块380,用于返回该目标数据目录,以便发送数据查询指令的一方依据该目标数据目录查找到目标数据内容。
本实施例提供的基于区块链的数据管理装置,将该数据对应的数据目录存储到区块链中;数据本身仍存储在数据所有方中。数据目录是待存储的数据的描述信息,数据目录的大小远远小于数据本身的大小,因此,解决了区块链对存储数据量的限制。而且,采用区块链技术存储数据目录,数据本身仍存储在各自的数据所有方,因此实现去中心化数据存储。数据目录上链后,如果需要修改数据目录,则需要对数据目录进行版本更新,即在区块链中增加更新后的数据目录对应的数据版本,历史版本的数据目录仍保存在区块链中以便后续进行查找。可以查找最新版本的数据目录,进而依据最新版本的数据目录查找对应的最新的数据内容;还可以查找历史版本的数据目录,并依据历史版本的数据目录查找到历史数据内容。
对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。
需要说明的是,本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。对于装置类实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
本申请各实施例方法中的步骤可以根据实际需要进行顺序调整、合并和删减。
本申请各实施例中的装置及终端中的模块和子模块可以根据实际需要进行合并、划分和删减。
本申请所提供的几个实施例中,应该理解到,所揭露的终端,装置和方法,可以通过其它的方式实现。例如,以上所描述的终端实施例仅仅是示意性的,例如,模块或子模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个子模块或模块可以结合或者可以集成到另一个模块,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或模块的间接耦合或通信连接,可以是电性,机械或其它的形式。
作为分离部件说明的模块或子模块可以是或者也可以不是物理上分开的,作为模块或子模块的部件可以是或者也可以不是物理模块或子模块,即可以位于一个地方,或者也可以分布到多个网络模块或子模块上。可以根据实际的需要选择其中的部分或者全部模块或子模块来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能模块或子模块可以集成在一个处理模块中,也可以是各个模块或子模块单独物理存在,也可以两个或两个以上模块或子模块集成在一个模块中。上述集成的模块或子模块既可以采用硬件的形式实现,也可以采用软件功能模块或子模块的形式实现。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
对所公开的实施例的上述说明,使本领域技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
Claims (11)
1.一种基于区块链的数据管理方法,其特征在于,应用于数据所有方,所述方法包括:
生成待存储数据的数据目录,该数据目录为数据的描述信息;
依据所述数据目录得到待上链数据;
将所述待上链数据上传至区块链进行存储。
2.根据权利要求1所述的方法,其特征在于,依据所述数据目录得到待上链数据,包括:
利用散列函数对所述数据目录进行计算,并利用私钥对计算后的结果进行签名,得到所述待上链数据。
3.根据权利要求1所述的方法,其特征在于,所述方法还包括:
获取所述待存储数据对应的更新后的数据目录及该更新后的数据目录对应的当前最新数据版本号;
利用散列函数对该更新后的数据目录进行计算,并利用私钥对计算后的结果进行签名得到待更新上链数据;
将所述待更新上链数据发送至区块链,以使所述区块链对该待更新上链数据验证成功后将该待更新上链数据写入当前最新区块中,以及使服务器将所述当前最新区块的区块标识及所述待更新上链数据对应的当前最新数据版本号记录到倒排索引中,并将该倒排索引存储到该当前最新区块中。
4.根据权利要求3所述的方法,其特征在于,所述方法还包括:
向所述区块链发送数据查询指令,该数据查询指令包含要查询的数据目录的版本信息及查询条件,所述区块链依据所述倒排索引查找到与版本信息及查询条件相匹配的目标数据目录;
接收所述区块链返回的目标数据目录;
根据所述目标数据目录查询得到对应的目标数据内容。
5.一种基于区块链的数据管理方法,其特征在于,应用于区块链,所述方法包括:
获取待上链数据,该待上链数据由数据所有方将待存储数据的数据目录得到,所述数据目录为所述待存储数据的描述信息;
对所述待上链数据的准确性验证成功后,存储所述待上链数据。
6.根据权利要求5所述的方法,其特征在于,获取待上链数据,包括:
接收数据所有方发起的数据上链交易,该数据上链交易携带待上链数据;
解析所述数据上链交易得到所述待上链数据。
7.根据权利要求6所述的方法,其特征在于,对所述待上链数据的准确性验证成功后,存储所述待上链数据,包括:
验证发送所述数据上链交易的数据所有方与所述待上链数据的数据所有方是否是同一个数据所有方;
如果是同一个数据所有方,则确定随所述待上链数据的准确性验证成功;
如果不是同一个数据所有方,则确定所述待上链数据的准确性验证失败。
8.根据权利要求5所述的方法,其特征在于,所述方法还包括:
获取数据所有方发送的待更新上链数据,该待更新上链数据由数据所有方根据待存储数据对应的更新后的数据目录利用散列函数进行计算处理得到;
对所述待更新上链数据验证成功后,将该待更新上链数据写入当前最新区块中;
并将所述当前最新区块的区块标识及所述待更新上链数据对应的当前最新数据的版本号记录到倒排索引中,并将该倒排索引存储到该当前最新区块中。
9.根据权利要求8所述的方法,其特征在于,所述方法还包括:
接收数据查询指令,该查询指令由数据所有方或数据使用方产生,且该数据查询指令包含要查询的数据目录的版本信息及查询条件;
依据倒排索引查找符合所述查询条件及所述数据目录的版本信息的目标数据目录;
返回该目标数据目录,以便发送数据查询指令的一方依据该目标数据目录查找到目标数据内容。
10.一种基于区块链的数据管理装置,其特征在于,应用于数据所有方,所述装置包括:
生成模块,用于生成待存储数据的数据目录,该数据目录为数据的描述信息;
第一获取模块,用于根据所述数据目录得到待上链数据;
数据上传模块,用于将所述待上链数据上传至区块链进行存储。
11.一种基于区块链的数据管理装置,其特征在于,应用于区块链,所述装置包括:
第一获取模块,用于获取待上链数据,该待上链数据由数据所有方根据待存储数据的数据目录得到,所述数据目录为所述待存储数据的描述信息;
存储模块,用于对所述待上链数据的准确性验证成功后,存储所述待上链数据。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811234654.5A CN111090385A (zh) | 2018-10-23 | 2018-10-23 | 一种基于区块链的数据管理方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811234654.5A CN111090385A (zh) | 2018-10-23 | 2018-10-23 | 一种基于区块链的数据管理方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111090385A true CN111090385A (zh) | 2020-05-01 |
Family
ID=70392623
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811234654.5A Pending CN111090385A (zh) | 2018-10-23 | 2018-10-23 | 一种基于区块链的数据管理方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111090385A (zh) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111651408A (zh) * | 2020-06-08 | 2020-09-11 | Oppo广东移动通信有限公司 | 获取数据的方法、装置、终端及存储介质 |
CN111783160A (zh) * | 2020-09-07 | 2020-10-16 | 南京金宁汇科技有限公司 | 一种政务数据共享方法 |
CN112000672A (zh) * | 2020-08-25 | 2020-11-27 | 杭州电力设备制造有限公司 | 一种分布式电源电能质量监测系统 |
CN112905553A (zh) * | 2021-02-07 | 2021-06-04 | 全链通有限公司 | 基于区块链的数据共享方法、装置及系统 |
CN113055156A (zh) * | 2021-05-29 | 2021-06-29 | 苏州智能交通信息科技股份有限公司 | 基于内容寻址和区块链的配置服务方法、系统及终端 |
CN113505125A (zh) * | 2021-06-11 | 2021-10-15 | 支付宝(杭州)信息技术有限公司 | 数据上链的方法及上链代理装置 |
CN113783839A (zh) * | 2021-08-06 | 2021-12-10 | 润联软件系统(深圳)有限公司 | 区块链数据更新方法、装置、计算机设备及存储介质 |
US11876861B2 (en) | 2020-08-28 | 2024-01-16 | Beijing Boe Technology Development Co., Ltd. | Data management method, data management device, blockchain network and system |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107239954A (zh) * | 2017-06-07 | 2017-10-10 | 北京汇通金财信息科技有限公司 | 一种提高区块产生速度的方法及装置 |
CN107273410A (zh) * | 2017-05-03 | 2017-10-20 | 上海点融信息科技有限责任公司 | 基于区块链的分布式存储 |
CN107994991A (zh) * | 2017-10-31 | 2018-05-04 | 深圳市轱辘车联数据技术有限公司 | 一种数据处理方法、数据处理服务器及存储介质 |
CN108062202A (zh) * | 2017-12-15 | 2018-05-22 | 中链科技有限公司 | 一种文件分块存储方法及系统 |
CN108509514A (zh) * | 2018-03-09 | 2018-09-07 | 史玉成 | 一种基于区块链的大数据分析方法及系统 |
-
2018
- 2018-10-23 CN CN201811234654.5A patent/CN111090385A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107273410A (zh) * | 2017-05-03 | 2017-10-20 | 上海点融信息科技有限责任公司 | 基于区块链的分布式存储 |
CN107239954A (zh) * | 2017-06-07 | 2017-10-10 | 北京汇通金财信息科技有限公司 | 一种提高区块产生速度的方法及装置 |
CN107994991A (zh) * | 2017-10-31 | 2018-05-04 | 深圳市轱辘车联数据技术有限公司 | 一种数据处理方法、数据处理服务器及存储介质 |
CN108062202A (zh) * | 2017-12-15 | 2018-05-22 | 中链科技有限公司 | 一种文件分块存储方法及系统 |
CN108509514A (zh) * | 2018-03-09 | 2018-09-07 | 史玉成 | 一种基于区块链的大数据分析方法及系统 |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111651408A (zh) * | 2020-06-08 | 2020-09-11 | Oppo广东移动通信有限公司 | 获取数据的方法、装置、终端及存储介质 |
CN111651408B (zh) * | 2020-06-08 | 2024-05-03 | Oppo广东移动通信有限公司 | 获取数据的方法、装置、终端及存储介质 |
CN112000672A (zh) * | 2020-08-25 | 2020-11-27 | 杭州电力设备制造有限公司 | 一种分布式电源电能质量监测系统 |
US11876861B2 (en) | 2020-08-28 | 2024-01-16 | Beijing Boe Technology Development Co., Ltd. | Data management method, data management device, blockchain network and system |
CN111783160A (zh) * | 2020-09-07 | 2020-10-16 | 南京金宁汇科技有限公司 | 一种政务数据共享方法 |
CN112905553A (zh) * | 2021-02-07 | 2021-06-04 | 全链通有限公司 | 基于区块链的数据共享方法、装置及系统 |
CN113055156A (zh) * | 2021-05-29 | 2021-06-29 | 苏州智能交通信息科技股份有限公司 | 基于内容寻址和区块链的配置服务方法、系统及终端 |
CN113505125A (zh) * | 2021-06-11 | 2021-10-15 | 支付宝(杭州)信息技术有限公司 | 数据上链的方法及上链代理装置 |
CN113783839A (zh) * | 2021-08-06 | 2021-12-10 | 润联软件系统(深圳)有限公司 | 区块链数据更新方法、装置、计算机设备及存储介质 |
CN113783839B (zh) * | 2021-08-06 | 2023-04-07 | 华润数字科技有限公司 | 区块链数据更新方法、装置、计算机设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111090385A (zh) | 一种基于区块链的数据管理方法及装置 | |
TWI810409B (zh) | 用於透過區塊鏈網路有效安全處理、存取及傳輸資料之系統與方法 | |
CN110275884B (zh) | 数据存储方法及节点 | |
Benet | Ipfs-content addressed, versioned, p2p file system | |
US20190122186A1 (en) | Hierarchical Network System, And Node And Program Used In Same | |
US20190251284A1 (en) | Efficient data query and utilization through a semantic storage model | |
JP2021527274A (ja) | ブロックチェーンの分散アクセス、記憶、及び転送 | |
US20150142742A1 (en) | System and method for syncing local directories that enable file access across multiple devices | |
JP2010529554A5 (zh) | ||
WO2020010442A1 (en) | Media attribution systems and methods | |
EP3907689A1 (en) | Rights management method, device and system, and storage medium | |
US7895224B2 (en) | Navigation of the content space of a document set | |
US20080281945A1 (en) | Distributed content system and method | |
EP3744071B1 (en) | Data isolation in distributed hash chains | |
CN110363017A (zh) | 混合云环境下基于客户端加密的数据安全共享方法及系统 | |
KR20220123221A (ko) | 효율적인 데이터 검증을 위한 데이터 구조 | |
CN104182418A (zh) | 节点元数据获取方法与装置 | |
WO2022057525A1 (zh) | 一种数据找回方法、装置、电子设备及存储介质 | |
US11893055B2 (en) | System for automatic management and depositing of documents (images) hash in block-chain technology | |
CN111309677A (zh) | 一种分布式文件系统的文件管理方法及装置 | |
CN113886499B (zh) | 基于区块链的病理数据分享方法、分享系统及计算设备 | |
WO2023004807A1 (zh) | 知识管理系统、方法、装置、电子设备和存储介质 | |
CN111274484A (zh) | 一种管理交互数据的方法及装置 | |
CN115905120B (zh) | 档案文件管理方法、装置、计算机设备和存储介质 | |
CN116366663A (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 |