本发明专利技术公开了一种防篡改可信索引查询方法、装置以及电子设备,本发明专利技术的主要构思在于,除在区块链上保存区块、交易完整可信的信息之外,在链上构建区块、交易、账户、合约等的索引,在索引中仅保存快速查询信息和具体信息在链上的地址,降低数据库压力,达到实时查询;在构建索引时使用哈希锁定机制,同时在上下相邻索引行中通过字段信息建立上下文链接,通过哈希锁定和上下文链接机制防止索引存储错误或被篡改,将索引与区块链或交易信息进行绑定,确保从索引查询的数据同样可信,本发明专利技术在安全可信的前提下,解决大数据量下区块链、交易、账户、合约等信息查询过程中遇到的性能低下问题,提高了区块链在大数据量下的可用性。提高了区块链在大数据量下的可用性。提高了区块链在大数据量下的可用性。
【技术实现步骤摘要】
防篡改可信索引查询方法、装置以及电子设备
[0001]本专利技术涉及区块链
,尤其涉及一种防篡改可信索引查询方法、装置以及电子设备。
技术介绍
[0002]随着科学技术的发展,以去中心化、安全等诸多优点的区块链技术应用的业务场景越来越多,区块链技术是一种共享的、不可篡改的账本,在分布式环境下存储大量全序关系的交易数据记录,数据均存储在区块内并以区块的粒度进行管理。随着交易量的增加,在区块链上存放的数据也会日益增多,对应的数据区块、交易数据总量、交易账户、合约地址等条件查询在区块链数量不断增加的情况下会变得越来越慢,最终无法满足使用的要求,严重影响区块链在大数据量、长期业务中进行使用。
[0003]具体而言,区块链系统中的区块、交易是以链表格式存储,现有的方法在对数据区块、交易数据总量、交易账户、合约地址等条件查询时会遍历每一个区块里的每一条交易记录,当数据量较大时,该方法存在耗时长、更新慢等问题,严重影响系统性能。
[0004]此外,在存储数据时,现有的技术方案直接将区块链的索引数据按传统索引方式进行生成和存储,即笼统地将数据存入文件或库表中,且生成的索引记录之间是独立的。这样的方式,不仅当数据较多时容易造成数据访问压力过大,存在数据冗余的问题,而且还容易发生某些异常情况索引数据本身存储发送错误或被恶意篡改,导致区块链系统通过错误的索引查询错误的数据,降低了区块链系统本身的可信度,造成重大安全风险。
技术实现思路
[0005]鉴于上述,本专利技术旨在提供一种防篡改可信索引查询方法、装置以及电子设备,以解决大数据量场景下访问压力过大且存在可信度低的问题。
[0006]本专利技术采用的技术方案如下:
[0007]第一方面,本专利技术提供了一种防篡改可信索引查询方法,其中包括:
[0008]在链上预定义用于查询各区块及交易相关数据的索引,并添加hash值字段,生成对应的索引字段;
[0009]依次遍历区块链上各区块,将所需查询的数据添加进索引字段中,且在索引字段中仅保存预设的查询信息和所需查询信息在区块链上的地址;
[0010]在相邻索引之间构建上下文链接字段;
[0011]利用哈希锁定机制,将各索引记录与区块链或交易相关的数据进行绑定;
[0012]以表单形式存储构建出的多条索引记录,且在查询时检索索引表得到对应的数据信息。
[0013]在其中至少一种可能的实现方式中,所述在查询时检索索引表得到对应的数据信息包括:
[0014]在查询数据时根据取出的索引信息生成哈希值,与表中存储的哈希值进行第一校
验:
[0015]如果第一校验结果为正确,则获取索引记录或根据索引记录从区块链上取出对应的数据,并再进行上下文链接字段检查;
[0016]如果第一校验结果为错误或者上下文链接字段检查失败,则对该条索引记录进行重建。
[0017]在其中至少一种可能的实现方式中,对索引进行重建的方式包括:
[0018]从索引表中取最后一条索引记录并生成相应的哈希值,用于与索引表中的哈希值进行第二校验:
[0019]如果第二校验结果为不同,则依次取索引表中上一条记录重复进行第二校验直至校验成功,并从校验成功处开始重建索引;
[0020]如果第二校验结果为相同,则从该索引记录处添加信息以重建索引。
[0021]在其中至少一种可能的实现方式中,所述将各索引记录与区块链或交易相关的数据进行绑定包括:
[0022]将需要添加进索引字段中的数据拼接成字符串,并使用哈希散列算法进行散列处理,同时使用节点证书生成数字签名哈希值,并将所述数字签名哈希值放入索引字段的所述hash值字段中。
[0023]在其中至少一种可能的实现方式中,所述将需要添加进索引字段中的数据拼接成字符串包括:
[0024]将除所述hash值字段以外的其他字段的值,按照预设格式进行拼接,并根据值的数据类型进行对应转换。
[0025]在其中至少一种可能的实现方式中,所述在相邻索引之间构建上下文链接字段包括:
[0026]基于当前区块之前所有交易数以及当前区块的交易数,以行为单位进行上下索引行链接。
[0027]在其中至少一种可能的实现方式中,所述以行为单位进行上下索引行链接采用如下算法:
[0028]上一行当前区块之前的所有交易数与当前区块的交易数的总和,等于下一行的当前区块的所有交易数。
[0029]第二方面,本专利技术提供了一种防篡改可信索引查询装置,其中包括:
[0030]索引定义模块,用于在链上预定义用于查询各区块及交易相关数据的索引,并添加hash值字段,生成对应的索引字段;
[0031]索引信息添加模块,用于依次遍历区块链上各区块,将所需查询的数据添加进索引字段中,且在索引字段中仅保存预设的查询信息和所需查询信息在区块链上的地址;
[0032]索引链接模块,用于在相邻索引之间构建上下文链接字段;
[0033]索引数据绑定模块,用于利用哈希锁定机制,将各索引记录与区块链或交易相关的数据进行绑定;
[0034]查询索引表模块,用于以表单形式存储构建出的多条索引记录,且在查询时检索索引表得到对应的数据信息。
[0035]第三方面,本专利技术提供了一种电子设备,其中包括:
[0036]一个或多个处理器、存储器以及一个或多个计算机程序,所述存储器可以采用非易失性存储介质,其中所述一个或多个计算机程序被存储在所述存储器中,所述一个或多个计算机程序包括指令,当所述指令被所述设备执行时,使得所述设备执行如第一方面或者第一方面的任一可能实现方式中的所述方法。
[0037]本专利技术的主要构思在于,除在区块链上保存区块、交易完整可信的信息之外,在链上构建区块、交易、账户、合约等的索引,且在索引中仅需保存需快速查询的信息和具体信息在链上的地址,降低数据库压力,达到实时查询;在构建索引时使用哈希锁定机制,同时在上下相邻索引行中通过字段信息建立上下文链接,通过哈希锁定和上下文链接机制防止索引存储错误或被篡改,将索引与区块链或交易信息进行绑定,确保从索引查询的数据同样可信。本专利技术在安全可信的前提下,解决大数据量下区块链、交易、账户、合约等信息查询过程中遇到的性能低下问题,提高了区块链在大数据量下的可用性。
[0038]进一步地,本法专利技术还提出针对可信防篡改的索引查询验证和重建机制,确保出现索引被篡改后可以提示索引异常和针对错误的索引进行自动重建。
[0039]对于现有方式,本专利技术方案至少具有如下优势:
[0040](1)当区块链数据量较多时,按传统方式查询数据需要依次遍历整个区块链,耗时较长,而使用本专利技术方案后,建立构建区块、交易、账户、合约的索引,提高数据查询性能,实现高效的实时查询效果;
[0041](2)本专利技术方案中仅需保存区块、交易、账户、合约的索引信息,通过哈希字段、上下文链接防篡改,不同于以往在链下保存区块中的所有交易信息,从而能本文档来自技高网...
【技术保护点】
【技术特征摘要】
1.一种防篡改可信索引查询方法,其特征在于,包括:在链上预定义用于查询各区块及交易相关数据的索引,并添加hash值字段,生成对应的索引字段;依次遍历区块链上各区块,将所需查询的数据添加进索引字段中,且在索引字段中仅保存预设的查询信息和所需查询信息在区块链上的地址;在相邻索引之间构建上下文链接字段;利用哈希锁定机制,将各索引记录与区块链或交易相关的数据进行绑定;以表单形式存储构建出的多条索引记录,且在查询时检索索引表得到对应的数据信息。2.根据权利要求1所述的防篡改可信索引查询方法,其特征在于,所述在查询时检索索引表得到对应的数据信息包括:在查询数据时根据取出的索引信息生成哈希值,与表中存储的哈希值进行第一校验:如果第一校验结果为正确,则获取索引记录或根据索引记录从区块链上取出对应的数据,并再进行上下文链接字段检查;如果第一校验结果为错误或者上下文链接字段检查失败,则对该条索引记录进行重建。3.根据权利要求2所述的防篡改可信索引查询方法,其特征在于,对索引进行重建的方式包括:从索引表中取最后一条索引记录并生成相应的哈希值,用于与索引表中的哈希值进行第二校验:如果第二校验结果为不同,则依次取索引表中上一条记录重复进行第二校验直至校验成功,并从校验成功处开始重建索引;如果第二校验结果为相同,则从该索引记录处添加信息以重建索引。4.根据权利要求1所述的防篡改可信索引查询方法,其特征在于,所述将各索引记录与区块链或交易相关的数据进行绑定包括:将需要添加进索引字段中的数据拼接成字符串,并使用哈希散列算法进行散列处理,同时使用节点证书生成数字签名哈希值,并将所述数字签名哈希值放入索引字段的所述hash值字段中。5.根据权利要求4所述的防篡改可信索引查询方法,其特征在于,所述将需要添加进索引字段中的数据拼接...
【专利技术属性】
技术研发人员:詹大卫,任园,闻储,米勇,况建东,刘彬,陆逸康,
申请(专利权)人:科大讯飞股份有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。