CN116860825A - 一种基于区块链的可验证检索方法及系统 - Google Patents
一种基于区块链的可验证检索方法及系统 Download PDFInfo
- Publication number
- CN116860825A CN116860825A CN202310704485.1A CN202310704485A CN116860825A CN 116860825 A CN116860825 A CN 116860825A CN 202310704485 A CN202310704485 A CN 202310704485A CN 116860825 A CN116860825 A CN 116860825A
- Authority
- CN
- China
- Prior art keywords
- classification
- blockchain
- hash
- classified
- root hash
- 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
- 238000000034 method Methods 0.000 title claims abstract description 43
- 238000012795 verification Methods 0.000 claims abstract description 58
- 238000010276 construction Methods 0.000 claims description 24
- 238000004364 calculation method Methods 0.000 claims description 12
- 238000010586 diagram Methods 0.000 description 5
- 238000007726 management method Methods 0.000 description 5
- 230000015654 memory Effects 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 4
- 238000013500 data storage Methods 0.000 description 3
- 238000010353 genetic engineering Methods 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 2
- 230000011218 segmentation Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 238000011160 research Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2458—Special types of queries, e.g. statistical queries, fuzzy queries or distributed queries
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2228—Indexing structures
- G06F16/2246—Trees, e.g. B+trees
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2228—Indexing structures
- G06F16/2255—Hash tables
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/28—Databases characterised by their database models, e.g. relational or object models
- G06F16/284—Relational databases
- G06F16/285—Clustering or classification
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/64—Protecting data integrity, e.g. using checksums, certificates or signatures
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Software Systems (AREA)
- Computer Security & Cryptography (AREA)
- Probability & Statistics with Applications (AREA)
- Computational Linguistics (AREA)
- Mathematical Physics (AREA)
- Computing Systems (AREA)
- Fuzzy Systems (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Computer Hardware Design (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明涉及区块链数据检索技术领域,特别是指一种基于区块链的可验证检索方法及系统。一种基于区块链的可验证检索方法包括:采集检索信息,获得检索关键字;根据检索关键字,通过数据索引结构进行检索,获得材料分类id集合以及元数据集合;将材料分类id集合,输入区块链背书节点,获得MPT树根哈希以及分类哈希表;根据MPT树根哈希以及分类哈希表,获得分类证明哈希表;根据分类证明哈希表以及元数据集合进行验证,获得检索结果以及验证结果。本发明是一种面对区块链的可验证高效检索方法。
Description
技术领域
本发明涉及区块链数据检索技术领域,特别是指一种基于区块链的可验证检索方法及系统。
背景技术
区块链技术可以用来避免数据存储中的部分安全风险,例如篡改等,但大多数基于区块链的数据存储方案对于检索的支持非常有限。具体来说,当检索请求到达时,通过随机读取分散在文件系统中的大量文件,或者采用简单的块索引,存储在链上的每一笔交易都需要被遍历一次,搜索过程非常耗时。因此如何高效地检索数据成为当前区块链系统研究的一个重要问题。
区块链搜索引擎需要以快速且保护隐私的形式返回给定查询的块或交易信息,这类似于传统搜索引擎的工作原理。然而,区块链中构建高效的索引结构并不简单。由于区块链存在吞吐量、存储容量、可扩展性和灵活性、延迟、大小和带宽、浪费资源和可用性等挑战和限制,当大量数据到达时,它无法高效且方便地完成复杂任务。因此,在其他应用中实现区块链数据并使用它们并不容易。此外,从用户的角度来看,区块链数据不易于访问、处理和分析。
在现有技术中,缺乏一种面对区块链的可验证高效检索方法。
发明内容
本发明实施例提供了一种基于区块链的可验证检索方法及系统。所述技术方案如下:
一方面,提供了一种基于区块链的可验证检索方法,该方法由电子设备实现,该方法包括:
采集检索信息,获得检索关键字;
根据所述检索关键字,通过数据索引结构进行检索,获得材料分类id集合以及元数据集合;
将所述材料分类id集合,输入区块链背书节点,获得MPT树根哈希以及分类哈希表;
根据所述MPT树根哈希以及所述分类哈希表,获得分类证明哈希表;
根据所述分类证明哈希表以及所述元数据集合进行验证,获得检索结果以及验证结果。
其中,所述数据索引结构包括第一层材料分类位图以及第二层元数据MPT树;
所述第一层材料分类位图用于给每一个材料分类编码;所述材料分类编码具有唯一性;
所述第二层元数据MPT树是根据所述第一层材料分类位图代表的元数据进行集合,得到的MPT树;所述第二层元数据MPT树中的每一材料分类MPT树具有唯一性。
可选地,所述将所述材料分类id集合,输入区块链背书节点,获得MPT树根哈希以及分类哈希表,包括:
将所述材料分类id集合,输入区块链网络背书节点,获得材料类别对应的MPT树根哈希;
根据所述材料分类id集合以及所述MPT树根哈希,获得分类哈希表。
可选地,所述根据所述MPT树根哈希以及所述分类哈希表,获得分类证明哈希表,包括:
根据所述MPT树根哈希以及所述分类哈希表,构造分类验证证明,获得分类证明集合;
根据所述MPT树根哈希以及所述分类证明集合,获得分类证明哈希表。
可选地,所述根据所述分类证明哈希表以及所述元数据集合进行验证,获得检索结果以及验证结果,包括:
根据所述元数据集合,获得元数据集合对应的分类构造证明;
根据所述分类构造证明以及所述分类证明哈希表进行匹配,获得验证结果;
将元数据集合发送给客户端,获得检索结果。
可选地,所述将所述材料分类id集合,输入区块链背书节点之前,所述方法还包括:
根据所述检索关键字,通过数据对应倒排索引,获得数据分类数组字段以及分类构造证明;
根据所述分类数组进行计算,获得第一计算根哈希;
根据所述分类数组,通过数据索引结构,获得第一对应根哈希;
将所述第一计算根哈希以及所述第一对应根哈希进行对比,获得第一验证结果;
根据所述分类构造证明进行计算,获得第二计算根哈希;根据所述材料分类id,获得第二对应根哈希;将所述第二计算根哈希以及所述第二对应根哈希进行对比,获得第二验证结果;
当所述第一验证结果以及第二验证结果都为成功时,向客户端发送更新验证成功结果;否则,向客户端发送重新上传数据提示。
另一方面,提供了一种基于区块链的可验证检索系统,该系统应用于一种基于区块链的可验证检索方法,该系统包括客户端、web服务器和区块链,其中:
所述客户端,用于采集检索信息,获得检索关键字;根据所述分类证明哈希表以及所述元数据集合进行验证,获得检索结果以及验证结果;
所述web服务器,用于根据所述检索关键字,通过数据索引结构进行检索,获得材料分类id集合以及元数据集合;根据所述MPT树根哈希以及所述分类哈希表,获得分类证明哈希表;
所述区块链,用于将所述材料分类id集合,输入区块链背书节点,获得MPT树根哈希以及分类哈希表。
其中,所述数据索引结构包括第一层材料分类位图以及第二层元数据MPT树;
所述第一层材料分类位图用于给每一个材料分类编码;所述材料分类编码具有唯一性;
所述第二层元数据MPT树是根据所述第一层材料分类位图代表的元数据进行集合,得到的MPT树;所述第二层元数据MPT树中的每一材料分类MPT树具有唯一性。
可选地,所述区块链,进一步用于:
将所述材料分类id集合,输入区块链网络背书节点,获得材料类别对应的MPT树根哈希;
根据所述材料分类id集合以及所述MPT树根哈希,获得分类哈希表。
可选地,所述web服务器,进一步用于:
根据所述MPT树根哈希以及所述分类哈希表,构造分类验证证明,获得分类证明集合;
根据所述MPT树根哈希以及所述分类证明集合,获得分类证明哈希表。
可选地,所述客户端,进一步用于:
根据所述元数据集合,获得元数据集合对应的分类构造证明;
根据所述分类构造证明以及所述分类证明哈希表进行匹配,获得验证结果;
将元数据集合发送给客户端,获得检索结果。
可选地,所述区块链,还用于:
根据所述检索关键字,通过数据对应倒排索引,获得数据分类数组字段以及分类构造证明;
根据所述分类数组进行计算,获得第一计算根哈希;
根据所述分类数组,通过数据索引结构,获得第一对应根哈希;
将所述第一计算根哈希以及所述第一对应根哈希进行对比,获得第一验证结果;
根据所述分类构造证明进行计算,获得第二计算根哈希;根据所述材料分类id,获得第二对应根哈希;将所述第二计算根哈希以及所述第二对应根哈希进行对比,获得第二验证结果;
当所述第一验证结果以及第二验证结果都为成功时,向客户端发送更新验证成功结果;否则,向客户端发送重新上传数据提示。
另一方面,提供了一种电子设备,所述电子设备包括处理器和存储器,所述存储器中存储有至少一条指令,所述至少一条指令由所述处理器加载并执行以实现上述一种基于区块链的可验证检索方法。
另一方面,提供了一种计算机可读存储介质,所述存储介质中存储有至少一条指令,所述至少一条指令由处理器加载并执行以实现上述一种基于区块链的可验证检索方法。
本发明实施例提供的技术方案带来的有益效果至少包括:
本发明提出一种一种基于区块链的可验证检索方法,构建位图和MPT树的双层索引结构,其中,第一层索引结构为位图,第二层索引结构为MPT。位图索引结构使用一个bit位来标记对应的一种材料分类,可以减少区块链检索过程中的不必要的遍历,提升检索效率。同时,这种存储方式相比传统的关系型数据库存储方式更加节省空间并且高效;而MPT树主要是用来存储每个材料分类下检索关键字对应的元数据,采用MPT树结构创建索引可以解决区块链检索效率低的问题,并且还可以采用MPT树的根哈希的验证方式来确保数据的完整性。该方案旨在保证检索数据完整性的同时,实现高效准确的异构材料大数据的检索。本发明是一种面对区块链的可验证高效检索方法。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的一种基于区块链的可验证检索方法流程图;
图2是本发明实施例提供的一种数据索引结构示意图;
图3是本发明实施例提供的一种基于区块链的可验证检索系统框图;
图4是本发明实施例提供的一种电子设备的结构示意图。
具体实施方式
为使本发明要解决的技术问题、技术方案和优点更加清楚,下面将结合附图及具体实施例进行详细描述。
本发明实施例提供了一种基于区块链的可验证检索方法,该方法可以由电子设备实现,该电子设备可以是终端或服务器。如图1所示的一种基于区块链的可验证检索方法流程图,该方法的处理流程可以包括如下的步骤:
S1、采集检索信息,获得检索关键字。
一种可行的实施方式中,本发明依托于国家材料基因工程数据汇交与管理平台。国家材料基因工程数据汇交与管理服务平台是聚焦于材料数据领域的云存储服务平台,为多源异构的材料科学数据提供统一存储、管理以及查询的服务。
区块链技术的核心思想是去中心化和不可篡改性,从而保证了交易的安全性,同时也可以促进数据的共享和交换。将平台与区块链技术相结合,可以保证材料数据的安全、可信存储以及共享。区块链技术可以保证材料数据的来源和使用记录的可追溯性和公正性,从而提高数据的可信度和安全性。同时,区块链技术可以实现材料数据的去中心化存储和共享,促进材料基因工程领域的数据共享和合作。
当在平台进行检索时,用户在客户端检索页面输入要检索的内容,对检索内容进行采集,得到检索关键字。
S2、根据检索关键字,通过数据索引结构进行检索,获得材料分类id集合以及元数据集合。
其中,数据索引结构包括第一层材料分类位图以及第二层元数据MPT树;
第一层材料分类位图用于给每一个材料分类编码;材料分类编码具有唯一性;
第二层元数据MPT树是根据第一层材料分类位图代表的元数据进行集合,得到的MPT树;第二层元数据MPT树中的每一材料分类MPT树具有唯一性。
一种可行的实施方式中,在管理平台中为材料科学数据划分了不同材料分类,在上传数据时需要上传人手动指定所上传数据的材料分类,即平台中所有数据均有唯一的材料分类,基于这一特征将检索索引整体分为两层:第一层为材料分类位图;第二层为对应材料分类下的元数据MPT树,如图2所示。
平台中材料分类总数现今为138个,考虑到索引结构的拓展性以及存储开销,使用位图作为材料分类的索引,每一材料分类拥有唯一材料分类id;在数据上传时,获取数据所属材料分类id,并对数据进行关键字提取获得关键字集合W,对于集合中每一个元素即关键字构造位图,并在位图中更新数据cId,即第cId位标记为1,cld为材料分类id的具体数值。
同时,根据不同cId构造形如关键词-数据的倒排索引以维护元数据MPT树,即对原始数据进行处理。
元数据MPT树,即位图的值为元数据集合的MPT树。在本系统中,为每一材料分类创建对应的MPT树。每基于倒排索引维护对应MPT树。MPT树中的标准叶节点表示为[key,value]的列表。其中,key是一种特殊的十六进制编码,value是RLP编码,基于关键词-数据的倒排索引,需要先对倒排索引中的key(关键词)以及value(元数据)进行编码,然后添加到对应的MPT树中。
S3、将材料分类id集合,输入区块链背书节点,获得MPT树根哈希以及分类哈希表。
可选地,将材料分类id集合,输入区块链背书节点,获得MPT树根哈希以及分类哈希表,包括:
将材料分类id集合,输入区块链网络背书节点,获得材料类别对应的MPT树根哈希;
根据材料分类id集合以及MPT树根哈希,获得分类哈希表。
一种可行的实施方式中,区块链网络中的背书节点接收到创建交易的请求后,首先执行数据检索链码,即根据cIdList中的每一个cId获取对应的T(chain,cId),将结果添加到列表中;其中,cIdList为材料分类id集合;R(chain,cId)为区块链上存储的材料类别对应MPT树的根哈希;/>为MPT树根哈希表,其中包括材料分类id以及对应的MPT树的根哈希。
可选地,将材料分类id集合,输入区块链背书节点之前,方法还包括:
根据检索关键字,通过数据对应倒排索引,获得数据分类数组字段以及分类构造证明;
根据分类数组进行计算,获得第一计算根哈希;
根据分类数组,通过数据索引结构,获得第一对应根哈希;
将第一计算根哈希以及第一对应根哈希进行对比,获得第一验证结果;
根据分类构造证明进行计算,获得第二计算根哈希;根据材料分类id,获得第二对应根哈希;将第二计算根哈希以及第二对应根哈希进行对比,获得第二验证结果;
当第一验证结果以及第二验证结果都为成功时,向客户端发送更新验证成功结果;否则,向客户端发送重新上传数据提示。
一种可行的实施方式中,本发明为保证检索索引中每次更新的数据都是完整的,可验证的,需要在每次上传数据更新检索索引时,构造数据更新证明,并由区块链进行验证,保证链上维护的R(chain,cId)的准确性以及云服务器中维护的检索索引的准确性。
在数据上传时,需要web服务器首先对数据全文进行关键词提取,构造数据对应倒排索引,并更新web服务器中的检索索引。构造VOupdate的算法流程简单来说,就是从根节点开始遍历,并将经过节点的哈希值依次存储,然后输出proofDB,ProofDB是一种支持键值对存储的数据结构,且支持增删改查的基本操作;VOupdate为上传数据时web服务器构造的证明,提供给区块链。
区块链方验证数据更新证明可分为两个步骤:首先根据web服务器方所提供的DataArr字段计算对应哈希值,并与DataHash进行对比,保证新添加的数据与数据哈希一致;根据web服务器提供的VOupdate计算得到MPT根哈希,与RootHash进行对比,保证VOupdate的准确性。其中,DataArr为为用户所上传数据的Dataupdate数组;DataHash为web服务器构造的,对应DataArr取哈希的值;RootHash为对应材料分类的MPT根哈希。
两步验证通过后,区块链使用内置LevelDB更新R(chain,cId)。输入参数依次为MPT树根哈希,以及指向保存节点哈希的proofDB的指针,输出为验证是否通过。
在上述步骤中,对检索索引进行更新,首先,根据检索关键词进行检索,对检索关键词中的每一个分词检索是否存在对应位图;如果存在相应位图,检索位图中对应数据的CID位置是否为1;若CID位置为1,则将CID对应的MPT插入MPT树。如果分词检索不存在相应位图,则创建相应位图,并将CID位置置为1,将CID对应的MPT插入MPT树。
然后,构造VOupdate,并将需要更新的数据一同传递给区块链。
S4、根据MPT树根哈希以及分类哈希表,获得分类证明哈希表。
可选地,根据MPT树根哈希以及分类哈希表,获得分类证明哈希表,包括:
根据MPT树根哈希以及分类哈希表,构造分类验证证明,获得分类证明集合;
根据MPT树根哈希以及分类证明集合,获得分类证明哈希表。
一种可行的实施方式中,链码执行结果被打包到区块中,经由背书节点返回给web服务器,并在区块链网络中广播。
web服务器接收区块链返回的检索交易结果,以及为每个cId构造VOcId,并将结果添加到/>中;其中,VOcId为检索时web服务器对应的材料分类id构造的证明。/>为分类证明哈希表。web服务器将/>与元数据集合一同返回给客户端。
S5、根据分类证明哈希表以及元数据集合进行验证,获得检索结果以及验证结果。
可选地,根据分类证明哈希表以及元数据集合进行验证,获得检索结果以及验证结果,包括:
根据元数据集合,获得元数据集合对应的分类构造证明;
根据分类构造证明以及分类证明哈希表进行匹配,获得验证结果;
将元数据集合发送给客户端,获得检索结果。
一种可行的实施方式中,由于区块链本身块链式结构的影响,区块链检索需要遍历多个区块才能找到相关信息,现有区块链应用的检索方案普遍存在检索效率低、可扩展性差等问题。针对这些问题,本发明结合管理平台自身异构材料数据的特点,设计基于区块链的可验证检索方案,具体涉及到数据提供方、数据检索方、区块链网络及web服务器。当数据提供方上传数据时,由web服务器向区块链网络提供Dataupdate、VOupdate以及R(chain,cId),区块链网络验证VOupdate通过后保存Dataupdate以及R(chain,cId);当数据检索方检索数据时,区块链网络向web服务器提供web服务器构造并与检索结果一同传递给数据检索方,数据检索方客户端来验证该证明的正确性。
本发明提出一种一种基于区块链的可验证检索方法,构建位图和MPT树的双层索引结构,其中,第一层索引结构为位图,第二层索引结构为MPT。位图索引结构使用一个bit位来标记对应的一种材料分类,可以减少区块链检索过程中的不必要的遍历,提升检索效率。同时,这种存储方式相比传统的关系型数据库存储方式更加节省空间并且高效;而MPT树主要是用来存储每个材料分类下检索关键字对应的元数据,采用MPT树结构创建索引可以解决区块链检索效率低的问题,并且还可以采用MPT树的根哈希的验证方式来确保数据的完整性。该方案旨在保证检索数据完整性的同时,实现高效准确的异构材料大数据的检索。本发明是一种面对区块链的可验证高效检索方法。
图3是根据一示例性实施例示出的一种基于区块链的可验证检索系统框图。参照图3,该系统包括客户端、web服务器和区块链,其中:
客户端310,用于采集检索信息,获得检索关键字;根据分类证明哈希表以及元数据集合进行验证,获得检索结果以及验证结果;
web服务器320,用于根据检索关键字,通过数据索引结构进行检索,获得材料分类id集合以及元数据集合;根据MPT树根哈希以及分类哈希表,获得分类证明哈希表;
区块链330,用于将材料分类id集合,输入区块链背书节点,获得MPT树根哈希以及分类哈希表。
其中,数据索引结构包括第一层材料分类位图以及第二层元数据MPT树;
第一层材料分类位图用于给每一个材料分类编码;材料分类编码具有唯一性;
第二层元数据MPT树是根据第一层材料分类位图代表的元数据进行集合,得到的MPT树;第二层元数据MPT树中的每一材料分类MPT树具有唯一性。
可选地,区块链330,进一步用于:
将材料分类id集合,输入区块链网络背书节点,获得材料类别对应的MPT树根哈希;
根据材料分类id集合以及MPT树根哈希,获得分类哈希表。
可选地,web服务器320,进一步用于:
根据MPT树根哈希以及分类哈希表,构造分类验证证明,获得分类证明集合;
根据MPT树根哈希以及分类证明集合,获得分类证明哈希表。
可选地,客户端310,进一步用于:
根据元数据集合,获得元数据集合对应的分类构造证明;
根据分类构造证明以及分类证明哈希表进行匹配,获得验证结果;
将元数据集合发送给客户端,获得检索结果。
可选地,区块链330,还用于:
根据检索关键字,通过数据对应倒排索引,获得数据分类数组字段以及分类构造证明;
根据分类数组进行计算,获得第一计算根哈希;
根据分类数组,通过数据索引结构,获得第一对应根哈希;
将第一计算根哈希以及第一对应根哈希进行对比,获得第一验证结果;
根据分类构造证明进行计算,获得第二计算根哈希;根据材料分类id,获得第二对应根哈希;将第二计算根哈希以及第二对应根哈希进行对比,获得第二验证结果;
当第一验证结果以及第二验证结果都为成功时,向客户端发送更新验证成功结果;否则,向客户端发送重新上传数据提示。
本发明提出一种一种基于区块链的可验证检索方法,构建位图和MPT树的双层索引结构,其中,第一层索引结构为位图,第二层索引结构为MPT。位图索引结构使用一个bit位来标记对应的一种材料分类,可以减少区块链检索过程中的不必要的遍历,提升检索效率。同时,这种存储方式相比传统的关系型数据库存储方式更加节省空间并且高效;而MPT树主要是用来存储每个材料分类下检索关键字对应的元数据,采用MPT树结构创建索引可以解决区块链检索效率低的问题,并且还可以采用MPT树的根哈希的验证方式来确保数据的完整性。该方案旨在保证检索数据完整性的同时,实现高效准确的异构材料大数据的检索。本发明是一种面对区块链的可验证高效检索方法。
图4是本发明实施例提供的一种电子设备400的结构示意图,该电子设备400可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上处理器(centralprocessing units,CPU)401和一个或一个以上的存储器402,其中,所述存储器402中存储有至少一条指令,所述至少一条指令由所述处理器401加载并执行以实现上述一种基于区块链的可验证检索方法的步骤。
在示例性实施例中,还提供了一种计算机可读存储介质,例如包括指令的存储器,上述指令可由终端中的处理器执行以完成上述一种基于区块链的可验证检索方法。例如,所述计算机可读存储介质可以是ROM、随机存取存储器(RAM)、CD-ROM、磁带、软盘和光数据存储设备等。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.一种基于区块链的可验证检索方法,其特征在于,所述方法包括:
采集检索信息,获得检索关键字;
根据所述检索关键字,通过数据索引结构进行检索,获得材料分类id集合以及元数据集合;
将所述材料分类id集合,输入区块链背书节点,获得MPT树根哈希以及分类哈希表;
根据所述MPT树根哈希以及所述分类哈希表,获得分类证明哈希表;
根据所述分类证明哈希表以及所述元数据集合进行验证,获得检索结果以及验证结果。
2.根据权利要求1所述的一种基于区块链的可验证检索方法,其特征在于,所述数据索引结构包括第一层材料分类位图以及第二层元数据MPT树;
所述第一层材料分类位图用于给每一个材料分类编码;所述材料分类编码具有唯一性;
所述第二层元数据MPT树是根据所述第一层材料分类位图代表的元数据进行集合,得到的MPT树;所述第二层元数据MPT树中的每一材料分类MPT树具有唯一性。
3.根据权利要求1所述的一种基于区块链的可验证检索方法,其特征在于,所述将所述材料分类id集合,输入区块链背书节点,获得MPT树根哈希以及分类哈希表,包括:
将所述材料分类id集合,输入区块链网络背书节点,获得材料类别对应的MPT树根哈希;
根据所述材料分类id集合以及所述MPT树根哈希,获得分类哈希表。
4.根据权利要求1所述的一种基于区块链的可验证检索方法,其特征在于,所述根据所述MPT树根哈希以及所述分类哈希表,获得分类证明哈希表,包括:
根据所述MPT树根哈希以及所述分类哈希表,构造分类验证证明,获得分类证明集合;
根据所述MPT树根哈希以及所述分类证明集合,获得分类证明哈希表。
5.根据权利要求1所述的一种基于区块链的可验证检索方法,其特征在于,所述根据所述分类证明哈希表以及所述元数据集合进行验证,获得检索结果以及验证结果,包括:
根据所述元数据集合,获得元数据集合对应的分类构造证明;
根据所述分类构造证明以及所述分类证明哈希表进行匹配,获得验证结果;
将元数据集合发送给客户端,获得检索结果。
6.根据权利要求1所述的一种基于区块链的可验证检索方法,其特征在于,所述将所述材料分类id集合,输入区块链背书节点之前,所述方法还包括:
根据所述检索关键字,通过数据对应倒排索引,获得数据分类数组字段以及分类构造证明;
根据所述分类数组进行计算,获得第一计算根哈希;
根据所述分类数组,通过数据索引结构,获得第一对应根哈希;
将所述第一计算根哈希以及所述第一对应根哈希进行对比,获得第一验证结果;
根据所述分类构造证明进行计算,获得第二计算根哈希;根据所述材料分类id,获得第二对应根哈希;将所述第二计算根哈希以及所述第二对应根哈希进行对比,获得第二验证结果;
当所述第一验证结果以及第二验证结果都为成功时,向客户端发送更新验证成功结果;否则,向客户端发送重新上传数据提示。
7.一种基于区块链的可验证检索系统,其特征在于,所述系统包括客户端、web服务器和区块链,其中:
所述客户端,用于采集检索信息,获得检索关键字;根据所述分类证明哈希表以及所述元数据集合进行验证,获得检索结果以及验证结果;
所述web服务器,用于根据所述检索关键字,通过数据索引结构进行检索,获得材料分类id集合以及元数据集合;根据所述MPT树根哈希以及所述分类哈希表,获得分类证明哈希表;
所述区块链,用于将所述材料分类id集合,输入区块链背书节点,获得MPT树根哈希以及分类哈希表。
8.根据权利要求7所述的一种基于区块链的可验证检索系统,其特征在于,所述web服务器,进一步用于:
根据所述MPT树根哈希以及所述分类哈希表,构造分类验证证明,获得分类证明集合;
根据所述MPT树根哈希以及所述分类证明集合,获得分类证明哈希表。
9.根据权利要求7所述的一种基于区块链的可验证检索系统,其特征在于,所述客户端,进一步用于:
根据所述元数据集合,获得元数据集合对应的分类构造证明;
根据所述分类构造证明以及所述分类证明哈希表进行匹配,获得验证结果;
将元数据集合发送给客户端,获得检索结果。
10.根据权利要求7所述的一种基于区块链的可验证检索系统,其特征在于,所述区块链,进一步用于:
根据所述检索关键字,通过数据对应倒排索引,获得数据分类数组字段以及分类构造证明;
根据所述分类数组进行计算,获得第一计算根哈希;
根据所述分类数组,通过数据索引结构,获得第一对应根哈希;
将所述第一计算根哈希以及所述第一对应根哈希进行对比,获得第一验证结果;
根据所述分类构造证明进行计算,获得第二计算根哈希;根据所述材料分类id,获得第二对应根哈希;将所述第二计算根哈希以及所述第二对应根哈希进行对比,获得第二验证结果;
当所述第一验证结果以及第二验证结果都为成功时,向客户端发送更新验证成功结果;否则,向客户端发送重新上传数据提示。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310704485.1A CN116860825B (zh) | 2023-06-14 | 2023-06-14 | 一种基于区块链的可验证检索方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310704485.1A CN116860825B (zh) | 2023-06-14 | 2023-06-14 | 一种基于区块链的可验证检索方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116860825A true CN116860825A (zh) | 2023-10-10 |
CN116860825B CN116860825B (zh) | 2024-01-26 |
Family
ID=88222485
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310704485.1A Active CN116860825B (zh) | 2023-06-14 | 2023-06-14 | 一种基于区块链的可验证检索方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116860825B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117290363A (zh) * | 2023-11-23 | 2023-12-26 | 北京科技大学 | 一种面向救援活动的异构数据管理方法及系统 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110153976A1 (en) * | 2009-12-22 | 2011-06-23 | Eric Brandon Tamura | Methods and apparatuses to allocate file storage via tree representations of a bitmap |
CN109766389A (zh) * | 2019-01-09 | 2019-05-17 | 华东师范大学 | 一种基于位图索引的区块链轻客户端验证查询方法 |
CN111445236A (zh) * | 2019-11-14 | 2020-07-24 | 杭州复杂美科技有限公司 | 一种区块链交易验证方法、设备及存储介质 |
WO2022063223A1 (zh) * | 2020-09-28 | 2022-03-31 | 华为技术有限公司 | 数据校验方法、装置和系统 |
-
2023
- 2023-06-14 CN CN202310704485.1A patent/CN116860825B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110153976A1 (en) * | 2009-12-22 | 2011-06-23 | Eric Brandon Tamura | Methods and apparatuses to allocate file storage via tree representations of a bitmap |
CN109766389A (zh) * | 2019-01-09 | 2019-05-17 | 华东师范大学 | 一种基于位图索引的区块链轻客户端验证查询方法 |
CN111445236A (zh) * | 2019-11-14 | 2020-07-24 | 杭州复杂美科技有限公司 | 一种区块链交易验证方法、设备及存储介质 |
WO2022063223A1 (zh) * | 2020-09-28 | 2022-03-31 | 华为技术有限公司 | 数据校验方法、装置和系统 |
Non-Patent Citations (1)
Title |
---|
贺智明;张慧云;毛伊敏;: "结合分段位图和B~+树的云数据索引机制研究", 计算机应用研究, no. 12 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117290363A (zh) * | 2023-11-23 | 2023-12-26 | 北京科技大学 | 一种面向救援活动的异构数据管理方法及系统 |
CN117290363B (zh) * | 2023-11-23 | 2024-02-13 | 北京科技大学 | 一种面向救援活动的异构数据管理方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN116860825B (zh) | 2024-01-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2021139074A1 (zh) | 基于知识图谱的案件检索方法、装置、设备及存储介质 | |
Baraglia et al. | Document similarity self-join with mapreduce | |
US8805833B2 (en) | Enhancing personal data search with information from social networks | |
US9940365B2 (en) | Ranking tables for keyword search | |
JP2006107433A (ja) | 検索結果のランク付けへのアンカーテキストの組込みシステムおよび方法 | |
WO2013097231A1 (zh) | 文件访问方法及系统 | |
Pei et al. | An efficient query scheme for hybrid storage blockchains based on merkle semantic trie | |
CN116860825B (zh) | 一种基于区块链的可验证检索方法及系统 | |
Zhang et al. | Level-aware collective spatial keyword queries | |
Goodrich et al. | Efficient verification of web-content searching through authenticated web crawlers | |
US20120124060A1 (en) | Method and system of identifying adjacency data, method and system of generating a dataset for mapping adjacency data, and an adjacency data set | |
CN110909266B (zh) | 深度分页的方法、装置及服务器 | |
Zhou et al. | MSTDB: a hybrid storage-empowered scalable semantic blockchain database | |
Saad et al. | Efficient skyline computation on uncertain dimensions | |
CA3231516A1 (en) | Fragmented record detection based on records matching techniques | |
CA3231513A1 (en) | Records matching techniques for facilitating database search and fragmented record detection | |
CN117076590A (zh) | 地址标准化方法、装置、计算机设备及可读存储介质 | |
Wang et al. | An efficient multiple-user location-based query authentication approach for social networking | |
Attique et al. | Efficient Processing of Moving Top‐k Spatial Keyword Queries in Directed and Dynamic Road Networks | |
CN114048219A (zh) | 图数据库更新方法及装置 | |
Wang et al. | Efficient authentication processing for spatial keyword queries in hybrid storage blockchain | |
CN113032436A (zh) | 基于文章内容和标题的搜索方法和装置 | |
CN113779025A (zh) | 一种区块链中分类数据检索效率的优化方法、系统及应用 | |
CN111400556A (zh) | 数据查询方法及装置、计算机设备、存储介质 | |
CN113535803A (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 | ||
TR01 | Transfer of patent right |
Effective date of registration: 20240801 Address after: Room 521, 4th Floor, No. 71 Chaoyang Road, Chaoyang District, Beijing 100123 Patentee after: Beijing Weixun Futong Technology Co.,Ltd. Country or region after: China Address before: 100083 No. 30, Haidian District, Beijing, Xueyuan Road Patentee before: University OF SCIENCE AND TECHNOLOGY BEIJING Country or region before: China |
|
TR01 | Transfer of patent right |