CN111680031B - 一种针对区块链轻客户端的基于sgx的可验证范围查询方法 - Google Patents
一种针对区块链轻客户端的基于sgx的可验证范围查询方法 Download PDFInfo
- Publication number
- CN111680031B CN111680031B CN202010319499.8A CN202010319499A CN111680031B CN 111680031 B CN111680031 B CN 111680031B CN 202010319499 A CN202010319499 A CN 202010319499A CN 111680031 B CN111680031 B CN 111680031B
- Authority
- CN
- China
- Prior art keywords
- query
- node
- verification
- tree
- range
- 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.)
- Active
Links
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/22—Indexing; Data structures therefor; Storage structures
- G06F16/2228—Indexing structures
- G06F16/2246—Trees, e.g. B+trees
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Bioethics (AREA)
- Computer Hardware Design (AREA)
- General Health & Medical Sciences (AREA)
- Health & Medical Sciences (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Fuzzy Systems (AREA)
- Mathematical Physics (AREA)
- Probability & Statistics with Applications (AREA)
- Computational Linguistics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种针对区块链轻节点(light node)的基于Intel SGX的可验证的范围查询方法。首先,基于Intel SGX可信硬件为区块链轻节点提供可信查询服务,使得轻节点无需接收及验证VO(Verification Objects),从而实现了零代价的可信查询。其次,通过整合MB‑tree(Merkle B‑tree)与Intel SGX,仅将常用MB‑tree结点运行于可信Enclave内,将较少访问的结点运行于Enclave外,缩短了MB‑tree的查询验证路径,减少了验证所需的Hash计算开销;进而解决了Enclave空间受限无法对大容量区块链数据进行可信查询的问题。本发明使得轻节点无需接收及验证VO即可执行可信查询,解决了区块链轻节点因资源受限而无法高效验证全节点(full node)查询结果的问题。
Description
技术领域
本发明属于区块链技术领域,尤其涉及区块链数据的可验证查询技术,特别是一种针对区块链轻客户端的基于SGX的可验证范围查询方法。
背景技术
比特币在没有任何权威中心机构统筹的情况下,实现了互不信任用户间的可信价值传输。从比特币底层提取出来的区块链技术,不仅能够应用于数字货币,还可在互不信任的多方间实现可信的数据共享。区块链(blockchain)作为一种去中心化、不可篡改、可追溯、可信的、多方共同维护的分布式数据库,通过集成P2P协议、非对称加密、共识机制、块链结构等多种技术,无需任何第三方可信机构,在互不了解、互不信任的多方间实现了可信的数据共享。
区块链系统中的节点通常可分为全节点(full node)和轻节点(light node)。全节点是全量存储区块链数据的节点。轻节点通常是移动设备或Web客户端,因为存储和带宽能力有限,其无法全量存储区块链数据,主要依靠向全节点查询所需的区块数据。如果全节点是不可信的,其可能会提供虚假的、缺失的查询结果。
目前,以太坊对其轻节点应用Dapp未提供任何查询验证支持。比特币系统针对轻节点引入了SPV(Simplified Payment Verification)。SPV需要轻节点持续下载并存储最新的区块链头部数据,并根据区块头部数据中Merkle根及全节点返回的Merkle分支来验证比特币交易。SPV虽然一定程度上实现了轻结点对交易数据的可信查询及验证,但自身却具有以下不足:首先,轻节点需要持续地同步并存储最新的区块链头部数据及与交易相关的Merkle分支,这给轻节点带来了网络和存储上的开销,同时如何选择可信的全节点以保证所下载的区块链头部数据的可信性也是需要解决的问题;其次,轻节点需要依据区块链头部数据和交易的Merkle分支验证查询结果中的交易,这给轻节点带来了计算上的开销且增加了轻节点开发的难度;最后,SPV仅仅支持简单的单个交易的查询及存在性验证,并不支持范围查询(比如Output≥10BTC,Fee<0.0001BTC,2019-10-01≤Timestamp≤2019-10-02的所有交易)及其查询结果集的完整性验证。为了保证查询结果的正确性和完整性,可验证查询技术在数据库领域已被广泛研究多年。其中基于哈希计算的ADS(Authenticated DataStructure)方案相对更为高效且更适合于实际系统。但直接将既有的ADS应用于区块链系统,其会在传回查询结果时伴随着传回批量的VO,轻节点需要接收及拼接这些VO并执行验证,这显然增加了轻节点的网络与计算开销。所以对于强调可信性的区块链系统而言,如何保证查询结果的可信性,急需一种有效且能够充分降低轻节点开销的解决方案。
Intel SGX(Software Guard Extensions)是对安全敏感计算提供加密性和完整性保护的可信执行环境,可使重要的代码和数据安全的运行在不可信的系统软件上。如果能够将关注数据可信的区块链系统与提供可信执行环境的SGX相结合,必然能够增强和优化区块链系统的可信数据共享。此外,Intel处理器自第6代Skylake之后都具有SGX功能,即常用主流服务器基本都支持该技术,因而不会增加额外的成本。
针对区块链轻节点因资源受限而无法高效验证全节点查询结果的问题,本发明提出基于Intel SGX可信硬件为区块链轻节点提供可信查询服务的方法,使得轻节点无需处理任何验证工作,实现了零代价的可信查询。
发明内容
本发明的目的是针对区块链轻节点因资源受限而无法高效验证全节点查询结果的问题,提出了一种基于Intel SGX为区块链轻节点提供可信查询服务的方法,使得轻节点无需处理任何验证工作而实现零代价的可信查询。
实现本发明目的的具体技术方案是:
一种针对区块链轻节点(light node)的基于Intel SGX的可验证的范围查询方法,采用基于Intel SGX可信硬件为区块链轻节点提供可信查询服务;通过整合基于ADS(Authenticated DataStructure)的MB-tree(Merkle B-tree)与基于可信硬件的IntelSGX,在有限的SGX Enclave内存空间内实现可信的范围查询与验证,使得区块链轻节点无需接收及验证VO,从而实现了零代价的可信查询。具体包括以下步骤:
步骤1:基于Enclave构建MB-tree索引;具体包括以下子步骤:
步骤1-1:轻节点验证全节点上Enclave的合法性,依据Enclave返回的远程证明与全节点Enclave建立安全通道;
步骤1-2:轻节点将已验证的MB-tree根结点经安全通道上传至Enclave;
步骤1-3:Enclave中的MB-tree维护线程接收到全节点转发的最新区块,对其中的交易数据进行提取并依照区块链系统的验证规则验证无误后更新MB-tree索引项。
步骤2:基于MB-tree在Enclave中执行查询处理及构建VO;具体包括以下子步骤:
步骤2-1:轻节点与全节点中的Enclave建立加密通道,并将范围查询条件发送至Enclave;
步骤2-2:在MB-tree中依据范围下界执行点查询,并在查找过程中记录可验证下界结果的VO;
步骤2-3:在MB-tree中依据范围上界执行点查询,并在查找过程中记录可验证上界结果的VO;
步骤2-4:在MB-tree中依据范围下界和上界执行范围查询,并在查找过程中记录可验证结果集的VO及位于查询范围内的结果集;
其中,查找范围下界并构建VO的过程包括如下步骤:
步骤2-2-1:依据查询范围下界,Enclave中的查询线程由MB-tree根节点开始自顶向下查询直至找到包含下界边界索引项的叶子节点,并记录查找路径上所有结点的索引项digest值作为VO;
步骤2-2-2:记录下界值左面第一个索引项的key作为下界边界索引项,用于范围下界的完整性验证。
查找范围上界并构建VO的过程包括如下步骤:
步骤2-3-1:依据查询范围上界,Enclave中的查询线程由MB-tree根节点开始自顶向下查询直至找到包含上界边界索引项的叶子节点,并记录查找路径上所有结点的索引项digest值作为VO;
步骤2-3-2:记录上界值右面第一个索引项的key作为上界边界索引项,用于范围上界的完整性验证;
查找位于查询范围内的结果集并构建VO的过程包括如下步骤:
步骤2-4-1:依据下界和上界限定的查询范围,由MB-tree根节点开始自顶向下查询直至找到位于下界与上界之间的所有叶子结点,记录遍历过程中整棵查找子树的所有结点的索引项digest值作为VO;
步骤2-4-2:依序记录位于下界和上界范围内的所有叶子结点的value作为结果集。
步骤3:基于MB-tree在Enclave中依据VO执行查询验证;具体包括以下子步骤:
步骤3-1:基于步骤2-2中构建的VO验证下界结果的正确性;
步骤3-2:基于步骤2-3中构建的VO验证上界结果的正确性;
步骤3-3:基于步骤2-4中构建的VO验证查询结果集的正确性及查询范围的完整性;
步骤3-4:将验证后的查询结果集经加密通道传回至轻节点。
其中,验证范围下界的过程包括如下步骤:
步骤3-1-1:基于步骤2-2中构建的VO,自叶子结点开始自底向上直至根结点验证下界查询路径的正确性;如果索引节点位于Enclave中,则该路径的验证通过,并提前结束验证;
步骤3-1-2:验证下界的边界索引项的key小于下界且与下界邻接。
验证范围上界的过程包括如下步骤:
步骤3-2-1:基于步骤2-3中构建的VO,自叶子结点开始自底向上直至根结点验证上界查询路径的正确性;如果索引节点位于Enclave中,则该路径的验证通过,并提前结束验证;
步骤3-2-2:验证上界的边界索引项的key大于上界且与上界邻接。
验证查询结果集的过程包括如下步骤:
步骤3-3-1:验证结果集中的每项结果均符合范围查询的上下界约束条件;
步骤3-3-2:基于步骤2-4中构建的VO,自所有查询结果所在的叶子结点开始自底向上直至根结点验证范围查询子树的正确性,如果子树中某一分支上的索引节点位于Enclave中,则该分支的验证通过。并提前结束其验证;
步骤3-3-3:如果查询子树的所有分支的验证均结束于Enclave内或最终汇集到根结点并与根结点digest一致,则查询结果集的验证通过。
步骤3-3-4:基于页面置换算法将已验证过的常用MB-tree结点缓存于Enclave。
本发明的有益效果包括:
针对当前区块链轻节点因资源受限而无法高效验证全节点查询结果的问题,提出基于IntelSGX可信硬件为区块链轻节点提供可信查询服务,使得轻节点无需接收及验证VO,从而实现了零代价的可信查询。针对Enclave空间受限无法对大容量区块链数据进行可信查询的问题,提出MB-tree与SGX相结合的方案,仅将常用MB-tree结点运行于可信Enclave内,将较少访问的结点运行于Enclave外,从而缩短了MB-tree的查询验证路径,减少了验证所需的Hash计算开销。
附图说明
图1是传统基于MB-tree的区块链数据点查询与验证示意图;
图2是本发明涉及的整合了MB-tree与Intel SGX的区块链数据点查询与验证示意图;
图3是传统基于MB-tree的区块链数据范围查询与验证示意图;
图4是本发明涉及的整合了MB-tree与Intel SGX的区块链数据范围查询与验证示意图;
图5是本发明涉及的整合了Enclave memory和untrusted memory的查询处理缓存体系结构示意图。
具体实施方式
结合以下具体实施例和附图,对本发明作进一步的详细说明。实施本发明的过程、条件、实验方法等,除以下专门提及的内容之外,均为本领域的普遍知识和公知常识,本发明没有特别限制内容。
本发明公开了一种针对区块链轻节点(light node)的基于Intel SGX的可验证的范围查询方法。首先,基于Intel SGX可信硬件为区块链轻节点提供可信查询服务,使得轻节点无需接收及验证VO(Verification Objects),从而实现了零代价的可信查询。其次,通过整合MB-tree(Merkle B-tree)与Intel SGX,仅将常用MB-tree结点运行于可信Enclave内,将较少访问的结点运行于Enclave外,缩短了MB-tree的查询验证路径,减少了验证所需的Hash计算开销;进而解决了Enclave空间受限无法对大容量区块链数据进行可信查询的问题。本发明使得轻节点无需接收及验证VO即可执行可信查询,解决了区块链轻节点因资源受限而无法高效验证全节点(full node)查询结果的问题。
图1显示了传统MB-tree在区块链数据上的点查询及验证过程。MB-tree每个结点的索引项是由关键字key、指向孩子结点的指针pointer和孩子结点的digest构成的三元组<keyi,pointeri,digesti>。查询由根结点开始,根据search key在结点的索引项中折半查找出小于search key的最大key值,并根据该key值对应的指针向下在孩子结点中递归查找,直至达到结果所在的叶子结点。在遍历过程中,查询路径上所有结点的兄弟索引项digest被添加到VO。如图1所示,需被加入VO的兄弟索引项由灰色填充的方形表示,被查询到的结果由斜线填充的方形表示。轻节点依照被返回的查询结果和VO,能够由叶子结点开始自底向上直至根节点构造验证路径,并计算出根节点digest。通过对预先存储的根节点签名进行验签来验证查询结果的正确性。
图2显示了整合MB-tree与Intel SGX的区块链数据的点查询与验证。其查询过程与传统MB-tree是一致的,但是其验证过程可以得到简化。如图2所示,因为先前已被验证过的结点是可信的,所以可以将这些可信的并且常用的结点缓存在SGX Enclave中。当至底向上沿着验证路径计算Merkle proofs时,如果被验证的结点位于Enclave中,且由其子结点计算出的digest与Enclave中结点digest相一致,则验证过程可提前终结,无需再继续向上验证到根结点。SGX中的查询进程可仅将验证过的结果通过加密通道返回至轻节点。因为可信的SGX已经代替轻节点执行了所有验证工作,轻节点认为查询结果是可信的,从而无需再接收并验证任何VO。
图3显示了传统MB-tree在区块链数据上的范围查询及验证过程。范围查询首先依据范围下界由根结点开始向下查询直至在叶子结点中找到符合条件的结果,然后依据叶子结点的兄弟指针向右查询,直至找出所有位于查询范围的结果(图3中由斜线填充的方形)。不同于点查询仅需保证结果的正确性,范围查询除了要保证结果的正确性,还要保证结果的完整性。所以除了添加查询路径结点中的兄弟索引项(图3中由灰色填充方形)digest到VO外,查询过程也需将最小结果的左面的数据项和最大结果右面的数据项分别作为下边界和上边界(图3中由点填充的方形)加入VO中。图中Queryl除了查找结果集,也收集了与最小结果有关的兄弟索引项和下边界,而Query2则用于收集与最大结果有关的兄弟索引项和上边界。依据传回的查询结果集,兄弟索引项digest,下边界和上边界,轻节点能够重新计算MB-tree的根节点digest并验证其签名,从而确保了结果集的正确性和完整性。
图4显示了整合MB-tree与Intel SGX的区块链数据范围查询与验证。点查询结果仅涉及单个叶子结点,因而其验证路径是单条的。范围查询的结果集涉及到多个连续的叶子结点,因而其验证路径是多条的(如图4中带箭头虚线所示)。查询结果集覆盖的叶子结点越多,其验证路径就越多。
MB-tree在Enclave中的范围查询流程可通过以下方法1中的相关代码实现,方法1的代码如下所示:
方法1代码的第2行至9行依据查询范围下界startKey,由MB-tree根节点开始自顶向下查询直至找到包含下界边界索引项的叶子节点,并记录查找路径上所有结点的索引项digest值作为VOl,第10行记录下界值左面第一个索引项的key作为下界边界索引项,用于范围下界的完整性验证。第13行至19行依据查询范围上界endKey,由MB-tree根节点开始自顶向下查询直至找到包含上界边界索引项的叶子节点,并记录查找路径上所有结点的索引项digest值作为VOr,第20行记录上界值右面第一个索引项的key作为上界边界索引项,用于范围上界的完整性验证。第23行调用RangeSearch()方法在MB-tree中依据范围下界和上界执行范围查询,并在查找过程中记录可验证结果集的VO及位于查询范围内的结果集。第25行至第36行定义的RangeSearch()方法依据依据下界startKey和上界endKey限定的查询范围,由MB-tree根节点开始自顶向下查询直至找到位于下界与上界之间的所有叶子结点,记录遍历过程中整棵查找子树的所有结点的索引项digest值作为VO;同时第31行依序记录位于下界和上界范围内的所有叶子结点的value作为结果集。
为了保证结果的完整性,叶子结点的digest计算也更为复杂。查询结果集涉及的最左面和最右面的叶子结点需要分别依据查询结果集,兄弟索引项digest,边界值来计算结点digest,位于他们之间的叶子结点则基于结点中的结果集计算digest,然后各个叶子结点自底向上汇聚直至求得根结点digest。因此,验证路径中所涉及的结点先前如果已被验证过且缓存在Enclave中,那么验证分支数目将会减少、验证路径长度将会缩短。特别是整个结果集所在的叶子结点全位于Enclave时,将无需执行任何验证处理。因而将SGX用于MB-tree的范围查询,可简化并改善其验证效率。
依据查询过程构建的VO,MB-tree在Enclave中的验证流程可通过以下方法2中的相关代码实现,方法2的代码如下所示:
方法2代码的第3行和第4行分别验证了左边界是否与下界邻接、右边界是否与上界邻接。第5行和第6行调用VerifyBranch()方法分别验证下界和上界结果的正确性。第7行调用VerifyResults()方法验证查询结果集的正确性及查询范围的完整性。第8行验证了验证分支是否全部终结于Enclave内,如果所有分支的验证均结束于Enclave内或最终汇集到根结点并与根结点digest一致,则查询结果集的验证通过。第9行至第16行定义的VerifyBranch()方法基于查询过程中构建的VOl或VOr,自叶子结点开始自底向上直至根结点验证查询路径的正确性;如果索引节点位于Enclave中,则该路径的验证通过,并提前结束验证。第17行至第28行定义的VerifyResults()方法基于查询过程中构建的VO,自所有查询结果所在的叶子结点开始自底向上直至根结点验证范围查询子树的正确性,如果子树中某一分支上的索引节点位于Enclave中,则该分支的验证通过。并提前结束其验证。
图5显示了整合Enclave memory、untrusted memory和磁盘的查询处理缓存体系结构。将MB-tree运行于SGX实现可信范围查询时,通过将先前查询已验证过的常用结点缓存于Enclave,可以减少验证分支数目,缩短验证路径长度,从而提高MB-tree的验证效率。但目前Enclave内存尺寸被限制为128MB,且仅93MB为实际可用。当前服务器通常配置数十G甚至百G的内存,如何进一步利用这些内存空间以对更大容量的数据进行可信查询是需要解决的问题。
为了防范敏感数据泄露,SGX将页面换出Enclave时,需对数据进行加密;将页面换进Enclave时,需对数据进行加密,其页面的加解密过程极大地增加了换进换出的开销。对于比特币、以太坊等公有链而言,其区块数据、状态数据本就是全网透明可见的,因而当索引并查询这些数据时,更多关注的是查询结果的正确性和完整性,而非数据的保密性。因此我们提出了将区块链索引数据以MB-tree的形式分层存放在Enclave memory和untrustedmemory构成的缓存体系结构中。本方案具有以下优势。首先,相对于SGX原生页面置换时的加解密开销,本方案仅需防范换出到untrusted memory的数据被篡改,即只需对换出页面做digest计算,对换入页面做digest验证即可。其次,相对于SGX固定的由OS决定的页面置换策略,我们可以依据具体查询需求自定义更为灵活的页面置换策略。
为了充分利用内存以实现对大容量数据的可信查询,依据MB-tree与SGX自身特性,整合了Enclave memory和untrusted memory的缓存体系结构从底层到上层共有diskstorage、coldcache和hot cache三层存储构成。底层的disk storage完整持久化了整颗MB-tree。cold cache基于较大的untrusted memory缓冲常用的MB-tree结点,避免了每次均从磁盘读取时的I/O开销。对于Enclave memory而言,每次读入或写出数据,除了进行digest计算与验证,还需执行ECall/OCall调用,ECall/OCall调用引起的上下文切换会带比普通系统调用要慢50倍的开销。因此,hot cache基于可信的Enclave memory缓冲了常用的且已验证的MB-tree结点,既避免了每次调入调出结点时的digest计算与验证的开销,也避免了执行ECall/OCall的开销。总之,cold cache容量较大,但每次访问其数据时,均需进行数据验证,使得访问效率较低。hot cache容量受限,但其缓存数据是可信的,其无需数据验证。因此通过将这两种cache进行互补整合可实现高效的可信查询处理。
本发明的保护内容不局限于以上实施例。在不背离发明构思的精神和范围下,本领域技术人员能够想到的变化和优点都被包括在本发明中,并且以所附的权利要求书为保护范围。
Claims (7)
1.一种针对区块链轻节点的基于Intel SGX的可验证的范围查询方法,其特征在于,包括:在全节点上采用Intel SGX可信硬件为区块链轻节点提供可信查询服务;通过整合基于ADS的MB-tree与基于可信硬件的Intel SGX,在有限的SGX Enclave内存空间内实现可信的范围查询与验证;具体地,所述针对区块链轻节点的基于Intel SGX的可验证的范围查询方法包括以下步骤:
步骤1:在全节点上基于Enclave构建MB-tree索引,包括以下子步骤:
步骤1-1:轻节点验证全节点上Enclave的合法性,依据Enclave返回的远程证明与全节点Enclave建立安全通道;
步骤1-2:轻节点将已验证的MB-tree根结点经安全通道上传至Enclave;
步骤1-3:Enclave中的MB-tree维护线程接收到全节点转发的最新区块,对其中的交易数据进行提取并依照区块链系统的验证规则验证无误后更新MB-tree索引项;
步骤2:在全节点上基于MB-tree在Enclave中执行查询处理及构建VO,包括以下子步骤:
步骤2-1:轻节点与全节点中的Enclave建立加密通道,并将范围查询条件发送至Enclave;
步骤2-2:在MB-tree中依据范围下界执行点查询,并在查找过程中记录可验证下界结果的VO;
步骤2-3:在MB-tree中依据范围上界执行点查询,并在查找过程中记录可验证上界结果的VO;
步骤2-4:在MB-tree中依据范围下界和上界执行范围查询,并在查找过程中记录可验证结果集的VO及位于查询范围内的结果集;
步骤3:在全节点上基于MB-tree在Enclave中依据VO执行查询验证,包括以下子步骤:
步骤3-1:基于步骤2-2中构建的VO验证下界结果的正确性;
步骤3-2:基于步骤2-3中构建的VO验证上界结果的正确性;
步骤3-3:基于步骤2-4中构建的VO验证查询结果集的正确性及查询范围的完整性;
步骤3-4:将验证后的查询结果集经加密通道传回至轻节点。
2.如权利要求1所述的针对区块链轻节点的基于Intel SGX的可验证的范围查询方法,其特征在于,所述步骤2-2包括如下步骤:
步骤2-2-1:依据查询范围下界,Enclave中的查询线程由MB-tree根节点开始自顶向下查询直至找到包含下界边界索引项的叶子节点,并记录查找路径上所有结点的索引项digest值作为VO;
步骤2-2-2:记录下界值左面第一个索引项的key作为下界边界索引项,用于范围下界的完整性验证。
3.如权利要求1所述的针对区块链轻节点的基于Intel SGX的可验证的范围查询方法,其特征在于,所述步骤2-3包括如下步骤:
步骤2-3-1:依据查询范围上界,Enclave中的查询线程由MB-tree根节点开始自顶向下查询直至找到包含上界边界索引项的叶子节点,并记录查找路径上所有结点的索引项digest值作为VO;
步骤2-3-2:记录上界值右面第一个索引项的key作为上界边界索引项,用于范围上界的完整性验证。
4.如权利要求1所述的针对区块链轻节点的基于Intel SGX的可验证的范围查询方法,其特征在于,所述步骤2-4包括如下步骤:
步骤2-4-1:依据下界和上界限定的查询范围,由MB-tree根节点开始自顶向下查询直至找到位于下界与上界之间的所有叶子结点,记录遍历过程中整棵查找子树的所有结点的索引项digest值作为VO;
步骤2-4-2:依序记录位于下界和上界范围内的所有叶子结点的value作为结果集。
5.如权利要求2所述的针对区块链轻节点的基于Intel SGX的可验证的范围查询方法,其特征在于,所述步骤3-1包括如下步骤:
步骤3-1-1:基于步骤2-2中构建的VO,自叶子结点开始自底向上直至根结点验证下界查询路径的正确性;如果路径上有结点位于Enclave中,则该路径的验证通过,并提前结束验证;
步骤3-1-2:验证步骤2-2-2中下界边界索引项的key小于下界且与下界邻接。
6.如权利要求3所述的针对区块链轻节点的基于Intel SGX的可验证的范围查询方法,其特征在于,所述步骤3-2包括如下步骤:
步骤3-2-1:基于步骤2-3中构建的VO,自叶子结点开始自底向上直至根结点验证上界查询路径的正确性;如果路径上有结点位于Enclave中,则该路径的验证通过,并提前结束验证;
步骤3-2-2:验证步骤2-3-2中上界边界索引项的key大于上界且与上界邻接。
7.如权利要求4所述的针对区块链轻节点的基于Intel SGX的可验证的范围查询方法,其特征在于,所述步骤3-3包括如下步骤:
步骤3-3-1:验证步骤2-4-2得到的结果集中的每项结果均符合范围查询的上下界约束条件;
步骤3-3-2:基于步骤2-4中构建的VO,自所有查询结果所在的叶子结点开始自底向上直至根结点验证范围查询子树的正确性,如果子树中某一分支上有结点位于Enclave中,则该分支的验证通过,并提前结束其验证;
步骤3-3-3:如果查询子树的所有分支的验证均结束于Enclave内或最终汇集到根结点并与根结点digest一致,则查询结果集的验证通过;
步骤3-3-4:基于页面置换算法将已验证过的MB-tree结点缓存于Enclave。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010319499.8A CN111680031B (zh) | 2020-04-21 | 2020-04-21 | 一种针对区块链轻客户端的基于sgx的可验证范围查询方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010319499.8A CN111680031B (zh) | 2020-04-21 | 2020-04-21 | 一种针对区块链轻客户端的基于sgx的可验证范围查询方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111680031A CN111680031A (zh) | 2020-09-18 |
CN111680031B true CN111680031B (zh) | 2021-10-15 |
Family
ID=72451678
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010319499.8A Active CN111680031B (zh) | 2020-04-21 | 2020-04-21 | 一种针对区块链轻客户端的基于sgx的可验证范围查询方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111680031B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112085504B (zh) * | 2020-11-16 | 2021-02-09 | 腾讯科技(深圳)有限公司 | 一种数据处理方法、装置、计算机设备及存储介质 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109885615B (zh) * | 2019-01-24 | 2020-09-22 | 华东师范大学 | 一种基于索引的面向区块链轻客户端的范围查询可验证查询方法 |
CN110766550B (zh) * | 2019-09-05 | 2021-06-22 | 创新先进技术有限公司 | 基于区块链的资产查询方法及装置、电子设备 |
CN110580418B (zh) * | 2019-11-08 | 2020-04-07 | 支付宝(杭州)信息技术有限公司 | 基于区块链账户的隐私数据查询方法及装置 |
-
2020
- 2020-04-21 CN CN202010319499.8A patent/CN111680031B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN111680031A (zh) | 2020-09-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Lee et al. | Blockchain based privacy preserving multimedia intelligent video surveillance using secure Merkle tree | |
Xu et al. | vchain: Enabling verifiable boolean range queries over blockchain databases | |
US10892898B2 (en) | Shared blockchain data storage | |
CN107465656B (zh) | 一种基于云计算的安防监控大数据处理方法及系统 | |
CN109246211B (zh) | 一种区块链中的资源上传和资源请求方法 | |
CN113326317B (zh) | 基于同构多链架构的区块链存证方法及系统 | |
US20190370241A1 (en) | Authenticated Key-value Stores Supporting Partial State | |
EP3669281A2 (en) | Shared blockchain data storage | |
US20230096457A1 (en) | Data synchronization method, apparatus, and device, and computer readable storage medium | |
CN113438084A (zh) | 一种基于r-pbft共识算法和时间戳的绿电溯源方法及系统 | |
CN113302610B (zh) | 基于区块链的可信平台 | |
CN115380303A (zh) | 基于区块链的可信平台 | |
CN112615847A (zh) | 基于区块链的数据共享和隐私保护方法 | |
Fu et al. | Searchable encryption scheme for multiple cloud storage using double‐layer blockchain | |
Wang et al. | Data Security Storage Model of the Internet of Things Based on Blockchain. | |
CN111680031B (zh) | 一种针对区块链轻客户端的基于sgx的可验证范围查询方法 | |
Gao et al. | BFR‐SE: A Blockchain‐Based Fair and Reliable Searchable Encryption Scheme for IoT with Fine‐Grained Access Control in Cloud Environment | |
Ahmed et al. | Toward fine‐grained access control and privacy protection for video sharing in media convergence environment | |
Zhang et al. | A blockchain based searchable encryption scheme for multiple cloud storage | |
CN113597608A (zh) | 基于区块链的可信平台 | |
CN113302612A (zh) | 基于区块链的可信平台 | |
CN113491090B (zh) | 基于区块链的可信平台 | |
Cali et al. | Foundations of distributed ledger technology | |
Sathiya Devi et al. | Design of efficient storage and retrieval of medical records in blockchain based on InterPlanetary File System and modified bloom tree | |
US11271716B1 (en) | Blockchain-based data management of distributed binary objects |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |