CN116522356A - 数据查询方法及装置 - Google Patents

数据查询方法及装置 Download PDF

Info

Publication number
CN116522356A
CN116522356A CN202310365383.1A CN202310365383A CN116522356A CN 116522356 A CN116522356 A CN 116522356A CN 202310365383 A CN202310365383 A CN 202310365383A CN 116522356 A CN116522356 A CN 116522356A
Authority
CN
China
Prior art keywords
private key
data
metadata
party
target 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
Application number
CN202310365383.1A
Other languages
English (en)
Inventor
吴涛
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Ant Blockchain Technology Shanghai Co Ltd
Original Assignee
Ant Blockchain Technology Shanghai Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Ant Blockchain Technology Shanghai Co Ltd filed Critical Ant Blockchain Technology Shanghai Co Ltd
Priority to CN202310365383.1A priority Critical patent/CN116522356A/zh
Publication of CN116522356A publication Critical patent/CN116522356A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/602Providing cryptographic facilities or services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/64Protecting data integrity, e.g. using checksums, certificates or signatures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q40/00Finance; Insurance; Tax strategies; Processing of corporate or income taxes
    • G06Q40/04Trading; Exchange, e.g. stocks, commodities, derivatives or currency exchange

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Business, Economics & Management (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Accounting & Taxation (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Finance (AREA)
  • Development Economics (AREA)
  • Economics (AREA)
  • Marketing (AREA)
  • Strategic Management (AREA)
  • Technology Law (AREA)
  • General Business, Economics & Management (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本说明书一个或多个实施例提供一种数据查询方法及装置。其中,该方法应用于区块链系统,可以包括:对加密数据的元数据进行存证;所述加密数据基于目标数据的所有方的所有方公钥对所述目标数据进行加密后得到,所述加密数据维护于链下数据系统;获取所述所有方的所有方私钥的私钥密文,并将所述私钥密文与所述元数据进行关联存证;所述私钥密文由所述所有方在允许查询方查询所述目标数据的情况下,基于所述查询方的查询方公钥对所述所有方私钥进行加密得到;在接收到所述查询方请求查询所述目标数据的查询交易的情况下,基于关联存证的所述私钥密文和所述元数据向所述查询方返回响应信息,以由所述查询方基于所述响应信息获取到所述目标数据。

Description

数据查询方法及装置
技术领域
本说明书一个或多个实施例涉及区块链技术领域,尤其涉及一种数据查询方法及装置。
背景技术
区块链技术(也被称之为,分布式账本技术)是一种去中心化的分布式数据库技术,具有去中心化、公开透明、不可篡改、可信任等多种特点,适用于诸多对数据可靠性具有高需求的应用场景中。
鉴于区块链技术存在上述优势,且用户对自身隐私数据的越来越重视,大量数据被存储至区块链系统,以保证数据的安全性。
发明内容
有鉴于此,本说明书一个或多个实施例提供一种数据查询方法及装置。
为实现上述目的,本说明书一个或多个实施例提供技术方案如下:
根据本说明书一个或多个实施例的第一方面,提出了一种数据查询系统,包括:目标数据的查询方、目标数据的所有方、链下数据系统、区块链系统;所述链下数据系统,维护有通过所述所有方的所有方公钥对所述目标数据进行加密后得到的加密数据;所述区块链系统维护有所述加密数据的元数据;
所述所有方,在允许所述查询方查询所述目标数据的情况下,基于所述查询方的查询方公钥对所述所有方的所有方私钥进行加密,得到私钥密文;
所述区块链系统,获取所述私钥密文,并对获取到的私钥密文和已维护的所述元数据进行关联存证;以及,在接收到所述查询方请求查询所述目标数据的查询交易的情况下,基于关联存证的所述私钥密文和所述元数据向所述查询方返回响应信息;
所述查询方,基于所述响应信息获取所述目标数据;其中,基于所述响应信息获取到的目标数据基于所述所有方的所有方私钥对所述加密数据解密得到,所述所有方私钥基于所述查询方的查询方私钥对所述私钥密文解密得到、所述加密数据基于所述元数据获取。
根据本说明书一个或多个实施例的第二方面,提出了一种数据查询方法,应用于区块链系统,包括:
对加密数据的元数据进行存证;所述加密数据基于目标数据的所有方的所有方公钥对所述目标数据进行加密后得到,所述加密数据维护于链下数据系统;
获取所述所有方的所有方私钥的私钥密文,并将所述私钥密文与所述元数据进行关联存证;所述私钥密文由所述所有方在允许查询方查询所述目标数据的情况下,基于所述查询方的查询方公钥对所述所有方私钥进行加密得到;
在接收到所述查询方请求查询所述目标数据的查询交易的情况下,基于关联存证的所述私钥密文和所述元数据向所述查询方返回响应信息,以由所述查询方基于所述响应信息获取到所述目标数据;
其中,基于所述响应信息获取到的目标数据基于所述所有方私钥对所述加密数据解密得到,所述所有方私钥基于所述查询方的查询方私钥对所述私钥密文解密得到、所述加密数据基于所述元数据获取。
根据本说明书一个或多个实施例的第三方面,提出了一种数据查询方法,应用于数据查询平台,包括:
响应于目标数据的所有方在允许查询方查询所述目标数据的情况下提供的私钥密文,将所述私钥密文提供至区块链系统,以由所述区块链系统对所述私钥密文与已维护的元数据进行关联存证;其中,所述元数据为存储于链下数据系统的加密数据的元数据,所述加密数据基于所述所有方的所有方公钥对所述目标数据加密得到,所述私钥密文基于所述查询方的查询方公钥对所述所有方的所有方私钥进行加密得到;
响应于所述查询方请求查询所述目标数据的查询请求,向所述区块链系统发起针对所述目标数据的查询交易,以指示所述区块链系统将关联存证的所述私钥密文和所述元数据返回;
基于接收到的元数据从所述链下数据系统中获取所述加密数据,并将获取到的加密数据和接收到的私钥密文返回至所述查询方,以使所述查询方基于自身维护的查询方私钥对获取到的私钥密文进行解密,并基于解密得到的所有方私钥对获取到的加密数据进行解密,得到所述目标数据。
根据本说明书一个或多个实施例的第四方面,提出了一种数据查询装置,应用于区块链系统,包括:
存证单元,对加密数据的元数据进行存证;所述加密数据基于目标数据的所有方的所有方公钥对所述目标数据进行加密后得到,所述加密数据维护于链下数据系统;
获取单元,获取所述所有方的所有方私钥的私钥密文,并将所述私钥密文与所述元数据进行关联存证;所述私钥密文由所述所有方在允许查询方查询所述目标数据的情况下,基于所述查询方的查询方公钥对所述所有方私钥进行加密得到;
返回单元,在接收到所述查询方请求查询所述目标数据的查询交易的情况下,基于关联存证的所述私钥密文和所述元数据向所述查询方返回响应信息,以由所述查询方基于所述响应信息获取到所述目标数据;
其中,基于所述响应信息获取到的目标数据基于所述所有方私钥对所述加密数据解密得到,所述所有方私钥基于所述查询方的查询方私钥对所述私钥密文解密得到、所述加密数据基于所述元数据获取。
根据本说明书一个或多个实施例的第五方面,提出了一种数据查询装置,应用于数据查询平台,包括:
提供单元,响应于目标数据的所有方在允许查询方查询所述目标数据的情况下提供的私钥密文,将所述私钥密文提供至区块链系统,以由所述区块链系统对所述私钥密文与已维护的元数据进行关联存证;其中,所述元数据为存储于链下数据系统的加密数据的元数据,所述加密数据基于所述所有方的所有方公钥对所述目标数据加密得到,所述私钥密文基于所述查询方的查询方公钥对所述所有方的所有方私钥进行加密得到;
发起单元,响应于所述查询方请求查询所述目标数据的查询请求,向所述区块链系统发起针对所述目标数据的查询交易,以指示所述区块链系统将关联存证的所述私钥密文和所述元数据返回;
返回单元,基于接收到的元数据从所述链下数据系统中获取所述加密数据,并将获取到的加密数据和接收到的私钥密文返回至所述查询方,以使所述查询方基于自身维护的查询方私钥对获取到的私钥密文进行解密,并基于解密得到的所有方私钥对获取到的加密数据进行解密,得到所述目标数据。
根据本说明书一个或多个实施例的第六方面,提出了一种电子设备,包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,所述处理器通过运行所述可执行指令以实现如第二方面或第三方面所述的方法。
根据本说明书一个或多个实施例的第七方面,提出了一种计算机可读存储介质,其上存储有计算机指令,该指令被处理器执行时实现如第二方面或第三方面所述方法的步骤。
附图说明
图1是一示例性实施例提供的一种数据查询系统的示意图。
图2是一示例性实施例提供的一种数据查询方法的流程图。
图3是一示例性实施例提供的另一种数据查询方法的流程图。
图4是一示例性实施例提供的一种数据上链方法的交互图。
图5是一示例性实施例提供的一种数据授权方法的交互图。
图6是一示例性实施例提供的一种数据查询方法的交互图。
图7是一示例性实施例提供的一种设备的结构示意图。
图8是一示例性实施例提供的一种数据查询装置的框图。
图9是一示例性实施例提供的另一种数据查询装置的框图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本说明书一个或多个实施例相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本说明书一个或多个实施例的一些方面相一致的装置和方法的例子。
需要说明的是:在其他实施例中并不一定按照本说明书示出和描述的顺序来执行相应方法的步骤。在一些其他实施例中,其方法所包括的步骤可以比本说明书所描述的更多或更少。此外,本说明书中所描述的单个步骤,在其他实施例中可能被分解为多个步骤进行描述;而本说明书中所描述的多个步骤,在其他实施例中也可能被合并为单个步骤进行描述。
在区块链技术领域中,若用户请求查询存储至区块链系统的链上数据,需要优先获得数据所有方的授权。区块链系统在接收到查询请求后,会对查询请求进行授权校验,以确定相应数据的所有方是否允许该查询请求的发起方查询该数据,或者说查询请求的发起方是否已经获得了相应数据的所有方的查询授权,其中,在查询方已获得授权的情况下,才将相应数据返回至查询方。
不难看出,在传统的区块链技术中,授权校验由区块链系统执行。而之所以可以由区块链系统执行授权校验的操作,是由于传统的区块链系统将链上数据的原始数据存于链上,即各个区块链节点均会保存一份数据,其可以保证“授权校验—数据查询—数据返回”各个阶段对于区块链系统均是可控且可信的。
然而,随着链上数据量越来越庞大,技术人员提出了将链上数据的原始数据存储至链下的存储方案。在该方案中,区块链系统可以仅存证类似于“哈希值”等与原始数据对应的唯一标识符的方式,对存储于链下的原始数据进行绑定,在该前提下,一旦链下存储的原始数据被篡改,必然无法与链上存储的哈希值相匹配,进而起到在保证数据不可篡改特性的同时,大幅降低对区块链系统存储资源占用的效果。
不难看出,在将链上数据的原始数据存储至链下之后,数据查询、数据返回等操作均不由区块链系统掌控,若仍如传统区块链技术由区块链系统执行“授权校验”操作,必然导致“授权校验”、“数据查询和返回”的割裂,链下的数据查询和返回操作对于区块链系统而言不可信。在该情况下,即便区块链系统判定的结果为授权校验通过,也可能存在“链下实际返回的数据并非查询方所需数据”、“链下实际查询到的数据并非返回给查询请求的发起方”等问题。换言之,相关技术中存在数据查询操作不可信的问题。
可见,相关技术尚无一种适用于“将链上数据的原始数据存储于链下”这一区块链存储方案的数据查询方法。
有鉴于此,本说明书提出了一种数据查询系统,能够避免相关技术中由于授权校验与数据返回等操作相互割裂,而导致返回的数据查询操作不可信的问题。
图1为本说明书一示例性实施例示出的一种数据查询系统的示意图。如图1所示,该数据查询系统,包括:目标数据的查询方11、目标数据的所有方12、链下数据系统13、区块链系统14;链下数据系统13,维护有通过所有方12的所有方公钥对所述目标数据进行加密后得到的加密数据;区块链系统14维护有所述加密数据的元数据;
所有方12,在允许所述查询方11查询所述目标数据的情况下,基于查询方11的查询方公钥对所有方12的所有方私钥进行加密,得到私钥密文;
区块链系统14,获取所述私钥密文,并对获取到的私钥密文和已维护的所述元数据进行关联存证;以及,在接收到查询方11请求查询所述目标数据的查询交易的情况下,基于关联存证的所述私钥密文和所述元数据向查询方11返回响应信息;
查询方11,基于所述响应信息获取所述目标数据;其中,基于所述响应信息获取到的目标数据基于所有方12的所有方私钥对所述加密数据解密得到,所述所有方私钥基于查询方11的查询方私钥对所述私钥密文解密得到、所述加密数据基于所述元数据获取。
在本说明书中,链下数据系统13维护有经由目标数据的所有方12的所有方公钥加密后得到的加密数据,而区块链系统14则可以维护有该加密数据的元数据。
在此基础上,当目标数据的查询方11需要查询目标数据时,即可请求所有方12允许自身查询目标数据,其中,在所有方12允许查询方11查询目标数据时,即可基于查询方11的查询方公钥对自身持有的所有方私钥进行加密得到私钥密文,并将该私钥密文提供至区块链系统14,以由区块链系统14对该私钥密文和已维护的元数据进行关联存证。
在该前提下,查询方11即可向区块链系统14发起请求查询目标数据的查询交易,以指示区块链系统基于关联存证的私钥密文和元数据返回响应信息,而查询方11即可基于该响应信息获取目标数据。
应当理解的是,由于所有方12在允许查询方11查询目标数据时,是基于查询方11的查询方公钥对自身持有的所有方私钥进行加密,得到私钥密文,使得仅持有查询方私钥的查询方11能够对该私钥密文进行解密。可见,尽管该私钥密文并未如相关技术中的授权凭证,即标明“授权方、被授权方、授权对象”等授权信息,但由于除查询方11以外的其他用户无法对私钥密文进行解密,因此,该私钥密文相当于相关技术中的授权凭证,用于表明所有方12允许查询方11查询目标数据。
再者,由于私钥密文被存证至区块链系统14,能够保证私钥密文的可靠性,进而避免由于私钥密文被篡改,而导致查询方11无法基于查询方私钥对其进行解密等情况。不难看出,对于本说明书中的区块链系统14,只需保证私钥密文不被篡改,就能够保证仅有查询方11能够获得目标数据的明文,即数据查询操作对于区块链系统14可信。
其次,私钥密文与加密数据的元数据被关联存证于区块链系统14中,使得本说明书一方面可以基于元数据从链下数据系统13中获取目标数据的加密数据;另一方面,可以在基于查询方11的查询方私钥对私钥密文进行解密后,基于解密得到的所有方私钥对获取到的加密数据进行解密得到目标数据。
可见,基于本说明书的数据查询系统,尽管数据查询和返回的操作在链下执行,但由于返回的数据经由所有方公钥加密,而用于对加密数据进行解密的所有方私钥唯有查询方11的查询方私钥能够解密得到,因此,能够保证目标数据的明文仅有查询方11能够获得,避免了相关技术在将原始数据维护于链下时,授权操作与数据返回操作相互割裂,而导致数据查询操作不可信的问题。
由上述介绍可知,本说明书中的链下数据系统13需要优先获取目标数据的加密数据,以对其进行维护。例如,目标数据的所有方12可以自行基于自身维护的所有方公钥对目标数据进行加密,并将得到的加密数据提供至链下数据系统13;又例如,所有方12可以将目标数据提供至信任的对象,以由该对象基于所有方公钥对目标数据进行加密,并将加密得到的加密数据提供至链下数据系统13。当然,此处举例仅是示意性的,链下数据系统13具体如何获取目标数据的加密数据,可由本领域技术人员根据实际需求确定,本说明书对此不作限制。
相类似的,本说明书中的区块链系统14则需要获取已维护于链下数据系统13的加密数据的元数据。例如,链下数据系统13在对目标数据的加密数据进行存证之后,即可生成加密数据的元数据,并将该元数据提供至区块链系统14,以由其进行维护;再例如,链下数据系统13在对目标数据的加密数据进行存证之后,可以将加密数据的描述信息提供至所有方12,以便所有方12基于已记录的目标数据的描述信息和接收到的描述信息生成元数据,并将该元数据提供至区块链系统14。当然,此处举例仅是示意性的,区块链系统14具体如何获取加密数据的元数据,可由本领域技术人员根据实际需求确定,本说明书对此不作限制。
值得注意的是,加密数据的元数据指的是:加密数据的描述信息。该元数据具体包含哪些信息,可由本领域技术人员根据实际需求确定,例如,可以包含加密数据在链下数据系统13中的存储信息、目标数据的标识信息(如,可以为哈希值等维护于链上的、与链下原始数据绑定的唯一标识符)、目标数据的属性信息等,本说明书对此不作限制。
在本说明书中,目标数据的查询方11可以通过多种方式请求所有方12允许其查询目标数据。例如,查询方11可以通过链下交互的方式,譬如,当面沟通、通过通讯应用发送消息等手段请求所有方12允许自身查询目标数据;再例如,查询方11也可以通过区块链系统14向所有方12发起针对目标数据的查询权限的许可请求。当然,此处举例仅是示意性的,查询方11具体如何请求所有方12允许自身查询目标数据,可由本领域技术人员根据实际需求确定,本说明书对此不作限制。
在本说明书中,所有方12在允许查询方11查询目标数据的情况下,即可获取查询方11的查询方公钥,以用于对自身持有的所有方私钥进行加密,得到私钥密文。该私钥密文可以被提供至区块链系统14,以由其进行维护,进而避免私钥密文被篡改。而区块链系统14在获取到该私钥密文后,即可将该私钥密文与已维护的加密数据的元数据进行关联存证,以便在数据查询时,可以快速查找到用于获取目标数据的凭证。
应当理解的是,由于查询方公钥是公开的,因此,所有方12可以通过多种方式获取查询方11的查询方公钥。例如,所有方12可以直接从查询方11处获取查询方公钥;再例如,查询方11可以预先将查询方公钥存证至区块链系统,以便所有方12可以从区块链系统处获取该查询方公钥,譬如,查询方11可以基于自身维护的查询方公钥以及该查询方公钥的公钥唯一标识生成公钥注册请求,并将该公钥注册请求发送至区块链系统14,而区块链系统14则可以对请求中包含的查询方公钥和公钥唯一标识进行关联存证,在此基础上,当所有方12允许查询方11查询目标数据时,即可基于查询方公钥的公钥唯一标识,向区块链系统14发起公钥获取请求,以由区块链系统基于请求中包含的公钥唯一标识将查询方公钥返回。当然,此处仅是示意性的,所有方12如何获取查询方11的查询方公钥,可由本领域技术人员根据实际情况确定,本说明书对此不作限制。
在本说明书中,可以通过不同的方式对所有方私钥的私钥密文和加密数据的元数据进行关联存证。例如,区块链系统14可以将加密数据的元数据和私钥密文存储于同一存储区域中,譬如,存储于同一区块中,或者存储于同一合约账户中;再例如,区块链系统14可以对加密数据的元数据和目标数据的唯一标识符进行关联存证,而在获取到私钥密文时,也可以对私钥密文和目标数据的唯一标识符进行关联存证,由于私钥密文和元数据均与目标数据的唯一标识符进行关联存证,相当于对两者进行了关联存证,在此基础上,区块链系统14在接收到查询交易时,即可从中读取目标数据的唯一标识符,以基于该唯一标识符从维护的所有关联存证的私钥密文和哈希值中,确定出加密数据的元数据和所有方私钥的私钥密文。当然,此处举例仅是示意性的,具体如何对加密数据的元数据和所有方私钥的私钥密文进行关联存证,可由本领域技术人员根据实际需求确定,本说明书对此不作限制。
在本说明书中,在将私钥密文存证至区块链系统14之后,查询方11即可向区块链系统14发起请求查询目标数据的查询交易,以获取目标数据。
在一实施例中,基于关联存证的私钥密文和元数据获取目标数据明文的操作可以由查询方11自行执行。换言之,区块链系统14在接收到查询交易的情况下,可以将关联存证的私钥密文和元数据作为响应信息返回至查询方11,而查询方11在获取到响应信息后,一方面可以基于响应信息中包含的元数据从链下数据系统13中获取目标数据的加密数据,另一方面可以基于自身维护的查询方私钥对获取到的私钥密文进行解密,以得到所有方12的所有方私钥,在此基础上,即可基于解密得到的所有方私钥对获取的加密数据进行解密,得到目标数据。
在本实施例的一种情况下,区块链系统14可以仅将与目标数据对应的私钥密文和元数据返回至查询方,以由其用于获取目标数据。例如,可以如上所述,在私钥密文和元数据均与目标数据的唯一标识符关联存证的情况下,只需在查询交易中添加该唯一标识符,区块链系统14即可从维护的所有私钥密文和元数据中,查找到与目标数据对应的私钥密文和元数据,并返回至查询方11。当然,除了基于唯一标识符查找与目标数据对应的私钥密文和元数据的方式以外,还可以采用其他方式进行查找。再例如,可以在存证时将两者均与所有方12的账户地址关联存证,那么,查询方11可以在查询交易中添加所有方12的账户地址,以用于查找与目标数据对应的私钥密文和元数据;又例如,还可以将两者存证于同一存储位置,并将该存储位置的位置信息返回至所有方12,所有方12则可以在允许查询方11查询时,将该位置信息提供至查询方11,在此基础上,查询方11即可在查询交易中添加该位置信息,以便区块链系统14基于该位置信息查找与目标数据对应的私钥密文和元数据。当然,此处举例均是示意性的,具体如何从所有关联存证的私钥密文和元数据中,查找到与目标数据对应的私钥密文和元数据,可由本领域技术人员根据实际需求确定,本说明书对此不作限制。
在本实施例的另一种情况下,区块链系统14也可以将维护的所有关联存证的私钥密文和元数据作为响应信息返回至查询方11。在该情况下,查询方11可以基于维护的查询方私钥对获取到的私钥密文进行解密,并在对任一私钥密文解密得到所有方12的所有方私钥的情况下,基于与该任一私钥密文关联存证的元数据从链下数据系统13中获取加密数据,并基于解密得到的所有方私钥对获取到的加密数据进行解密,得到目标数据。应当理解的是,只要是查询方私钥能够解密成功,该私钥密文就必然是基于查询方公钥加密得到的,而本说明书中由所有方12通过查询方公钥对所有方私钥进行加密,因此,只要解密成功,即可得到所有方私钥,在此基础上,即可通过解密得到的所有方私钥对通过相应元数据获取到的加密数据进行解密。
在另一实施例中,若查询方11信任区块链系统14,则基于关联存证的私钥密文和元数据获取目标数据明文的操作可以由区块链系统14代为执行。在该实施例中,查询方11可以将自身维护的查询方私钥添加至查询交易,以提供至区块链系统14,而区块链系统14在获取到与目标数据对应的关联存证的私钥密文和元数据后,一方面,可以基于获取到的元数据从链下数据系统13中获取加密数据;另一方面,可以从查询交易中读取到的查询方私钥,以对获取到的私钥密文进行解密,得到所有方私钥,在此基础上,即可基于所有方私钥对获取到的加密数据进行解密,以将解密得到的目标数据作为响应信息返回至查询方11。
在本实施例的一种情况下,可以如上所述,在私钥密文和元数据均与目标数据的唯一标识符关联存证的情况下,只需在查询交易中添加该唯一标识符,区块链系统14即可从维护的所有私钥密文和元数据中,查找到与目标数据对应的私钥密文和元数据。在该情况下,区块链系统14一方面可以基于查询交易中包含的查询方私钥对获取到的私钥密文进行解密,得到所有方私钥,另一方面可以基于获取到的元数据从链下数据系统13中获取加密数据,在此基础上,即可基于解密得到的所有方私钥对获取到的加密数据进行解密得到目标数据。与上一实施例相类似的,除了通过目标数据的唯一标识符确定与目标数据对应的私钥密文和元数据以外,还可以通过其他方式,如账户地址、存储位置的位置信息等进行查找,在此不再赘述。
在本实施例的另一种情况下,可以与上一实施例相类似,可以基于查询方私钥对所有私钥密文进行解密。例如,区块链系统14可以基于从查询交易中读取到的查询方私钥对维护的所有私钥密文进行解密,并在对任一私钥密文解密成功的情况下,得到所有方私钥;在此基础上,即可获取与该任一私钥密文关联存证的元数据,以基于获取到的元数据从链下数据系统13获取目标数据的加密数据,在该前提下,即可基于对上述任一私钥密文解密得到的所有方私钥,对获取到的加密数据进行解密,进而将解密得到的目标数据返回至查询方;再例如,区块链系统14也可以获取维护的所有关联存证的私钥密文和元数据,并基于获取到的所有元数据从链下数据系统13获取多个加密数据,在此基础上,即可基于从查询交易中读取到的查询方私钥对获取到的私钥密文进行解密,并在对任一私钥密文解密成功,得到所有方私钥的情况下,基于该所有方私钥对获取到的多个加密数据进行解密,以将对其中的任一加密数据解密成功得到目标数据返回至查询方11。
当然,上述举例仅是示意性的,区块链系统14具体如何向查询方11返回响应消息,以使查询方11可以获取到目标数据的明文,可由本领域技术人员根据实际情况确定,本说明书对此不作限制。
在本说明书中,数据查询系统中还可以包含数据查询平台15。在该情况下,无论是查询方11,还是所有方12均可以通过数据查询平台15与链下数据系统13、区块链系统14进行交互。
举例而言,在数据查询系统包含数据查询平台15的情况下,所有方12可以基于维护的所有方公钥对持有的所述目标数据进行加密,并将加密得到的加密数据提供至该数据查询平台15。而数据查询平台15则可以将接收到的加密数据提供至链下数据系统13,以由链下数据系统13进行存储,其中,链下数据系统13在完成加密数据的存储之后,即可生成加密数据在链下数据系统13中的存储信息,而该存储信息可用于生成加密数据的元数据。因此,数据查询平台15还可以负责将加密数据的元数据提供至区块链系统14,以由区块链系统14进行存证。
值得注意的是,生成加密数据的元数据的执行主体既可以是链下数据系统13,也可以是数据查询平台15,其中,在执行主体为链下数据系统13的情况下,可以在生成上述存储信息之后,基于该存储信息生成加密数据的元数据,并将该元数据返回给数据查询平台15,以由其提供至区块链系统14;而在执行主体为数据查询平台15时,链下数据系统13可以将生成的上述存储信息直接返回至数据查询平台15,以由数据查询平台15在基于该存储信息生成加密数据的元数据之后,将元数据提供至区块链系统14,以由其进行存证。
还需注意的是,上述加密数据的元数据,除了包含加密数据的存储信息以外,还可以包含其他信息,例如,还可以包含目标数据的描述信息,譬如,目标数据的唯一标识符、目标数据的数据类型等;再例如,还可以包含加密数据的加密信息,譬如,加密算法、加密格式等。当然,该举例仅是示意性的,该元数据具体包含哪些信息可以本领域技术人员根据实际需求确定,本说明书对此不作限制。
进一步的,在数据查询系统包含数据查询平台15的情况下,数据查询平台15除了用于对加密数据及其元数据进行存证之外,还可以用于对所有方12的私钥密文进行存证。换言之,所有方12在得到所有方私钥的私钥密文的情况下,也可以将私钥密文提供至数据查询平台15,而数据查询平台15则可以在接收到私钥密文的情况下,基于该私钥密文向区块链系统14发起私钥密文存证交易,以由区块链系统14对该私钥密文进行存证。
再进一步的,在数据查询系统包含数据查询平台15的情况下,数据查询平台15还可以用于对查询方11发起的查询请求进行响应。例如,查询方11可以将请求查询目标数据的查询请求发送至数据查询平台15,而数据查询平台15则可以向区块链系统14发起针对目标数据的查询交易,以由区块链系统14基于关联存证的元数据和私钥密文返回响应消息,而数据查询平台15则可以将区块链系统14返回的响应消息转发至查询方11。
在数据查询系统包含数据查询平台15的情况下,本说明书还可以在数据查询平台15中维护上述元数据与私钥密文的对应关系。例如,数据查询平台15在获取到加密数据的元数据的情况下,可以记录目标数据的唯一标识符与该元数据的哈希值的对应关系;而在接收到所有方私钥的私钥密文的情况下,则可以记录目标数据的唯一标识符与该私钥密文的哈希值的对应关系。而区块链系统14则可以在获取到元数据时,对该元数据及其哈希值进行关联存证,在获取到私钥密文时,对该私钥密文及其哈希值进行关联存证。
在该前提下,当数据查询平台15接收到查询方11发起的查询请求时,可以读取请求中包含的目标数据的唯一标识符,以根据读取到的唯一标识符确定出上述加密数据的元数据的哈希值,以及所有方私钥的私钥密文的哈希值,并基于确定出的元数据的哈希值和私钥密文的哈希值向区块链系统14发起针对目标数据的查询交易,而区块链系统14在接收到查询交易后,则可以基于交易中包含的私钥密文的哈希值查找到加密数据的私钥密文、基于查询交易中包含的元数据的哈希值查找到加密数据的元数据,并将查找到的私钥密文和元数据返回至数据查询平台15。数据查询平台15在接收到私钥密文和元数据之后,可以优先基于元数据从链下数据系统13处获取加密数据,再将获取到的加密数据和区块链系统14返回的私钥密文返回至查询方11,以便查询方11基于维护的查询方私钥对接收到的私钥密文进行解密,并进一步基于解密得到的所有方私钥对接收到的加密数据进行解密,得到目标数据。
当然,上述举例仅是示意性的,在数据查询系统包含数据查询平台15的情况下,具体如何进行交互,以使查询方11获取到所需的目标数据,可由本领域技术人员根据实际需求确定,本说明书对此不作限制。
在本说明书中,值得注意的是,所有方12既可以基于统一的所有方私钥对所有持有的数据进行加密,也可以基于不同的所有方私钥对持有的各个数据分别进行加密。例如,在基于统一的所有方私钥对所有数据进行加密时,所有方12可以将自身的身份私钥作为所有方私钥,用于对不同数据进行加密;而在基于不同所有方私钥对各个数据分别进行加密时,则可以在需要对任一数据进行加密时,生成与该任一数据唯一对应的所有方私钥,以对该任一数据进行加密。
换言之,本说明书中用于对目标数据进行加密的所有方私钥,既可以与用于加密其他数据的所有方私钥一致,也可以与目标数据唯一对应。
其中,在与目标数据唯一对应的情况下,所有方12在需要对目标数据进行加密时,可以生成与该目标数据唯一对应的所有方公私钥对,以基于该所有方公私钥对中的所有方公钥对目标数据进行加密,得到目标数据的加密数据;而在需要对区别于该目标数据的其他数据进行加密时,则可以生成与其他数据对应的所有方公私钥对,以基于该所有方公私钥对中的所有方公钥对其他数据进行加密,得到其他数据的加密数据。与此相对应的,基于响应信息获取到的目标数据,可以通过基于与目标数据对应的所有方公私钥对中的所有方私钥,对目标数据的加密数据解密得到。
应当理解的是,若所有方12基于统一的所有方私钥对所有持有的数据进行加密,则在所有方12允许查询方11查询目标数据,并基于查询方11的查询方公钥对所有方私钥进行加密之后,查询方11可以基于解密得到的所有方私钥对所有方12的所有数据进行解密,相当于所有方12向查询方11公开了所有持有的数据的查询权限,无法对数据的查询权限进行精准管控。与之相对应的,若所有方12基于与各个数据唯一对应的所有方私钥对相应数据进行加密,则在所有方12允许查询方11查询目标数据,并基于查询方11的查询方公钥对与目标数据唯一对应的所有方私钥进行加密之后,查询方11仅能够基于解密得到的所有方私钥对目标数据进行解密,能够以单个数据为粒度,精准管控每一数据的查询权限。
除此之外,本说明书中的区块链系统既可以基于区块链技术的传统架构部署,即区块链系统中的所有节点均通过在相应实体设备上部署区块链代码而形成,大多数情况下,每个节点均对应于一个实体设备;本说明书的区块链系统也可以基于区块链技术中的BaaS(Blockchain as a Service)架构部署,即区块链系统中的所有节点均通过云服务在云端实现的虚拟机上部署区块链代码而形成,区块链节点无需一一对应于相应的实体设备。
由上述技术方案可知,尽管本说明书将链上数据的原始数据加密存储至链下数据系统,但在区块链系统中维护了在链下数据系统中存储的加密数据的元数据,以及该加密数据所有方在允许查询方查询该加密数据时,基于查询方公钥对所有方私钥进行加密后得到的私钥密文。在此基础上,查询方一方面可以基于区块链系统中维护的元数据从链下数据系统中获取加密数据,另一方面,则可以基于查询方私钥对私钥密文进行解密,并基于解密得到的所有方私钥对获取到的加密数据进行解密,得到需要查询的数据的明文。
应当理解的是,由于所有方基于查询方公钥对“用于解密加密数据的所有方私钥”进行加密,因此,唯有查询方能够对存储于链下的加密数据进行解密,得到相应数据的明文。可见,虽然本说明书未如相关技术,即通过“标明授权方、授权对象、被授权方的授权凭证”进行查询权限验证,但本说明书仍能够避免除被授权的查询方以外的其他用户获取查询方所需查询的目标数据。
除此之外,由于用于获取链下数据系统中的加密数据的元数据、以及基于查询方公钥对所有方私钥进行加密得到的私钥密文均被存证至区块链系统,因此,本说明书能够保证元数据、私钥密文本身不被篡改,进而保证基于该元数据和私钥密文获取目标数据明文的过程的可靠性。不难理解的是,用于获取目标数据明文的元数据和私钥密文存证至区块链系统,相当于区块链系统间接掌控了数据查询过程中的数据返回操作,保证了整个数据查询过程的可靠性。换言之,本说明书可以避免相关技术中由于授权操作与数据返回操作相互割裂,而导致数据查询操作不可靠的问题。
进一步的,本说明书可以为不同数据分配唯一对应的所有方公私钥对,以用于对相应数据进行加解密。在此基础上,所有方基于查询方公钥加密得到的、且存证于区块链系统的私钥密文,在被查询方解密后,仅能够用于获取单一数据的明文。可见,在该情况下,可以实现对单个数据的查询权限的精准授权。
在上述数据查询系统的基础上,本说明书还公开了一种数据查询方法。在该方法中,大多数操作方式,例如,如何对数据进行加密、如何生成加密数据的元数据、查询方如何获取加密数据的明文等,均与上文所述的数据查询系统一致,相关内容均可参照上文所述的数据查询系统,在下文中不再赘述。
图2为本说明书一示例性实施例示出的一种数据查询方法的流程图。该方法应用于区块链系统,如图2所示,该方法可以包括以下步骤:
步骤202,对加密数据的元数据进行存证;所述加密数据基于目标数据的所有方的所有方公钥对所述目标数据进行加密后得到,所述加密数据维护于链下数据系统。
如上所述,目标数据在经由目标数据的所有方的所有方公钥加密后,可以将加密数据提供至链下数据系统,以由链下数据系统进行维护,而加密数据的元数据则可以提供至区块链系统,以由区块链系统进行存证。
步骤204,获取所述所有方的所有方私钥的私钥密文,并将所述私钥密文与所述元数据进行关联存证;所述私钥密文由所述所有方在允许查询方查询所述目标数据的情况下,基于所述查询方的查询方公钥对所述所有方私钥进行加密得到。
如上所述,查询方可以通过多种方式请求所有方允许其查询目标数据。例如,查询方可以通过链下交互的方式,譬如,当面沟通、通过通讯应用发送消息等手段请求所有方允许自身查询目标数据;再例如,查询方也可以通过区块链系统向所有方发起针对目标数据的查询权限的许可请求。其中,所有方在允许查询方查询目标数据的情况下,即可基于查询方的查询方公钥对所有方私钥进行加密,以得到私钥密文,在此基础上,区块链系统即可获取该私钥密文,并将该私钥密文与已维护的元数据进行关联存证。
如上所述,由于查询方公钥是公开的,因此,所有方可以通过多种方式获取查询方的查询方公钥。例如,可以直接从查询方处获取查询方公钥;再例如,查询方公钥可以预先注册至区块链系统,以便所有方可以从区块链系统处获取该查询方公钥,譬如,查询方可以基于自身维护的查询方公钥及其公钥唯一标识生成公钥注册交易,并将其发送至区块链系统,而区块链系统则可以响应于该公钥注册交易,对公钥注册交易中包含的查询方公钥和所述公钥唯一标识进行关联存证,在该前提下,所有方在允许查询方查询目标数据时,即可向区块链系统发起针对查询方公钥的公钥获取交易,而区块链系统则可以响应于该公钥获取交易,以基于公钥获取交易中包含的公钥唯一标识将查询方公钥返回至所有方。
步骤206,在接收到所述查询方请求查询所述目标数据的查询交易的情况下,基于关联存证的所述私钥密文和所述元数据向所述查询方返回响应信息,以由所述查询方基于所述响应信息获取到所述目标数据;其中,基于所述响应信息获取到的目标数据基于所述所有方私钥对所述加密数据解密得到,所述所有方私钥基于所述查询方的查询方私钥对所述私钥密文解密得到、所述加密数据基于所述元数据获取。
如上所述,在将私钥密文存证至区块链系统之后,查询方即可向区块链系统发起请求查询目标数据的查询交易,以获取目标数据。而区块链系统在接收到查询方请求查询目标数据的查询交易的情况下,即可基于关联存证的私钥密文和元数据向查询方返回响应信息,以由所述查询方基于该响应消息获取目标数据。
如上所述,基于关联存证的私钥密文和元数据获取目标数据明文的操作可以由查询方自行执行。在该情况下,区块链系统可以将关联存证的私钥密文和元数据作为响应信息返回至查询方,以由查询方基于获取到的元数据从链下数据系统中获取加密数据,并基于自身维护的查询方私钥对获取到的私钥密文进行解密,以基于解密得到的所有方私钥对获取到的加密数据进行解密,得到目标数据。
如上所述,在查询方信任区块链系统时,基于关联存证的私钥密文和元数据获取目标数据明文的操作也可以由区块链系统执行。在该情况下,区块链系统在获取关联存证的私钥密文和元数据之后,即可基于获取到的元数据从链下数据系统中获取加密数据,并基于从查询交易中读取到的查询方私钥对获取到的私钥密文进行解密,得到所有方私钥,在此基础上,即可基于该所有方私钥对获取到的加密数据进行解密,以将解密得到的目标数据作为响应信息返回至查询方。
如上所述,区块链系统可以通过不同的方式对所有方私钥的私钥密文和加密数据的元数据进行关联存证。例如,区块链系统一方面可以对目标数据的唯一标识符与加密数据的元数据进行关联存证;另一方面,可以对所有方私钥的私钥密文与目标数据的唯一标识符关联存证。换言之,可以基于目标数据的唯一标识符对加密数据的元数据和所有方私钥的私钥密文进行关联存证。在该前提下,区块链系统在接收到查询交易的情况下,即可读取查询交易中包含的目标数据的唯一标识符,以根据该唯一标识符从维护的所有关联存证的私钥密文和元数据中,确定出加密数据的元数据和所有方私钥的私钥密文。
如上所述,所有方既可以基于统一的所有方私钥对所有持有的数据进行加密,也可以基于不同的所有方私钥对持有的各个数据分别进行加密。例如,在基于统一的所有方私钥对所有数据进行加密时,所有方可以将自身的身份私钥作为所有方私钥,用于对不同数据进行加密;而在基于不同所有方私钥对各个数据分别进行加密时,则可以在需要对任一数据进行加密时,生成与该任一数据唯一对应的所有方私钥,以对该任一数据进行加密。
换言之,本说明书中用于对目标数据进行加密的所有方私钥,既可以与用于加密其他数据的所有方私钥一致,也可以与目标数据唯一对应。其中,在与目标数据唯一对应的情况下,区块链系统在获取到区别于目标数据的其他数据的加密数据的情况下,也可以对该加密数据进行存证,而该加密数据基于与其他数据唯一对应的所有方私钥加密得到。
由上述技术方案可知,由于维护于链下的加密数据的元数据和用于对加密数据进行解密的所有方私钥的私钥密文由区块链系统关联存证,因此,保证了用于获取目标数据的两个凭证本身的可靠性。而私钥密文又是经由查询方公钥加密得到,使得唯有从所有方处获取查询许可的查询方能够解密得到所有方私钥,进而解密得到目标数据,可见,即便本说明书中的数据返回操作不由区块链系统直接掌控,也能保证数据查询操作的可靠性,避免了相关技术中由于数据返回操作与授权校验操作相互割裂,而导致数据查询操作不可靠的问题。
除上述数据查询方法以外,本说明书还公开了另一种数据查询方法。该方法应用于上文所述的数据查询系统中包含的数据查询平台。在该方法中,大多数操作方式,例如,如何对数据进行加密、如何生成加密数据的元数据、查询方如何获取加密数据的明文等,均与上文所述的数据查询系统一致,相关内容均可参照上文所述的数据查询系统,在下文中不再赘述。
图3为本说明书一示例性实施例示出的另一种数据查询方法的流程图。该方法应用于数据查询平台。如图3所示,该方法可以包括以下步骤:
步骤302,响应于目标数据的所有方在允许查询方查询所述目标数据的情况下提供的私钥密文,将所述私钥密文提供至区块链系统,以由所述区块链系统对所述私钥密文与已维护的元数据进行关联存证;其中,所述元数据为存储于链下数据系统的加密数据的元数据,所述加密数据基于所述所有方的所有方公钥对所述目标数据加密得到,所述私钥密文基于所述查询方的查询方公钥对所述所有方的所有方私钥进行加密得到。
如上所述,由于本方法应用于数据查询平台,因此,目标数据在经由目标数据的所有方的所有方公钥加密后,可以优先被提供至该数据查询平台,以由数据查询平台将加密数据提供至链下数据系统,以由链下数据系统进行维护。除此之外,加密数据的元数据也可以由数据查询平台提供至区块链系统,以由区块链系统进行存证。
如上所述,目标数据的所有方在允许查询方查询目标数据的情况下,可以基于查询方的查询方公钥对自身的所有方私钥进行加密,以得到私钥密文,并将该私钥密文提供至数据查询平台。而数据查询平台在接收到私钥密文后,则可以将该私钥密文提供至区块链系统,以由区块链系统对接收到的私钥密文与已维护的元数据进行关联存证。其中,该元数据为存储于链下数据系统的加密数据的元数据,而该加密数据则基于所有方的所有方公钥对目标数据加密得到。
如上所述,所有方可以通过多种方式获取查询方的查询方公钥。例如,数据查询平台可以响应于查询方基于查询方公钥及其公钥唯一标识生成的公钥注册请求,将该公钥注册请求中包含的查询方公钥和公钥唯一标识提供至区块链系统,以由区块链系统对查询方公钥和公钥唯一标识进行关联存证,在此基础上,所有方即可基于公钥唯一标识从区块链系统处获取查询方公钥,以用于加密所有方私钥,得到上述私钥密文。
步骤304,响应于所述查询方请求查询所述目标数据的查询请求,向所述区块链系统发起针对所述目标数据的查询交易,以指示所述区块链系统将关联存证的所述私钥密文和所述元数据返回。
如上所述,区块链系统可以通过不同的方式对所有方私钥的私钥密文和加密数据的元数据进行关联存证。例如,由于本方法应用于数据查询平台,因此,数据查询平台中可以维护有目标数据的唯一标识符、上述元数据的哈希值和所有方私钥的私钥密文的哈希值的对应关系。换言之,本方法可以以目标数据的唯一标识符为纽带,关联存证加密数据的元数据和所有方私钥的私钥密文,在该前提下,数据查询平台在接收到查询方发起的请求查询目标数据的查询请求的情况下,即可读取该查询请求中包含的目标数据的唯一标识符,以根据该唯一标识符确定出上述对应关系中包含元数据的哈希值和私钥密文的哈希值,并基于确定出的元数据的哈希值和私钥密文的哈希值向区块链系统发起针对目标数据的查询交易,以指示区块链系统基于查询交易中包含的哈希值将关联存证的私钥密文和元数据返回。
步骤306,基于接收到的元数据从所述链下数据系统中获取所述加密数据,并将获取到的加密数据和接收到的私钥密文返回至所述查询方,以使所述查询方基于自身维护的查询方私钥对获取到的私钥密文进行解密,并基于解密得到的所有方私钥对获取到的加密数据进行解密,得到所述目标数据。
如上所述,数据查询平台在接收到区块链系统返回的元数据和私钥密文后,即可基于该元数据从链下数据系统中获取目标数据的加密数据,并将获取到的加密数据和区块链系统返回的私钥密文返回至查询方。在此基础上,查询方即可基于自身维护的查询方私钥对获取到的私钥密文进行解密,并基于解密得到的所有方私钥对获取到的加密数据进行解密,得到目标数据。
由上述技术方案可知,本方法引入了数据查询平台,使得参与数据查询操作的多方,即区块链系统、链下数据系统、所有方、查询方均只需与数据查询平台进行交互,即可完成数据查询操作。应当理解的是,由于多方均只与数据查询平台进行交互,因此,只需基于数据查询平台即可实现对数据查询操作的各个步骤,例如,元数据的存证、私钥密文的存证、加密数据的存储、查询交易的发起等进行统一管理。可见,本说明书可以通过引入数据查询平台,进一步提高数据查询操作的可控性。
由上述介绍可知,本说明书的技术方案大致可以划分为三个阶段,即数据上链阶段、数据授权阶段、数据返回阶段。
下面,以用户2请求查询归属于用户1的数据X为例,分阶段对本说明书的技术方案进行详细介绍。
图4为本说明书一示例性实施例示出的一种数据上链方法的交互图。如图4所示,该方法可以包括以下步骤:
步骤401,用户1为数据X生成加密公私钥对A。
在本实施例中,用户1在需要将数据X上链时,可以生成与数据X唯一对应的加密公私钥对A,以用于对数据X进行加密存储。例如,可以基于数据X的唯一标识符“X”和用户1的身份密钥生成该加密公私要对A,具体如何生成该加密公私钥对A可由本领域技术人员根据实际需求确定,本实施例对此不作限制。
值得注意的是,本实施例各个步骤中的用户1泛指用户1及其持有的设备,并非指用户1仅靠自身而不借助设备即可执行本方法中的步骤,而是可以理解为用户1通过自身持有的设备执行本方法中的各个步骤。
步骤402,用户1基于加密公私钥对A中的加密公钥a对数据X进行加密。
在本实施例中,用户1在生成加密公私钥对A之后,即可基于其中包含的加密公钥a对数据X进行加密,得到加密数据X’。
步骤403,用户1基于得到的加密数据X’和数据X的唯一标识符“X”生成数据上链请求。
在本实施例中,用户1在得到加密数据X’之后,即可基于加密数据X’和数据X的唯一标识符“X”生成数据上链请求,并将生成的数据上链请求发送至数据查询平台。
步骤404,用户1将数据上链请求发送至数据查询平台。
步骤405,数据查询平台基于加密数据X’生成加密数据存证请求。
在本实施例中,数据查询平台在接收到数据上链请求之后,即可读取其中包含的加密数据X’和数据X的唯一标识符,以基于读取到的加密数据X’生成加密数据存储请求,并将生成的加密数据存证请求发送至链下数据系统,以由链下数据系统对加密数据X’进行存储。
步骤406,数据查询平台将加密数据存证请求发送至链下数据系统。
步骤407,链下数据系统对接收到的加密数据X’进行存储。
步骤408,链下数据系统将加密数据X’的存储信息返回至数据查询平台。
在本实施例中,链下数据系统在完成对加密数据X’的存储操作之后,即可将存储信息返回至数据查询平台,以由数据查询平台生成加密数据X’的元数据x。
步骤409,数据查询平台基于存储信息生成加密数据X’的元数据x。
在本实施例中,元数据x可以包含:加密数据X’的存储信息、加密数据X’的哈希值、数据X的相关信息(如唯一标识符X、数据X的类型信息等)。
步骤410,数据查询平台存证数据X的唯一标识符“X”与元数据x的哈希值x’的对应关系。
在本实施例中,数据查询平台可以存储数据X的唯一标识符“X”与元数据x的哈希值x’的对应关系,以便在后续数据查询时,用于获取元数据x。
举例而言,数据查询平台中维护的对应关系表可以如下表1所示:
已上链数据的唯一标识符 已上链数据的元数据的哈希值
X 哈希值x’
Y 哈希值y’
…… ……
表1
步骤411,数据查询平台基于元数据x及其哈希值x’生成数据上链交易。
在本实施例中,数据查询平台还可以基于元数据x及其哈希值x’生成数据上链交易,并将生成的数据上链交易发送至区块链系统,以由区块链系统对元数据x及其哈希值x’进行关联存证。
步骤412,数据查询平台将数据上链交易发送至区块链系统。
步骤413,区块链系统关联存证元数据x及其哈希值x’。
承接上述举例,区块链系统中维护的已上链数据的元数据及其哈希值的对应关系可以如下表2所示:
已上链数据的元数据的哈希值 已上链数据的元数据
哈希值x’ 元数据x
哈希值y’ 元数据y
…… ……
表2
由上述技术方案可知,本实施例可以以加密形式将数据存储至链下数据系统,并将加密数据的元数据存储至区块链系统。由于该元数据中包含加密数据的哈希值等与加密数据唯一对应的绑定信息,因此,能够保证维护于链下数据系统的加密数据不被篡改。可见,通过本实施例的数据上链方法,既利用区块链系统不可篡改的特性保证了数据的可靠性,还减少了对区块链系统存储资源的占用。
下面,对用户2请求用户1允许其查询数据X的数据授权阶段进行介绍。
图5为本说明书一示例性实施例示出的一种数据授权方法的交互图。如图5所示,该方法可以包括以下步骤:
步骤501,用户2基于自身加密公私钥对B中的加密公钥b生成公钥注册请求。
在本实施例中,用户2可以维护有自身的加密公私钥对B,且用户2可以预先将加密公钥b注册至区块链系统,以便其他用户从区块链系统处获取该加密公钥b。
步骤502,用户2将生成的公钥注册请求发送至数据查询平台。
在本实施例中,用户可以通过向数据查询平台发送公钥注册请求的方式,将加密公钥b提供至数据查询平台,以由数据查询平台生成公钥注册交易,进而将加密公钥b注册至区块链系统。
步骤503,数据查询平台基于加密公钥b生成公钥注册交易。
在本实施例中,数据查询平台可以记录加密公钥b的哈希值与用户2的对应关系,以便其他用户在需要获取用户2的加密公钥b的情况下,数据查询平台可以获取用户2的加密公钥b的哈希值,并基于该哈希值向区块链系统发起针对加密公钥b的获取交易。
步骤504,数据查询平台将公钥注册交易发送至区块链系统。
步骤505,区块链系统存证公钥注册交易中包含的加密公钥b。
在本实施例中,区块链系统可以存证加密公钥b与其哈希值的对应关系,以便后续基于该哈希值返回加密公钥b。
步骤506,用户2基于数据X的唯一标识符“X”生成查询权限获取请求。
在本实施例中,用户2在需要查询数据X时,可以基于数据X的唯一标识符“X”直接向用户1发送查询权限获取请求,以由用户1判断是否允许用户2查询数据X。
步骤507,用户2将生成的查询权限获取请求发送至用户1。
步骤508,用户1在允许用户2查询数据X的情况下,生成针对用户2的公钥获取请求。
在本实施例中,用户1在允许用户2查询数据X时,即可从区块链系统处获取用户2的加密公钥b,以基于该加密公钥b对自身持有的加密公私钥对A中的加密私钥a’进行加密。
步骤509,用户1将生成的公钥获取请求发送至数据查询平台。
步骤510,数据查询平台向区块链系统发起针对用户2的公钥获取交易。
步骤511,区块链系统将加密公钥b返回至数据查询平台。
步骤512,数据查询平台将加密公钥b返回至用户1。
步骤513,用户1基于加密公钥b对加密公私钥对A中的加密私钥a’进行加密。
步骤514,用户1基于加密得到的私钥密文a”生成私钥密文存证请求。
在本实施例中,用户1在基于获取到的加密公钥b对加密私钥a’进行加密,得到私钥密文a”后,即可将该私钥密文a”存证至区块链系统。
在本实施例中,用户1可以基于该私钥密文a”生成私钥密文存证请求,并将生成的私钥密文存证请求发送至数据查询平台,以通过数据查询平台将私钥密文a”提供至区块链系统。
步骤515,用户1将私钥密文存证请求发送至数据查询平台。
步骤516,数据查询平台基于私钥密文a”生成私钥密文存证交易。
步骤517,数据查询平台将私钥密文存证交易发送至区块链系统。
步骤518,区块链系统将私钥密文a”与元数据x进行关联存证。
在本实施例中,区块链系统在接收到私钥密文存证交易之后,可以将私钥密文a”与元数据x进行关联存证,以便在数据查询阶段,可以快速获取与数据X相关的两个获取凭证。
承接上述举例,区块链系统中维护的对应关系可以如下表3所示:
已上链数据的元数据的哈希值 已上链数据的元数据 与已上链数据对应的私钥密文
哈希值x’ 元数据x 私钥密文a”
哈希值y’ 元数据y 私钥密文c”
…… …… ……
表3
值得注意的是,数据查询平台也可以记录私钥密文a”的哈希值与数据X的唯一标识符“X”的对应关系,以便在数据查询阶段,可以基于私钥密文a”的哈希值发起查询交易,进而使得区块链系统可以基于该哈希值查找到私钥密文a”。当然,该举例仅是示意性的,具体是基于数据查询平台存证的对应关系查找私钥密文,还是基于元数据与私钥密文的关联存证关系查找私钥密文,可由本领域技术人员根据实际需求确定,本实施例对此不作限制。
由上述技术方案可知,数据所有方可以在允许查询方查询目标数据时,基于查询方的查询方公钥对自身维护的用于解密得到目标数据的私钥进行加密,得到私钥密文,并将该私钥密文存证至区块链系统,进而保证私钥密文不被篡改。其中,该私钥密文与存储于链下数据系统的目标数据的加密数据关联存证,以便数据查询阶段可以快速获取用于查询目标数据的两个凭证。
下面,对用户2在得到查询权限后,获取数据X的数据查询阶段进行介绍。
图6为本说明书一示例性实施例示出的一种数据查询方法的交互图。如图6所示,该方法可以包括以下步骤:
步骤601,用户2基于数据X的唯一标识符“X”生成数据查询请求。
在本实施例中,用户2在需要获取数据X时,即可基于数据X的唯一标识符“X”向数据查询平台发起数据查询请求,以由其将用于获取数据X的信息返回。
步骤602,用户2将数据查询请求发送至数据查询平台。
步骤603,数据查询平台基于数据查询请求中包含的唯一标识符“X”查找与数据X对应的元数据x的哈希值x’。
承接上述举例,数据查询平台在接收到数据查询请求之后,即可基于唯一标识符“X”在如表1所示的对应关系中查找到哈希值x’,在此基础上,数据查询平台即可基于该哈希值x’向区块链系统发起数据查询交易。
步骤604,数据查询平台基于哈希值x’生成数据查询交易。
步骤605,数据查询平台将数据查询交易发送至区块链系统。
步骤606,区块链系统基于数据查询交易中包含的哈希值x’查找元数据x,以及与元数据关联存证的私钥密文a”。
承接上述举例,区块链系统在接收到数据查询交易之后,即可读取其中包含的哈希值x’,以基于该哈希值x’从如表3所示的对应关系中查找到元数据x和私钥密文a”,并将元数据x和私钥密文a”返回至数据查询平台。
步骤607,区块链系统将查找到的元数据x和私钥密文a”返回至数据查询平台。
步骤608,数据查询平台基于元数据x生成加密数据获取请求。
承接上述举例,数据查询平台在接收到区块链系统返回的元数据x和私钥密文a”之后,可以基于该元数据x向链下数据系统发起加密数据获取请求,以获取加密数据X’。例如,链下数据系统可以根据元数据x中包含的加密数据X’的存储信息,获取该加密数据X’,并将加密数据X’返回至数据查询平台。
步骤609,数据查询平台将加密数据获取请求发送至链下数据系统。
步骤610,链下数据系统基于元数据x查找加密数据X’。
步骤611,链下数据系统将查找到的加密数据X’返回至数据查询平台。
步骤612,数据查询平台将加密数据X’和私钥密文a”返回至用户2。
承接上述举例,数据查询平台在获取到加密数据X’之后,即可将加密数据X’和私钥密文a”返回至查询方,以便查询方用于获取数据X。
步骤613,查询方基于自身维护的加密私钥b’对私钥密文a”进行解密。
承接上述举例,查询方在获取到加密数据X’和私钥密文a”之后,可以优先基于自身维护的加密公私钥对b中的加密私钥b’对私钥密文a”进行解密,以得到用于对数据X进行加密的加密私钥a’,在此基础上,即可基于加密私钥a’对加密数据X’进行解密,得到数据X。
步骤614,查询方基于解密得到的加密私钥a’对加密数据X’进行解密,得到数据X。
由上述技术方案可知,由于本说明书将加密数据的元数据和用于对加密数据进行解密的所有方私钥的私钥密文关联存证至区块链系统,且该私钥密文经由获得查询权限的查询方的查询方公钥加密得到,使得仅查询方可以解密得到所有方私钥,进而基于该所有方私钥对加密数据进行解密。因此,通过本说明书的技术方案,即便数据查询操作并非由区块链系统完全掌控,也能够保证数据查询操作的可靠性,避免了相关技术中由于授权校验与数据返回操作相互割裂,而导致数据查询操作不可靠的问题。
图7是一示例性实施例提供的一种设备的示意结构图。请参考图7,在硬件层面,该设备包括处理器702、内部总线704、网络接口706、内存708以及非易失性存储器710,当然还可能包括其他服务所需要的硬件。本说明书一个或多个实施例可以基于软件方式来实现,比如由处理器702从非易失性存储器710中读取对应的计算机程序到内存708中然后运行。当然,除了软件实现方式之外,本说明书一个或多个实施例并不排除其他实现方式,比如逻辑器件抑或软硬件结合的方式等等,也就是说以下处理流程的执行主体并不限定于各个逻辑单元,也可以是硬件或逻辑器件。
请参考图8,数据查询装置可以应用于如图7所示的设备中,以实现本说明书的技术方案。其中,该数据查询装置应用于区块链系统,可以包括:
存证单元801,对加密数据的元数据进行存证;所述加密数据基于目标数据的所有方的所有方公钥对所述目标数据进行加密后得到,所述加密数据维护于链下数据系统;
获取单元802,获取所述所有方的所有方私钥的私钥密文,并将所述私钥密文与所述元数据进行关联存证;所述私钥密文由所述所有方在允许查询方查询所述目标数据的情况下,基于所述查询方的查询方公钥对所述所有方私钥进行加密得到;
返回单元803,在接收到所述查询方请求查询所述目标数据的查询交易的情况下,基于关联存证的所述私钥密文和所述元数据向所述查询方返回响应信息,以由所述查询方基于所述响应信息获取到所述目标数据;
其中,基于所述响应信息获取到的目标数据基于所述所有方私钥对所述加密数据解密得到,所述所有方私钥基于所述查询方的查询方私钥对所述私钥密文解密得到、所述加密数据基于所述元数据获取。
可选的,返回单元803被进一步用于:
将关联存证的所述私钥密文和所述元数据作为响应信息返回至所述查询方,以由所述查询方基于所述元数据从所述链下数据系统中获取所述加密数据,并基于自身维护的查询方私钥对获取到的私钥密文进行解密,以基于解密得到的所有方私钥对获取到的加密数据进行解密,得到所述目标数据。
可选的,返回单元803被进一步用于:
获取关联存证的所述私钥密文和所述元数据,并基于获取到的元数据从所述链下数据系统中获取所述加密数据;
基于从所述查询交易中读取到的查询方私钥对所述私钥密文进行解密,得到所述所有方私钥,并基于所述所有方私钥对获取到的加密数据进行解密,以将解密得到的目标数据作为响应信息返回至所述查询方。
可选的,
存证单元801被进一步用于:对所述目标数据的唯一标识符与所述元数据进行关联存证;
获取单元802被进一步用于:对所述私钥密文与所述目标数据的唯一标识符关联存证;
还包括:确定单元804,读取所述查询交易中包含的所述目标数据的唯一标识符,以根据所述唯一标识符从维护的所有关联存证的私钥密文和元数据中,确定出所述加密数据的元数据和所述所有方私钥的私钥密文。
可选的,存证单元801还被用于:
响应于所述查询方基于所述查询方公钥及其公钥唯一标识生成公钥注册交易,对所述公钥注册交易中包含的所述查询方公钥和所述公钥唯一标识进行关联存证;
响应于所述所有方发起的公钥获取交易,基于所述公钥获取交易中包含的所述公钥唯一标识将所述查询方公钥返回至所述所有方。
可选的,用于对所述目标数据进行加密的所有方私钥与所述目标数据唯一对应;存证单元801还被用于:
在获取到区别于所述目标数据的其他数据的加密数据的情况下,对该加密数据进行存证;其中,该加密数据基于与所述其他数据唯一对应的所有方私钥加密得到。
请参考图9,数据查询装置可以应用于如图7所示的设备中,以实现本说明书的技术方案。其中,该数据查询装置应用于数据查询平台,可以包括:
提供单元901,响应于目标数据的所有方在允许查询方查询所述目标数据的情况下提供的私钥密文,将所述私钥密文提供至区块链系统,以由所述区块链系统对所述私钥密文与已维护的元数据进行关联存证;其中,所述元数据为存储于链下数据系统的加密数据的元数据,所述加密数据基于所述所有方的所有方公钥对所述目标数据加密得到,所述私钥密文基于所述查询方的查询方公钥对所述所有方的所有方私钥进行加密得到;
发起单元902,响应于所述查询方请求查询所述目标数据的查询请求,向所述区块链系统发起针对所述目标数据的查询交易,以指示所述区块链系统将关联存证的所述私钥密文和所述元数据返回;
返回单元903,基于接收到的元数据从所述链下数据系统中获取所述加密数据,并将获取到的加密数据和接收到的私钥密文返回至所述查询方,以使所述查询方基于自身维护的查询方私钥对获取到的私钥密文进行解密,并基于解密得到的所有方私钥对获取到的加密数据进行解密,得到所述目标数据。
可选的,提供单元901还被用于:
响应于所述查询方基于所述查询方公钥及其公钥唯一标识生成的公钥注册请求,并将所述公钥注册请求中包含的所述查询方公钥和公钥唯一标识提供至所述区块链系统,以由所述区块链系统对所述查询方公钥和所述公钥唯一标识进行关联存证。
可选的,所述数据查询平台中维护有所述目标数据的唯一标识符、所述元数据的哈希值和所述私钥密文的哈希值的对应关系;发起单元902被进一步用于:
读取所述查询请求中包含的所述目标数据的唯一标识符,以根据所述唯一标识符确定出所述元数据的哈希值和所述私钥密文的哈希值,并基于确定出的所述元数据的哈希值和所述私钥密文的哈希值向所述区块链系统发起针对所述目标数据的查询交易,以指示所述区块链系统基于所述查询交易中包含的哈希值将所述私钥密文和所述元数据返回。
上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机,计算机的具体形式可以是个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件收发设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任意几种设备的组合。
在一个典型的配置中,计算机包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带、磁盘存储、量子存储器、基于石墨烯的存储介质或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
在本说明书一个或多个实施例使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本说明书一个或多个实施例。在本说明书一个或多个实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本说明书一个或多个实施例可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本说明书一个或多个实施例范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
以上所述仅为本说明书一个或多个实施例的较佳实施例而已,并不用以限制本说明书一个或多个实施例,凡在本说明书一个或多个实施例的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本说明书一个或多个实施例保护的范围之内。

Claims (24)

1.一种数据查询系统,包括:目标数据的查询方、目标数据的所有方、链下数据系统、区块链系统;所述链下数据系统,维护有通过所述所有方的所有方公钥对所述目标数据进行加密后得到的加密数据;所述区块链系统维护有所述加密数据的元数据;
所述所有方,在允许所述查询方查询所述目标数据的情况下,基于所述查询方的查询方公钥对所述所有方的所有方私钥进行加密,得到私钥密文;
所述区块链系统,获取所述私钥密文,并对获取到的私钥密文和已维护的所述元数据进行关联存证;以及,在接收到所述查询方请求查询所述目标数据的查询交易的情况下,基于关联存证的所述私钥密文和所述元数据向所述查询方返回响应信息;
所述查询方,基于所述响应信息获取所述目标数据;其中,基于所述响应信息获取到的目标数据基于所述所有方的所有方私钥对所述加密数据解密得到,所述所有方私钥基于所述查询方的查询方私钥对所述私钥密文解密得到、所述加密数据基于所述元数据获取。
2.根据权利要求1所述的系统,
所述区块链系统,基于关联存证的所述私钥密文和所述元数据向所述查询方返回响应信息,包括:将关联存证的所述私钥密文和所述元数据作为响应信息返回至所述查询方;
所述查询方,基于所述响应信息获取所述目标数据,包括:基于所述元数据从所述链下数据系统中获取所述加密数据,并基于自身维护的查询方私钥对获取到的私钥密文进行解密,以基于解密得到的所有方私钥对获取到的加密数据进行解密,得到所述目标数据。
3.根据权利要求2所述的系统,
所述区块链系统,将关联存证的所述私钥密文和所述元数据作为响应信息返回至所述查询方,包括:将维护的所有关联存证的私钥密文和元数据作为响应信息返回至所述查询方;
所述查询方,基于所述响应信息获取所述目标数据,包括:基于维护的查询方私钥对获取到的私钥密文进行解密,并在对任一私钥密文解密得到所述所有方私钥的情况下,基于与该任一私钥密文关联存证的元数据从所述链下数据系统中获取加密数据,并基于解密得到的所有方私钥对获取到的加密数据进行解密,得到所述目标数据。
4.根据权利要求1所述的系统,
所述区块链系统,基于关联存证的所述私钥密文和所述元数据向所述查询方返回响应信息,包括:获取关联存证的所述私钥密文和所述元数据,并基于获取到的元数据从所述链下数据系统中获取所述加密数据;以及,基于从所述查询交易中读取到的查询方私钥对所述私钥密文进行解密,得到所述所有方私钥,并基于所述所有方私钥对获取到的加密数据进行解密,以将解密得到的目标数据作为响应信息返回至所述查询方;
所述查询方,基于所述响应信息获取所述目标数据,包括:从接收到的响应信息中读取所述目标数据。
5.根据权利要求4所述的系统,
所述区块链系统,基于从所述查询交易中读取到的查询方私钥对所述私钥密文进行解密,得到所述所有方私钥,包括:基于从所述查询交易中读取到的查询方私钥对维护的所有私钥密文进行解密,并在对任一私钥密文解密成功的情况下,得到所述所有方私钥;
所述区块链系统,获取关联存证的所述私钥密文和所述元数据,并基于获取到的元数据从所述链下数据系统中获取所述加密数据,包括:获取与所述任一私钥密文关联存证的元数据,以基于获取到的元数据从所述链下数据系统获取所述加密数据;
所述区块链系统,基于所述所有方私钥对所述加密数据进行解密,以将解密得到的目标数据作为响应信息返回至所述查询方,包括:基于对所述任一私钥密文解密得到的所述所有方私钥对获取到的所述加密数据进行解密,将解密得到的所述目标数据返回至所述查询方。
6.根据权利要求1所述的系统,所述区块链系统中维护的所述加密数据的元数据与所述目标数据的唯一标识符关联存证;
所述区块链系统,将所述私钥密文与维护的所述元数据进行关联存证,包括:将所述私钥密文与所述目标数据的唯一标识符关联存证;
所述区块链系统,还包括:读取所述查询交易中包含的所述目标数据的唯一标识符,以根据所述唯一标识符从维护的所有关联存证的私钥密文和元数据中,确定出所述加密数据的元数据和所述所有方私钥的私钥密文。
7.根据权利要求1所述的系统,
所述查询方,还包括:基于所述查询方公钥及其公钥唯一标识生成公钥注册请求,并将生成的公钥注册请求发送至所述区块链系统;
所述区块链系统,还包括:对所述公钥注册请求中包含的所述查询方公钥和所述公钥唯一标识进行关联存证;
所述所有方,还包括:基于所述公钥唯一标识向所述区块链系统发起公钥获取请求,以获取所述区块链系统基于所述公钥唯一标识返回的所述查询方公钥。
8.根据权利要求1所述的系统,还包括:数据查询平台;
所述所有方,还包括:基于维护的所述所有方公钥对持有的所述目标数据进行加密,并将加密得到的所述加密数据提供至所述数据查询平台;以及,在得到所述私钥密文的情况下,将所述私钥密文提供至所述数据查询平台;
所述数据查询平台,将接收到的所述加密数据提供至所述链下数据系统,以由所述链下数据系统进行存储,并将所述加密数据的元数据提供至所述区块链系统,以由所述区块链系统进行存证,所述加密数据的元数据基于所述加密数据在所述链下数据系统中的存储信息生成;以及,基于接收到的私钥密文向所述区块链系统发起私钥密文存证交易;
所述数据查询平台,还包括:响应于所述查询方请求查询所述目标数据的查询请求,向所述区块链系统发起针对所述目标数据的查询交易;以及,接收所述区块链系统针对所述查询交易返回的所述响应信息,并将所述响应信息返回至所述查询方。
9.根据权利要求8所述的系统,
所述数据查询平台,还包括:在获取所述元数据的情况下,记录所述目标数据的唯一标识符与所述元数据的哈希值的对应关系;以及,在接收到所述私钥密文的情况下,记录所述目标数据的唯一标识符与所述私钥密文的哈希值的对应关系;
所述区块链系统,还包括:对所述元数据及其哈希值进行关联存证;
所述区块链系统,对获取到的私钥密文和已维护的所述元数据进行关联存证,包括:对所述私钥密文及其哈希值进行关联存证。
10.根据权利要求9所述的系统,
所述数据查询平台,向所述区块链系统发起针对所述目标数据的查询交易,包括:读取所述查询请求中包含的所述目标数据的唯一标识符,以根据所述唯一标识符确定出所述元数据的哈希值和所述私钥密文的哈希值,并基于确定出的所述元数据的哈希值和所述私钥密文的哈希值向所述区块链系统发起针对所述目标数据的查询交易;
所述区块链系统,基于关联存证的所述私钥密文和所述元数据向所述查询方返回响应信息,包括:基于所述查询交易中包含的所述私钥密文的哈希值查找到所述私钥密文、基于所述查询交易中包含的所述元数据的哈希值查找到所述元数据,并将查找到的私钥密文和元数据返回至所述数据查询平台;
所述数据查询平台,接收所述区块链系统针对所述查询交易返回的所述响应信息,并将所述响应信息返回至所述查询方,包括:接收所述区块链系统返回的元数据,以根据该元数据从所述链下数据系统中获取所述加密数据,并将获取到的加密数据和所述区块链系统返回的私钥密文作为返回给所述查询方的响应信息;
所述查询方,基于所述响应信息获取所述目标数据,包括:基于维护的查询方私钥对接收到的私钥密文进行解密,以基于解密得到的所有方私钥对接收到的加密数据进行解密,得到所述目标数据。
11.根据权利要求1所述的系统,用于对所述目标数据进行加密的所有方私钥与所述目标数据唯一对应;
所述所有方,还包括:生成与所述目标数据唯一对应的所有方公私钥对,以基于该所有方公私钥对中的所有方公钥对所述目标数据进行加密,得到所述加密数据;以及,生成与区别于所述目标数据的其他数据对应的所有方公私钥对,以基于该所有方公私钥对中的所有方公钥对所述其他数据进行加密,得到所述其他数据的加密数据;
其中,基于所述响应信息获取到的目标数据,基于与所述目标数据对应的所有方公私钥对中的所有方私钥对所述加密数据解密得到。
12.一种数据查询方法,应用于区块链系统,包括:
对加密数据的元数据进行存证;所述加密数据基于目标数据的所有方的所有方公钥对所述目标数据进行加密后得到,所述加密数据维护于链下数据系统;
获取所述所有方的所有方私钥的私钥密文,并将所述私钥密文与所述元数据进行关联存证;所述私钥密文由所述所有方在允许查询方查询所述目标数据的情况下,基于所述查询方的查询方公钥对所述所有方私钥进行加密得到;
在接收到所述查询方请求查询所述目标数据的查询交易的情况下,基于关联存证的所述私钥密文和所述元数据向所述查询方返回响应信息,以由所述查询方基于所述响应信息获取到所述目标数据;
其中,基于所述响应信息获取到的目标数据基于所述所有方私钥对所述加密数据解密得到,所述所有方私钥基于所述查询方的查询方私钥对所述私钥密文解密得到、所述加密数据基于所述元数据获取。
13.根据权利要求12所述的方法,所述基于关联存证的所述私钥密文和所述元数据向所述查询方返回响应信息,包括:
将关联存证的所述私钥密文和所述元数据作为响应信息返回至所述查询方,以由所述查询方基于所述元数据从所述链下数据系统中获取所述加密数据,并基于自身维护的查询方私钥对获取到的私钥密文进行解密,以基于解密得到的所有方私钥对获取到的加密数据进行解密,得到所述目标数据。
14.根据权利要求12所述的方法,所述基于关联存证的所述私钥密文和所述元数据向所述查询方返回响应信息,包括:
获取关联存证的所述私钥密文和所述元数据,并基于获取到的元数据从所述链下数据系统中获取所述加密数据;
基于从所述查询交易中读取到的查询方私钥对所述私钥密文进行解密,得到所述所有方私钥,并基于所述所有方私钥对获取到的加密数据进行解密,以将解密得到的目标数据作为响应信息返回至所述查询方。
15.根据权利要求12所述的方法,
所述对加密数据的元数据进行存证,包括:对所述目标数据的唯一标识符与所述元数据进行关联存证;
所述将所述私钥密文与所述元数据进行关联存证,包括:对所述私钥密文与所述目标数据的唯一标识符关联存证;
还包括:读取所述查询交易中包含的所述目标数据的唯一标识符,以根据所述唯一标识符从维护的所有关联存证的私钥密文和元数据中,确定出所述加密数据的元数据和所述所有方私钥的私钥密文。
16.根据权利要求12所述的方法,还包括:
响应于所述查询方基于所述查询方公钥及其公钥唯一标识生成公钥注册交易,对所述公钥注册交易中包含的所述查询方公钥和所述公钥唯一标识进行关联存证;
响应于所述所有方发起的公钥获取交易,基于所述公钥获取交易中包含的所述公钥唯一标识将所述查询方公钥返回至所述所有方。
17.根据权利要求12所述的方法,用于对所述目标数据进行加密的所有方私钥与所述目标数据唯一对应;所述方法还包括:
在获取到区别于所述目标数据的其他数据的加密数据的情况下,对该加密数据进行存证;其中,该加密数据基于与所述其他数据唯一对应的所有方私钥加密得到。
18.一种数据查询方法,应用于数据查询平台,包括:
响应于目标数据的所有方在允许查询方查询所述目标数据的情况下提供的私钥密文,将所述私钥密文提供至区块链系统,以由所述区块链系统对所述私钥密文与已维护的元数据进行关联存证;其中,所述元数据为存储于链下数据系统的加密数据的元数据,所述加密数据基于所述所有方的所有方公钥对所述目标数据加密得到,所述私钥密文基于所述查询方的查询方公钥对所述所有方的所有方私钥进行加密得到;
响应于所述查询方请求查询所述目标数据的查询请求,向所述区块链系统发起针对所述目标数据的查询交易,以指示所述区块链系统将关联存证的所述私钥密文和所述元数据返回;
基于接收到的元数据从所述链下数据系统中获取所述加密数据,并将获取到的加密数据和接收到的私钥密文返回至所述查询方,以使所述查询方基于自身维护的查询方私钥对获取到的私钥密文进行解密,并基于解密得到的所有方私钥对获取到的加密数据进行解密,得到所述目标数据。
19.根据权利要求18所述的方法,还包括:
响应于所述查询方基于所述查询方公钥及其公钥唯一标识生成的公钥注册请求,并将所述公钥注册请求中包含的所述查询方公钥和公钥唯一标识提供至所述区块链系统,以由所述区块链系统对所述查询方公钥和所述公钥唯一标识进行关联存证。
20.根据权利要求18所述的方法,所述数据查询平台中维护有所述目标数据的唯一标识符、所述元数据的哈希值和所述私钥密文的哈希值的对应关系;所述向所述区块链系统发起针对所述目标数据的查询交易,包括:
读取所述查询请求中包含的所述目标数据的唯一标识符,以根据所述唯一标识符确定出所述元数据的哈希值和所述私钥密文的哈希值,并基于确定出的所述元数据的哈希值和所述私钥密文的哈希值向所述区块链系统发起针对所述目标数据的查询交易,以指示所述区块链系统基于所述查询交易中包含的哈希值将所述私钥密文和所述元数据返回。
21.一种数据查询装置,应用于区块链系统,包括:
存证单元,对加密数据的元数据进行存证;所述加密数据基于目标数据的所有方的所有方公钥对所述目标数据进行加密后得到,所述加密数据维护于链下数据系统;
获取单元,获取所述所有方的所有方私钥的私钥密文,并将所述私钥密文与所述元数据进行关联存证;所述私钥密文由所述所有方在允许查询方查询所述目标数据的情况下,基于所述查询方的查询方公钥对所述所有方私钥进行加密得到;
返回单元,在接收到所述查询方请求查询所述目标数据的查询交易的情况下,基于关联存证的所述私钥密文和所述元数据向所述查询方返回响应信息,以由所述查询方基于所述响应信息获取到所述目标数据;
其中,基于所述响应信息获取到的目标数据基于所述所有方私钥对所述加密数据解密得到,所述所有方私钥基于所述查询方的查询方私钥对所述私钥密文解密得到、所述加密数据基于所述元数据获取。
22.一种数据查询装置,应用于数据查询平台,包括:
提供单元,响应于目标数据的所有方在允许查询方查询所述目标数据的情况下提供的私钥密文,将所述私钥密文提供至区块链系统,以由所述区块链系统对所述私钥密文与已维护的元数据进行关联存证;其中,所述元数据为存储于链下数据系统的加密数据的元数据,所述加密数据基于所述所有方的所有方公钥对所述目标数据加密得到,所述私钥密文基于所述查询方的查询方公钥对所述所有方的所有方私钥进行加密得到;
发起单元,响应于所述查询方请求查询所述目标数据的查询请求,向所述区块链系统发起针对所述目标数据的查询交易,以指示所述区块链系统将关联存证的所述私钥密文和所述元数据返回;
返回单元,基于接收到的元数据从所述链下数据系统中获取所述加密数据,并将获取到的加密数据和接收到的私钥密文返回至所述查询方,以使所述查询方基于自身维护的查询方私钥对获取到的私钥密文进行解密,并基于解密得到的所有方私钥对获取到的加密数据进行解密,得到所述目标数据。
23.一种电子设备,包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,所述处理器通过运行所述可执行指令以实现如权利要求12-20中任一项所述的方法。
24.一种计算机可读存储介质,其上存储有计算机指令,该指令被处理器执行时实现如权利要求12-20中任一项所述方法的步骤。
CN202310365383.1A 2023-04-04 2023-04-04 数据查询方法及装置 Pending CN116522356A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310365383.1A CN116522356A (zh) 2023-04-04 2023-04-04 数据查询方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310365383.1A CN116522356A (zh) 2023-04-04 2023-04-04 数据查询方法及装置

Publications (1)

Publication Number Publication Date
CN116522356A true CN116522356A (zh) 2023-08-01

Family

ID=87396702

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310365383.1A Pending CN116522356A (zh) 2023-04-04 2023-04-04 数据查询方法及装置

Country Status (1)

Country Link
CN (1) CN116522356A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117592062A (zh) * 2023-10-10 2024-02-23 北京市燃气集团有限责任公司 一种基于区块链和隐私计算的燃气检测方法及系统

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117592062A (zh) * 2023-10-10 2024-02-23 北京市燃气集团有限责任公司 一种基于区块链和隐私计算的燃气检测方法及系统

Similar Documents

Publication Publication Date Title
CN111898153B (zh) 调用合约的方法及装置
CN111222157B (zh) 区块链隐私数据的查询方法及装置
CN108055274B (zh) 一种基于联盟链存储数据的加密与共享方法及系统
CN107959567B (zh) 数据存储方法、数据获取方法、装置及系统
CN111008228A (zh) 区块链中账户隐私信息的查询方法及装置
US8245031B2 (en) Content control method using certificate revocation lists
US8140843B2 (en) Content control method using certificate chains
US8447983B1 (en) Token exchange
JP2023502346A (ja) 量子安全ネットワーキング
CA2921740C (en) Enabling access to data
US9769654B2 (en) Method of implementing a right over a content
US20080010449A1 (en) Content Control System Using Certificate Chains
CN102906755A (zh) 利用证书撤销列表的内容控制方法
US11146552B1 (en) Decentralized application authentication
CN114239046A (zh) 数据共享方法
CN112861102B (zh) 基于区块链对电子文件的处理方法和系统
US7958548B2 (en) Method for provision of access
CN111917711B (zh) 数据访问方法、装置、计算机设备和存储介质
CN114629713B (zh) 身份验证方法、装置及系统
CN114389810B (zh) 证明生成方法及装置、电子设备、存储介质
CN112966309A (zh) 一种基于区块链的业务实现方法和装置
CN115065542A (zh) 权限验证方法、装置、处理器及电子设备
CN116522356A (zh) 数据查询方法及装置
CN112418850A (zh) 一种基于区块链的交易方法、装置及电子设备
CN114528601A (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