CN111008228A - 区块链中账户隐私信息的查询方法及装置 - Google Patents
区块链中账户隐私信息的查询方法及装置 Download PDFInfo
- Publication number
- CN111008228A CN111008228A CN202010157174.4A CN202010157174A CN111008228A CN 111008228 A CN111008228 A CN 111008228A CN 202010157174 A CN202010157174 A CN 202010157174A CN 111008228 A CN111008228 A CN 111008228A
- Authority
- CN
- China
- Prior art keywords
- transaction
- key
- authority
- account
- information
- 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
- 238000000034 method Methods 0.000 title claims abstract description 48
- 238000012795 verification Methods 0.000 claims description 4
- 238000004422 calculation algorithm Methods 0.000 description 13
- 238000012545 processing Methods 0.000 description 12
- 238000005516 engineering process Methods 0.000 description 11
- 238000004364 calculation method Methods 0.000 description 7
- 230000008569 process Effects 0.000 description 7
- 238000010586 diagram Methods 0.000 description 5
- 230000008520 organization Effects 0.000 description 5
- 230000005540 biological transmission Effects 0.000 description 3
- 238000012546 transfer Methods 0.000 description 3
- RTZKZFJDLAIYFH-UHFFFAOYSA-N Diethyl ether Chemical compound CCOCC RTZKZFJDLAIYFH-UHFFFAOYSA-N 0.000 description 2
- 238000004590 computer program Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 230000002427 irreversible effect Effects 0.000 description 2
- 238000002955 isolation Methods 0.000 description 2
- 230000000670 limiting effect Effects 0.000 description 2
- 230000002829 reductive effect Effects 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- OTZZZISTDGMMMX-UHFFFAOYSA-N 2-(3,5-dimethylpyrazol-1-yl)-n,n-bis[2-(3,5-dimethylpyrazol-1-yl)ethyl]ethanamine Chemical compound N1=C(C)C=C(C)N1CCN(CCN1C(=CC(C)=N1)C)CCN1C(C)=CC(C)=N1 OTZZZISTDGMMMX-UHFFFAOYSA-N 0.000 description 1
- OKTJSMMVPCPJKN-UHFFFAOYSA-N Carbon Chemical compound [C] OKTJSMMVPCPJKN-UHFFFAOYSA-N 0.000 description 1
- 241001441724 Tetraodontidae Species 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 229910021389 graphene Inorganic materials 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000036961 partial effect Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2458—Special types of queries, e.g. statistical queries, fuzzy queries or distributed queries
- G06F16/2471—Distributed queries
-
- 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/604—Tools and structures for managing or administering access control 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
- G06F21/6245—Protecting personal data, e.g. for financial or medical purposes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/21—Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/2141—Access rights, e.g. capability lists, access control lists, access tables, access matrices
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- Databases & Information Systems (AREA)
- Automation & Control Theory (AREA)
- Fuzzy Systems (AREA)
- Mathematical Physics (AREA)
- Probability & Statistics with Applications (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Medical Informatics (AREA)
- Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
Abstract
本说明书一个或多个实施例提供一种区块链中账户隐私信息的查询方法及装置,该方法可以包括:区块链节点接收查询方发起的交易,所述交易用于获取目标账户中隐私字段所含的隐私信息,所述隐私信息被加密存储于所述区块链节点处;所述区块链节点根据所述目标账户中权限字段所记录的权限管理信息,判断所述查询方是否具有查询权限;所述区块链节点在判断结果为具有查询权限的情况下,将密文形式的所述隐私信息读入可信执行环境中进行解密,以将得到的明文形式的所述隐私信息提供至所述查询方。
Description
技术领域
本说明书一个或多个实施例涉及区块链技术领域,尤其涉及一种区块链中账户隐私信息的查询方法及装置。
背景技术
区块链技术构建在传输网络(例如点对点网络)之上。传输网络中的网络节点利用链式数据结构来验证与存储数据,并采用分布式节点共识算法来生成和更新数据。这些区块链网络中的节点有时需要增加。
目前企业级的区块链平台技术上最大的两个挑战就是隐私和性能,往往这两个挑战很难同时解决。大多解决方案都是通过损失性能换取隐私,或者不大考虑隐私去追求性能。常见的解决隐私问题的加密技术,如同态加密(Homomorphic encryption)和零知识证明(Zero-knowledge proof)等复杂度高,通用性差,而且还可能带来严重的性能损失。
在解决隐私方面,可信执行环境(Trusted Execution Environment, TEE)是另一种解决方式。TEE可以起到硬件中的黑箱作用,在TEE中执行的代码和数据操作系统层都无法偷窥,只有代码中预先定义的接口才能对其进行操作。在效率方面,由于TEE的黑箱性质,在TEE中进行运算的是明文数据,而不是同态加密中的复杂密码学运算,计算过程效率没有损失,因此与TEE相结合可以在性能损失较小的前提下很大程度上提升区块链的安全性和隐私性。目前工业界十分关注TEE的方案,几乎所有主流的芯片和软件联盟都有自己的TEE解决方案,包括软件方面的TPM(Trusted Platform Module,可信赖平台模块)以及硬件方面的Intel SGX(Software Guard Extensions, 软件保护扩展)、ARM Trustzone(信任区)和AMD PSP(Platform Security Processor,平台安全处理器)。
发明内容
有鉴于此,本说明书一个或多个实施例提供一种区块链中账户隐私信息的查询方法及装置。
为实现上述目的,本说明书一个或多个实施例提供技术方案如下:
根据本说明书一个或多个实施例的第一方面,提出了一种区块链中账户隐私信息的查询方法,包括:
区块链节点接收查询方发起的交易,所述交易用于获取目标账户中隐私字段所含的隐私信息,所述隐私信息被加密存储于所述区块链节点处;
所述区块链节点根据所述目标账户中权限字段所记录的权限管理信息,判断所述查询方是否具有查询权限;
所述区块链节点在判断结果为具有查询权限的情况下,将密文形式的所述隐私信息读入可信执行环境中进行解密,以将得到的明文形式的所述隐私信息提供至所述查询方。
根据本说明书一个或多个实施例的第二方面,提出了一种区块链中账户隐私信息的查询装置,包括:
接收单元,使区块链节点接收查询方发起的交易,所述交易用于获取目标账户中隐私字段所含的隐私信息,所述隐私信息被加密存储于所述区块链节点处;
判断单元,使所述区块链节点根据所述目标账户中权限字段所记录的权限管理信息,判断所述查询方是否具有查询权限;
解密单元,使所述区块链节点在判断结果为具有查询权限的情况下,将密文形式的所述隐私信息读入可信执行环境中进行解密,以将得到的明文形式的所述隐私信息提供至所述查询方。
根据本说明书一个或多个实施例的第三方面,提出了一种电子设备,包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,所述处理器通过运行所述可执行指令以实现如第一方面所述的方法。
根据本说明书一个或多个实施例的第四方面,提出了一种计算机可读存储介质,其上存储有计算机指令,该指令被处理器执行时实现如第一方面所述方法的步骤。
附图说明
图1是一示例性实施例提供的一种区块链中账户隐私信息的查询方法的流程图。
图2是一示例性实施例提供的一种密钥版本演进的示意图。
图3是一示例性实施例提供的一种密文形式的隐私信息的数据结构的示意图。
图4是一示例性实施例提供的一种设备的结构示意图。
图5是一示例性实施例提供的一种区块链中账户隐私信息的查询装置的框图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本说明书一个或多个实施例相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本说明书一个或多个实施例的一些方面相一致的装置和方法的例子。
需要说明的是:在其他实施例中并不一定按照本说明书示出和描述的顺序来执行相应方法的步骤。在一些其他实施例中,其方法所包括的步骤可以比本说明书所描述的更多或更少。此外,本说明书中所描述的单个步骤,在其他实施例中可能被分解为多个步骤进行描述;而本说明书中所描述的多个步骤,在其他实施例中也可能被合并为单个步骤进行描述。
区块链一般被划分为三种类型:公有链(Public Blockchain),私有链(PrivateBlockchain)和联盟链(Consortium Blockchain)。此外,还有多种类型的结合,比如私有链+联盟链、联盟链+公有链等不同组合形式。其中去中心化程度最高的是公有链。公有链以比特币、以太坊为代表,加入公有链的参与者可以读取链上的数据记录、参与交易以及竞争新区块的记账权等。而且,各参与者(即节点)可自由加入以及退出网络,并进行相关操作。私有链则相反,该网络的写入权限由某个组织或者机构控制,数据读取权限受组织规定。简单来说,私有链可以为一个弱中心化系统,参与节点具有严格限制且少。这种类型的区块链更适合于特定机构内部使用。联盟链则是介于公有链以及私有链之间的区块链,可实现“部分去中心化”。联盟链中各个节点通常有与之相对应的实体机构或者组织;参与者通过授权加入网络并组成利益相关联盟,共同维护区块链运行。
不论是公有链、私有链还是联盟链,都可以实现相对简单的处理逻辑,比如转账逻辑、存证逻辑等。在相关技术中,诸如以太坊等区块链网络可以通过在区块链节点上运行虚拟机(比如以太坊网络中采用的以太坊虚拟机EVM等),并结合智能合约实现相对复杂的处理逻辑,比如有条件的转账逻辑、有条件的查询逻辑等。可见,对于支持智能合约的区块链网络而言,可以基于复杂处理逻辑而便捷地实现对账户信息的隐私保护和安全查询等功能,但简单处理逻辑则难以通过相同的方式实现。
下面结合图1所示说明本说明书一区块链中账户隐私信息的查询方法实施例的实现过程,可以通过简单处理逻辑实现对账户信息的隐私保护和安全查询。如图1所示,该方法可以包括以下步骤:
步骤102,区块链节点接收查询方发起的交易,所述交易用于获取目标账户中隐私字段所含的隐私信息,所述隐私信息被加密存储于所述区块链节点处。
上述区块链节点可以通过多种方式获得上述交易。例如,查询方可以在客户端生成交易后,通过该客户端将该交易提交至上述区块链节点。或者,客户端可以将该交易提交至另一区块链节点,而该另一区块链节点可以将该交易进一步转发至上述区块链节点。或者,查询方可以在上述区块链节点处生成该交易。
通过解析上述交易所含的交易内容,上述区块链节点可以确定该交易对应的目标账户和隐私字段等内容。例如,交易内容中可以包含目标账户的账户地址,使得上述区块链节点可以据此确定出目标账户;以及,交易内容中可以包含隐私字段的字段名称,使得上述区块链节点可以据此确定出隐私字段。
隐私字段可以包括目标账户中的任意一个或多个字段,本说明书并不对此进行限制。譬如,在以太坊区块链中,账户可以包含Balance字段、Nonce字段等,而Balance字段用于记录账户余额,如果该Balance字段为隐私字段,可以对Balance字段中记录的账户余额进行加密存储,以保护账户余额的取值不被泄露。
上述区块链节点基于接收到的交易,首先仅能够确定出查询方希望查询哪一字段,并进一步确定该字段是否为隐私字段。譬如,对于所有账户中的某一字段,上述区块链节点对相应的字段内容均加密存储,那么在区块链节点获知查询方需要查询该字段的情况下,该区块链节点可以确定查询方需要查询的字段必然为隐私字段。再譬如,区块链节点对部分账户中的某一字段的字段内容加密存储、对剩余账户中的该某一字段的字段内容明文存储,那么账户中可以包含一状态字段,并通过该状态字段所含的状态指示信息来表明相应账户中的上述某一字段的字段内容为加密存储或明文存储,例如状态指示信息可以存在多种取值:第一取值表明字段内容为加密存储、第二取值表明字段内容为明文存储;再例如,可以通过状态指示信息的最高比特位的取值来表明采用加密存储或明文存储。因此,对于上文所述的目标账户而言,该目标账户的状态字段可以包含上述的状态指示信息,该状态指示信息用于表明上述的隐私信息被明文存储或加密存储于区块链节点处:如果加密存储,则表明该隐私信息所处的字段为隐私字段,且区块链节点需要基于下述步骤104-106实现安全的信息查询;如果明文存储,则表明该隐私信息所处的字段并非隐私字段,且区块链节点可以直接读取该隐私信息以供返回至查询方,而无需执行下述的步骤104-106。
上述查询方提交至区块链节点的交易可以为相关技术中的常规交易,即该交易需要由区块链网络中的所有区块链节点进行共识、上链,以便于事后追溯查询方的查询操作。例如,在采用工作量证明(Proof of Work, POW)以及股权证明(Proof of Stake,POS)、委任权益证明(Delegated Proof of Stake,DPOS)等争夺记账权性质的共识算法的区块链网络中,区块链节点在收到客户端提交的上述交易后,立即扩散(如广播)至区块链网络中的其他区块链节点;然后,如果上述的区块链节点争夺到记账权,并且该区块链节点确认将客户端提交的上述交易打包至新的区块中,那么区块链网络中的所有区块链节点可以执行上述交易,并通过将包含该交易的新区块添加至区块链末端而使得该交易上链。当然,如果其他区块链节点争夺到记账权,那么由其他区块链节点选取希望打包至新的区块的交易,此处不再赘述。再例如,在采用实用拜占庭容错(Practical Byzantine Fault Tolerance,PBFT)等非争夺记账权性质的区块链网络中,记账节点在本轮记账前已经商定好,使得区块链节点在收到客户端提交的交易后,若自身并非记账节点,则将该交易发送至已确定的记账节点,使得该记账节点在进一步的共识阶段将交易(包括该交易)打包发送至各个验证节点。而当上述区块链节点自身为已确定的记账节点时,同样可以接收客户端提交的上述交易,或者由客户端提交至其他区块链节点后、由该其他区块链节点转发至上述区块链节点,且该区块链节点可以在共识阶段将上述交易(或还包括其他交易)打包发送至各个验证节点。
而由于查询方的需求只是查询目标账户中的信息,并不会导致诸如账户内容等发生变化,即不会影响区块链的状态,因此本说明书还可以支持新的无需共识的交易。例如,本说明书可以在相关技术中的基础上提供一种新的交易类型,譬如查询类型;相应地,区块链节点可以识别上述交易的类型,并在该交易属于预定义的查询类型时,由该区块链节点在免共识的情况下执行该交易。换言之,区块链节点在获得上述交易后,并不需要记账节点(无论是争夺记账权的节点或者商定的记账节点)确定是否将该交易添加至新的区块,该区块链节点可以直接执行该交易,且实际上该交易并不会被添加至新的区块中、不会上链,一方面可以实现查询类型的交易被区块链节点高效执行,另一方面可以避免占用宝贵的区块空间。举例而言,本说明书中的交易可以包含类型字段,并通过对该类型字段的取值进行设置,使得区块链节点可以基于该取值来识别出上述交易是否为查询类型或其他类型(如转账类型、存证类型等)。
步骤104,所述区块链节点根据所述目标账户中权限字段所记录的权限管理信息,判断所述查询方是否具有查询权限。
基于如前所述的简单处理逻辑,区块链节点上维护的账户中可以包含权限字段,该权限字段所含的权限管理信息可以被用于判断某一查询方是否具有查询权限。相应地,响应于查询方对上述目标账户的查询需求,区块链节点可以根据该目标账户中的权限字段所含的权限管理信息,来判断查询方是否具有查询权限:如果具有查询权限,则区块链节点可以向查询方提供解密后的隐私信息,否则不提供。
权限字段中记录的权限管理信息可以存在多种形式,以使得区块链节点可以通过多种方式判断查询方是否具有查询权限。
例如,权限管理信息可以包含权限拥有者的公钥,即预先确定的具有查询权限的所有用户的公钥集合;同时,查询方提交的交易中包含交易签名,该交易签名由该查询方通过自身的私钥而生成;因此,区块链节点可以通过上述权限拥有者的公钥对该交易签名进行验证:如果某一权限拥有者的公钥验证成功,则表明查询方即为该权限拥有者,而区块链节点可以判定查询方具有查询权限;而如果所有公钥均验证失败,则表明查询方并非权限拥有者,即查询方不具有查询权限。可见,通过对权限管理信息所含的公钥进行管理,就可以控制允许对目标账户中的隐私字段进行查询的用户,即合理设置上述的权限拥有者。譬如,上述的权限拥有者可以包括目标账户的所有者,或者上述的权限拥有者可以包括目标账户的所有者和至少一个其他用户。目标账户的所有者可以默认为权限拥有者,而该所有者可以控制将至少一个其他用户的公钥添加至权限字段,以将该至少一个其他用户设置为权限拥有者。除了目标账户的所有者之外,还可以由诸如区块链网络中的管理员或其他用户来设定上述的权限拥有者,本说明书并不对此进行限制。
以目标账户为例。当目标账户的权限拥有者同时包括所有者和至少一个其他用户时,相当于由该所有者与其他用户共同管理该目标账户,即该目标账户属于该所有者与其他用户的共管账户。区块链中的所有账户均可以包含authmap字段,非共管账户(或称,普通账户)的authmap字段仅包含账户所有者的公钥,而共管账户的authmap字段同时包含所有共管者(如上述的所有者和至少一个其他用户)的公钥。基于前文所述的权限判断方式,只有账户所有者对非共管账户具有查询权限,而所有共管者均具有对共管账户的查询权限。
再例如,权限管理信息可以包含一个或多个用户的权限范围或权限类型,比如每个用户分别存在相应的特定权限管理信息,以表明相应的用户可以对目标账户实施何种操作。相应地,区块链节点可以确定权限字段所记录的对应于查询方的特定权限管理信息,该特定权限管理信息可以包含查询方所拥有的权限信息,比如查询权限、编辑权限、删除权限等;那么,在特定权限管理信息中包含查询权限的情况下,区块链节点可以判定查询方具有查询权限,否则判定查询方不具有查询权限。目标账户的所有者可以默认为拥有针对目标账户的所有权限,而该所有者可以控制将针对至少一个用户的特定权限管理信息添加至权限字段,以设定该至少一个用户的权限。除了目标账户的所有者之外,还可以由诸如区块链网络中的管理员或其他用户来设定上述的特定权限管理信息,本说明书并不对此进行限制。上述的特定权限管理信息采用正面描述的方式,定义了相应的用户拥有何种权限;类似地,特定权限管理信息可以采用负面描述的方式,以定义相应的用户不具有何种权限。
以目标账户为例。通过在目标账户中添加上述的特定权限管理信息,相当于建立针对这些用户的ACL(Access Control Lists,访问控制列表)信息,比如根据查询方对应的ACL信息来识别查询方是否具有查询权限。根据账户中是否包含特定权限管理信息,可以将账户划分为非ACL账户(或称,普通账户)与ACL账户,所有账户的authmap字段均记录有相应的账户所有者的公钥,以赋予账户所有者对于相应账户的管理权限(包括查询权限等所有权限);同时,所有账户还可以包含ACLmap字段,而ACL账户中的ACLmap字段可以用于记录如前所述的特定权限管理信息,从而记录相关用户所拥有的权限(如查询权限或其他),而非ACL账户中的ACLmap字段可以为空。除了在相关技术的基础上增加ACLmap字段之外,还可以将特定权限管理信息记录于authmap字段,这样可以避免对账户进行字段扩展;比如,非ACL账户的authmap字段仅记录账户所有者的公钥,而ACL账户的authmap账户同时记录账户所有者的公钥和针对各个用户的特定权限管理信息。
步骤106,所述区块链节点在判断结果为具有查询权限的情况下,将密文形式的所述隐私信息读入可信执行环境中进行解密,以将得到的明文形式的所述隐私信息提供至所述查询方。
可信执行环境(Trusted Execution Environment,TEE)是基于 CPU 硬件的安全扩展,且与外部完全隔离的可信执行环境。TEE最早是由Global Platform提出的概念,用于解决移动设备上资源的安全隔离,平行于操作系统为应用程序提供可信安全的执行环境。ARM的Trust Zone技术最早实现了真正商用的TEE技术。
伴随着互联网的高速发展,安全的需求越来越高,不仅限于移动设备,云端设备,数据中心都对TEE提出了更多的需求。TEE的概念也得到了高速的发展和扩充。现在所说的TEE相比与最初提出的概念已经是更加广义的TEE。例如,服务器芯片厂商Intel,AMD等都先后推出了硬件辅助的TEE并丰富了TEE的概念和特性,在工业界得到了广泛的认可。现在提起的TEE通常更多指这类硬件辅助的TEE技术。不同于移动端,云端访问需要远程访问,终端用户对硬件平台不可见,因此使用TEE的第一步就是要确认TEE的真实可信。因此现在的TEE技术都引入了远程证明机制,由硬件厂商(主要是CPU厂商) 背书并通过数字签名技术确保用户对TEE状态可验证。同时仅仅是安全的资源隔离也无法满足的安全需求,进一步的数据隐私保护也被提出。包括Intel SGX, AMD SEV在内的商用TEE也都提供了内存加密技术,将可信硬件限定在CPU内部,总线和内存的数据均是密文防止恶意用户进行窥探。例如,英特尔的软件保护扩展(SGX)等 TEE 技术隔离了代码执行、远程证明、安全配置、数据的安全存储以及用于执行代码的可信路径。在 TEE 中运行的应用程序受到安全保护,几乎不可能被第三方访问。
以Intel SGX技术为例,SGX提供了围圈(enclave,也称为飞地),即内存中一个加密的可信执行区域,由 CPU 保护数据不被窃取。以第一区块链节点采用支持SGX的CPU为例,利用新增的处理器指令,在内存中可以分配一部分区域 EPC(Enclave Page Cache,围圈页面缓存或飞地页面缓存),通过 CPU 内的加密引擎 MEE(Memory Encryption Engine)对其中的数据进行加密。EPC 中加密的内容只有进入 CPU 后才会被解密成明文。因此,在SGX 中,用户可以不信任操作系统、VMM(Virtual Machine Monitor,虚拟机监控器)、甚至BIOS(Basic Input Output System,基本输入输出系统),只需要信任 CPU 便能确保隐私数据不会泄漏。实际应用中,可以将隐私数据加密后以密文形式传递至围圈中,并通过远程证明将对应的密钥也传入围圈。然后,在 CPU 的加密保护下利用数据进行运算,结果会以密文形式返回。所以,基于TEE对上述隐私信息进行加解密操作,可以确保足够的安全性、不用担心数据泄漏。
如前所述,对于目标账户中隐私字段所含的隐私信息而言,出于隐私保护的原因,在TEE外部的该隐私信息均以密文形式存在,只有读入TEE内后才能够被解密为明文形式,并基于TEE的特性来确保该明文形式的隐私信息不会被窃取。而区块链节点通过在TEE中对明文形式的隐私信息进行加密,从而得到上述密文形式的隐私信息。区块链节点可以采用对称加密或非对称加密的方式实现上述的加解密过程,本说明书并不对此进行限制。对称加密采用的加密算法,例如是DES算法,3DES算法,TDEA算法,Blowfish算法,RC5算法,IDEA算法等。非对称加密采用的加密算法,例如是RSA、Elgamal、背包算法、Rabin、D-H、ECC(椭圆曲线加密算法)等。
以对称加密为例。区块链节点上的TEE中可以维护一密钥,该密钥为对称密钥,并通过该密钥在TEE中对明文形式的隐私信息进行加密,即可得到上述的密文形式的隐私信息。类似地,区块链节点通过将密文形式的隐私信息读入TEE内,并通过上述密钥对该密文形式的隐私信息进行解密,即可得到上述明文形式的隐私信息。由于密钥被维护于TEE中,因此具有足够的安全性,可以避免密钥发生泄漏。
区块链节点可以基于在TEE中维护的一安全密钥生成上述密钥。在一较粗粒度的场景中,区块链节点采用的上述密钥即安全密钥本身,使得区块链节点在针对所有账户的隐私信息进行加解密时均采用相同的密钥。在一较细粒度的场景中,区块链节点采用的上述密钥由安全密钥和影响因子而生成,使得不同影响因子可以形成差异化的密钥,而相应的账户可以采用不同的密钥实现对隐私信息的加解密。由于影响因子的加入,使得不同账户的隐私信息可以采用不同密钥,因而不同账户的隐私信息即便具有相同的明文,加密后得到的密文也可以具有不同取值,那么当某一用户已知账户Qa的隐私信息的明文为Ua、密文为Um时,即便该用户获知了另一账户Qb的隐私信息的密文为Um,也无法推测出该账户Qb的隐私信息的明文必然为Ua(如果账户Qa和Qb采用的密钥不同,则相同密文对应于不同的明文),有助于提升安全性。对于影响因子参与的情况下,虽然区块链节点可以在TEE中维护由安全密钥和影响因子生成的所有密钥,但是由于密钥的使用频率可能并不高,因而可以仅在TEE中维护安全密钥、并不维护由安全密钥和影响因子生成的密钥,而在需要使用的情况下临时根据安全密钥和影响因子生成所需的密钥。
通过采用不同的影响因子,可以实现进一步的粒度划分,以满足不同安全级别的隐私保护需求。例如,通过采用与账户相关的影响因子,可以实现账户级别的隐私保护,即不同账户使用的密钥不同、同一账户内的所有隐私字段使用的密钥相同;再例如,通过采用与字段相关的影响因子,可以实现字段级别的隐私保护,即同一账户内的不同隐私字段使用的密钥不同、不同账户内相同的隐私字段(比如不同账户内的Balance字段)使用的密钥相同;又例如,通过采用同时与账户和字段相关的影响因子,可以实现账户和字段级别的隐私保护,即不同账户使用的密钥不同、同一账户内的不同隐私字段使用的密钥也不同。
以密钥被基于安全密钥和至少一个与目标账户相关的影响因子而生成为例。与目标账户相关的影响因子可以包括以下至少之一:目标账户对应的账户创建交易所处区块的区块高度、账户创建交易在所处区块中的位置偏移量、目标账户在所有账户中的创建顺序号、目标账户的账户地址等。
影响因子可以包括目标账户对应的账户创建交易所处区块的区块高度。账户创建交易可指用于创建目标账户的交易,区块链节点通过执行该交易来创建目标账户。那么,区块链节点可以通过确定该账户创建交易在区块链中所处区块的区块高度,并将其作为与该目标账户相关的影响因子之一。因此,当不同账户对应的账户创建交易处于不同高度的区块时,可以确保这些账户对应的影响因子不同,进而使得这些账户对应于不同的密钥,因而这些账户中隐私字段所含的隐私信息可以采用不同的密钥进行加密存储,使得相同明文对应于不同取值的密文,以提升安全性。
影响因子可以包括账户创建交易在所处区块中的位置偏移量。区块链上的每一区块包含若干交易,这些交易在区块中依次排列,而位置偏移量可以视为每笔交易在区块中的排列序号或索引号,以用于对交易进行定位。例如,排列在首位的交易的位置偏移量为0,排列在第二位的交易的位置偏移量为1,以此类推。可见,同一区块内的不同交易具有不同的位置偏移量,在指定某一区块后,即可通过位置偏移量来唯一定位各笔交易。因此,当不同账户创建交易的位置偏移量不同时,可以确保相应账户对应的影响因子不同,进而使得这些账户对应于不同的密钥,因而这些账户中隐私字段所含的隐私信息可以采用不同的密钥进行加密存储,使得相同明文对应于不同取值的密文,以提升安全性。
影响因子可以包括目标账户在所有账户中的创建顺序号。区块链上的所有账户之间依次创建,而区块链节点可以根据创建顺序为这些账户设定创建顺序号,使得可以基于该创建顺序号对各个账户予以区分,即所有账户对应的创建序列号均不同。因此,基于创建序列号的差异,可以确保各个账户对应的影响因子均不相同,进而使得这些账户对应于不同的密钥,因而这些账户中隐私字段所含的隐私信息可以采用不同的密钥进行加密存储,使得相同明文对应于不同取值的密文,以提升安全性。
影响因子可以包括目标账户的账户地址。账户地址为相应账户在创建时生成,每个账户均存在唯一对应的账户地址,即所有账户对应的账户地址均不同。因此,基于账户地址的差异,可以确保各个账户对应的影响因子均不相同,进而使得这些账户对应于不同的密钥,因而这些账户中隐私字段所含的隐私信息可以采用不同的密钥进行加密存储,使得相同明文对应于不同取值的密文,以提升安全性。
虽然部分影响因子并非唯一对应于各个账户,譬如上述的区块高度、位置偏移量等,但是基于这些影响因子生成密钥时,仍然可以极大地降低不同账户采用相同密钥的概率,以提升安全性。同时,通过将多种类型的影响因子相互结合,可以进一步降低不同账户采用相同密钥的概率,甚至确保所有账户采用的密钥均不相同,从而完全避免相同的明文经过加密后生成相同的密文,防止可以通过比较密文来推测明文的取值。
区块链网络中的所有区块链节点均维护有相同的上述安全密钥,且所有区块链节点均针对目标账户采用相同的影响因子,使得所有区块链节点针对目标账户均生成相同的密钥,确保所有区块链节点针对目标账户中隐私字段所含的隐私信息进行加密后得到相同的密文,因而可使所有区块链节点维护相同的状态。
区块链节点可以通过多种方式获得上述的安全密钥。例如,在确定区块链节点通过远程证明后,可由密钥管理(Key Management Service,KMS)服务器将安全密钥下发至区块链节点,并由区块链节点将得到的安全密钥维护于TEE中。那么,KMS服务器向所有通过远程证明的区块链节点下发相同的安全密钥,可以确保所有区块链节点维护的安全密钥一致。再例如,区块链节点之间可以协商得到安全密钥,并由所有区块链节点均在TEE中维护协商得到的安全密钥。
虽然区块链节点可以长期使用同一安全密钥,但是可能存在一些潜在或未知的安全性风险。因此,为了进一步提升安全性,区块链节点维护的安全密钥可以存在版本更新,使得区块链节点可以定期或非定期地更新所使用的安全密钥的版本。安全密钥的版本更新方式很多。例如,区块链节点可以通过前文所述的方式获得更新版本的安全密钥,即通过KMS服务器下发新版本的安全密钥,或者区块链节点之间协商新版本的安全密钥。再例如,区块链节点可以自行实现对安全密钥的版本更新,那么只要所有区块链节点采用的版本更新逻辑一致,即可确保更新后的安全密钥在所有区块链节点处均保持一致。
假定区块链节点最初获得的安全密钥为根密钥,该根密钥的版本最高。区块链节点可以基于高版本的安全密钥计算得到低版本的安全密钥,从而获得版本依次排列的若干版本的安全密钥。同时,区块链节点所采用的计算方式可以为不可逆计算,即高版本的安全密钥可以计算得到低版本的安全密钥,但低版本的安全密钥不可逆向计算得到高版本的安全密钥。
如图2所示,可以将上述的根密钥作为最高版本的安全密钥,并基于该根密钥依次生成其他低版本的安全密钥,比如版本号分别为0~255的256个版本的安全密钥。例如,通过将根密钥与版本因子0xFF(十进制的取值为255,即需要生成的密钥的版本号;当然,也可以采用其他取值)进行哈希计算,得到版本号为255的安全密钥key-255;通过将安全密钥key-255与版本因子0xFE进行哈希计算,得到版本号为254的安全密钥key-254;……通过将安全密钥key-1与版本因子0x00进行哈希计算,得到版本号为0的安全密钥key-0。由于哈希算法的特性,使得高版本密钥与低版本密钥之间的计算不可逆,比如可以由安全密钥key-1与版本因子0x00计算得到安全密钥key-0,但是不能够通过安全密钥key-0与版本因子0x00反推出安全密钥key-1。
区块链网络中的所有区块链节点均采用同一版本的安全密钥,即可确保所有区块链节点之间维持相同的世界状态。各个区块链节点可以预先生成所有版本的安全密钥,然后在需要对安全密钥进行版本更新时,选取相应版本的安全密钥,或者可以在需要对安全密钥进行版本更新时才临时生成相应版本的安全密钥,本说明书并不对此进行限制。各个区块链节点之间可以协商实现对安全密钥的版本更新;或者,可以在区块链网络的链代码中添加对于安全密钥的更新逻辑,比如该更新逻辑可以用于确定在哪一时刻将安全密钥更新为哪一版本,使得区块链节点可以基于该更新逻辑实现对安全密钥的自动更新。
如上文所述,由于高版本的密钥可以计算得出低版本的安全密钥,而低版本的安全密钥无法反推高版本的安全密钥,因此各个区块链节点可以从低版本的安全密钥开始使用,并且只允许从低版本的安全密钥向高版本的安全密钥进行更新,这样一方面在低版本的安全密钥丢失后,由于高版本的安全密钥无法由低版本的安全密钥反推,那么只需要对密钥进行版本升级,即可及时止损,另一方面由高版本的安全密钥可以随时计算出低版本的安全密钥,因而可以对先前采用低版本的安全密钥的加密数据实现兼容。
而为了表明每一账户在加密时采用的密钥,区块链节点可以将加密后的每一账户与相应密钥的生成方式描述信息进行关联存储。以目标账户为例,密钥的生成方式描述信息可以包括:安全密钥的版本信息和与目标账户相关的影响因子的取值。例如图3所示,区块链节点可以在Info字段中写入安全密钥的版本信息、在Nounce字段中写入影响因子的取值、在Cipher字段中写入加密后的隐私信息(如Balance字段的取值),而Tag字段用于验证Cipher字段的完整性。
Info字段的长度可以为4Bytes,其中2Bytes用于写入密钥版本号,剩余的2Bytes为保留字节。Nounce字段的长度可以为12Bytes,其中4Bytes用于写入历史区块高度、4Bytes用于写入交易在区块中的位置偏移量、4Bytes用于写入其他信息。Cipher字段的长度可以为8Bytes。Tag字段的长度可以为16Bytes。当然,还可以采用其他的字段长度、字段组合方式等,本说明书并不对此进行限制。其中,区块链节点还可以对密钥的生成方式描述信息进行加密,例如可以采用上述版本最低的key-0进行加密,以提升安全性。
因此,当区块链节点对目标账户中隐私字段所含的隐私信息进行加密存储时,可以按照key-value对的形式进行存储,其中value可以采用如图3所示的结构。相应地,当区块链节点需要获取目标账户中隐私字段所含的隐私信息时,采用的处理操作包括:按照key索引到value,该value的结构如图3所示;采用密钥key-0对Info和Nounce字段进行解密,确定出密钥版本号、历史区块高度、偏移量等信息,基于安全密钥生成相应的密钥,并通过该密钥对Cipher字段的内容进行解密,还可以通过Tag字段来验证数据完整性(如果Tag是基于明文生成,则对解密后的数据进行验证;如果Tag是基于密文生成,则对解密前的数据进行验证),从而得到明文形式的隐私信息。
区块链节点在确定查询方对目标账户具有查询权限后,可以获取已存储的密文形式的隐私信息,在TEE中对该密文形式的隐私信息进行解密,以得到相应明文形式的隐私信息。然后,区块链节点可以将该明文形式的隐私信息提供至查询方。
为了避免在数据传输过程中造成明文形式的隐私信息发生泄漏,区块链节点可以对明文形式的隐私信息进行加密后传输至查询方,并确保只有查询方才能够重新解密得到明文形式的隐私信息。例如,查询方可以维护一对称密钥,并且通过某种方式将该对称密钥共享给区块链节点,使得区块链节点可以在TEE中通过该对称密钥对明文形式的隐私信息进行加密然后发送至查询方,而查询方可以基于该对称密钥进行解密得到明文形式的隐私信息。再例如,查询方可以维护一查询方私钥,而区块链节点可以获知对应的查询方公钥,使得区块链节点可以在TEE中通过该查询方公钥对明文形式的隐私信息进行加密然后发送至查询方,而查询方可以基于查询方私钥进行解密得到明文形式的隐私信息。
上述查询方维护的对称密钥,可以由查询方与区块链节点之间协商得到。或者,查询方可以自行生成(如随机生成)该对称密钥,然后通过如下方式共享给区块链节点:
查询方希望对目标账户中隐私字段的隐私信息进行查询时,可以生成相应的明文交易内容,通过上述的对称密钥对该明文交易内容进行加密、得到相应的密文交易内容。同时,区块链节点存在一节点公私钥对,由区块链节点将节点私钥维护于TEE内、而节点公钥被公开,譬如查询方可以获知该节点公钥,其中节点私钥可以在区块链节点通过远程证明后,由KMS服务器分发至区块链节点。那么查询方可以通过节点公钥对上述的对称密钥进行加密,得到加密后密钥,而如前所述的查询方提交至区块链节点的交易同时包含密文交易内容和加密后密钥。
因此,当区块链节点收到查询方提交的交易后,可以将该交易读入TEE中,并在TEE中通过节点私钥对该交易所含的加密后密钥进行解密、得到上述的对称密钥,然后在TEE中通过该对称密钥对交易所含的密文交易内容进行解密、得到上述的明文交易内容,进而可以执行该明文交易内容,以实现基于本说明书的查询方案。
可见,基于上述方式可使区块链节点获得由查询方所维护的对称密钥,该对称密钥在传输过程中处于加密状态且用于加密的节点私钥被维护于区块链节点的TEE中,具有极高的安全性;同时,区块链节点在TEE中解密得到该对称密钥,即该对称密钥在区块链节点处时,仅在TEE中以明文形式存在,可以避免发生泄漏。
需要指出的是:本说明书的查询方案可以应用于仅支持简单处理逻辑的区块链网络,譬如比特币区块链等;同时,本说明书的查询方案同样可以应用于支持复杂处理逻辑的区块链网络,与该区块链网络实现的基于智能合约的复杂处理逻辑并不冲突,可以实现兼容。
图4是一示例性实施例提供的一种设备的示意结构图,该设备可以被配置为本说明书的区块链节点。请参考图4,在硬件层面,该设备包括处理器402、内部总线404、网络接口406、内存408以及非易失性存储器410,当然还可能包括其他业务所需要的硬件。处理器402从非易失性存储器410中读取对应的计算机程序到内存408中然后运行,在逻辑层面上形成区块链中账户隐私信息的查询装置。当然,除了软件实现方式之外,本说明书一个或多个实施例并不排除其他实现方式,比如逻辑器件抑或软硬件结合的方式等等,也就是说以下处理流程的执行主体并不限定于各个逻辑单元,也可以是硬件或逻辑器件。
请参考图5,在软件实施方式中,该区块链中账户隐私信息的查询装置可以包括:
接收单元51,使区块链节点接收查询方发起的交易,所述交易用于获取目标账户中隐私字段所含的隐私信息,所述隐私信息被加密存储于所述区块链节点处;
判断单元52,使所述区块链节点根据所述目标账户中权限字段所记录的权限管理信息,判断所述查询方是否具有查询权限;
信息解密单元53,使所述区块链节点在判断结果为具有查询权限的情况下,将密文形式的所述隐私信息读入可信执行环境中进行解密,以将得到的明文形式的所述隐私信息提供至所述查询方。
可选的,所述判断单元52具体用于:
使所述区块链节点读取所述权限管理信息中包含的权限拥有者的公钥;
使所述区块链节点通过所述权限拥有者的公钥对所述交易所含的交易签名进行验证,所述交易签名由所述查询方的私钥生成;
使所述区块链节点在验证通过的情况下,判定所述查询方具有查询权限;否则,判定所述查询方不具有查询权限。
可选的,所述权限拥有者包括所述目标账户的所有者;或者,所述权限拥有者包括所述目标账户的所有者和至少一个其他用户。
可选的,所述判断单元52具体用于:
使所述区块链节点确定所述权限字段所记录的对应于所述查询方的特定权限管理信息;
使所述区块链节点在所述特定权限管理信息中包含查询权限的情况下,判定所述查询方具有查询权限;否则,判定所述查询方不具有查询权限。
可选的,所述目标账户的状态字段包含状态指示信息,所述状态指示信息用于表明所述隐私信息被明文存储或加密存储于所述区块链节点处。
可选的,还包括:
识别单元54,使所述区块链节点识别所述交易的类型;
执行单元55,当所述交易属于预定义的查询类型时,使所述区块链节点在免共识的情况下执行所述交易。
可选的,所述交易包括密文交易内容和加密后密钥,所述密文交易内容由所述查询方维护的对称密钥对明文交易内容进行加密得到,所述加密后密钥由节点公钥对所述对称密钥进行加密得到,所述节点公钥对应于所述区块链节点维护于所述可信执行环境中的节点私钥;所述装置还包括:
密钥解密单元56,使所述区块链节点将所述交易读入所述可信执行环境中,并通过所述节点私钥解密所述加密后密钥、得到所述对称密钥;
内容解密单元57,使所述区块链节点在所述可信执行环境中通过所述对称密钥解密所述密文交易内容,得到所述明文交易内容;
加密单元58,使所述区块链节点在所述可信执行环境中采用所述对称密钥对明文形式的所述隐私信息进行加密,以将得到的加密后信息提供至所述查询方。
可选的,所述隐私信息被所述区块链节点在所述可信执行环境中采用密钥加密后存储,所述密钥被基于维护在所述可信执行环境中的安全密钥而生成。
可选的,所述密钥被基于所述安全密钥和至少一个与所述目标账户相关的影响因子而生成。
可选的,与所述目标账户相关的影响因子包括以下至少之一:
所述目标账户对应的账户创建交易所处区块的区块高度、所述账户创建交易在所处区块中的位置偏移量、所述目标账户在所有账户中的创建顺序号、所述目标账户的账户地址。
可选的,所述安全密钥存在版本更新,且低版本的安全密钥由高版本的安全密钥不可逆地计算得到。
上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机,计算机的具体形式可以是个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件收发设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任意几种设备的组合。
在一个典型的配置中,计算机包括一个或多个处理器 (CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器 (RAM) 和/或非易失性内存等形式,如只读存储器 (ROM) 或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存 (PRAM)、静态随机存取存储器 (SRAM)、动态随机存取存储器 (DRAM)、其他类型的随机存取存储器 (RAM)、只读存储器 (ROM)、电可擦除可编程只读存储器 (EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘 (DVD) 或其他光学存储、磁盒式磁带、磁盘存储、量子存储器、基于石墨烯的存储介质或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
在本说明书一个或多个实施例使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本说明书一个或多个实施例。在本说明书一个或多个实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本说明书一个或多个实施例可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本说明书一个或多个实施例范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
以上所述仅为本说明书一个或多个实施例的较佳实施例而已,并不用以限制本说明书一个或多个实施例,凡在本说明书一个或多个实施例的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本说明书一个或多个实施例保护的范围之内。
Claims (14)
1.一种区块链中账户隐私信息的查询方法,包括:
区块链节点接收查询方发起的交易,所述交易用于获取目标账户中隐私字段所含的隐私信息,所述隐私信息被加密存储于所述区块链节点处;
所述区块链节点根据所述目标账户中权限字段所记录的权限管理信息,判断所述查询方是否具有查询权限;
所述区块链节点在判断结果为具有查询权限的情况下,将密文形式的所述隐私信息读入可信执行环境中进行解密,以将得到的明文形式的所述隐私信息提供至所述查询方。
2.根据权利要求1所述的方法,所述区块链节点根据所述目标账户中权限字段所记录的权限管理信息,判断所述查询方是否具有查询权限,包括:
所述区块链节点读取所述权限管理信息中包含的权限拥有者的公钥;
所述区块链节点通过所述权限拥有者的公钥对所述交易所含的交易签名进行验证,所述交易签名由所述查询方的私钥生成;
所述区块链节点在验证通过的情况下,判定所述查询方具有查询权限;否则,判定所述查询方不具有查询权限。
3.根据权利要求2所述的方法,所述权限拥有者包括所述目标账户的所有者;或者,所述权限拥有者包括所述目标账户的所有者和至少一个其他用户。
4.根据权利要求1所述的方法,所述区块链节点根据所述目标账户中权限字段所记录的权限管理信息,判断所述查询方是否具有查询权限,包括:
所述区块链节点确定所述权限字段所记录的对应于所述查询方的特定权限管理信息;
所述区块链节点在所述特定权限管理信息中包含查询权限的情况下,判定所述查询方具有查询权限;否则,判定所述查询方不具有查询权限。
5.根据权利要求1所述的方法,所述目标账户的状态字段包含状态指示信息,所述状态指示信息用于表明所述隐私信息被明文存储或加密存储于所述区块链节点处。
6.根据权利要求1所述的方法,还包括:
所述区块链节点识别所述交易的类型;
当所述交易属于预定义的查询类型时,所述区块链节点在免共识的情况下执行所述交易。
7.根据权利要求1所述的方法,所述交易包括密文交易内容和加密后密钥,所述密文交易内容由所述查询方维护的对称密钥对明文交易内容进行加密得到,所述加密后密钥由节点公钥对所述对称密钥进行加密得到,所述节点公钥对应于所述区块链节点维护于所述可信执行环境中的节点私钥;所述方法还包括:
所述区块链节点将所述交易读入所述可信执行环境中,并通过所述节点私钥解密所述加密后密钥、得到所述对称密钥;
所述区块链节点在所述可信执行环境中通过所述对称密钥解密所述密文交易内容,得到所述明文交易内容;
所述区块链节点在所述可信执行环境中采用所述对称密钥对明文形式的所述隐私信息进行加密,以将得到的加密后信息提供至所述查询方。
8.根据权利要求1所述的方法,所述隐私信息被所述区块链节点在所述可信执行环境中采用密钥加密后存储,所述密钥被基于维护在所述可信执行环境中的安全密钥而生成。
9.根据权利要求8所述的方法,所述密钥被基于所述安全密钥和至少一个与所述目标账户相关的影响因子而生成。
10.根据权利要求9所述的方法,与所述目标账户相关的影响因子包括以下至少之一:
所述目标账户对应的账户创建交易所处区块的区块高度、所述账户创建交易在所处区块中的位置偏移量、所述目标账户在所有账户中的创建顺序号、所述目标账户的账户地址。
11.根据权利要求8所述的方法,所述安全密钥存在版本更新,且低版本的安全密钥由高版本的安全密钥不可逆地计算得到。
12.一种区块链中账户隐私信息的查询装置,包括:
接收单元,使区块链节点接收查询方发起的交易,所述交易用于获取目标账户中隐私字段所含的隐私信息,所述隐私信息被加密存储于所述区块链节点处;
判断单元,使所述区块链节点根据所述目标账户中权限字段所记录的权限管理信息,判断所述查询方是否具有查询权限;
解密单元,使所述区块链节点在判断结果为具有查询权限的情况下,将密文形式的所述隐私信息读入可信执行环境中进行解密,以将得到的明文形式的所述隐私信息提供至所述查询方。
13.一种电子设备,包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,所述处理器通过运行所述可执行指令以实现如权利要求1-11中任一项所述的方法。
14.一种计算机可读存储介质,其上存储有计算机指令,该指令被处理器执行时实现如权利要求1-11中任一项所述方法的步骤。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010157174.4A CN111008228A (zh) | 2020-03-09 | 2020-03-09 | 区块链中账户隐私信息的查询方法及装置 |
PCT/CN2020/139745 WO2021179743A1 (zh) | 2020-03-09 | 2020-12-26 | 区块链中账户隐私信息的查询方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010157174.4A CN111008228A (zh) | 2020-03-09 | 2020-03-09 | 区块链中账户隐私信息的查询方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111008228A true CN111008228A (zh) | 2020-04-14 |
Family
ID=70121003
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010157174.4A Pending CN111008228A (zh) | 2020-03-09 | 2020-03-09 | 区块链中账户隐私信息的查询方法及装置 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN111008228A (zh) |
WO (1) | WO2021179743A1 (zh) |
Cited By (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111526167A (zh) * | 2020-07-06 | 2020-08-11 | 南京可信区块链与算法经济研究院有限公司 | 一种应用于区块链的数据传输方法及装置 |
CN111552982A (zh) * | 2020-04-27 | 2020-08-18 | 支付宝(杭州)信息技术有限公司 | 保护隐私的账户关联关系识别方法及装置 |
CN111737323A (zh) * | 2020-08-14 | 2020-10-02 | 支付宝(杭州)信息技术有限公司 | 基于区块链的信息查询方法、装置及电子设备 |
CN111914230A (zh) * | 2020-07-17 | 2020-11-10 | 中国联合网络通信集团有限公司 | 基于区块链的身份验证方法、系统、终端设备及存储介质 |
CN112019549A (zh) * | 2020-08-28 | 2020-12-01 | 长沙理工大学 | 基于区块链的电力交易系统以及交易方法和账单查询方法 |
CN112087439A (zh) * | 2020-09-02 | 2020-12-15 | 杭州趣链科技有限公司 | 区块链交易查询方法、系统、计算机设备和存储介质 |
CN112581135A (zh) * | 2020-12-28 | 2021-03-30 | 中国建设银行股份有限公司 | 区块链交易数据的访问与生成方法、装置及电子设备 |
CN112861102A (zh) * | 2021-03-12 | 2021-05-28 | 杭州溪塔科技有限公司 | 基于区块链对电子文件的处理方法和系统 |
CN112884585A (zh) * | 2021-04-28 | 2021-06-01 | 支付宝(杭州)信息技术有限公司 | 在区块链中执行交易的方法和区块链系统 |
CN113034136A (zh) * | 2021-03-10 | 2021-06-25 | 全球能源互联网研究院有限公司 | 一种基于区块链的数据管理方法、装置及电子设备 |
CN113326250A (zh) * | 2021-05-28 | 2021-08-31 | 中国科学技术大学 | 一种数据处理方法及系统 |
WO2021179743A1 (zh) * | 2020-03-09 | 2021-09-16 | 支付宝(杭州)信息技术有限公司 | 区块链中账户隐私信息的查询方法及装置 |
CN113449293A (zh) * | 2021-07-14 | 2021-09-28 | 上海交通大学 | 基于可信执行环境的密文搜索系统与方法 |
CN113553615A (zh) * | 2021-07-07 | 2021-10-26 | 深圳前海新心数字科技有限公司 | 一种隐私数据共享系统的匹配查询方法 |
CN114066637A (zh) * | 2021-11-15 | 2022-02-18 | 深圳前海鸿泰源兴科技发展有限公司 | 一种基于物联网的金融分析系统与操作方法 |
EP3964983A1 (en) * | 2020-09-04 | 2022-03-09 | Alipay (Hangzhou) Information Technology Co., Ltd. | Demand based data acquisition methods using a trusted device |
CN114172667A (zh) * | 2021-06-15 | 2022-03-11 | 支付宝(杭州)信息技术有限公司 | 基于合约的隐私存证方法及装置 |
CN114547704A (zh) * | 2022-04-28 | 2022-05-27 | 恒生电子股份有限公司 | 基于分布式账本的数据处理方法以及装置 |
CN114679258A (zh) * | 2020-12-24 | 2022-06-28 | 上海图灵加佳网络科技有限公司 | 银行间风险客户信息的共享方法、存储介质及电子设备 |
CN114785527A (zh) * | 2022-06-17 | 2022-07-22 | 深圳市深圳通有限公司 | 数据传输方法、装置、设备及存储介质 |
CN117540430A (zh) * | 2023-12-07 | 2024-02-09 | 北方工业大学 | 隐私数据的安全共享方法和系统 |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113849797A (zh) * | 2021-09-29 | 2021-12-28 | 深圳市电子商务安全证书管理有限公司 | 数据安全漏洞的修复方法、装置、设备及存储介质 |
CN113779637B (zh) * | 2021-11-10 | 2022-02-22 | 腾讯科技(深圳)有限公司 | 一种属性数据处理方法、装置、设备以及介质 |
CN114003938B (zh) * | 2021-11-11 | 2022-05-31 | 蓝象智联(杭州)科技有限公司 | 一种基于多头联盟的安全隐匿数据查询方法 |
CN114117522B (zh) * | 2021-11-23 | 2024-05-28 | 上海交通大学 | 基于区块链和可信执行环境的车联网数据共享实现方法 |
CN114826695A (zh) * | 2022-04-07 | 2022-07-29 | 广州腾粤信息科技有限公司 | 一种基于区块链的交易数据的隐私保护系统 |
CN115208630B (zh) * | 2022-06-15 | 2024-04-09 | 网易(杭州)网络有限公司 | 基于区块链的数据获取方法、系统及区块链系统 |
CN115314502B (zh) * | 2022-07-12 | 2023-03-17 | 地心引力(武汉)科技有限公司 | 一种基于区块链技术的数据溯源与加密的方法与系统 |
CN115758396B (zh) * | 2022-08-31 | 2023-05-30 | 兰州大学 | 基于可信执行环境的数据库安全访问控制技术 |
CN115965388B (zh) * | 2022-12-30 | 2023-12-22 | 国网数字科技控股有限公司 | 基于区块链的产业链金融密态溯源方法、装置及相关设备 |
CN117521149B (zh) * | 2024-01-03 | 2024-03-19 | 中电信量子科技有限公司 | 基于量子密码设备的文件系统流加解密方法及系统 |
CN117709947B (zh) * | 2024-02-05 | 2024-04-19 | 广东通莞科技股份有限公司 | 基于区块链的pos机结算权限管理方法 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20170177898A1 (en) * | 2015-12-16 | 2017-06-22 | International Business Machines Corporation | Personal ledger blockchain |
CN108537549A (zh) * | 2018-04-18 | 2018-09-14 | 四川众之金科技有限公司 | 一种权限认证方法及装置 |
CN108616539A (zh) * | 2018-05-03 | 2018-10-02 | 东莞市翔实信息科技有限公司 | 一种区块链交易记录访问的方法及系统 |
CN108712251A (zh) * | 2018-05-28 | 2018-10-26 | 江苏众享金联科技有限公司 | 一种不同信任域下向区块链写入用户隐私信息的方法 |
CN109831298A (zh) * | 2019-01-31 | 2019-05-31 | 阿里巴巴集团控股有限公司 | 区块链中安全更新密钥的方法及节点、存储介质 |
CN110046521A (zh) * | 2019-04-24 | 2019-07-23 | 成都派沃特科技股份有限公司 | 去中心化隐私保护方法 |
CN110580418A (zh) * | 2019-11-08 | 2019-12-17 | 支付宝(杭州)信息技术有限公司 | 基于区块链账户的隐私数据查询方法及装置 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20200026834A1 (en) * | 2018-07-23 | 2020-01-23 | One Kosmos Inc. | Blockchain identity safe and authentication system |
CN111008228A (zh) * | 2020-03-09 | 2020-04-14 | 支付宝(杭州)信息技术有限公司 | 区块链中账户隐私信息的查询方法及装置 |
-
2020
- 2020-03-09 CN CN202010157174.4A patent/CN111008228A/zh active Pending
- 2020-12-26 WO PCT/CN2020/139745 patent/WO2021179743A1/zh active Application Filing
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20170177898A1 (en) * | 2015-12-16 | 2017-06-22 | International Business Machines Corporation | Personal ledger blockchain |
CN108537549A (zh) * | 2018-04-18 | 2018-09-14 | 四川众之金科技有限公司 | 一种权限认证方法及装置 |
CN108616539A (zh) * | 2018-05-03 | 2018-10-02 | 东莞市翔实信息科技有限公司 | 一种区块链交易记录访问的方法及系统 |
CN108712251A (zh) * | 2018-05-28 | 2018-10-26 | 江苏众享金联科技有限公司 | 一种不同信任域下向区块链写入用户隐私信息的方法 |
CN109831298A (zh) * | 2019-01-31 | 2019-05-31 | 阿里巴巴集团控股有限公司 | 区块链中安全更新密钥的方法及节点、存储介质 |
CN110046521A (zh) * | 2019-04-24 | 2019-07-23 | 成都派沃特科技股份有限公司 | 去中心化隐私保护方法 |
CN110580418A (zh) * | 2019-11-08 | 2019-12-17 | 支付宝(杭州)信息技术有限公司 | 基于区块链账户的隐私数据查询方法及装置 |
Cited By (28)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2021179743A1 (zh) * | 2020-03-09 | 2021-09-16 | 支付宝(杭州)信息技术有限公司 | 区块链中账户隐私信息的查询方法及装置 |
CN111552982A (zh) * | 2020-04-27 | 2020-08-18 | 支付宝(杭州)信息技术有限公司 | 保护隐私的账户关联关系识别方法及装置 |
CN111552982B (zh) * | 2020-04-27 | 2023-03-10 | 支付宝(杭州)信息技术有限公司 | 保护隐私的账户关联关系识别方法及装置 |
CN111526167A (zh) * | 2020-07-06 | 2020-08-11 | 南京可信区块链与算法经济研究院有限公司 | 一种应用于区块链的数据传输方法及装置 |
CN111914230A (zh) * | 2020-07-17 | 2020-11-10 | 中国联合网络通信集团有限公司 | 基于区块链的身份验证方法、系统、终端设备及存储介质 |
CN111737323A (zh) * | 2020-08-14 | 2020-10-02 | 支付宝(杭州)信息技术有限公司 | 基于区块链的信息查询方法、装置及电子设备 |
CN112019549A (zh) * | 2020-08-28 | 2020-12-01 | 长沙理工大学 | 基于区块链的电力交易系统以及交易方法和账单查询方法 |
CN112087439A (zh) * | 2020-09-02 | 2020-12-15 | 杭州趣链科技有限公司 | 区块链交易查询方法、系统、计算机设备和存储介质 |
US11354448B2 (en) | 2020-09-04 | 2022-06-07 | Alipay (Hangzhou) Information Technology Co., Ltd. | Demand trusted device-based data acquisition methods, apparatuses, and devices |
EP3964983A1 (en) * | 2020-09-04 | 2022-03-09 | Alipay (Hangzhou) Information Technology Co., Ltd. | Demand based data acquisition methods using a trusted device |
CN114679258A (zh) * | 2020-12-24 | 2022-06-28 | 上海图灵加佳网络科技有限公司 | 银行间风险客户信息的共享方法、存储介质及电子设备 |
CN112581135A (zh) * | 2020-12-28 | 2021-03-30 | 中国建设银行股份有限公司 | 区块链交易数据的访问与生成方法、装置及电子设备 |
CN113034136A (zh) * | 2021-03-10 | 2021-06-25 | 全球能源互联网研究院有限公司 | 一种基于区块链的数据管理方法、装置及电子设备 |
CN112861102B (zh) * | 2021-03-12 | 2024-02-06 | 杭州溪塔科技有限公司 | 基于区块链对电子文件的处理方法和系统 |
CN112861102A (zh) * | 2021-03-12 | 2021-05-28 | 杭州溪塔科技有限公司 | 基于区块链对电子文件的处理方法和系统 |
CN112884585B (zh) * | 2021-04-28 | 2021-08-20 | 支付宝(杭州)信息技术有限公司 | 在区块链中执行交易的方法和区块链系统 |
CN112884585A (zh) * | 2021-04-28 | 2021-06-01 | 支付宝(杭州)信息技术有限公司 | 在区块链中执行交易的方法和区块链系统 |
CN113326250B (zh) * | 2021-05-28 | 2024-02-09 | 中国科学技术大学 | 一种数据处理方法及系统 |
CN113326250A (zh) * | 2021-05-28 | 2021-08-31 | 中国科学技术大学 | 一种数据处理方法及系统 |
CN114172667A (zh) * | 2021-06-15 | 2022-03-11 | 支付宝(杭州)信息技术有限公司 | 基于合约的隐私存证方法及装置 |
CN113553615A (zh) * | 2021-07-07 | 2021-10-26 | 深圳前海新心数字科技有限公司 | 一种隐私数据共享系统的匹配查询方法 |
CN113449293A (zh) * | 2021-07-14 | 2021-09-28 | 上海交通大学 | 基于可信执行环境的密文搜索系统与方法 |
CN114066637A (zh) * | 2021-11-15 | 2022-02-18 | 深圳前海鸿泰源兴科技发展有限公司 | 一种基于物联网的金融分析系统与操作方法 |
CN114547704B (zh) * | 2022-04-28 | 2022-08-02 | 恒生电子股份有限公司 | 基于分布式账本的数据处理方法以及装置 |
CN114547704A (zh) * | 2022-04-28 | 2022-05-27 | 恒生电子股份有限公司 | 基于分布式账本的数据处理方法以及装置 |
CN114785527A (zh) * | 2022-06-17 | 2022-07-22 | 深圳市深圳通有限公司 | 数据传输方法、装置、设备及存储介质 |
CN114785527B (zh) * | 2022-06-17 | 2022-09-16 | 深圳市深圳通有限公司 | 数据传输方法、装置、设备及存储介质 |
CN117540430A (zh) * | 2023-12-07 | 2024-02-09 | 北方工业大学 | 隐私数据的安全共享方法和系统 |
Also Published As
Publication number | Publication date |
---|---|
WO2021179743A1 (zh) | 2021-09-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111008228A (zh) | 区块链中账户隐私信息的查询方法及装置 | |
CN110580414B (zh) | 基于区块链账户的隐私数据查询方法及装置 | |
CN110580413B (zh) | 基于链下授权的隐私数据查询方法及装置 | |
CN110580418B (zh) | 基于区块链账户的隐私数据查询方法及装置 | |
CN110580262B (zh) | 基于智能合约的隐私数据查询方法及装置 | |
CN113221169B (zh) | 区块链隐私数据的查询方法及装置 | |
WO2021103794A1 (zh) | 在区块链中实现隐私保护的高效交易方法及装置 | |
CN109936626B (zh) | 区块链中实现隐私保护的方法、节点和存储介质 | |
TW202113645A (zh) | 基於區塊鏈的智能合約管理方法及裝置、電子設備 | |
CN110580412B (zh) | 基于链代码的权限查询配置方法及装置 | |
CN110580245B (zh) | 隐私数据的共享方法及装置 | |
CN111181720A (zh) | 基于可信执行环境的业务处理方法及装置 | |
CN110580417B (zh) | 基于智能合约的隐私数据查询方法及装置 | |
WO2020233631A1 (zh) | 基于交易类型的收据存储方法和节点 | |
WO2020233635A1 (zh) | 结合多类型维度的条件限制的收据存储方法和节点 | |
CN110580411B (zh) | 基于智能合约的权限查询配置方法及装置 | |
WO2020233628A1 (zh) | 结合事件函数类型和判断条件的收据存储方法和节点 | |
WO2020233624A1 (zh) | 结合交易类型和事件函数类型的收据存储方法和节点 | |
WO2020233619A1 (zh) | 结合用户类型与交易类型的收据存储方法和节点 | |
WO2020233627A1 (zh) | 多类型维度的收据存储方法和节点 | |
WO2020233632A1 (zh) | 基于事件函数类型的收据存储方法和节点 | |
WO2020233634A1 (zh) | 结合交易与事件类型的条件限制的收据存储方法和节点 | |
WO2020238958A1 (zh) | 基于合约状态的修改次序实现动态加密的方法及装置 | |
CN113193966B (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: 40027350 Country of ref document: HK |
|
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20200414 |