基于区块链的数据查询方法、装置、服务器及存储介质与流程

文档序号:15492638发布日期:2018-09-21 20:56阅读:149来源:国知局
本发明涉及网络
技术领域
,特别涉及一种基于区块链的数据查询方法、装置、服务器及存储介质。
背景技术
:随着网络技术的发展,互联网可提供的业务越来越多,各种业务所产生的数据量也急剧膨胀,而在业务处理过程中,会涉及到对业务数据进行存储以及基于存储的查询。但在数据的查询过程中,数据会在设备之间进行传输,因此,可能会造成数据被篡改、泄露或窃取等情况,危害数据安全,所以如何安全高效的进行数据查询成为人们十分关心的问题。目前的数据查询方法,是基于用户账号的权限来进行的。当接收到任一用户的数据查询请求时,会根据该用户账号对应的权限,来判断该用户是否能够查询某项业务数据,从而,在确定该用户具有查询权限时,会返回所请求的业务数据业务。在实现本发明的过程中,发明人发现现有技术至少存在以下问题:目前的数据查询方法,仅根据用户账号的权限来进行数据查询,无法对不同数据设置不同级别的查询权限,导致数据查询时的安全性低,灵活性差。技术实现要素:为了解决现有技术的问题,本发明实施例提供了一种基于区块链的数据查询方法、装置、服务器及存储介质。所述技术方案如下:一方面,提供了一种基于区块链的数据查询方法,所述方法包括:根据查询请求,获取待查询的第一数据的数据标识,所述查询请求携带发起查询请求的用户标识;根据所述数据标识,获取区块链系统中的目标区块链中目标区块内的数据权限信息;当所述数据权限信息不包括所述用户标识时,向所述区块链系统中的至少一个目标节点发送查询许可请求,所述查询许可请求携带所述用户标识和所述数据标识;当接收到的查询许可响应符合所述数据权限信息中的目标策略时,根据所述数据标识,从数据存储系统中获取所述第一数据。一方面,提供了一种基于区块链的数据查询装置,所述装置包括:数据标识获取模块,用于根据查询请求,获取待查询的第一数据的数据标识,所述查询请求携带发起查询请求的用户标识;数据权限信息获取模块,用于根据所述数据标识,获取目标区块链中目标区块内的数据权限信息;发送模块,用于当所述数据权限信息不包括所述用户标识时,向所述区块链系统中的至少一个目标节点发送查询许可请求,所述查询许可请求携带所述用户标识和所述数据标识;数据获取模块,用于当接收到的查询许可响应符合所述数据权限信息中的目标策略时,根据所述数据标识,从数据存储系统中获取所述第一数据。一方面,提供了一种服务器,所述服务器包括处理器和存储器,所述存储器中存储有至少一条指令,所述指令由所述处理器加载并执行以实现如上述基于区块链的数据查询方法所执行的操作。一方面,提供了一种计算机可读存储介质,所述存储介质中存储有至少一条指令,所述指令由处理器加载并执行以实现如上述基于区块链的数据查询方法所执行的操作。本发明实施例提供的技术方案带来的有益效果是:通过当获取到用户查询数据的请求时,基于数据权限信息确定用户查询该数据的权限,当确定该用户是数据所有者时,根据数据权限信息中的共识策略,获取多个节点的查询许可,当获取到的查询许可符合目标策略时,从数据存储系统中获取数据。该方法通过设置数据权限信息提高了数据的安全性和隐私性,同时可以为不同数据的不同目标策略,提升了数据查询权限设定的灵活性,使之更加的安全与智能。附图说明为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1是本发明实施例提供的一种数据存储系统的结构示意图;图2是本发明实施例提供的一种基于区块链的数据查询方法的流程图;图3是本发明实施例提供的一种数据存储过程的示意图;图4是本发明实施例提供的一种数据查询过程的示意图;图5是本发明实施例提供的一种基于区块链的数据查询装置的结构示意图;图6是本发明实施例提供的一种服务器的示意图。具体实施方式为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。下面,对下述具体说明过程中出现的一些名词进行介绍:智能合约:根据特定条件自动执行的合约程序,是用户与区块链进行交互,利用区块链实现业务逻辑的重要途径。例如,各家机构可以通过服务器中部署的区块链上的智能合约接入该数据存储系统,来使用该数据存储系统提供的数据存储以及数据查询等功能。目标策略:该目标策略可以是共识策略的一种,例如背书策略,可以用于指示数据存储系统中背书过程需满足的必要条件。例如,该背书策略可以指示需要背书的多个背书节点,形成一个背书节点集合,背书过程则需要该背书节点集合的联合签名。图1是本发明实施例提供的一种数据存储系统的结构示意图。该系统包括多个服务器101、多个存储设备102;其中,多个服务器101可以配置有同一条区块链,也即是,该多个服务器101可以组成区块链系统,各个服务器101分别为该区块链系统中的节点。该多个服务器101可以是同一机构的多个服务器,还可以是属于不同机构的多个服务器,例如,该区块链系统内可以包括医院的各个科室的服务器;当然,该区块链系统内还可以包括保险机构的服务器、银行的服务器等等。各个机构的用户可以通过终端1011来访问机构的服务器,该多个终端设备1011可以为能够访问该多个服务器101的电子设备,该电子设备可以为电脑、智能手机、平板电脑或者其他电子设备。当然,为了进行安全验证、权限管理等服务,区块链系统中配置有ca中心(certificateauthority,证书授权中心)103,用于存储各个机构的密钥,区块链系统中的各个服务器可以从ca中心中获取各个机构的密钥,以进行数据的加密和解密等过程。多个存储设备102用于为该多个服务器101提供存储服务,需要说明的是,该多个存储设备102可以组成分布式存储系统,用于采用分布式的形式来对提供存储数据。基于上述图1中所提供的实施环境,在终端有数据存储需求时,可以通过区块链系统所提供的存储机制,将数据存储至分布式系统中的存储设备中,以方便后续查询,下面对存储过程和查询过程进行介绍,图2是本发明实施例提供的一种基于区块链的数据查询方法的流程图,该方法的执行主体可以为区块链系统内的服务器,参见图2,该方法可以包括:201、当服务器接收到数据存储请求时,基于该数据存储请求所对应的初始数据,生成第一数据,该第一数据的数据长度为预设数据长度,且该第一数据的维度与数据索引信息表内的数据维度相对应。当服务器需要存储数据时,为了便于后续的存储和查询,可以对数据存储请求对应的初始数据进行规范化,该规范化包括两部分,一是对初始数据的各个维度进行规范化,二是对数据长度进行规范化。具体地,该步骤201可以包括下述步骤一至步骤三:步骤一、将该初始数据在各个维度上的数据信息转换为对应的索引值,得到该初始数据的不同维度的索引值。对于初始数据来说,其可以具有多个不同维度上的信息,因此,为了使得数据的表达方式统一,可以将该初始数据在各个维度上的数据信息转换为标准数值,以表达不同维度上的数据信息。例如,对于一条患者档案来说,其维度可以包括性别维度和科室维度,其中,性别维度包括男性、女性,科室维度包括内科、外科以及眼科等等。需要说明的是,在进行转换时,初始数据具体转换为哪些维度的索引值,可以基于该初始数据对应的数据索引信息表确定,不同类型的初始数据可以对应于不同数据索引信息表,例如,医院的患者档案可以对应于该医院的数据索引信息表,相应的,在对该医院的患者档案进行转换时,则可以根据该医院的数据索引信息表所定义的多个维度来进行转换。在确定待转换的未读时,可以根据初始数据的数据基本信息等来确定数据索引信息表。其中,不同数据基本信息可以用于表示初始数据的归属机构,不同基本信息可以对应于不同机构的数据索引信息表。以数据索引信息表为例,数据索引信息表包括已存储数据的数据标识以及不同维度上的索引值,其中不同维度用于指示数据的不同类别,维度上的索引值用于指示维度所包含的范围。该数据索引信息表可以采用bitmap(位图文件)的格式存储于数据存储系统中。当第一数据属于数据索引信息表中的某一维度上的索引值时,可以在该第一数据标识所对应的维度的索引值的单元格内记录1,当第一数据不属于数据索引信息表中的某一维度上的索引值时,可以在该第一数据标识所对应的维度的索引值的单元格内记录0,本发明实施例对此不进行具体限定。例如,当第一数据的索引信息表为医院中患者档案数据的索引信息表时,该维度可以为性别维度或科室维度等,其中,性别维度的索引值可以男和女,科室维度中的索引值可以为内科、外科及眼科等,本发明实施例对此不进行具体限定。该患者档案的数据标识可以为x1、x2、x3、x4、x5、x6…xn等,存储系统中的索引信可以如下表1所示:表1一般地,上述索引表中所定义的维度的索引值取值,可以通过枚举提供,也即是,提供一个维度上所有可能的索引值,当然,如果不在枚举范围内的数据,可以提示管理用户进行修改。步骤二、当该初始数据的数据长度小于该预设数据长度时,在该初始数据之后填充预设数据。将各个数据均转换为数据长度相同的数据,可以使得数据在存储时具有一定规律,数据存储时的偏移位置可以根据数据长度和间隔数据的个数来确定,大大提高了查询的效率。由于初始数据的大小可能短于预设数据长度,则不足的部分可以由预设数据填充,从而使得数据的大小均保持一致,在进行修改、删除以及替换等更新时,可以直接对一段连续地址空间进行修改来实现。该预设数据可以为一段预设取值等,例如连续多个数字0。步骤三、基于该初始数据的不同维度的索引值和填充后的数据,生成该第一数据。202、服务器获取待存储的第一数据的数据权限信息,并根据数据权限信息中的目标策略,获取该第一数据的数据权限信息的目标策略中各个目标节点的公钥,对该第一数据进行加密,得到加密数据。本发明实施例中,在存储第一数据时还可以设置该第一数据的数据权限信息,该设置过程可以是服务器获取该服务器对应的数据权限信息,还可以是由进行存储的客户端用户根据自身需求设置,该数据权限信息可以为用户为该第一数据设定的可以查询该第一数据的用户的权限。当然,还可以是根据数据自身属性自动获取数据权限信息。例如,以医院的患者档案为例,当需要对患者档案进行存储时,可以将数据权限信息设置为仅用户以及各个科室能够查看。而以用户的付款记录为例,可以将数据权限信息设置为仅用户、各个科室以及付款账户所属机构能够查看。进一步的,该第一数据的数据权限信息中可以包括该第一数据的数据标识、对应的具有直接查看该第一数据的权限的用户标识以及该第一数据的目标策略等,该目标策略至少包括为该第一数据进行共识的多个目标节点以及共识成功条件等。如,当医院中的服务器存储的第一数据为患者档案时,可以设定该患者及该患者的主治医生具有查询该患者档案的权限,将该患者档案的档案标号作为该第一数据的数据标识,该患者档案的权限中可以包括该档案标号、患者的用户标识以及该患者主治医生的用户标识。可选的,还可以在该患者档案的数据权限信息中存储目标策略,如,当查看该患者档案的用户标识不属于该患者标识及该患者主治医生的用户标识时,可以在获取到多个目标节点的许可时,查看该患者档案。基于上述内容,在步骤202中,在获取到数据权限信息后,服务器可以获取数据权限信息中的目标策略中的各个目标节点的节点标识,并基于各个目标节点的节点标识,从ca中心中,获取各个目标节点的公钥,对该第一数据进行加密,得到加密数据。该基于多个公钥进行加密的过程可以基于一定顺序进行,也即是,顺序采用该多个公钥,对该第一数据进行多重加密,以得到待存储的数据。当然,该加密顺序可以存储于数据权限信息中,以便于后续在进行解密时,按照该加密顺序进行倒序解密。203、服务器提取该第一数据的数据标识以及不同维度上的索引值。204、服务器将该第一数据的数据标识以及不同维度上的索引值添加至该数据索引信息表中,更新该数据存储系统中的数据索引信息表,并将该加密数据存储至该数据存储系统中,该数据索引信息表包括已存储数据的数据标识以及不同维度上的索引值。在进行加密之前,为了便于后续的查询,还需要进行索引值的提取以及数据索引信息表的更新,以使得数据存储系统能够实时根据实际存储的数据来进行查询。205、服务器基于该第一数据的数据标识、数据权限信息以及该加密数据的数据特征值,生成目标区块,将该目标区块加入该目标区块链。具体地,在生成目标区块并将目标区块加入目标区块链时,可以通过区块链系统内的共识机制进行,可以涉及到系统中多个服务器之间的互相交互,本发明实施例对此不做赘述。该步骤201至205的过程实际上可以总结为如图3的流程,也即是,在存储数据时,可以首先设定背书策略以及对数据进行规范化,然后可以并行进行索引抽取以及数据多重加密的过程,在加密过程中,涉及到与ca中心之间的交互,最终,将抽取到的索引和加密后的数据对应存储至数据存储系统,在此过程中,还涉及到对数据索引信息表的更新。206、服务器根据接收到的查询请求,获取待查询的第一数据的数据标识,该查询请求携带发起查询请求的用户标识。用户可以通过登录服务器来触发查询请求,例如用自己的档案标号作为登录账号来进行查询自己的患者档案等等。当该查询请求中携带有数据标识时,将该数据标识确定为待查询的第一数据的数据标识,如,医院区块链系统中的服务器获取查询某一患者档案的查询请求,当该查询请求中携带有该患者档案的档案标号时,将该档案标号作为该待查询的第一数据的数据标识。进一步的,当服务器获取到的查询请求为查询某一类数据的请求时,可以根据数据存储系统中第一数据的索引信息表,获取该待查询的第一数据的数据标识,具体的获取该数据标识的方法如下述步骤206a-206b。206a、服务器获取该查询请求中的查询条件信息,该查询条件信息包括至少一个目标维度的目标索引值;当服务器获取到的查询请求为查询条件信息时,确定该查询条件信息中的维度为目标维度,确定该查询条件信息中维度的索引值为目标索引值。如,该目标维度可以为男性维度,该目标索引值可以为男性维度的索引值为1,当目标维度为内科维度时,该目标索引值可以为内科维度的索引值为1等,本发明实施例对此不进行具体限定。当然,在查询条件信息中可以包括两个或两个以上的维度的目标索引值,例如,目标维度可以为男性维度和内科维度,则目标索引值可以为男性维度的索引值为1以及内科维度的索引值为1。206b、根据该至少一个目标维度的目标索引值,查询该数据存储系统中的数据索引信息表,得到该第一数据的数据标识。当该至少一个目标维度的目标索引值的数目为1时,根据一个目标维度的目标索引值,从该数据索引信息表中,获取至少一个第一数据标识,每个第一数据标识的目标维度的索引值等于该目标索引值。例如,当医院服务器获取到的查询条件信息中的目标维度索引值为女性时,在数据索引信息表中查找维度为性别维度,索引值为女性的列表,并提取该表中记录为1的单元格所对应的数据标识。如下表2所示,当查询条件信息中的目标索引值为女性时,得到的第一数据的数据标识为x2、x3、x5、x6和xn。表2x1x2x3x4x5x6x7…xn性别维度女性0110110…1进一步的,当该至少一个目标维度的目标索引值的数目为至少两个时,根据该至少两个目标维度的目标索引值,从该数据索引信息表中,获取至少一个第二数据标识,每个第二数据标识的该至少两个目标维度的索引值的与操作等于该至少两个目标索引值的乘积。例如,当医院服务器获取到的查询条件信息中的目标维度索引值为女性和眼科时,在数据索引信息表中查找维度为性别维度的索引值为女性,科室维度的索引值为眼科的列表,当两个列表同一列的单元格中记录的数字乘积为1时,提取该列对应的数据标识。如下表3所示,当查询条件信息中的目标索引值为女性和眼科时,得到的第一数据的数据标识为x3。表3x1x2x3x4x5x6x7…xn性别维度女性0110110…1科室维度眼科1011000…0207、服务器根据该数据标识,获取目标区块链中目标区块内的数据权限信息,判断该数据权限信息是否包括该用户标识,如果是,执行步骤210,如果否,执行步骤208。该目标区块是指目标区块链中存储有该数据标识的区块。在本发明实施例中,当服务器获取到用户输入的查询请求,并根据该查询请求确定该第一数据的数据标识时,服务器在其配置的目标区块链的目标区块中,根据该数据标识,确定该第一数据的数据权限信息,当该第一数据的数据权限信息中包括该查询请求携带的用户标识时,服务器执行步骤210,根据该用户标识从数据存储系统中获取该第一数据。如,当医院的服务器获取到用户对女性眼科患者档案的查询请求,根据该查询请求确定该女性眼科患者档案的数据标识为x3时,服务器可以在其配置的目标区块链的目标区块中,根据该数据标识x3,确定该患者档案的数据权限信息,该数据权限信息中可以包括眼科主任的用户标识、该患者主治医生的用户标识或该患者的用户标识等,本发明实施例对此不进行具体限定,当服务器获取到的查询请求中携带的用户标识为眼科主任的用户标识时,服务器可以根据该眼科主任的用户标识及该患者档案的数据权限信息,确定该眼科主任具有查询该患者档案的权限。当然,上述举例时采用了个人用户的用户标识来限定数据权限信息,在实际场景中,该数据权限信息所包括的还可以为节点标识或是机构标识等,以将该数据的查询权限开放给相应节点或者相应机构,本发明实施例对此不做具体限定。进一步地,当该第一数据的数据权限信息中不包括该查询请求携带的用户标识时,服务器执行步骤208。208、服务器向区块链系统的至少一个目标服务器发送查询许可请求,该查询许可请求携带该用户标识和该数据标识。当服务器确定该第一数据的数据权限信息中不包括该查询请求携带的用户标识时,服务器向至少一个目标服务器发送查询请求,该至少一个目标服务器可以为区块链系统中的至少一个目标节点。进一步地,该至少一个目标节点可以为目标策略所限定的目标节点,以将共识限制在几个节点内,减少区块链系统内的信令交互数量。209、服务器当接收到查询许可响应时,判断该查询许可是否符合该数据权限信息中的目标策略,如果是,继续执行步骤210,如果否,停止获取该第一数据。在本发明实施例中,当服务器接收到该至少一个服务器发回的查询许可请求时,根据该查询许可请求中携带的该至少一个服务器的服务器标识,查看许可查询的服务器是否满足该数据的数据权限信息中的目标策略的要求。例如,当目标策略要求所有目标服务器均需要返回查询许可响应,才能够提供第一数据的查询,则服务器需要在接收到所有目标服务器的查询许可响应时,为当前的查询过程提供第一数据。又例如,当目标策略要求只要有某几个目标服务器返回查询许可响应,则可以提供第一数据的查询,则服务器只要接收到该几个目标服务器返回的查询许可响应时,提供第一数据的查询。以一个示例来说明,当医院的区块链系统中包含m个组织时,这m个组织的服务器的服务器标识可以为:u1、u2、u3、u4…um,该目标策略中的背书成功条件的格式可以为and(u1、u2、u3、),此时该目标策略用于指示当服务器获取到服务器标识为u1和u2和u3的三个服务器发送的查询许可时,可以查询该第一数据。可选的,该目标策略中的背书成功条件还可以为and(u1、or(u2、u3、)),此时该目标策略用于指示,当服务器获取到服务器标识为u1的服务器以及服务器标识为u2或u3中的任意一个或两个服务器发送的查询许可时,可以为本次查询返回第一数据,本发明实施例对此不进行具体限定。当服务器接收到的查询许可响应不符合该数据权限信息中的目标策略时,则不执行获取该第一数据的步骤。当服务器接收到的查询许可响应符合该数据权限信息中的目标策略时,继续执行下述查询该第一数据的过程。进一步的,当服务器确定不可以获取该第一数据时,该服务器还可以显示无查询权限的提示信息,以提醒用户不具备查询该数据的权限。210、服务器根据数据标识,从数据存储系统中获取第一数据。在本发明实施例中,当服务器接收到的查询许可响应符合该数据权限信息中的目标策略时,获取该第一数据,具体获取该第一数据的过程包括下述步骤210a-210c。210a、服务器确定该第一数据标识与该数据索引信息表中第一个数据标识之间的相对位置。当服务器可以查询该第一数据时,根据该第一数据的数据标识,在数据存储系统中查询该第一数据的数据标识所在的数据索引信息表,并获取该数据索引信息表中该数据标识所在的位置,以及该数据索引信息表中第一个数据标识所在的位置,从而根据两个数据标识所在位置,确定两个数据标识间的相对位置,也即是,该两个数据标识之间间隔了几个数据标识。如下表4所示,当第一数据的数据标识为x3时,获取表3中x1的位置,从而确定x1与x3之间的相对位置。表4x1x2x3x4x5x6x7…xn性别维度女性0110110…1科室维度眼科1011000…0210b、服务器根据该相对位置和预设数据长度,确定该第一数据在第一文件中的偏移位置,该第一文件为该数据索引信息表对应的文件。210c、服务器根据该第一文件在该数据存储系统中的存储位置和该偏移位置,从该数据存储系统中获取该第一数据。该数据索引信息表中第一个数据标识所在的位置即是该第一文件的存储起始位置,而在确定了相对位置后,可以根据相对位置和预设数据长度,确定该第一数据与第一个数据标识对应的数据之间的存储地址之差,该存储地址之差即为第一数据在第一文件中的偏移位置,而由于第一文件的存储起始位置已知,则可以获知该第一数据的实际存储位置,并基于该实际存储位置进行数据的获取。这种基于相对位置的查询,可以大大提高数据获取的速度,降低了查询过程的复杂性,提高了查询速率。211、服务器根据目标区块中存储的数据特征值,对第一数据进行校验。在本发明实施例中,当服务器从数据存储系统中获取到第一数据时,首先,根据获取到的第一数据,生成该第一数据的特征值,并根据该第一数据的数据标识,在目标区块链的目标区块中,提取该目标区块中存储的数据特征值,当该生成特征值与该提取的特征值相同时,则对第一数据的校验成功,如果不相同,则校验失败。根据特征值对获取到的第一数据进行校验,可以保证获取到的第一数据在存储及查询过程中没有被篡改。当服务器对该第一数据校验成功时,执行后续对数据的解密步骤,当服务器对该第一数据校验失败时,说明该第一数据被篡改,不再继续执行后续对数据的解密步骤。212、服务器基于各个服务器的私钥对第一数据进行解密,获取解密后的业务数据。在本发明实施例中,由于数据存储系统所存储的数据为加密数据,因此,当服务器获取到第一数据后,还需要对该第一数据进行解密,具体的解密过程如下述步骤212a-212b。212a、获取目标策略中各个服务器的私钥。当服务器确定该第一数据没有被篡改时,根据该数据权限中的目标策略,确定对该数据进行共识的多个服务器的服务器标识,并根据该多个服务器的服务器标识,从ca中心获取各个服务器的私钥。212b、基于各个服务器的私钥对该第一数据进行解密,向服务器返回解密后的业务数据。当获取到各个服务器的私钥时,根据目标策略确定各个服务器对该第一数据的加密顺序,然后根据获取到的各个服务器的私钥,按照加密顺序的反向顺序对该第一数据进行解密,当解密成功时,并返回解密后的业务数据。需要说明的是,上述过程中第一数据是指当前被查询的数据,当然,上述数据也可以被称为第二数据或其他,本发明实施例对此不做限定。上述查询的具体过程可以总结为如图4的流程,当基于数据权限信息确定了背书策略后,可以基于背书策略判断是否进行本次查询,在确定进行本次查询时,基于查询的索引,通过查询引擎,来查询数据存储系统中的第一数据,进而通过ca中心提供的私钥,对数据进行解密后返回解密后的业务数据,以在实现查询权限控制的同时的迅速查询。本发明实施例提供的方法,通过当获取到用户查询数据的请求时,基于数据权限信息确定用户查询该数据的权限,当确定该用户是数据所有者时,根据数据权限信息中的共识策略,获取多个节点的查询许可,当获取到的查询许可符合目标策略时,从数据存储系统中获取数据。该方法通过设置数据权限信息提高了数据的安全性和隐私性,同时可以为不同数据的不同目标策略,提升了数据查询权限设定的灵活性,使之更加的安全与智能。图5是本发明实施例提供的一种基于区块链的数据查询装置的结构示意图。参见图5,该装置包括:数据标识获取模块501,用于根据查询请求,获取待查询的第一数据的数据标识,该查询请求携带发起查询请求的用户标识;数据权限信息获取模块502,用于根据该数据标识,获取目标区块链中目标区块内的数据权限信息;发送模块503,用于当该数据权限信息不包括该用户标识时,向该区块链系统中的至少一个目标节点发送查询许可请求,该查询许可请求携带该用户标识和该数据标识;数据获取模块504,用于当接收到的查询许可响应符合该数据权限信息中的目标策略时,根据该数据标识,从数据存储系统中获取该第一数据。在一种可能实现方式中,该数据获取模块504还用于当该数据权限信息包括该用户标识时,根据该数据标识,从该数据存储系统中获取该第一数据。在一种可能实现方式中,该数据标识获取模块501用于:获取该查询请求中的查询条件信息,该查询条件信息包括至少一个目标维度的目标索引值;根据该至少一个目标维度的目标索引值,查询该数据存储系统中的数据索引信息表,得到该第一数据的数据标识,该数据索引信息表包括已存储数据的数据标识以及不同维度上的索引值。在一种可能实现方式中,该数据标识获取模块501用于:当该至少一个目标维度的目标索引值的数目为一时,根据一个目标维度的目标索引值,从该数据索引信息表中,获取至少一个第一数据标识,每个第一数据标识的目标维度的索引值等于该目标索引值;或,当该至少一个目标维度的目标索引值的数目为至少两个时,根据至少两个目标维度的目标索引值,从该数据索引信息表中,获取至少一个第二数据标识,每个第二数据标识的该至少两个目标维度的索引值的乘积等于该至少两个目标索引值的乘积。在一种可能实现方式中,该数据获取模块504,用于确定该数据标识与该数据索引信息表中第一个数据标识之间的相对位置;根据该相对位置和预设数据长度,确定该第一数据在第一文件中的偏移位置,该第一文件为该数据索引信息表对应的文件;根据该第一文件在该数据存储系统中的存储位置和该偏移位置,从该数据存储系统中获取该第一数据。在一种可能实现方式中,该装置还包括:校验模块,用于根据该目标区块中存储的数据特征值,对该第一数据进行校验;当校验成功时,执行后续对数据的解密步骤;当校验失败时,不执行后续对数据的解密步骤。在一种可能实现方式中,该装置还包括解密模块,用于获取该目标策略中各个目标节点的私钥;基于该各个目标节点的私钥对该第一数据进行解密,返回解密后的业务数据。在一种可能实现方式中,该解密模块用于按照该目标策略中各个目标节点的加密顺序,逐个采用该各个目标节点的私钥对该第一数据进行解密,返回解密后的业务数据。在一种可能实现方式中,该装置还包括:获取模块,用于接收数据存储请求,获取待存储的第一数据的数据权限信息;加密模块,用于获取该第一数据的数据权限信息的目标策略中各个目标节点的公钥,对该第一数据进行加密,得到加密数据;更新模块,用于根据该第一数据更新该数据存储系统中的数据索引信息表,并将该加密数据存储至该数据存储系统中,该数据索引信息表包括已存储数据的数据标识以及不同维度上的索引值;处理模块,用于基于该第一数据的数据标识、数据权限信息以及该加密数据的数据特征值,生成目标区块,将该目标区块加入该目标区块链。在一种可能实现方式中,该更新模块,用于提取该第一数据的数据标识以及不同维度上的索引值;将该第一数据的数据标识以及不同维度上的索引值添加至该数据索引信息表中。在一种可能实现方式中,该装置还包括:数据规范化模块,用于基于该数据存储请求所对应的初始数据,生成该第一数据,该第一数据的数据长度为预设数据长度,且该第一数据的维度与该数据索引信息表内的数据维度相对应。在一种可能实现方式中,该数据规范化模块,用于将该初始数据在各个维度上的数据信息转换为对应的索引值,得到该初始数据的不同维度的索引值;当该初始数据的数据长度小于该预设数据长度时,在该初始数据之后填充预设数据;基于该初始数据的不同维度的索引值和填充后的数据,生成该第一数据。本发明实施例提供的装置,通过当获取到用户查询数据的请求时,基于数据权限信息确定用户查询该数据的权限,当确定该用户是数据所有者时,根据数据权限信息中的共识策略,获取多个节点的查询许可,当获取到的查询许可符合目标策略时,从数据存储系统中获取数据。该方法通过设置数据权限信息提高了数据的安全性和隐私性,同时可以为不同数据的不同目标策略,提升了数据查询权限设定的灵活性,使之更加的安全与智能。上述所有可选技术方案,可以采用任意结合形成本公开的可选实施例,在此不再一一赘述。图6是本发明实施例提供的一种服务器的示意图,该服务器600可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上处理器(centralprocessingunits,cpu)601和一个或一个以上的存储器602,其中,所述存储器602中存储有至少一条指令,所述至少一条指令由所述处理器601加载并执行以实现上述各个方法实施例提供的基于区块链的数据查询方法。当然,该服务器还可以具有有线或无线网络接口、键盘以及输入输出接口等部件,以便进行输入输出,该服务器还可以包括其他用于实现设备功能的部件,在此不做赘述。在示例性实施例中,还提供了一种计算机可读存储介质,例如包括指令的存储器,上述指令可由终端中的处理器执行以完成上述实施例中的基于区块链的数据查询方法。例如,所述计算机可读存储介质可以是rom、随机存取存储器(ram)、cd-rom、磁带、软盘和光数据存储设备等。本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1