【技术实现步骤摘要】
面向信誉
‑
行为关联双区块链的可验证查询优化方法
[0001]本专利技术涉及数据溯源和区块链
,具体而言,本专利技术涉及一种面向信誉
‑
行为关联双区块链的可验证查询优化方法。
技术介绍
[0002]区块链是所有区块单向连接的链表结构,在查询历史交易时需要对整个链表进行遍历,导致了查询时间偏高,具有较高的时间复杂度,仅支持以交易哈希为关键字等少数查询,在这种情况下,追踪溯源难以实现快速高效的查询,完全无法满足基本的查询需求。为了解决由于区块链链表结构造成的查询效率较低的问题,现有提高区块链系统查询性能的大多数是通过将区块数据复制到链下数据库的方式以提供更多查询服务,但区块数据追加存储方式极大增加了存储成本,必须在保证存储成本的基础上使查询服务满足应用中通过信誉索引用户行为轨迹等数据溯源需求。
[0003]信誉
‑
行为关联双区块链系统作为一个由互不信任的多方共同维护的分布式账本,该系统向外提供的数据查询服务必须满足查询结果集未被篡改且完整性可验证的要求,以保证查 ...
【技术保护点】
【技术特征摘要】
1.一种面向信誉
‑
行为关联双区块链的可验证查询优化方法,其特征在于,包括:普通节点对边缘节点发出查询请求;所述边缘节点中构建有索引结构和验证索引结构,将所述索引结构的根结点哈希值和验证索引结构根存储在区块头中,随区块在全网达成共识;其中,所述索引结构包括块间索引结构、信誉链块内索引结构和行为数据链块内索引结构,所述验证索引结构包括信誉链验证索引结构和行为数据链验证索引结构,所述块间索引为基于树骨架和跳转列表的MBerkle树山脉索引结构;所述信誉链块内索引为面向多关键字查询的两层树结构;所述行为数据链块内索引为单层树结构;在收到查询请求后,边缘节点基于索引结构进行查询,得到查询结果集;并基于验证索引结构构造验证对象,将查询结果集和验证对象返回给普通节点;其中,基于块间索引结构进行查询包括:根据查询关键字判断是哪一种搜索码,与跳转列表根结点相比较,若大于,在当前最新MBerkle树中查询;否则按照插值查询方法在跳转列表叶子结点中查询,找到指向对应MBerkle树的指针,再在该索引中查询;以MBerkle树根结点为起始点,顺次判断结点左右子树是否符合查询条件,若符合则往下查询,直至叶子结点,得到指向所查询区块的指针并获取相应区块,否则查询结束;基于信誉链块内索引进行查询包括:在该索引的顶层索引中查询时,以顶层索引根结点为起始结点,按照第一预定查询顺序从结点左右子树往下查询,直至查询到对应的底层索引根结点;在底层索引中查询时,以底层索引根结点为起始结点,按照第一预定查询顺序或第二预定查询顺序从结点左右子树往下查询;基于行为链块内索引进行查询包括:以根结点为起始结点,按照第一预定查询顺序或第三预定查询顺序从结点左右子树进行查询;若查询的是行为数据交易且行为显示的是其哈希值,则向IPFS网络发送请求下载真实行为数据并验证是否一致;普通节点根据验证对象以及存储在区块头中的验证索引结构根验证查询结果集的完整性。2.根据权利要求1所述的一种面向信誉
‑
行为关联双区块链的可验证查询优化方法,其特征在于,所述块间索引结构的构建包括:预设分组大小N
block
,计算对应的叶子结点个数N
leaf
=N
block
和非叶子结点个数其中表示树骨架的高度,N
b
表示非叶子结点包含子结点的个数,根据树骨架中所有结点的数量,批量申请对应大小的结点数组,构建树骨架,为分组块间索引预分配一定的空间,构建树骨架的顺序为自左向右、自下而上;当产生新区块且区块号为1时,触发块间索引更新,在第一个空闲叶子结点处存储搜索码值信息,即区块号、块内最后一个交易号和时间戳,及指向区块存储位置的指针和该结点的哈希值,并且树根结点存储指向该结点的指针;再产生一个新区块时,将搜索码值等信息依次放置在非空闲叶子结点的右边结点,并向上递归更新,若将目前已装载的最高层结点不是根结点,树根结点存储指向最高层结点的指针;当新区块的区块号为N
block
+1时,预设的块间索引已装载满,跳转列表需更新,即跳转列表的叶子结点中追加存储前一区块的搜索码值信息和指向分组块间索引的指针、更新根结点中最大搜索码值,并且重复上述步骤,创建新的分组块间索引和当该索引装载满时跳转
列表更新。3.根据权利要求1所述的一种面向信誉
‑
行为关联双区块链的可验证查询优化方法,其特征在于,信誉链块内索引结构的构建包括:在接收信誉交易的过程中,以某时间窗口进行切分,形成一个个连续的分片;当接收到一个完整分片信誉交易后,在接收下一个分片信誉交易的同时,并行的对上一个分片按照被评价者进行分类,并使用一个线程对已分类的分片进行归并,等最后一个分片分类完成后,作最后一次归并使得信誉交易全部分类,并按分类进行排序;使用多线程并行的对所有分类采用桶排序方法进行交易排序;每当产生新区块,构建一个新的块内索引结构,其中块内索引结构是两层索引结构,分为底层结构和顶层结构;根据上述分类排序后信誉交易子集个数,计算相应底层结构中所需的叶子结点个数和非叶子结点个数,根据所有结点的个数,批量申请对应大小的结点数组,构建树骨架,为底层索引预分配空间,树骨架构建顺序为自左向右、自下而上;选取信誉值和评价方为搜索码值,使用多线程和以自下而上方式批量向各个底层索引装载,其中非叶子结点中存储lMinrep和rMaxrep,lMinrep表示左子树中信誉值最小值和rMaxrep表示右子树中信誉值最大值,并用二进制位代替直接存储评价方;初始化所有叶子结点的父结点的SHBF有m位且都为0,并将hash1(eva)%m,...,hash
k/2
(eva)%m,hash1(eva)%m+o(eva),...,hash
k/2
(eva)%m+o(eva)置于1,其...
【专利技术属性】
技术研发人员:于尧,张中源,张荟,胡文健,郭磊,
申请(专利权)人:东北大学,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。