当前位置: 首页 > 专利查询>天津大学专利>正文

一种轻量级区块链高效可验证查询方法技术

技术编号:34192122 阅读:86 留言:0更新日期:2022-07-17 15:41
本发明专利技术公开了一种轻量级区块链高效可验证查询方法,属于计算机科学与技术技术领域。一种轻量级区块链高效可验证查询方法,首先对现有区块链系统的数据结构进行了设计和创新,提出了一种新型的区块链头部和MRK树;接着基于创新设计的区块链系统数据结构,提出了区块链上高效的可验证的kNN查询和范围查询方法,让区块链系统具备高效的可验证kNN和范围查询能力,扩展了区块链在生产生活中的应用场景,能够满足更多的应用需求。能够满足更多的应用需求。能够满足更多的应用需求。

An efficient and verifiable query method for lightweight blockchain

The invention discloses an efficient and verifiable query method for lightweight blockchain, which belongs to the field of computer science and technology. An efficient and verifiable query method for lightweight blockchain. Firstly, the data structure of the existing blockchain system is designed and innovated, and a new blockchain header and MRK tree are proposed; Then, based on the innovatively designed data structure of the blockchain system, an efficient verifiable kNN query and range query method on the blockchain is proposed, which enables the blockchain system to have efficient verifiable KNN and range query capabilities, expands the application scenarios of blockchain in production and life, and can meet more application needs. It can meet more application needs. It can meet more application needs< br/>

【技术实现步骤摘要】
一种轻量级区块链高效可验证查询方法


[0001]本专利技术涉及计算机科学与技术
,尤其涉及一种轻量级区块链高效可验证查询方法。

技术介绍

[0002]区块链,就是一个又一个区块组成的链条。每一个区块中保存了一定的信息,它们按照各自产生的时间顺序连接成链条。这个链条被保存在所有的服务器中,只要整个系统中有一台服务器可以工作,整条区块链就是安全的。这些服务器在区块链系统中被称为节点,它们为整个区块链系统提供存储空间和算力支持。如果要修改区块链中的信息,必须征得半数以上节点的同意并修改所有节点中的信息,而这些节点通常掌握在不同的主体手中,因此篡改区块链中的信息是一件极其困难的事。相比于传统的网络,区块链具有两大核心特点:数据难以篡改和去中心化。基于这两个特点,区块链所记录的信息更加真实可靠,可以帮助解决人们互不信任的问题。
[0003]邻近算法,或者说K最邻近(KNN,K

NearestNeighbor)分类算法是数据挖掘分类技术中的方法之一。所谓K最近邻,就是K个最近的邻居的意思,说的是每个样本都可以用它最接近的K个邻近值来代表。近邻算法就是将数据集合中每一个记录进行分类的方法。
[0004]目前,区块链技术正逐步应用于各个领域,如供应链,个人征信系统和公共服务。现有的区块链系统主要支持键值对查询和可验证范围查询。然而,这些区块链系统不能支持针对空间

时间

关键词(STK)数据的可验证链上k

最近邻(kNN)和范围查询,而这些查询越来越多地被上述应用所采用。STK数据,如“{[时间戳],[经度,纬度],[关键字1,关键字2,...]}”,表示在某一时间、某一地区发生的特定事件。例如,在食品供应链中,关于食品的STK数据存储在区块链系统中。在发现一个食品安全问题后,我们显然希望从空间、时间和关键词的角度找出k个最相似的食品项目或揭示一定范围内的所有产品信息,从而确定污染源。由于分布式区块链的特点、区块之间的链式结构以及可验证查询的需要,传统的基于数据库的可验证kNN和范围查询不能直接应用于区块链。实际上,为了满足这种分布式区块链系统中用户的查询,需要提供链上可验证的kNN和STK数据的范围查询。
[0005]随着区块链越来越多的在生产生活中的应用,可验证的kNN查询和范围查询能够更大的扩展区块链的应用场景,满足应用需求。但是现有的区块链上数据查询技术还没有能够支持STK数据可验证k

NN查询和范围查询,因此本专利技术将现有的数据库STK的kNN查询和范围查询与区块链查询起来,并注重其在空间与时间上的效率,提出了一种轻量型的区块链高效可验证查询技术,实现高效精准的区块链上的kNN查询和范围查询。

技术实现思路

[0006]本专利技术的目的是让区块链系统具备高效的可验证kNN和范围查询能力,扩展区块链在生产生活中的应用场景,满足更多的应用需求。
[0007]为了实现上述目的,本专利技术采用了如下技术方案:
[0008]一种轻量级区块链高效可验证查询方法,具体包括以下步骤:
[0009]S1、基于区块链块头,在其基础上增加时间范围、字典哈希、空间和关键词布隆过滤器矢量;
[0010]S2、基于经典的R树和默尔克树,设计数据结构MRK树,所述MRK树以[时间,空间,关键字信息]三个维度设计范围查询,并以默尔克树的哈希特征来保证其不可篡改并可验证;同时,通过MRK树维护用于查询剪枝的信息;
[0011]S3、用户发送查询信息,Service Provider从用户处收到查询信息,对所收到的信息进行初步处理后调取查询服务进行查询;
[0012]S4、获取当前最新块头,由此块头开始,根据查询信息进行查询,同时Service Provider维护当前所查询到的数据信息;
[0013]S5、在查询新区块的时候,判断该节点是否满足剪枝条件;若满足剪枝条件,则对该节点的所有子树进行剪枝并生成证明;若不满足,则进入块内查询;
[0014]S6、在块对应MRK树上进行检索,以深度优先搜索顺序遍历子树节点,子树叶子对应单条数据,同时也是递归终点;
[0015]S7、访问到叶子的时候,结合S6所得检索结果,判断是否满足叶子节点,若满足,则更新查询结果并生成证明;若不满足,则返回S6操作;
[0016]S8、遍历所有区块后得到最终结果,对所得结果进行处理后生成查询结果并返回给用户;
[0017]S9、用户收到查询的数据与对应的证明后,在本地验证查询结果的正确性和完备性。
[0018]优选地,所述S5中提到的判断查询节点是否满足剪枝条件,具体包括以下内容:
[0019]A1、基于K最邻近算法查询方法:根据块头对应的MRK树根对应范围来计算理论最近距离,若计算所得的理论最近距离比当前维护的第k小的kNN数据大,则符合剪枝条件,进行剪枝操作并生成对应证明,否则进入块内查询;
[0020]A2、基于范围查询方法:根据块头对应的MRK树根对应范围判断查询范围是否与此块内数据有交集,若查询范围与块头对应的MRK树根对应范围之间没有交集,表明符合剪枝条件,进行剪枝操作并生成对应证明,否则进入块内查询。
[0021]优选地,所述S6中提到以深度优先搜索顺序遍历子树节点,具体包括以下内容:
[0022]B1、基于K最邻近算法查询方法:根据所检索的子树节点对应范围来计算理论最近距离,若计算所得的理论最近距离比当前维护的第k小的kNN数据大,则对该子树节点所对应的整个子树进行剪枝,否则进入子树递归;
[0023]B2、基于范围查询方法:根据所检索的子树节点对应范围判断查询范围是否与此块内数据有交集,若查询范围与所检索的子树节点对应范围之间没有交集,则对该子树节点所对应的整个子树进行剪枝,否则进入子树递归。
[0024]优选地,所述S7中提到判断是否满足叶子节点,具体包括以下内容:
[0025]C1、基于K最邻近算法查询方法:根据叶子计算实际距离,并判断是否更新当前维护的k个kNN数据,若可以更新,则生成对应正确性与完整性证明之后加入当前维护的kNN数据;
[0026]C2、基于范围查询方法:判断叶子是否在查询范围内,如果在范围内,则生成对应
正确性与完整性证明之后加入结果集合。
[0027]对上述内容进行整理和概括,本技术方案具体为:
[0028]①
设计区块链系统
[0029]数据结构设计1

1:基于区块链块头,在其基础上增加时间范围、字典哈希、空间和关键词布隆过滤器矢量,辅助需要进行的查询;
[0030]数据结构设计1

2:基于经典的R树和默尔克树,设计数据结构MRK树,所述MRK树以[时间,空间,关键字信息]三个维度设计范围查询,并以默尔克树的哈希特征来保证其不可篡改并可验证;同时,通过MRK树维护用于查询剪枝的信息。
[本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种轻量级区块链高效可验证查询方法,其特征在于,具体包括以下步骤:S1、基于区块链块头,在其基础上增加时间范围、字典哈希、空间和关键词布隆过滤器矢量;S2、基于经典的R树和默尔克树,设计数据结构MRK树,所述MRK树以[时间,空间,关键字信息]三个维度设计范围查询,并以默尔克树的哈希特征来保证其不可篡改并可验证;同时,通过MRK树维护用于查询剪枝的信息;S3、用户发送查询信息,Service Provider从用户处收到查询信息,对所收到的信息进行初步处理后调取查询服务进行查询;S4、获取当前最新块头,由此块头开始,根据查询信息进行查询,同时Service Provider维护当前所查询到的数据信息;S5、在查询新区块的时候,判断该节点是否满足剪枝条件;若满足剪枝条件,则对该节点的所有子树进行剪枝并生成证明;若不满足,则进入块内查询;S6、在块对应MRK树上进行检索,以深度优先搜索顺序遍历子树节点,子树叶子对应单条数据,同时也是递归终点;S7、访问到叶子的时候,结合S6所得检索结果,判断是否满足叶子节点,若满足,则更新查询结果并生成证明;若不满足,则返回S6操作;S8、遍历所有区块后得到最终结果,对所得结果进行处理后生成查询结果并返回给用户;S9、用户收到查询的数据与对应的证明后,在本地验证查询结果的正确性和完备性。2.根据权利要求1所述的一种轻量级区块链高效可验证查询方法,其特征在于,所述S5中提到的判断查询节点是否满足剪枝条件,具体包括以下内容:A1、基于K最邻近算法查询方法:根据块头对应的M...

【专利技术属性】
技术研发人员:李克秋徐昊王文斌刘秀龙王建荣张朝昆
申请(专利权)人:天津大学
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1