本申请涉及区块链领域,特别是涉及一种区块链中影响力最大交易的查询方法。
背景技术:
1、区块链已经成为互联网上可信数据交易处理的一个引人注目的范例,其中一组彼此不完全信任的对等体维护一个仅追加的数据结构(称为分类账本),并且存储在分类账本中的数据是不可变的。哈希链技术和共识协议使区块链能够消除对集中控制和单点故障设计的需求。第一代区块链,如比特币,存储交易数据。随着以太坊等第二代区块链的出现,区块链技术被更多的数据密集型应用所采用,这些应用将文本、文档和图像写入分布式账本。如此海量的数据意味着在用户查询区块链数据库中数据的广泛需求。
2、目前已有一些关于在区块链中数据管理与可验证查询方向的研究,但存在以下问题:首先,关于在区块链中进行查询,一部分研究会使用直接调用智能合约的方法,但存在未考虑查询消耗的问题,比如在以太坊中,就需要消耗大量的汽油费。其次,对于现有的查询方法,普遍的关注点在于对关键词进行查询,而没有与集合属性计数相关的查询,存在查询内容单一的问题。最后,现有的可验证查询方法中,已有的研究虽然可以支持连接查询和范围查询,但还是缺乏比如同时对于数值属性和集合属性的查询,存在查询种类少的问题。
技术实现思路
1、针对上述技术问题,本发明公开一种高效可验证地查询区块链中影响力最大交易的方法,可以查询区块链中影响力最大的k个交易,并且查询过程高效,查询结果可由发起查询的用户在本地验证计算,解决了现有技术中存在的问题。
2、一种高效可验证地查询区块链中影响力最大交易的方法,所述方法包括:
3、构建基于区块链的高效可验证最具影响力交易的查询框架,给出查询区块链中k个影响力最大交易的定义。
4、构建mbfm树,作为一个包含数值属性和集合属性的可验证数据结构,由服务商保存。
5、用户向服务商发起查询,基于mbfm树,查询在给定数值属性下区块链中k个影响力最大的交易,并生成验证对象。
6、用户根据查询过程中得到的查询结果和验证对象,验证查询结果的可靠性和完整性。
7、在其中一个实施例中,还包括:使用“全节点-轻节点”的区块链模式,服务商作为全节点提供查询服务,用户作为轻节点发出查询请求,在查询条件中同时包括数值属性和集合属性,服务商返回查询结果的同时返回验证对象。
8、在其中一个实施例中,还包括:基于merkle b树(mb树),更改该树的结构,使用区块链中的交易构建一棵mbfm树,以交易中的数值属性作为搜索键,并扩展使用一种对重复不敏感的计数技术,即fm草图,来近似地计算元素的数量。每个节点维护存储在其后继叶节点中交易的fm草图。当交易与另一个交易集合并时,fm草图可以用来找到集合属性数量更大的交易。
9、在其中一个实施例中,还包括:将交易分阶段地进行,首先进行第一阶段的查询,然后逐一进行其它阶段的查询,逐步返回查询结果和验证对象。
10、在其中一个实施例中,还包括:从mbfm树的根开始查询,返回整个树中影响力最大的交易,即满足查询范围,并拥有集合属性元素最大的交易,同时计算出验证对象。
11、在其中一个实施例中,还包括:在接下来的每一个查询阶段,找出当前阶段中影响力最大的交易,即与之前所有查询结果中集合元素合并后,集合属性元素数目最大的交易,并同时计算验证对象。
12、在其中一个实施例中,还包括:对于验证查询结果的可靠性,要满足每个查询结果都要存在于交易集合中,且未被篡改。对于验证查询结果的完整性,所有有效的结果,如果满足查询范围和集合元素的数量条件,都不能被遗漏。
13、一种高效可验证地查询区块链中影响力最大交易的装置,包括:
14、全节点模块,用于存储区块链中所有交易的完整数据,包括数值属性和集合属性,并在本地构造成一棵mbfm树,给用户提供查询服务;
15、轻节点模块,用于存储区块链中所有区块头的数据,用于向服务商发起查询,在接收到查询结果后,根据本地存储的区块头中特定摘要,对接收到的查询结果进行验证计算。
16、一种计算机设备,包括存储器和处理器,存储器存储有编写的代码程序和区块链中对应模块所需必要数据,处理器执行所述代码程序时,可以实现权以下步骤:
17、构建基于区块链的高效可验证最具影响力交易的查询框架,给出查询区块链中k个影响力最大交易的定义。
18、构建mbfm树,作为一个包含数值属性和集合属性的可验证数据结构,由服务商保存。
19、用户向服务商发起查询,基于mbfm树,查询在给定数值属性下区块链中k个影响力最大的交易,并生成验证对象。
20、用户根据查询过程中得到的查询结果和验证对象,验证查询结果的可靠性和完整性。
21、上述高效可验证地查询区块链中影响力最大交易的方法,相较于现有技术而言,具备以下有益效果:
22、首先,更改了区块结构,使得用户直接向服务商发起查询时,使用一个基于可验证数据结构的查询,向用户返回结果的同时返回验证对象,解决了区块链调用智能合约查询消耗大的问题。其次,提出在区块链中查询k个影响力最大的交易,根据现实生活中的需求对该类查询问题建模,并给予严格数学定义,解决了现有区块链中查询内容单一的问题。最后,提出将数值属性和集合属性结合进行查询,结合mb树、fm草图,以区块链交易中数值属性为搜索键构建可验证数据结构,解决了查询种类少的问题。
1.一种高效可验证地查询区块链中影响力最大交易的方法,其特征在于,包括如下步骤:
2.根据权利要求1所述方法,其特征在于,构建基于区块链的高效可验证最具影响力交易的查询框架,包括:使用“全节点-轻节点”的区块链模式,服务商作为全节点提供查询服务,用户作为轻节点发出查询请求,在查询条件中同时包括数值属性和集合属性,服务商返回查询结果的同时返回验证对象。
3.根据权利要求1所述方法,其特征在于,构建mbfm树,包括:基于merkle b树(mb树),更改该树的结构,使用区块链中的交易构建一棵mbfm树,以交易中的数值属性作为搜索键,并扩展使用一种对重复不敏感的计数技术,即fm草图,来近似地计算元素的数量。每个节点维护存储在其后继叶节点中交易的fm草图。当交易与另一个交易集合并时,fm草图可以用来找到集合属性数量更大的交易。
4.根据权利要求1所述方法,其特征在于,基于mbfm树,查询在给定数值属性下区块链中k个影响力最大的交易,并生成验证对象,包括:将交易分阶段地进行,首先进行第一阶段的查询,然后逐一进行其它阶段的查询,逐步返回查询结果和验证对象。
5.根据权利要求1所述方法,其特征在于,验证查询结果的可靠性和完整性,包括:对于验证查询结果的可靠性,要满足每个查询结果都要存在于交易集合中,且未被篡改。对于验证查询结果的完整性,所有有效的结果,如果满足查询范围和集合元素的数量条件,都不能被遗漏。
6.根据权利要求4所述的查询,其特征在于,首先进行第一阶段的查询,包括:从mbfm树的根开始查询,返回整个树中影响力最大的交易,即满足查询范围,并拥有集合属性元素最大的交易,同时计算出验证对象。
7.根据权利要求4所述的查询,其特征在于,然后逐一进行其它阶段的查询,包括:在接下来的每一个查询阶段,找出当前阶段中影响力最大的交易,即与之前所有查询结果中集合元素合并后,集合属性元素数目最大的交易,并同时计算验证对象。
8.一种高效可验证地查询区块链中影响力最大交易的装置,其特征在于,所述装置包括:
9.一种计算机设备,包括存储器和处理器,其特征在于,所述存储器存储有编写的代码程序和所述区块链中对应模块所需必要数据,所述处理器执行所述代码程序时,可以实现权利要求1至7中任一项所述的步骤。
