一种基于关键字索引的区块链高效检索及可靠性验证方法技术

技术编号:30429011 阅读:19 留言:0更新日期:2021-10-24 17:18
本发明专利技术属于区块链数据检索技术领域,具体为一种基于关键字索引的区块链高效检索及可靠性验证方法。本发明专利技术方法包括基于关键字索引的可验证默克尔哈希树构建,针对关键字的可验证高效检索,检索结果集可靠性验证。为支持区块链上对于高效检索包含目标关键字以及支持检索结果可靠性验证的功能,本发明专利技术提出基于关键字索引的可验证默克尔哈希树结构,实现目标关键字的高效检索,并引入布隆过滤器加速不同区块间的检索,同时提出对于检索结果可靠性验证方法。本发明专利技术能够有效的提高区块链上对包含目标关键字数据检索的效率,并且为轻节点用户提供检索结果可靠性验证,使得用户能够对检索数据的正确性和完整性进行验证。数据的正确性和完整性进行验证。数据的正确性和完整性进行验证。

【技术实现步骤摘要】
一种基于关键字索引的区块链高效检索及可靠性验证方法


[0001]本专利技术属于区块链数据检索
,具体涉及一种基于关键字索引的区块链高效检索及可靠性验证方法。

技术介绍

[0002]区块链从最初的数字货币逐渐扩展到各行各业,因此对区块链上数据检索功能的要求也越来越高。但当前区块链的检索能力十分的低下,只支持通过交易哈希来获取对应的交易,完全无法满足检索的需求。例如想要检索所有包含某个关键字的交易,只能通过遍历所有的交易进行检索,效率十分的低下。同时,目前用户对于区块链上数据检索的方式主要是通过轻节点向区块链网络中的全节点发送检索请求,而区块链网络又是一个不可信的网络,因此需要考虑检索结果的可信性。针对区块链上数据的检索的研究中,通过将区块链数据导入到外部数据库实现检索的丰富性与高效性,但数据的可靠性得不到保障;通过向区块链默克尔树引入相关索引,加强区块链的检索能力,并利用默克尔树保障检索结果的正确性,但并不能保障检索结果的完整性,对于检索可靠性性除了保障检索结果的正确性也应当考虑到检索结果的完整性,即全节点是否返回了用户所需要的全部的结果。检索结果的完整性在云储存领域的研究比较多,但区块链数据检索的领域鲜有研究,因此有必要构建能够高效检索能力的区块链的同时,还能对检索结果进行可靠性验证。

技术实现思路

[0003]本专利技术的目的在于提供一种检索效率高、可靠性好的基于关键字索引的区块链检索及可靠性验证方法。
[0004]本专利技术提供的基于关键字索引的区块链高效检索及可靠性验证方法,具体步骤为:
[0005]步骤S1:对所述区块链中的区块进行可验证默克尔哈希树(Merkle Verifiable Tree,MVT)构建;矿工为每一笔交易创建包含交易Hash、关键字Tags、数据存在证明Prove三个字段的叶子节点,构建树时将交易所有关键字存储到布隆过滤器中;
[0006]步骤S2:对所述区块链进行针对关键字的可验证高效检索;区块链全节点根据用户发送的关键字检索请求,检索所有包含关键字的交易,并返回可验证结果集合(Verifiable Result Set,VRS);
[0007]步骤S3:对所述可验证结果集合VRS进行正确性和完整性验证;用户根据可验证结果集合VRS的MVT认证路径和数据不存在证明π对检索结果进行正确性和完整性验证。
[0008]下面进一步介绍各步骤的具体内容:
[0009]所述步骤S1具体包括:
[0010]步骤A1:矿工为每一笔交易创建包含交易Hash、关键字Tags、数据存在证明Prove三个字段的叶子节点,组成一个叶子节点列表;
[0011]步骤A2:将该叶子节点列表以两两节点的关键字集合的Jaccard系数从大到小的
顺序进行排序,Jaccard系数定义如下:
[0012][0013]Tag
i
、Tag
j
为关键字;
[0014]步骤A3:将排序后的叶子节点列表进行迭代合并,两两向上合并成非叶子节点,新生成节点的关键字newTags为其两孩子节点关键字Tags的并集,即:
[0015]newTags=Tags
a
∪Tags
b
[0016]步骤A4:对步骤A3生成的所有非叶子节点计算数据存在证明Prove字段,该字段用于检索完整性的验证;
[0017]步骤A5:将区块内所有交易的关键字存储到布隆过滤器中。
[0018]步骤A4中数据存在证明Prove字段生成方法为:
[0019]输入关键字Tags=(Tag1,Tag2,

,Tag
n
)和公钥pk,计算数据存在证明Prove的值其中g为系统参数,sk为矿工私钥。
[0020]所述步骤S2具体包括:
[0021]步骤B1:用户发送所有包含目标关键字的交易检索请求;
[0022]步骤B2:区块链全节点根据用户发送的目标关键字检索请求,检索所有包含目标关键字的交易,从最新区块开始,首先利用布隆过滤器判断目标关键字是否在当前区块,若在则进入步骤B3,否则进入步骤B4;
[0023]步骤B3:从所述MVT的根节点开始,判断目标关键字与该节点是否匹配;若匹配且该节点非叶子节点则将该节点的数据存在证明Prove
i
加入可验证结果集合VRS中,并向下进行递归操作,若为叶子节点则将交易加入结果集RS中;若不匹配,则调用ProveMatch函数生成数据不存在证明π加入可验证结果集合VRS中并直接返回;
[0024]步骤B4:对所述区块的前驱区块重复执行步骤B2

B3,直至创世区块;
[0025]步骤B5:将<RS,VRS>作为检索结果返回给用户。
[0026]所述步骤B3中ProveMatch函数具体为:输入两个集合X1,X2,如果则存在两个多项式Q1,Q2使得P(X1)Q1+P(X2)Q2=1,计算出多重集不相交证明=1,计算出多重集不相交证明
[0027]所述步骤S3具体包括:
[0028]步骤C1:用户收到检索结果后首先进行正确性验证,若所述结果集RS非空,则利用RS中交易以及可验证结果集合VRS中的验证路径重构MVT根节点与区块头MVT根节点对比验证;
[0029]步骤C2:用户进行完整性验证,对于不匹配的对象,调用VerifyDisjoint函数判断该区块目标关键字的交易是否不存在。
[0030]所述步骤C2中VerifMatch函数具体为判断公式所述步骤C2中VerifMatch函数具体为判断公式是否成立,其中e为系统中的双线性映射。
[0031]本专利技术与现有技术相比,具有以下的优点和积极效果:
[0032]本专利技术提出的基于关键字索引的区块链高效检索及可靠性验证方法,有效的提高
了区块链上对包含目标关键字数据检索的效率,能够高效的检索全部包含目标关键字的交易,并且为轻节点用户提供了检索结果可靠性验证的方法,使得用户能够对检索数据的正确性和完整性进行验证。
附图说明
[0033]图1为本专利技术的基于关键字索引的可验证MVT的结构图。
[0034]图2为本专利技术的包含关键字交易高效检索流程图。
[0035]图3为本专利技术的检索结果可靠性验证流程图。
具体实施方式
[0036]下面结合具体实施例,进一步阐述本专利技术。应理解,这些实施例仅用于说明本专利技术而不用于限制本专利技术的范围。此外应理解,在阅读了本专利技术讲授的内容之后,本领域技术人员可以对本专利技术作各种改动或修改,这些等价形式同样落于本申请所附权利要求书所限定的范围。
[0037]本专利技术提供的基于关键字索引的区块链高效检索及可靠性验证方法。
[0038]1、首先是块内索引的生成过程(如图1所示),具体步骤如下:
[0039](1)矿工打包交易生成区块之前,先将关键字Tags本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于关键字索引的区块链高效检索及可靠性验证方法,其特征在于,具体步骤为:步骤S1:对所述区块链中的区块构建基于关键字索引的可验证默克尔哈希树(MVT);矿工为每一笔交易创建包含交易Hash、关键字Tags、数据存在证明Prove三个字段的叶子节点,构建树时将交易所有关键字存储到布隆过滤器中;步骤S2:对所述区块链进行针对关键字的可验证高效检索;区块链全节点根据用户发送的关键字检索请求,检索所有包含关键字的交易,并返回可验证结果集合(VRS);步骤S3:对所述可验证结果集合VRS进行正确性和完整性验证;用户根据可验证结果集合VRS的MVT认证路径和数据不存在证明π对检索结果进行正确性和完整性验证。2.根据权利要求1所述的基于关键字索引的区块链高效检索及可靠性验证方法,其特征在于,所述步骤S1具体包括:步骤A1:矿工为每一笔交易创建包含交易Hash、关键字Tags、数据存在证明Prove三个字段的叶子节点,组成一个叶子节点列表;步骤A2:将该叶子节点列表以两两节点的关键字集合的Jaccard系数从大到小的顺序进行排序,Jaccard系数定义如下:Tag
i
、Tag
j
为关键字;步骤A3:将排序后的叶子节点列表进行迭代合并,两两向上合并成非叶子节点,新生成节点的关键字newTags为其两孩子节点关键字Tags的并集,即:newTags=Tags
a
∪Tags
b
步骤A4:对步骤A3生成的所有非叶子节点计算数据存在证明Prove字段,该字段用于检索完整性的验证;步骤A5:将区块内所有交易的关键字存储到布隆过滤器中。3.根据权利要求2所述的基于关键字索引的区块链高效检索及可靠性验证方法,其特征在于,步骤A4中数据存在证明Prove字段生成方法为:输入关键字Tags=(Tag1,Tag2,

,Tag
n
)和公钥pk,计算数据存在证明Prove的值其中g为系统参数,sk为矿工...

【专利技术属性】
技术研发人员:卢暾张曙华徐宏名杨安荣张鹏张仙红尚笠顾宁
申请(专利权)人:上海信联信息发展股份有限公司
类型:发明
国别省市:

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

1