CN109885615A - 一种基于索引的面向区块链轻客户端的范围查询可验证查询方法 - Google Patents
一种基于索引的面向区块链轻客户端的范围查询可验证查询方法 Download PDFInfo
- Publication number
- CN109885615A CN109885615A CN201910066166.6A CN201910066166A CN109885615A CN 109885615 A CN109885615 A CN 109885615A CN 201910066166 A CN201910066166 A CN 201910066166A CN 109885615 A CN109885615 A CN 109885615A
- Authority
- CN
- China
- Prior art keywords
- block
- index
- light client
- tree
- query
- 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.)
- Granted
Links
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种基于索引的面向区块链轻客户端的范围查询可验证查询方法,包括区块索引和层次索引结构生成步骤、全节点进行数据可验证查询步骤、全节点进行辅助可验证查询步骤和轻客户端进行可验证查询步骤。为支持有效地访问区块数据和可验证查询处理过程,本发明提出了一种支持可验证查询的层次索引结构,并提出基于该索引的面向区块链轻客户端的范围查询可验证查询方法。本发明克服了现有技术下全节点扫描区块效率低,全节点与轻客户端通信开销大的缺陷,以及解决了在不可信的区块链网络中数据查询验证困难的问题,实现了轻客户端的可信数据查询验证。
Description
技术领域
本发明属于区块链数据库技术领域,尤其涉及基于索引的面向区块链轻客户端的范围查询可验证查询方法。
背景技术
全节点是拥有完整区块链账本的节点,负责验证以及转发网络上的交易和区块。由于无需信任的环境(开放的网络)以及区块链本身的性质,每个全节点都需要下载并验证所有的区块,因此所有区块中的所有交易信息都需要经过全节点的验证。然后,下载并验证所有区块信息会消耗大量的时间和资源。例如,完全同步以太坊区块链至少需要SSD(固态硬盘),因为HDD(机械硬盘)跟不上每秒的输入输出需求。轻客户端或者轻节点是一种连接全节点以实现与区块链的交互的软件,与全节点不同的是,轻客户端不需要不停的运行,也不需要向区块链中读取写入大量的信息,如用户所使用的手持设备,轻客户端通常只存储了区块头。实际上,轻客户端不需要直接与区块链交互,它们使用全节点作为中介,依赖全节点来实现许多操作。为了执行查询,轻客户端就需要查询存储了所有区块数据的不可信的节点。然而,这种查询下的结果可能并不正确,因此轻客户端就必须能够验证查询结果。
为了处理这种情况,比特币使用Merkle哈希树(MHT)提出了简单支付验证(SPV),SPV支持轻客户端的交易验证,可以确定某个特定的交易是否在区块中,SPV节点只需下载区块头,而不用下载包含在每个区块中的交易信息。如果通过扫描所有的区块来查询数据,则重建被访问区块的MB-tree根可以方便地验证数据的正确性。但是,扫描的方法效率太低,例如,对于范围查询,所有的区块都要返回给轻客户端,以保证查询结果的完整性和完备性。而且,若一次范围查询涉及到的区块数量较多,则会造成很大的通信开销,导致查询效率低下,同时目前已有的区块链***并不能实现丰富的可验证查询。所以为了支持区块链中的可验证索引,验证索引结构的提出是非常有必要的。以太坊提出了Merkle PatriciaTree(MPT),其中每个区块都存储了一个可验证结构的快照。然而,树是非常大的,因为树中的每一个节点的变化都被记录下来了。而且,MPT仅支持账户状态的可验证查询。因此,有必要基于验证结构重新实现各种可验证查询。
发明内容
本发明的目的是为了克服现有技术下全节点扫描区块效率低,全节点与轻客户端通信开销大的缺陷,以及解决在不可信的区块链网络中数据查询验证困难的问题,提出了一种基于索引的面向区块链轻客户端的范围查询可验证查询方法。
实现本发明目的的具体技术方案是:
一种基于索引的面向区块链轻客户端的范围查询可验证查询方法,根据全节点返回验证对象的不同本发明将全节点分为全节点和全节点,其特征在于,该方法包括以下具体步骤:
步骤S1:区块索引和层次索引结构生成
此步骤在关键字区块时间戳上构造一个区块层B+-tree索引结构,获取给定查询时间范围内包含有查询交易类型的区块范围;并对不同交易类型构造位图索引并对每一个区块在关键字交易id上构造Merkle B-tree(MB-tree)索引,构造出一个由位图索引和MB-tree索引组成的层次索引结构;具体包括:
步骤A1:全节点在关键字区块时间戳上构造一个区块层B+-tree索引结构,用来获取给定查询时间范围内的区块id;
步骤A2:全节点首先对所有的交易数据按照交易类型划分,得到多个分类;然后为每一个分类创建一个位向量,即一行二进制串数据,每一行中的第i位二进制数据代表区块i中是否包含这种交易类型的数据,1代表包含,0代表不包含;若出现一种新的交易类型,则添加新的一行二进制串数据来记录此类型交易,所有交易类型的二进制数据共同组成了层次索引的第一层索引结构——位图索引;
步骤A3:全节点对每一个区块在关键字交易id上构造了一个MB-tree,MB-tree是B+树和Merkle Hash Tree(MHT)的结合体,其中每一个叶子节点都含有本身的哈希值,每一个非叶子节点中都含有其孩子节点级联的哈希值,构成了层次索引的第二层索引结构——MB-tree索引;当一个新的区块生成后,全节点需要为该区块构建一个在关键字交易id上的MB-tree。
步骤S2:全节点进行数据可验证查询
此步骤中全节点根据区块层B+-tree索引结构和层次索引结构来处理轻客户端发送来的查询请求,并将表示当前区块链版本的区块高度h和查询生成的验证对象(Verification Object,VO)返回给轻客户端;具体包括:
步骤B1:全节点获取来自轻客户端的查询请求,获取表示当前区块链版本的区块高度h,并根据区块层B+-tree索引结构使用范围搜索获取给定查询时间范围内包内的区块范围;
步骤B2:全节点根据步骤B1中获取到的区块范围查询层次索引的第一层索引结构——位图索引;全节点根据查询请求中的交易类型查询位图索引中的对应行,并按位扫描该行中在区块范围内的所有二进制数据,若为0则跳过,若为1则将对应的区块id加入包含查询结果的一个区块集合;
步骤B3:全节点根据步骤B2中获取到的区块集合查询层次索引的第二层索引结构——MB-tree索引;对于在区块集合内的任意区块i,全节点将在该区块i的MB-tree上执行范围搜索来生成验证对象,并将其添加到VO中;
步骤B4:全节点将当前的区块高度h和查询生成的验证对象VO返回给轻客户端。
步骤S3:全节点进行辅助可验证查询
此步骤中全节点首先会根据接收到的区块高度h来判断自己当前区块链版本是否与全节点一致,若一致则会根据区块层B+-tree索引结构和层次索引结构来处理轻客户端发送来的查询请求,并将查询生成的辅助验证对象(Auxiliary Verification Object,AVO)返回给轻客户端;否则,不进行操作而将返回给轻客户端;具体包括:
步骤C1:全节点获取来自轻客户端的查询请求和区块高度h,并根据接收到的区块高度h来判断自己当前区块链版本是否与全节点一致,若一致则进行步骤C2,否则进行步骤C6;
步骤C2:全节点根据区块层B+-tree索引结构使用范围搜索获取给定查询范围内包含有查询交易类型的区块范围;
步骤C3:全节点根据步骤C2中获取到的区块范围查询层次索引的第一层索引结构——位图索引;全节点根据查询请求中的交易类型查询位图索引中的对应行,并按位扫描该行中在区块范围内的所有二进制数据,若为0则跳过,若为1则将对应的区块id加入包含查询结果的一个区块集合;
步骤C4:全节点根据步骤C3中获取到的区块集合查询层次索引的第二层索引结构——MB-tree索引;对于在区块集合内的任意区块i,全节点将获取该区块i的MB-tree根Rooti,并将区块id i和对应的Rooti将添加到AVO中;
步骤C5:全节点将查询生成的辅助验证对象AVO返回给轻客户端;
步骤C6:全节点不进行操作而将返回给轻客户端。
步骤S4:轻客户端进行可验证查询
此步骤中轻客户端将根据VO和AVO来验证查询结果的完备性和完整性,得到最终正确的查询结果;具体包括:
步骤D1:轻客户端获取步骤B4中返回的验证对象VO,以及步骤C5中返回的辅助验证对象AVOs;
步骤D2:对VO中的每一个区块i,轻客户端通过VO中的每一个区块的VOi重新构建相应的MB-tree根,并将其与AVO中包含的区块i对应的索引根进行对比来验证;
步骤D3:如果VO中所有的区块的验证结果都是正确的,则查询结果是正确的。
本发明克服了现有技术下全节点扫描区块效率低,全节点与轻客户端通信开销大的缺陷,以及解决了在不可信的区块链网络中数据查询验证困难的问题,实现了轻客户端的可信数据查询验证。
附图说明
图1显示的是本发明流程图;
图2显示的是一个区块结构示例图;
图3显示的是可验证查询的层次索引结构示例图;
图4显示的是全节点进性数据可验证查询示例图;
图5显示的是全节点进行辅助可验证查询示例图;
图6显示的是轻客户端进行可验证查询示例图。
具体实施方式
以下结合具体实施例和附图,对本发明作进一步的详细说明。实施本发明的过程、条件、实验方法等,除以下专门提及的内容之外,均为本领域的普遍知识和公知常识,本发明没有特别限制内容。
参阅图1,显示的是本方明的总体流程图。本发明包括区块索引和层次索引结构生成步骤、全节点进行数据可验证查询步骤、全节点进行辅助可验证查询步骤和轻客户端进行可验证查询步骤四个步骤。四个步骤的功能描述如下:
区块链***中的数据都是存储在区块中的,随着时间的推移,区块数量会越来越多。如何快速的在所有区块中筛选出包含有特定交易数据的区块是一个迫切的需求,并且由于区块链网络中存在恶意节点,如何验证查询结果的正确性和完整性也是一个亟需解决的问题。
步骤S1实现了一个在关键字区块时间戳上的区块层B+-tree索引结构,可以获取给定查询时间范围内的区块范围;以及一个由位图索引和MB-tree索引组成的层次索引结构,实现了区块扫描时快速筛选所需区块的功能,并能快速获取某个区块中包含的指定查询条件的交易信息。
步骤S2全节点进行数据可验证查询实现了对轻客户端发送来的查询请求的处理,通过区块层B+-tree索引结构和层次索引结构快速扫描得到需要被查询的所有交易,并将表示当前区块链版本的区块高度h和查询生成的验证对象VO返回给轻客户端。
步骤S3全节点进行辅助可验证查询实现了对轻客户端发送来的查询请求的处理,首先全节点获取表示当前区块链版本的区块高度H,并判断其是否与接收到的区块高度h一致,若一致则通过区块层B+-tree索引结构和层次索引结构快速扫描得到需要被查询的所有交易,并将查询生成的辅助验证对象AVO返回给轻客户端;否则,不进行操作而将返回给轻客户端。
步骤S4轻客户端进行可验证查询是根据收到的VO和AVO来验证查询结果的完备性和完整性,并得到最终正确的查询结果。
本发明是基于上述构思提出的,关于上述步骤的具体实施过程做如下描述:
参阅图2,显示的是一个区块结构,区块链中的每一个区块都是由一个区块头和区块体组成。区块头中记录了一些有用的信息,其中包括记录了前一个区块的哈希值的PrevHash,表示该区块的区块高度的BlockHeight,记录了区块打包时候的时间戳TimeStamp,指向该区块中所有交易的Merkle树根的TransRoot,该区块打包的时候的签名Signature,表示当前区块哈希值的BlockHash。
区块体中包含了打包在此区块中的所有交易。每一个交易中都包含有多个条目,包括Tid,Ts,Sig,ID,Tname和列。其中,Tid是递增的整数,Ts记录了交易发生的时间,Sig保证了交易的补课篡改性,ID记录了交易者的身份,即公钥,Tname表示交易的一个类别的名称。图1中Tid=2的交易就是一个有关交易的示例,这意味着org1在时间22:21,8-6-2018的时候将资金从教育项目转移到苍山学校。
为了更好地阐述本发明,以下所有具体实施方式都是以图2中的区块结构进行举例说明。
参阅图3,显示的是可验证查询的层次索引结构。为了获取给定时间范围内指定交易类型的全部区块,本发明构造了一个层次索引结构。层次索引结构的第一层是一个位图索引,全节点首先对所有的交易数据按照交易类型划分,得到多个分类;然后为每一个分类创建一个位向量,即一行二进制串数据,每一行中的第i位二进制数据代表区块i中是否包含这种交易类型的数据,1代表包含,0代表不包含;若出现一种新的交易类型,则添加新的一行二进制串数据来记录此类型交易。层次索引结构的第二层是一个在区块关键字交易id上构造的MB-tree,MB-tree是B+树和MHT的结合体,其中每一个叶子节点都含有本身的哈希值,每一个非叶子节点中都含有其孩子节点级联的哈希值;当一个新的区块生成后,全节点需要为该区块构建一个在关键字交易id上的MB-tree。
参阅图4,显示的是全节点进行数据可验证查询。全节点利用区块层B+-tree索引结构获取查询时间范围内的区块id范围,首先获取来自轻客户端的在时间范围[6-7-2018,6-8-2018]中donate操作的所有交易的查询请求,然后利用区块层B+-tree索引结构使用范围搜索获取给定查询时间范围[6-7-2018,6-8-2018]内的所有区块范围(5,9)以及表示当前区块链版本信息的区块高度h。全节点利用层次索引结构获取验证对象VO,首先根据交易类型donate找到位图索引中对应的行,扫描该行中(5,9)位的二进制数据,若为0则跳过,若为1则将对应的区块id加入包含查询结果的一个区块集合,对于在区块集合内的任意区块i,全节点将在该区块i的MB-tree上执行范围搜索来生成验证对象,并将其添加到VO中。此处只有区块9满足条件,则查找区块9对应的MB-tree索引,并将区块id号9以及MB-tree查找满足条件的交易的过程中生成的验证信息加入验证对象VO中,即生成VO:(9,hA,T3,T1,T2,hC)。全节点将区块高度h和验证对象VO返回给轻客户端。具体过程如算法1所示。
参阅图5,显示的是全节点进行辅助可验证查询。全节点利用区块层B+-tree索引结构以及区块高度h获取查询时间范围内的区块id范围,首先获取来自轻客户端的在时间范围[6-7-2018,6-8-2018]中donate操作的所有交易的查询请求以及区块高度h:10,并根据h来判断自己当前区块链版本是否与全节点一致,若不一致则不进行操作而将返回给轻客户端,否则继续进行查询处理。然后利用区块层B+-tree索引结构使用范围搜索获取给定查询时间范围[6-7-2018,6-8-2018]内的所有区块范围(5,9)。全节点利用层次索引结构获取辅助验证对象AVO,首先根据交易类型donate找到位图索引中对应的行,扫描该行中(5,9)位的二进制数据,若为0则跳过,若为1则将对应的区块id加入包含查询结果的一个区块集合,对于在区块集合内的任意区块i,全节点将获取该区块i的MB-tree根Rooti,并将区块id号i和对应的Rooti将添加到AVO中。该处只有区块9满足条件,则查找区块9对应的MB-tree索引,并将区块id号9对应的Root9将添加到AVO中,即生成AVO:(9,Root9)。全节点将辅助验证对象AVO返回给轻客户端。具体过程如算法2所示。
参阅图6,显示的是轻客户端进行可验证查询。为了执行一个可验证查询,轻客户端需要向一个随机选择的全节点发送查询请求并等待响应,获取区块高度h及验证对象VO。由于验证结构是保留在每一个区块上的,而查询结果是来自多个区块,轻客户端并不知道(a)查询结果中应该包含哪一个区块,以及(b)返回的结果是否正确和完整。因此,轻客户端需要查询另一个全节点以获得辅助验证对象(AVO)。当在区块链网络中执行一致性共识算法时,由于网络延迟的不同每个节点上的数据状态也会不同,因此区块高度h的存在则是为了保证生成AVO的数据集的版本与VO的版本一致。由于这个过程中并没有涉及到磁盘IO,因此处理过程是轻量级的。当轻客户端收到AVO的时候,它将会使用VO和AVO来验证查询结果的完备性和完整性。
但是,全节点可能是不可信的,为了处理这种情况,轻客户端需要通过从多个全节点采样来降低风险。轻客户端把查询请求发送给一个全节点和另外的n-1个随机选择的全节点,并获取对应的VO和AVOs。查看获取到的AVOs,如果有多于m-1个响应中包含有相同的AVO,并且每个AVO中的区块id与VO中的相同,则将继续验证VO;否则,返回FALSE。对于VO中每一个区块i的验证对象voi,轻客户端通过重新构建相应的MB-tree根并将其与AVO中包含的索引根Rooti进行对比来验证它。如果验证结果是正确的,轻客户端则将从block_set中将voi对应的区块移除。最后,如果即所有的验证对象voi都是正确的,则查询结果是正确的,返回TRUE。具体过程如算法3所示。
本发明的保护内容不局限于以上实施例。在不背离发明构思的精神和范围下,本领域技术人员能够想到的变化和优点都被包括在本发明中,并且以所附的权利要求书为保护范围。
Claims (5)
1.一种基于索引的面向区块链轻客户端的范围查询可验证查询方法,其特征在于,该方法包括以下具体步骤:
步骤S1:区块索引和层次索引结构生成
全节点在关键字区块时间戳上构造一个区块层B+-tree索引结构;对不同交易类型构造位图索引并对每一个区块在关键字交易时间戳上构造Merkle B-tree索引,记作MB-tree索引,构成一个由位图索引和MB-tree索引组成的层次索引结构;
步骤S2:全节点进行数据可验证查询
全节点根据区块层B+-tree索引结构和层次索引结构处理轻客户端发送来的查询请求,并将表示当前区块链版本的区块高度h和查询生成的验证对象VO返回给轻客户端;
步骤S3:全节点进行辅助可验证查询
全节点获取表示当前区块链版本的区块高度H,并判断其是否与步骤S2中获取到的区块高度h一致,若一致则根据区块层B+-tree索引结构和层次索引结构处理轻客户端发送来的查询请求,并将查询生成的辅助验证对象AVO返回给轻客户端;否则,不进行操作而将AVO=Ø返回给轻客户端;
步骤S4:轻客户端进行可验证查询
轻客户端根据VO和AVO来验证查询结果的完备性和完整性,得到最终正确的查询结果。
2.根据权利要求1所述的面向区块链轻客户端的范围查询可验证查询方法,其特征在于,所述步骤S1具体包括:
步骤 A1:全节点在关键字区块时间戳上构造一个区块层B+-tree索引结构,用来获取给定查询时间范围内的区块id;
步骤A2:全节点首先对所有的交易数据按照交易类型划分,得到多个分类;然后为每一个分类创建一个位向量,即一行二进制串数据,每一行中的第i位二进制数据代表区块i中是否包含这种交易类型的数据,1代表包含,0代表不包含;若出现一种新的交易类型,则添加新的一行二进制串数据来记录此类型交易,所有交易类型的二进制数据共同组成了层次索引的第一层索引结构——位图索引;
步骤A3:全节点对每一个区块在关键字交易id上构造一个MB-tree,MB-tree是B+树和Merkle Hash Tree 的结合体,其中每一个叶子节点都含有本身的哈希值,每一个非叶子节点中都含有其孩子节点级联的哈希值,构成了层次索引的第二层索引结构——MB-tree索引;当一个新的区块生成后,全节点为该区块构建一个在关键字交易id上的MB-tree。
3.根据权利要求1所述的面向区块链轻客户端的范围查询可验证查询方法,其特征在于,所述步骤S2具体包括:
步骤B1:全节点接收来自轻客户端的查询请求,获取表示当前区块链版本的区块高度h,并根据区块层B+-tree索引结构使用范围搜索获取给定查询时间范围内的区块范围;
步骤B2:全节点根据步骤B1中获取到的区块范围查询层次索引的第一层索引结构——位图索引;全节点根据查询请求中的交易类型查询位图索引中的对应行,并按位扫描该行中在区块范围内的所有二进制数据,若为0则跳过,若为1则将对应的区块id加入包含查询结果的一个区块集合;
步骤B3:全节点根据步骤B2中获取到的区块集合查询层次索引的第二层索引结构——MB-tree索引;对于在区块集合内的任意区块i,全节点将在该区块i的MB-tree上执行范围搜索来生成验证对象,并将其添加到VO中;
步骤B4:全节点将当前的区块高度h和查询生成的验证对象VO返回给轻客户端。
4.根据权利要求1所述的面向区块链轻客户端的范围查询可验证查询方法,其特征在于,所述步骤S3具体包括:
步骤C1:全节点接收来自轻客户端的查询请求和区块高度h,获取表示当前区块链版本的区块高度H,并判断其是否与h一致,若一致则进行步骤C2,否则进行步骤C6;
步骤C2: 全节点根据区块层B+-tree索引结构使用范围搜索获取给定查询范围内包含有查询交易类型的区块范围;
步骤C3:全节点根据步骤C2中获取到的区块范围查询层次索引的第一层索引结构——位图索引;全节点根据查询请求中的交易类型查询位图索引中的对应行,并按位扫描该行中在区块范围内的所有二进制数据,若为0则跳过,若为1则将对应的区块id加入包含查询结果的一个区块集合;
步骤C4:全节点根据步骤C3中获取到的区块集合查询层次索引的第二层索引结构——MB-tree索引;对于在区块集合内的任意区块i,全节点将获取该区块i的MB-tree根Rooti,并将区块id号i和对应的Rooti将添加到AVO中;
步骤C5:全节点将查询生成的辅助验证对象AVO返回给轻客户端;
步骤C6:全节点不进行操作而将AVO=Ø返回给轻客户端。
5.根据权利要求1所述的面向区块链轻客户端的范围查询可验证查询方法,其特征在于,所述步骤S4具体包括:
步骤D1:轻客户端获取步骤B4中返回的验证对象VO,以及步骤C5中返回的辅助验证对象AVOs;
步骤D2:对VO中的每一个区块i,轻客户端通过VO中的每一个区块的VOi重新构建相应的MB-tree根,并将其与AVO中包含的区块i对应的索引根进行对比来验证;
步骤D3:如果VO中所有的区块的验证结果都是正确的,则查询结果是正确的。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910066166.6A CN109885615B (zh) | 2019-01-24 | 2019-01-24 | 一种基于索引的面向区块链轻客户端的范围查询可验证查询方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910066166.6A CN109885615B (zh) | 2019-01-24 | 2019-01-24 | 一种基于索引的面向区块链轻客户端的范围查询可验证查询方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109885615A true CN109885615A (zh) | 2019-06-14 |
CN109885615B CN109885615B (zh) | 2020-09-22 |
Family
ID=66926679
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910066166.6A Active CN109885615B (zh) | 2019-01-24 | 2019-01-24 | 一种基于索引的面向区块链轻客户端的范围查询可验证查询方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109885615B (zh) |
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110889729A (zh) * | 2019-11-29 | 2020-03-17 | 腾讯科技(深圳)有限公司 | 一种基于区块链网络的数据验证方法和装置 |
CN111680031A (zh) * | 2020-04-21 | 2020-09-18 | 华东师范大学 | 一种针对区块链轻客户端的基于sgx的可验证范围查询方法 |
CN111832079A (zh) * | 2020-07-16 | 2020-10-27 | 湖南大学 | 一种基于epc全球网络的区块链完整性验证方法 |
CN112085504A (zh) * | 2020-11-16 | 2020-12-15 | 腾讯科技(深圳)有限公司 | 一种数据处理方法、装置、计算机设备及存储介质 |
CN112286963A (zh) * | 2020-11-17 | 2021-01-29 | 北京物资学院 | 一种区块链终端数据可信查询***及其实现方法 |
CN112487027A (zh) * | 2020-12-02 | 2021-03-12 | 济南浪潮高新科技投资发展有限公司 | 基于区块链电子交易的高效数据查询实现方法 |
CN113076558A (zh) * | 2021-04-20 | 2021-07-06 | 西安交通大学 | 高效支持隐私保护及可验证的区块链数据连接查询方法 |
WO2021135756A1 (zh) * | 2020-01-02 | 2021-07-08 | 支付宝(杭州)信息技术有限公司 | 账户状态存在性证明方法及装置和状态查询方法及装置 |
US11126751B2 (en) * | 2019-04-18 | 2021-09-21 | Advanced New Technologies Co., Ltd. | Index creation for data records |
CN113535803A (zh) * | 2021-06-15 | 2021-10-22 | 复旦大学 | 一种基于关键字索引的区块链高效检索及可靠性验证方法 |
CN113704248A (zh) * | 2021-07-12 | 2021-11-26 | 北京邮电大学 | 一种基于外置索引的区块链查询优化方法 |
CN113901142A (zh) * | 2021-10-13 | 2022-01-07 | 辽宁大学 | 一种面向时空数据的区块链架构及范围查询处理方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108595720A (zh) * | 2018-07-12 | 2018-09-28 | 中国科学院深圳先进技术研究院 | 一种区块链时空数据查询方法、***及电子设备 |
WO2018205137A1 (en) * | 2017-05-09 | 2018-11-15 | Accenture Global Solutions Limited | Data storage layer index for efficient information retrieval |
WO2018223995A1 (zh) * | 2017-06-07 | 2018-12-13 | 众安信息技术服务有限公司 | 实现区块链跨链通信的方法、装置及*** |
CN109165224A (zh) * | 2018-08-24 | 2019-01-08 | 东北大学 | 一种在区块链数据库上针对关键字key的索引方法 |
-
2019
- 2019-01-24 CN CN201910066166.6A patent/CN109885615B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2018205137A1 (en) * | 2017-05-09 | 2018-11-15 | Accenture Global Solutions Limited | Data storage layer index for efficient information retrieval |
WO2018223995A1 (zh) * | 2017-06-07 | 2018-12-13 | 众安信息技术服务有限公司 | 实现区块链跨链通信的方法、装置及*** |
CN108595720A (zh) * | 2018-07-12 | 2018-09-28 | 中国科学院深圳先进技术研究院 | 一种区块链时空数据查询方法、***及电子设备 |
CN109165224A (zh) * | 2018-08-24 | 2019-01-08 | 东北大学 | 一种在区块链数据库上针对关键字key的索引方法 |
Cited By (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11126751B2 (en) * | 2019-04-18 | 2021-09-21 | Advanced New Technologies Co., Ltd. | Index creation for data records |
CN110889729A (zh) * | 2019-11-29 | 2020-03-17 | 腾讯科技(深圳)有限公司 | 一种基于区块链网络的数据验证方法和装置 |
CN110889729B (zh) * | 2019-11-29 | 2024-03-26 | 腾讯科技(深圳)有限公司 | 一种基于区块链网络的数据验证方法和装置 |
WO2021135756A1 (zh) * | 2020-01-02 | 2021-07-08 | 支付宝(杭州)信息技术有限公司 | 账户状态存在性证明方法及装置和状态查询方法及装置 |
CN111680031A (zh) * | 2020-04-21 | 2020-09-18 | 华东师范大学 | 一种针对区块链轻客户端的基于sgx的可验证范围查询方法 |
CN111832079A (zh) * | 2020-07-16 | 2020-10-27 | 湖南大学 | 一种基于epc全球网络的区块链完整性验证方法 |
CN111832079B (zh) * | 2020-07-16 | 2024-01-30 | 湖南大学 | Epc全球网络中一种基于区块链的查询结果完整性验证方法 |
CN112085504A (zh) * | 2020-11-16 | 2020-12-15 | 腾讯科技(深圳)有限公司 | 一种数据处理方法、装置、计算机设备及存储介质 |
CN112286963A (zh) * | 2020-11-17 | 2021-01-29 | 北京物资学院 | 一种区块链终端数据可信查询***及其实现方法 |
CN112286963B (zh) * | 2020-11-17 | 2023-05-26 | 北京物资学院 | 一种区块链终端数据可信查询***及其实现方法 |
CN112487027B (zh) * | 2020-12-02 | 2022-08-23 | 山东浪潮科学研究院有限公司 | 基于区块链电子交易的高效数据查询实现方法 |
CN112487027A (zh) * | 2020-12-02 | 2021-03-12 | 济南浪潮高新科技投资发展有限公司 | 基于区块链电子交易的高效数据查询实现方法 |
CN113076558A (zh) * | 2021-04-20 | 2021-07-06 | 西安交通大学 | 高效支持隐私保护及可验证的区块链数据连接查询方法 |
CN113076558B (zh) * | 2021-04-20 | 2024-05-28 | 西安交通大学 | 高效支持隐私保护及可验证的区块链数据连接查询方法 |
CN113535803A (zh) * | 2021-06-15 | 2021-10-22 | 复旦大学 | 一种基于关键字索引的区块链高效检索及可靠性验证方法 |
CN113704248A (zh) * | 2021-07-12 | 2021-11-26 | 北京邮电大学 | 一种基于外置索引的区块链查询优化方法 |
CN113704248B (zh) * | 2021-07-12 | 2024-01-09 | 北京邮电大学 | 一种基于外置索引的区块链查询优化方法 |
CN113901142A (zh) * | 2021-10-13 | 2022-01-07 | 辽宁大学 | 一种面向时空数据的区块链架构及范围查询处理方法 |
CN113901142B (zh) * | 2021-10-13 | 2024-05-07 | 辽宁大学 | 一种面向时空数据的区块链架构及范围查询处理方法 |
Also Published As
Publication number | Publication date |
---|---|
CN109885615B (zh) | 2020-09-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109885615A (zh) | 一种基于索引的面向区块链轻客户端的范围查询可验证查询方法 | |
Zhang et al. | Gem^ 2-tree: A gas-efficient structure for authenticated range queries in blockchain | |
US11288144B2 (en) | Query optimized distributed ledger system | |
US11283616B2 (en) | Method for index-based and integrity-assured search in a blockchain | |
Xu et al. | SlimChain: Scaling blockchain transactions through off-chain storage and parallel processing | |
CN106301792B (zh) | 基于区块链的ca认证管理方法、装置及*** | |
CN103902698B (zh) | 一种数据存储***和存储方法 | |
US8122008B2 (en) | Joining tables in multiple heterogeneous distributed databases | |
CN108197226A (zh) | Mptc账户状态树以及mptc区块链快速检索方法 | |
CN107798038B (zh) | 数据响应方法及数据响应设备 | |
Wang et al. | Mtmr: Ensuring mapreduce computation integrity with merkle tree-based verifications | |
CN105786808B (zh) | 一种用于分布式执行关系型计算指令的方法与设备 | |
Papamanthou et al. | Time and space efficient algorithms for two-party authenticated data structures | |
CN109634959B (zh) | 一种区块索引方法及区块索引装置 | |
KR20190079324A (ko) | 블록체인 시스템을 이용한 데이터베이스의 무결성 강화 방법 및 시스템 | |
WO2016171271A1 (ja) | 秘匿化データベースシステム及び秘匿化データ管理方法 | |
CN104750784B (zh) | 一种基于Merkle树结构的空间查询完整性验证方法 | |
CN108829691B (zh) | 一种农村电子商务数据存储方法 | |
US10496648B2 (en) | Systems and methods for searching multiple related tables | |
CN109194646A (zh) | 一种基于区块链的安全认证数据存取方法 | |
CN109086413A (zh) | 用于搜索区块链数据的方法、设备及可读存储介质 | |
CN110197346A (zh) | 物流跟踪和溯源的方法、应用服务器、区块链节点和介质 | |
CN109766389A (zh) | 一种基于位图索引的区块链轻客户端验证查询方法 | |
JP2004110219A (ja) | データ処理システム及びジョイン処理方法 | |
CN112035863B (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |