一种基于区块链的带权图谱关键字查询可信验证方法技术

技术编号:37967398 阅读:7 留言:0更新日期:2023-06-30 09:42
本发明专利技术公开了一种基于区块链的带权图谱关键字查询可信验证方法,属于链上链下混合存储区块链领域。包括以下步骤:步骤一,服务器端基于带权大图构建Merkle Bucket Tree树形可验证索引结构,将树形可验证索引的根节点的哈希值存储在链上;步骤二,客户端向服务器发起关键字查询请求,服务器端利用树形可验证索引结构进行查询处理,得到查询结果树以及可验证信息返回给客户端;步骤三,客户端根据可验证信息和查询结果树重建树形可验证索引的根节点哈希值,并与存储在链上的树形可验证索引的根节点哈希值进行对比,以此验证查询结果是否满足查询条件并且来自原大图。满足查询条件并且来自原大图。满足查询条件并且来自原大图。

【技术实现步骤摘要】
一种基于区块链的带权图谱关键字查询可信验证方法


[0001]本专利技术涉及一种基于区块链的带权图谱关键字查询可信验证方法,属于链上链下混合存储区块链领域,特别涉及基于混合存储区块链的可验证子图查询处理方法。

技术介绍

[0002]区块链是一个分布式账本,由相互不信任的节点构成,通过密码学哈希技术和共识协议保证存储在区块链中的数据的不可篡改性。因此,区块链被广泛应用于安全数据存储和检索任务,如物联网、医疗保健、供应链和法律文件管理等。虽然区块链拥有以上的优势,但由于系统中的数据需要被所有参与节点进行备份,所以其存在受限的存储可扩展性。显然文档、图片、视频等原始数据直接存储在区块链上会造成极大的存储消耗,导致系统延时和吞吐量下降。为了解决这个问题,一个普遍的方法是将区块链系统和一个链下存储服务器相结合构成混合存储区块链系统。原始数据存储在链下服务器,与此同时它们的加密散列值(摘要)存储在链上,以维护数据完整性。为了保证混合存储区块链系统场景下的数据检索的正确性,需要可信查询处理技术支持。
[0003]可信查询处理技术在外包数据库中应用非常广泛,主要针对不受信任的第三方服务提供商,使查询请求方可以验证查询结果的正确性和完整性。可信查询处理的主要方法分为三类:一是依靠可信硬件来实现可信查询处理,该类方法需要服务提供商配备安全硬件,安全硬件的资源有限,可能导致显著的性能开销。此外,现有的安全硬件容易受到侧通道攻击,从而损害其安全性;二是普适的基于可验证计算(Verifiable Computation)类方法,该类方法支持所有类型的查询,但需要一个代价非常高昂的预处理步骤以至于对于有些计算任务有些不合实际;三是定制的基于可验证数据结构(Authenticated Data Structure)类方法,该类为特定类型查询构建特定的可验证数据结构来支持可信查询处理。显然,基于可验证数据结构类的方法通常更有效,这类方法通常基于两种密码学方法:数字签名和默克尔哈希树(Merkle Hash Tree)。其中,数字签名基于非对称密码学对数据内容进行认证,需要为每个数据记录进行签名处理,因此其效率在大型数据集上使用受限。默克尔哈希树为层次树,叶节点中的原始数据都被生成哈希值摘要进行存储,内部节点聚合了其所有子节点的摘要。默克尔哈希树构建好后,数据拥有者使用自己的私钥对树的根节点进行加密签名,得到根节点的摘要,查询请求方可根据该摘要判断数据的正确性。
[0004]为实现可信关键字查询,香港浸会大学针对key

value型数据,构建了Suppressed Merkle Inverted索引和Chameleon Inverted索引两种基于默克尔哈希树的可验证索引结构,对给定的查询关键字通过联合不同的树形可验证索引结构得到查询结果并生成可验证证据。然而,该工作针对的是key

value型数据的关键字搜索,不能直接应用于带权图谱的可信关键字查询。随着来自各个领域的应用程序不断产生大量的图结构数据,带权图谱中的关键字查询近年来引起了广泛关注。例如XML这种流行的数据表示和交换格式在考虑IDREF/ID链接时,可以视为图结构数据;在语义Web中两个主要的W3C标准:RDF和OWL,它们符合节点标记和边缘标记的图模型;生物信息领域的图分子模型等。图结构数据的例子不
胜枚举,如何针对带权图谱设计高效的可验证索引结构实现可信查关键字查询成为一个亟待解决的问题。

技术实现思路

[0005]有鉴于此,本专利技术提供了一种基于区块链的带权图谱关键字查询可信验证方法。
[0006]为了实现上述目的,本专利技术采用如下技术方案:
[0007]一种基于区块链的带权图谱关键字查询可信验证方法,该方法利用区块链防篡改性质,设计树形可验证索引结构实现可验证关键字查询,包括以下步骤:
[0008]S1、服务器端基于大图顶点的关键字信息构建KeyTree索引结构,并将构建的KeyTree索引结构的根节点哈希值RD1存储在链上;
[0009]S2、服务器端基于大图的最短路径信息构建PathTree索引结构,将构建的Path Tree索引结构的根节点哈希值RD2存储在链上;
[0010]S3、客户端向服务器端发起关键字查询请求,服务器端利用步骤S1构建的KeyTree索引结构和步骤S2构建的Path Tree索引结构进行查询处理,生成查询结果树以及可验证信息返回给客户端;
[0011]S4、客户端根据步骤S3中服务器端返回的可验证信息和查询结果树重建KeyTree索引结构的根节点哈希值RD1

并与步骤S1中和中链上已经存储的根节点哈希值RD1进行对比;
[0012]S5、客户端根据步骤S3中服务器端返回的可验证信息和查询结果树重建Path Tree索引结构的根节点哈希值RD2

并与步骤S2中和中链上已经存储的根节点哈希值RD2进行对比;
[0013]S6、当步骤S4中的RD1与RD1

相同时,且步骤S5中的RD2与RD2

也相同时,结果正确,当步骤S4中的RD1与RD1

不相同或步骤S5中的RD2与RD2

不相同时,结果不正确。
[0014]所述的服务器端为混合存储区块链系统,客户端为混合存储区块链中的节点或混合存储区块链外部的节点;
[0015]所述的混合存储区块链包括链上存储(原始数据摘要)和链下存储(原始数据),链下存储用于存储原始大图信息,原始大图信息包括顶点关键字信息以及边的权重信息,除此之外还存储构建的树形可验证索引结构,链上存储用于存储构建的树形可验证索引结构的根节点哈希值RD作为原始大图的摘要;
[0016]所述步骤S1中,大图顶点的关键字信息指的是每个顶点所包含的关键字集合;KeyTree索引结构中的每个Bucket对应大图中的一个关键字,存储大图中所有可到达包含该关键字顶点的顶点,最终将树形可验证索引结构KeyTree的根节点哈希值存储在链上;
[0017]所述步骤S2中,大图的最短路径信息指的是每两个顶点之间的最短路径,构建PathTree索引结构的方法为:首先将大图中的顶点根据大图中的顶点包含的关键字进行分类得到不同的关键字顶点集合,之后计算每个顶点到每个关键字顶点集合的最短路径,PathTree索引结构中的每个Bucket对应大图中的一个顶点,存储该顶点所有可到达的关键字顶点集合的最短路径,最终将树形可验证索引结构PathTree的根节点哈希值存储在链上;
[0018]所述步骤S3中,进行查询处理的方法为:
[0019]S31、服务器端在接收到来自客户端的关键字查询请求后,首先在KeyTree索引结构中搜索查询关键字所对应的buckets,并将搜索路径上所有访问过的节点和访问过的节点的兄弟节点的哈希值加入可验证信息VO中,之后计算这些关键字buckets中包含的顶点的交集得到所有结果树的根节点本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于区块链的带权图谱关键字查询可信验证方法,其特征在于包括以下步骤:S1、服务器端基于大图顶点的关键字信息构建KeyTree索引结构,并将构建的KeyTree索引结构的根节点哈希值RD1存储在链上;S2、服务器端基于大图的最短路径信息构建PathTree索引结构,将构建的Path Tree索引结构的根节点哈希值RD2存储在链上;S3、客户端向服务器端发起关键字查询请求,服务器端利用步骤S1构建的KeyTree索引结构和步骤S2构建的Path Tree索引结构进行查询处理,生成查询结果树以及可验证信息返回给客户端;S4、客户端根据步骤S3中服务器端返回的可验证信息和查询结果树重建KeyTree索引结构的根节点哈希值RD1

并与步骤S1中和中链上已经存储的根节点哈希值RD1进行对比;S5、客户端根据步骤S3中服务器端返回的可验证信息和查询结果树重建Path Tree索引结构的根节点哈希值RD2

并与步骤S2中和中链上已经存储的根节点哈希值RD2进行对比;S6、当步骤S4中的RD1与RD1

相同时,且步骤S5中的RD2与RD2

也相同时,结果正确,当步骤S4中的RD1与RD1

不相同或步骤S5中的RD2与RD2

不相同时,结果不正确。2.根据权利要求1所述的一种基于区块链的带权图谱关键字查询可信验证方法,其特征在于:所述的服务器端为混合存储区块链系统,客户端为混合存储区块链中的节点或混合存储区块链外部的节点。3.根据权利要求2所述的一种基于区块链的带权图谱关键字查询可信验证方法,其特征在于:所述的混合存储区块链包括存储原始数据摘要的链上存储和存储原始数据的链下存储,链下存储用于存储原始大图信息,原始大图信息包括顶点关键字信息以及边的权重信息,还存储构建的索引结构,链上存储用于存储构建的索引结构的根节点哈希值RD作为原始大图的摘要。4.根据权利要求1

3任一所述的一种基于区块链的带权图谱关键字查询可信验证方法,其特征在于:所述步骤S1中,大图顶点的关键字信息指的是每个顶点所包含的关键字集合;KeyTree索引结构中的每个Bucket对应大图中的一个关键字,存储大图中所有可到达包含该关键字顶点的顶点。5.根据权利要求4所述的一种基于区块链的带权图谱关键字查询可信验证方法,其特征在于:所述步骤S2中,大图的最短路径信息指的是每两个顶点之间的最短路径,构建PathTree索引结构的...

【专利技术属性】
技术研发人员:李丝雨张志威王国仁
申请(专利权)人:北京理工大学
类型:发明
国别省市:

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

1