CN112732803A - 一种共识区块链交易查询验证方法及系统 - Google Patents
一种共识区块链交易查询验证方法及系统 Download PDFInfo
- Publication number
- CN112732803A CN112732803A CN202110365735.4A CN202110365735A CN112732803A CN 112732803 A CN112732803 A CN 112732803A CN 202110365735 A CN202110365735 A CN 202110365735A CN 112732803 A CN112732803 A CN 112732803A
- Authority
- CN
- China
- Prior art keywords
- transaction
- server
- query request
- hash value
- consensus
- 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
Images
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
- G06F16/2471—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/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
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q40/00—Finance; Insurance; Tax strategies; Processing of corporate or income taxes
- G06Q40/04—Trading; Exchange, e.g. stocks, commodities, derivatives or currency exchange
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/21—Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/2151—Time stamp
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- General Engineering & Computer Science (AREA)
- Business, Economics & Management (AREA)
- Software Systems (AREA)
- Data Mining & Analysis (AREA)
- Accounting & Taxation (AREA)
- Finance (AREA)
- Computer Security & Cryptography (AREA)
- Strategic Management (AREA)
- Bioethics (AREA)
- Economics (AREA)
- Technology Law (AREA)
- General Business, Economics & Management (AREA)
- Development Economics (AREA)
- Health & Medical Sciences (AREA)
- Marketing (AREA)
- General Health & Medical Sciences (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- Fuzzy Systems (AREA)
- Mathematical Physics (AREA)
- Probability & Statistics with Applications (AREA)
- Computational Linguistics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提出了一种共识区块链交易查询验证方法及系统,该方法包括:步骤1,服务器接收到客户端发来的交易查询请求时,对所述交易查询请求中的交易进行分解得到分解交易查询请求;步骤2,所述服务器对各所述分解交易查询请求进行分片路由以溯源到对应的共识区块链;步骤3,溯源到的共识区块链对相应的分解交易验证资产锁定或资产释放操作是否已成功,并将验证结果返回给所述服务器;步骤4,所述服务器根据所述验证结果向所述客户端反馈查询结果:若所述交易相关的资产锁定和释放操作全部成功,则反馈交易成功,否则反馈交易失败。本发明既能够保证交易查询验证的结果准确、高效,又避免了服务器的性能瓶颈。
Description
技术领域
本发明涉及共识区块链技术领域,尤其涉及一种共识区块链交易查询验证方法及系统。
背景技术
整个区块链网络中的节点被人为的划分为多个独立的联盟链系统,即共识区块链或者叫共识单链,在一个高负载、高强度、大容量、可扩展的联盟链系统中,不会减弱共识区块链原本的去中心化和安全性。共识单链内部通过共识算法达成共识,且不与其他共识单链做交互,形成一个单独的闭环,每个共识单链负责自己的部分交易,处理自己的核心数据。
实现跨链通信的跨链通信平台整体架构呈现星型模式,跨链通信平台中的服务器则是整个架构的核心,负责与各个共识单链沟通,打通共识单链之间的孤岛。跨链通信平台除开核心部分,其余部分称为共识组,它由多个同质的、地位对等的、功能一致的,并且逻辑上也尽量隔离的共识单链组成。跨链通信平台不关注共识单链内部的实现方式,理论上只要符合联盟链的特征,都可以并行的运行在跨链通信平台架构网络中。多个独立及并行的共识单链隔离的处理工作,只通过跨链通信机制进行共识单链的互联互通,从而分摊全网的吞吐压力和状态维护工作。
跨链通信平台采用联盟链做架构,不同于公有链,联盟链的一般具备一个CA机构,它有限的发放节点的读写权限,并且对于签发的证书做背书。在安全性方面,很多对于公有链无法适用的架构方案在联盟链上都可以得到正确的实施和部署,比如公有链需要安全和共识机制来抵御51%攻击,在同等条件下,一般认为公有链必须满足抵御1%的能力,而联盟链通过合理的CA签发背书,无须使用重组、新的共识机制。所以关注基于联盟链的跨链通信平台,其“安全性”的重心在于对其他同质的闭环的机构和组织的互信、互联、互通上,其“去中心化”的中心在于保障其他同质机构和组织的多中心化,在保障“安全性”和“去中心化”不会因为采取的新架构而损失的前提下,需要做到整个系统的性能大幅度提升。另外,联盟链交易确认时间短,交易延时低,联盟链一般不会存在链分叉的情况,所以一旦确认了交易上链,就可以认定交易成功。跨链通信平台采用联盟链还有在应用的考虑,公有链一般是以币为主体做资产所属权的互换,形式单一,而联盟链更侧重于业务实现,比如存证保全业务、商品溯源业务、慈善公益业务、供应链金融等,应用场景广泛并且符合目前发展的需要。
设计以非侵入的联盟链为基础的跨链通信平台,主要需要考虑以下几点:
(1)分片路由方案。分片方案要求链内交易和跨链交易能够路由到正确的共识区块链上做资产的锁定和释放,并且在资产交易完成后能够被正确的路由到对应共识区块链上做查询。
(2)跨链方案。跨链方案使得孤岛的共识区块链之间能够互联互通,跨链交易的双方能够彼此互信,跨链的交易能够被正确执行、查询和验证。
因此,在前期已经实现了执行链内交易和跨链交易的情况下,本发明主要解决如何对交易进行查询验证的问题。
发明内容
本发明要解决的技术问题是,提供一种共识区块链交易查询验证方法及系统,如何使得交易能够被正确查询和验证。
本发明采用的技术方案是,所述共识区块链交易查询验证方法,包括:
步骤1,服务器接收到客户端发来的交易查询请求时,对所述交易查询请求中的交易进行分解得到分解交易查询请求;
步骤2,所述服务器对各所述分解交易查询请求进行分片路由以溯源到对应的共识区块链;
步骤3,溯源到的共识区块链对相应的分解交易验证资产锁定或资产释放操作是否已成功,并将验证结果返回给所述服务器;
步骤4,所述服务器根据所述验证结果向所述客户端反馈查询结果:若所述交易相关的资产锁定和释放操作全部成功,则反馈交易成功,否则反馈交易失败。
可选的,所述分解交易查询请求包括:交易输入查询请求、交易输出查询请求。
可选的,所述步骤1,还包括:
所述服务器对交易输入查询请求中的交易输入做双花验证,具体验证方式如下:
验证准备步骤:所述服务器事先在内存中以链表的形式将交易记录存储于链表的节点上,链表上的每一个节点称为一个区块,每个区块保存了前一个区块的哈希值、当前区块的merkel树的根节点、生成区块的时间戳、区块包含的交易数目和多个交易信息,每一个交易信息包含交易输入、交易输出、交易的时间戳以及与实际业务有关的附加信息;当前区块的merkel树的根节点指向内存中以merkel树结构存储的各资源的多层哈希值,各不同的资源是连续存储于内存中的,所述服务器在内存中存储有指向各交易资源的指针;
验证实施步骤:所述服务器先通过对交易输入查询请求的报文头做哈希得到哈希值确定出指向交易输入的资源的指针,若确定出的指向交易输入的同一资源的指针只有一个,则判定不存在双花交易;若确定出的指向交易输入的同一资源的指针有两个,则进一步判断这两个指针指向merkel树结构中的资源是否为同一个,若是,则判定不存在双花交易,否则判定存在双花交易;
所述步骤4还包括:所述服务器根据所述验证结果以及双花验证的结果向所述客户端反馈查询结果:若所述交易相关的资产锁定和释放操作全部成功且不存在双花交易,则反馈交易成功,否则反馈交易失败。
可选的,所述步骤3,还包括:溯源到的共识区块链对交易输入查询请求中的交易输入做双花验证。
可选的,所述交易输出查询请求的报文头信息包括:处理一资源的最近一次交易的服务器写入的该服务器处理最近一次交易的时间戳;所述交易输入查询请求的报文头信息包括:处理该资源的前一次交易的服务器写入的该服务器处理前一次交易的时间戳;所述步骤2,包括:
所述服务器根据分解交易查询请求的报文头信息中的时间戳确定出对应的分片组元信息,基于分片组元信息所提供的哈希空间组成哈希环,采用一致性哈希散列算法将分解交易查询请求路由到对应的共识区块链;
所述分片组元信息即为一段时间内共识区块链网络的所有共识区块链信息,一旦某一时段共识区块链数量发生变化,就生成新的与该时段对应的分片组元信息。
可选的,采用一致性哈希散列算法将分解交易查询请求路由到对应的共识区块链,包括:
对分解交易查询请求的报文头信息做哈希计算得到目标哈希值,根据所述目标哈希值在哈希环中顺时针寻找一个虚拟节点,该虚拟节点的哈希值是大于所述目标哈希值的最近的一个哈希值,若没有比所述目标哈希值大的哈希值,则继续顺时针找到哈希环中的下一个即最小的第一个哈希值对应的虚拟节点;该虚拟节点对应的真实节点即为找到的共识区块链;哈希环是由整个哈希值空间组成的一个虚拟的圆环,虚拟节点的哈希值也在这个圆环中,虚拟节点与真实节点是多对一的关系。
可选的,所述分解交易查询请求的报文头信息还至少包括以下之一:
写入时间戳的服务器的身份信息;
自增序列,所述自增序列用于区分服务器在同一时间戳内所处理的不同资源。
本发明提供一种共识区块链交易查询验证系统,包括:
服务器,用于接收到客户端发来的交易查询请求时,对所述交易查询请求中的交易进行分解得到分解交易查询请求;对各所述分解交易查询请求进行分片路由以溯源到对应的共识区块链;
所述共识区块链,用于对相应的分解交易验证资产锁定或资产释放操作是否已成功,并将验证结果返回给所述服务器;
所述服务器,还用于根据所述验证结果向所述客户端反馈查询结果:若所述交易相关的资产锁定和释放操作全部成功,则反馈交易成功,否则反馈交易失败。
可选的,所述分解交易查询请求包括:交易输入查询请求、交易输出查询请求。
可选的,所述服务器,还用于:
对交易输入查询请求中的交易输入做双花验证,具体验证方式如下:
所述服务器事先在内存中以链表的形式将交易记录存储于链表的节点上,链表上的每一个节点称为一个区块,每个区块保存了前一个区块的哈希值、当前区块的merkel树的根节点、生成区块的时间戳、区块包含的交易数目和多个交易信息,每一个交易信息包含交易输入、交易输出、交易的时间戳以及与实际业务有关的附加信息;当前区块的merkel树的根节点指向内存中以merkel树结构存储的各资源的多层哈希值,各不同的资源是连续存储于内存中的,所述服务器在内存中存储有指向各交易资源的指针;
所述服务器先通过对交易输入查询请求的报文头做哈希得到哈希值确定出指向交易输入的资源的指针,若确定出的指向交易输入的同一资源的指针只有一个,则判定不存在双花交易;若确定出的指向交易输入的同一资源的指针有两个,则进一步判断这两个指针指向merkel树结构中的资源是否为同一个,若是,则判定不存在双花交易,否则判定存在双花交易;
所述服务器根据所述验证结果以及双花验证的结果向所述客户端反馈查询结果:若所述交易相关的资产锁定和释放操作全部成功且不存在双花交易,则反馈交易成功,否则反馈交易失败。
可选的,所述共识区块链,还用于:对交易输入查询请求中的交易输入做双花验证。
可选的,所述交易输入查询请求的报文头信息包括:处理同一资源的前一次交易的服务器写入的该服务器处理前一次交易的时间戳;所述交易输出查询请求的报文头信息包括:处理同一资源的最近一次交易的服务器写入的该服务器处理最近一次交易的时间戳;
所述服务器,用于根据分解交易查询请求的报文头信息中的时间戳确定出对应的分片组元信息,基于分片组元信息所提供的哈希空间组成哈希环,采用一致性哈希散列算法将分解交易查询请求路由到对应的共识区块链;
所述分片组元信息即为一段时间内共识区块链网络的所有共识区块链信息,一旦某一时段共识区块链数量发生变化,就生成新的与该时段对应的分片组元信息。
可选的,采用一致性哈希散列算法将分解交易查询请求路由到对应的共识区块链,包括:
对分解交易查询请求的报文头信息做哈希计算得到目标哈希值,根据所述目标哈希值在哈希环中顺时针寻找一个虚拟节点,该虚拟节点的哈希值是大于所述目标哈希值的最近的一个哈希值,若没有比所述目标哈希值大的哈希值,则继续顺时针找到哈希环中的下一个即最小的第一个哈希值对应的虚拟节点;该虚拟节点对应的真实节点即为找到的共识区块链;哈希环是由整个哈希值空间组成的一个虚拟的圆环,虚拟节点的哈希值也在这个圆环中,虚拟节点与真实节点是多对一的关系。
可选的,所述分解交易查询请求的报文头信息还至少包括以下之一:
写入时间戳的服务器的身份信息;
自增序列,所述自增序列用于区分服务器在同一时间戳内所处理的不同资源。
采用上述技术方案,本发明至少具有下列优点:
本发明所述共识区块链交易查询验证方法及系统,将单笔交易的验证工作拆分为对交易输入的资产锁定操作的验证和对交易输出的资产释放操作的验证,服务器的作用是验证这两个方面中共识区块链上交易的正确性,它是处理跨链交易的核心。服务器接收到客户端的交易查询请求后,不需要自己做验证的工作,而是利用实现跨链交易时采用的分片路由的方法,准确溯源到执行资产锁定或资产释放的共识区块链,由共识区块链完成验证具体资产是否已经锁定和验证具体资产是否释放成功。服务器不仅能支持跨链交易的实现,而且能兼容链内交易,故服务器所实现的交易查询验证无须区分跨链交易和链内交易,均可实现查询验证。另外,验证交易是否会产生“双花”,即验证跨链交易与链内交易是否存在双花攻击,通过采用链表+哈希表的方式最多经过两次判断进行去重来验证跨链交易与跨链交易是否存在双花攻击。综上,既能够保证交易查询验证的结果准确、高效,又避免了服务器的性能瓶颈。
附图说明
图1 为本发明第一实施例的共识区块链交易查询验证方法流程图;
图2 为本发明第二实施例的共识区块链交易查询验证方法流程图;
图3 为本发明第二实施例验证双花时所采用的资源存储数据结构示意图。
具体实施方式
为更进一步阐述本发明为达成预定目的所采取的技术手段及功效,以下结合附图及较佳实施例,对本发明进行详细说明如后。
本发明第一实施例,一种共识区块链交易查询验证方法,如图1所示,包括以下具体步骤:
步骤1,服务器接收到客户端发来的交易查询请求时,对所述交易查询请求中的交易进行分解得到分解交易查询请求;可选的,所述分解交易查询请求包括:交易输入查询请求、交易输出查询请求。
步骤2,所述服务器对各所述分解交易查询请求进行分片路由以溯源到对应的共识区块链;
在共识区块链领域,每次资源的转移都是一笔会记录在账本上的交易,在本次交易中作为交易输入的资源来源于前一次交易中作为交易输出的该资源;
可选的,所述交易输入查询请求的报文头信息包括:处理同一资源的前一次交易的服务器写入的该服务器处理前一次交易的时间戳;所述交易输出查询请求的报文头信息包括:处理同一资源的最近一次交易的服务器写入的该服务器处理最近一次交易的时间戳。
所述步骤2,包括:
所述服务器根据分解交易查询请求的报文头信息中的时间戳确定出对应的分片组元信息,基于分片组元信息所提供的哈希空间组成哈希环,采用一致性哈希散列算法将分解交易查询请求路由到对应的共识区块链;
所述分片组元信息即为一段时间内共识区块链网络的所有共识区块链信息,一旦某一时段共识区块链数量有新增,就生成新的与该时段对应的分片组元信息。
进一步的,采用一致性哈希散列算法将分解交易查询请求路由到对应的共识区块链,包括:
对分解交易查询请求的报文头信息做哈希计算得到目标哈希值,根据所述目标哈希值在哈希环中顺时针寻找一个虚拟节点,该虚拟节点的哈希值是大于所述目标哈希值的最近的一个哈希值,若没有比所述目标哈希值大的哈希值,则继续顺时针找到哈希环中的下一个即最小的第一个哈希值对应的虚拟节点;该虚拟节点对应的真实节点即为找到的共识区块链;哈希环是由整个哈希值空间组成的一个虚拟的圆环,虚拟节点的哈希值也在这个圆环中,虚拟节点与真实节点是多对一的关系。
步骤3,溯源到的共识区块链对相应的分解交易验证资产锁定或资产释放操作是否已成功,并将验证结果返回给所述服务器;
步骤4,所述服务器根据所述验证结果向所述客户端反馈查询结果:若所述交易相关的资产锁定和释放操作全部成功,则反馈交易成功,否则反馈交易失败。
本发明实施例所述共识区块链交易查询验证方法,将单笔交易的验证工作拆分为对交易输入的资产锁定操作的验证和对交易输出的资产释放操作的验证,服务器接收到客户端的交易查询请求后,不需要自己做验证的工作,而是利用实现跨链交易时采用的分片路由的方法,准确溯源到执行资产锁定或资产释放的共识区块链,由共识区块链完成验证具体资产是否已经锁定和验证具体资产是否释放成功。因此,既能够保证交易查询验证的结果准确、高效,又避免了服务器的性能瓶颈。
本发明第二实施例,一种共识区块链交易查询验证方法,如图2所示,包括:
步骤1,服务器接收到客户端发来的交易查询请求时,对所述交易查询请求中的交易进行分解得到分解交易查询请求;所述服务器对交易输入查询请求中的交易输入做双花验证,若存在双花交易,则反馈交易失败,否则执行步骤2;
步骤2,所述服务器对各所述分解交易查询请求进行分片路由以溯源到对应的共识区块链;
步骤3,溯源到的共识区块链对相应的分解交易验证资产锁定或资产释放操作是否已成功,并将验证结果返回给所述服务器;
步骤4,所述服务器根据所述验证结果向所述客户端反馈查询结果:若所述交易相关的资产锁定和释放操作全部成功且不存在双花交易,则反馈交易成功,否则反馈交易失败。
可选的,所述分解交易查询请求包括:交易输入查询请求、交易输出查询请求。
可选的,所述步骤1中,所述服务器对交易输入查询请求中的交易输入做双花验证,具体验证方式如下:
验证准备步骤:如图3所示,所述服务器事先在内存中以链表linkedlist的形式将交易记录存储于链表的节点上,链表linkedlist可以是双向链表,也可以是单向链表。链表上的每一个节点称为一个区块,每个区块保存了前一个区块的哈希值pre hash、当前区块的merkel树的根节点merkel root、生成区块的时间戳timestamp、区块包含的交易数目和多个交易信息,每一个交易信息包含交易输入、交易输出、交易的时间戳以及与实际业务有关的附加信息;当前区块的merkel树的根节点指向内存中以merkel树结构存储的各资源的多层哈希值,各个不同的交易资源xtx data是连续存储于内存中的,所述服务器在内存中开辟一块空间linkedhashmap存储有指向各交易资源的指针,每个xtx[] data代表一个交易分解后所得到的分解交易的集合,这些分解交易的指针分别指向对应的资源。
验证实施步骤:所述服务器先通过对交易输入查询请求的报文头做哈希得到哈希值确定出指向交易输入的资源的指针,若确定出的指向交易输入的同一资源的指针只有一个,则判定不存在双花交易;若确定出的指向交易输入的同一资源的指针有两个,则进一步判断这两个指针指向merkel树结构中的资源是否为同一个,若是,则判定不存在双花交易,否则判定存在双花交易;
所述步骤4还包括:所述服务器根据所述验证结果以及双花验证的结果向所述客户端反馈查询结果:若所述交易相关的资产锁定和释放操作全部成功且不存在双花交易,则反馈交易成功,否则反馈交易失败。
优选的,所述步骤3,还包括:溯源到的共识区块链对交易输入查询请求中的交易输入做双花验证。
本发明实施例与第一实施例大致相同,区别在于,本实施例中还加入了服务器端和共识区块链端针对交易输入查询请求中的交易输入的双花验证步骤。验证交易是否会产生“双花”,即验证交易是否存在双花攻击,通过采用链表+哈希表的方式最多经过两次判断进行去重来验证交易是否存在双花攻击。本发明实施例能够从资源是否成功执行锁定和释放操作、验证是否存在双花攻击这两个方面给出查询验证结果,更真实准确地反映交易的情况。
本发明第三实施例,一种共识区块链交易查询验证方法,包括以下具体步骤:
步骤1,服务器接收到客户端发来的交易查询请求时,对所述交易查询请求中的交易进行分解得到分解交易查询请求;可选的,所述分解交易查询请求包括:交易输入查询请求、交易输出查询请求。
步骤2,所述服务器对各所述分解交易查询请求进行分片路由以溯源到对应的共识区块链;
在共识区块链领域,每次资源的转移都是一笔会记录在账本上的交易,在本次交易中作为交易输入的资源来源于前一次交易中作为交易输出的该资源;
可选的,所述交易输入查询请求的报文头信息包括:处理同一资源的前一次交易的服务器写入的该服务器处理前一次交易的时间戳、该服务器的身份信息以及自增序列,所述自增序列用于区分服务器在同一时间戳内所处理的不同资源;
所述交易输出查询请求的报文头信息包括:处理同一资源的最近一次交易的服务器写入的该服务器处理最近一次交易的时间戳、该服务器的身份信息以及自增序列;
所述步骤2,包括:
所述服务器根据分解交易查询请求的报文头信息中的时间戳确定出对应的分片组元信息,基于分片组元信息所提供的哈希空间组成哈希环,采用一致性哈希散列算法将分解交易查询请求路由到对应的共识区块链;
所述分片组元信息即为一段时间内共识区块链网络的所有共识区块链信息,一旦某一时段共识区块链数量有新增,就生成新的与该时段对应的分片组元信息。
进一步的,采用一致性哈希散列算法将分解交易查询请求路由到对应的共识区块链,包括:
对分解交易查询请求的报文头信息做哈希计算得到目标哈希值,根据所述目标哈希值在哈希环中顺时针寻找一个虚拟节点,该虚拟节点的哈希值是大于所述目标哈希值的最近的一个哈希值,若没有比所述目标哈希值大的哈希值,则继续顺时针找到哈希环中的下一个即最小的第一个哈希值对应的虚拟节点;该虚拟节点对应的真实节点即为找到的共识区块链;哈希环是由整个哈希值空间组成的一个虚拟的圆环,虚拟节点的哈希值也在这个圆环中,虚拟节点与真实节点是多对一的关系。
步骤3,溯源到的共识区块链对相应的分解交易验证资产锁定或资产释放操作是否已成功,并将验证结果返回给所述服务器;
步骤4,所述服务器根据所述验证结果向所述客户端反馈查询结果:若所述交易相关的资产锁定和释放操作全部成功,则反馈交易成功,否则反馈交易失败。
本实施例所述方法与第一实施例大致相同,区别在于,本实施例中,所述分解交易查询请求的报文头信息还至少包括以下之一:
写入时间戳的服务器的身份信息;
自增序列,所述自增序列用于区分服务器在同一时间戳内所处理的不同资源。
本实施例的优势在于丰富了分解交易查询请求的报文头信息,由于分解交易查询请求的报文头信息的增长更能够保证采用一致性哈希散列算法时所得到的结果的唯一性,从而提升了对共识区块链溯源的准确性。
本发明第四实施例,与第一实施例对应,本实施例介绍一种共识区块链交易查询验证系统,包括:多个服务器和多个共识区块链,其中,
所述服务器,用于接收到客户端发来的交易查询请求时,对所述交易查询请求中的交易进行分解得到分解交易查询请求;对各所述分解交易查询请求进行分片路由以溯源到对应的共识区块链;可选的,所述分解交易查询请求包括:交易输入查询请求、交易输出查询请求。
所述共识区块链,用于对相应的分解交易验证资产锁定或资产释放操作是否已成功,并将验证结果返回给所述服务器;
所述服务器,还用于根据所述验证结果向所述客户端反馈查询结果:若所述交易相关的资产锁定和释放操作全部成功,则反馈交易成功,否则反馈交易失败。
在本次交易中作为交易输入的资源来源于前一次交易中作为交易输出的该资源;所述交易输入查询请求的报文头信息包括:处理同一资源的前一次交易的服务器写入的:该服务器处理前一次交易的时间戳;所述交易输出查询请求的报文头信息包括:处理同一资源的最近一次交易的服务器写入的:服务器处理最近一次交易的时间戳;
优选的,所述分解交易查询请求的报文头信息还至少包括以下之一:
写入时间戳的服务器的身份信息;
自增序列,所述自增序列用于区分服务器在同一时间戳内所处理的不同资源。
所述服务器,用于根据分解交易查询请求的报文头信息中的时间戳确定出对应的分片组元信息,基于分片组元信息所提供的哈希空间组成哈希环,采用一致性哈希散列算法将分解交易查询请求路由到对应的共识区块链;
所述分片组元信息即为一段时间内共识区块链网络的所有共识区块链信息,一旦某一时段共识区块链数量发生变化,就生成新的与该时段对应的分片组元信息。
可选的,采用一致性哈希散列算法将分解交易查询请求路由到对应的共识区块链,包括:
对分解交易查询请求的报文头信息做哈希计算得到目标哈希值,根据所述目标哈希值在哈希环中顺时针寻找一个虚拟节点,该虚拟节点的哈希值是大于所述目标哈希值的最近的一个哈希值,若没有比所述目标哈希值大的哈希值,则继续顺时针找到哈希环中的下一个即最小的第一个哈希值对应的虚拟节点;该虚拟节点对应的真实节点即为找到的共识区块链;哈希环是由整个哈希值空间组成的一个虚拟的圆环,虚拟节点的哈希值也在这个圆环中,虚拟节点与真实节点是多对一的关系。
在与第二实施例对应的情况下,本实施例的所述系统中,所述服务器,还用于:
对交易输入查询请求中的交易输入做双花验证,具体验证方式如下:
所述服务器事先在内存中以链表的形式将交易记录存储于链表的节点上,链表上的每一个节点称为一个区块,每个区块保存了前一个区块的哈希值、当前区块的merkel树的根节点、生成区块的时间戳、区块包含的交易数目和多个交易信息,每一个交易信息包含交易输入、交易输出、交易的时间戳以及与实际业务有关的附加信息;当前区块的merkel树的根节点指向内存中以merkel树结构存储的各资源的多层哈希值,各不同的资源是连续存储于内存中的,所述服务器在内存中存储有指向各交易资源的指针;
所述服务器先通过对交易输入查询请求的报文头做哈希得到哈希值确定出指向交易输入的资源的指针,若确定出的指向交易输入的同一资源的指针只有一个,则判定不存在双花交易;若确定出的指向交易输入的同一资源的指针有两个,则进一步判断这两个指针指向merkel树结构中的资源是否为同一个,若是,则判定不存在双花交易,否则判定存在双花交易;
所述服务器根据所述验证结果以及双花验证的结果向所述客户端反馈查询结果:若所述交易相关的资产锁定和释放操作全部成功且不存在双花交易,则反馈交易成功,否则反馈交易失败。
可选的,所述共识区块链,还用于:对交易输入查询请求中的交易输入做双花验证。
由于加入了服务器端和共识区块链端针对交易输入查询请求中的交易输入的双花验证步骤,通过采用链表+哈希表的方式最多经过两次判断进行去重来验证交易是否存在双花攻击。本发明实施例能够从资源是否成功执行锁定和释放操作、验证是否存在双花攻击这两个方面给出查询验证结果,更真实准确地反映交易的情况。
在与第三实施例对应的情况下,本实施例的所述系统中,所述分解交易查询请求的报文头信息还至少包括以下之一:
写入时间戳的服务器的身份信息;
自增序列,所述自增序列用于区分服务器在同一时间戳内所处理的不同资源。
本实施例的优势在于丰富了分解交易查询请求的报文头信息,由于分解交易查询请求的报文头信息的增长更能够保证采用一致性哈希散列算法时所得到的结果的唯一性,从而提升了对共识区块链溯源的准确性。
通过具体实施方式的说明,应当可对本发明为达成预定目的所采取的技术手段及功效得以更加深入且具体的了解,然而所附图示仅是提供参考与说明之用,并非用来对本发明加以限制。
Claims (14)
1.一种共识区块链交易查询验证方法,其特征在于,包括:
步骤1,服务器接收到客户端发来的交易查询请求时,对所述交易查询请求中的交易进行分解得到分解交易查询请求;
步骤2,所述服务器对各所述分解交易查询请求进行分片路由以溯源到对应的共识区块链;
步骤3,溯源到的共识区块链对相应的分解交易验证资产锁定或资产释放操作是否已成功,并将验证结果返回给所述服务器;
步骤4,所述服务器根据所述验证结果向所述客户端反馈查询结果:若所述交易相关的资产锁定和释放操作全部成功,则反馈交易成功,否则反馈交易失败。
2.根据权利要求1所述的方法,其特征在于,所述分解交易查询请求包括:交易输入查询请求、交易输出查询请求。
3.根据权利要求2所述的方法,其特征在于,所述步骤1,还包括:
所述服务器对交易输入查询请求中的交易输入做双花验证,具体验证方式如下:
验证准备步骤:所述服务器事先在内存中以链表的形式将交易记录存储于链表的节点上,链表上的每一个节点称为一个区块,每个区块保存了前一个区块的哈希值、当前区块的merkel树的根节点、生成区块的时间戳、区块包含的交易数目和多个交易信息,每一个交易信息包含交易输入、交易输出以及交易的时间戳;当前区块的merkel树的根节点指向内存中以merkel树结构存储的各资源的多层哈希值,所述服务器在内存中存储有指向各交易资源的指针;
验证实施步骤:所述服务器先通过对交易输入查询请求的报文头做哈希得到哈希值确定出指向交易输入的资源的指针,若确定出的指向交易输入的同一资源的指针只有一个,则判定不存在双花交易;若确定出的指向交易输入的同一资源的指针有两个,则进一步判断这两个指针指向merkel树结构中的资源是否为同一个,若是,则判定不存在双花交易,否则判定存在双花交易;
所述步骤4还包括:所述服务器根据所述验证结果以及双花验证的结果向所述客户端反馈查询结果:若所述交易相关的资产锁定和释放操作全部成功且不存在双花交易,则反馈交易成功,否则反馈交易失败。
4.根据权利要求3所述的方法,其特征在于,所述步骤3,还包括:溯源到的共识区块链对交易输入查询请求中的交易输入做双花验证。
5.根据权利要求2所述的方法,其特征在于,所述交易输出查询请求的报文头信息包括:处理一资源的最近一次交易的服务器写入的该服务器处理最近一次交易的时间戳;所述交易输入查询请求的报文头信息包括:处理该资源的前一次交易的服务器写入的该服务器处理前一次交易的时间戳;
所述步骤2,包括:
所述服务器根据分解交易查询请求的报文头信息中的时间戳确定出对应的分片组元信息,基于分片组元信息所提供的哈希空间组成哈希环,采用一致性哈希散列算法将分解交易查询请求路由到对应的共识区块链;
所述分片组元信息即为一段时间内共识区块链网络的所有共识区块链信息,一旦某一时段共识区块链数量有新增,就生成新的与该时段对应的分片组元信息。
6.根据权利要求5所述的方法,其特征在于,采用一致性哈希散列算法将分解交易路由到对应的共识区块链,包括:
对分解交易查询请求的报文头信息做哈希计算得到目标哈希值,根据所述目标哈希值在哈希环中顺时针寻找一个虚拟节点,该虚拟节点的哈希值是大于所述目标哈希值的最近的一个哈希值,若没有比所述目标哈希值大的哈希值,则继续顺时针找到哈希环中的下一个即最小的第一个哈希值对应的虚拟节点;该虚拟节点对应的真实节点即为找到的共识区块链;哈希环是由整个哈希值空间组成的一个虚拟的圆环,虚拟节点的哈希值也在这个圆环中,虚拟节点与真实节点是多对一的关系。
7.根据权利要求5所述的方法,其特征在于,所述分解交易查询请求的报文头信息还至少包括以下之一:
写入时间戳的服务器的身份信息;
自增序列,所述自增序列用于区分服务器在同一时间戳内所处理的不同资源。
8.一种共识区块链交易查询验证系统,其特征在于,包括:
服务器,用于接收到客户端发来的交易查询请求时,对所述交易查询请求中的交易进行分解得到分解交易查询请求;对各所述分解交易查询请求进行分片路由以溯源到对应的共识区块链;
所述共识区块链,用于对相应的分解交易验证资产锁定或资产释放操作是否已成功,并将验证结果返回给所述服务器;
所述服务器,还用于根据所述验证结果向所述客户端反馈查询结果:若所述交易相关的资产锁定和释放操作全部成功,则反馈交易成功,否则反馈交易失败。
9.根据权利要求8所述的系统,其特征在于,所述分解交易查询请求包括:交易输入查询请求、交易输出查询请求。
10.根据权利要求9所述的系统,其特征在于,所述服务器,还用于:对交易输入查询请求中的交易输入做双花验证,具体验证方式如下:
所述服务器事先在内存中以链表的形式将交易记录存储于链表的节点上,链表上的每一个节点称为一个区块,每个区块保存了前一个区块的哈希值、当前区块的merkel树的根节点、生成区块的时间戳、区块包含的交易数目和多个交易信息,每一个交易信息包含交易输入、交易输出以及交易的时间戳;当前区块的merkel树的根节点指向内存中以merkel树结构存储的各资源的多层哈希值,各不同的资源是连续存储于内存中的,所述服务器在内存中存储有指向各交易资源的指针;
所述服务器先通过对交易输入查询请求的报文头做哈希得到哈希值确定出指向交易输入的资源的指针,若确定出的指向交易输入的同一资源的指针只有一个,则判定不存在双花交易;若确定出的指向交易输入的同一资源的指针有两个,则进一步判断这两个指针指向merkel树结构中的资源是否为同一个,若是,则判定不存在双花交易,否则判定存在双花交易;
所述服务器根据所述验证结果以及双花验证的结果向所述客户端反馈查询结果:若所述交易相关的资产锁定和释放操作全部成功且不存在双花交易,则反馈交易成功,否则反馈交易失败。
11.根据权利要求10所述的系统,其特征在于,所述共识区块链,还用于:对交易输入查询请求中的交易输入做双花验证。
12.根据权利要求9所述的系统,其特征在于,所述交易输出查询请求的报文头信息包括:处理一资源的最近一次交易的服务器写入的该服务器处理最近一次交易的时间戳;所述交易输入查询请求的报文头信息包括:处理该资源的前一次交易的服务器写入的该服务器处理前一次交易的时间戳;
所述服务器,用于根据分解交易查询请求的报文头信息中的时间戳确定出对应的分片组元信息,基于分片组元信息所提供的哈希空间组成哈希环,采用一致性哈希散列算法将分解交易查询请求路由到对应的共识区块链;
所述分片组元信息即为一段时间内共识区块链网络的所有共识区块链信息,一旦某一时段共识区块链数量有新增,就生成新的与该时段对应的分片组元信息。
13.根据权利要求12所述的系统,其特征在于,采用一致性哈希散列算法将分解交易路由到对应的共识区块链,包括:
对分解交易的报文头信息做哈希计算得到目标哈希值,根据所述目标哈希值在哈希环中顺时针寻找一个虚拟节点,该虚拟节点的哈希值是大于所述目标哈希值的最近的一个哈希值,若没有比所述目标哈希值大的哈希值,则继续顺时针找到哈希环中的下一个即最小的第一个哈希值对应的虚拟节点;该虚拟节点对应的真实节点即为找到的共识区块链;哈希环是由整个哈希值空间组成的一个虚拟的圆环,虚拟节点的哈希值也在这个圆环中,虚拟节点与真实节点是多对一的关系。
14.根据权利要求12所述的系统,其特征在于,所述分解交易查询请求的报文头信息还至少包括以下之一:
写入时间戳的服务器的身份信息;
自增序列,所述自增序列用于区分服务器在同一时间戳内所处理的不同资源。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110365735.4A CN112732803B (zh) | 2021-04-06 | 2021-04-06 | 一种共识区块链交易查询验证方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110365735.4A CN112732803B (zh) | 2021-04-06 | 2021-04-06 | 一种共识区块链交易查询验证方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112732803A true CN112732803A (zh) | 2021-04-30 |
CN112732803B CN112732803B (zh) | 2021-06-29 |
Family
ID=75596494
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110365735.4A Active CN112732803B (zh) | 2021-04-06 | 2021-04-06 | 一种共识区块链交易查询验证方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112732803B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113379542A (zh) * | 2021-05-28 | 2021-09-10 | 中邮信息科技(北京)有限公司 | 一种区块链交易的查询方法、装置、介质及电子设备 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106503053A (zh) * | 2016-09-26 | 2017-03-15 | 江苏通付盾科技有限公司 | Utxo查询方法及装置 |
CN107077674A (zh) * | 2016-12-29 | 2017-08-18 | 深圳前海达闼云端智能科技有限公司 | 交易验证处理方法、装置及节点设备 |
CN109347955A (zh) * | 2018-10-19 | 2019-02-15 | 北京奇艺世纪科技有限公司 | 一种区块链网络系统以及信息处理方法 |
CN109993531A (zh) * | 2019-04-01 | 2019-07-09 | 辽宁大学 | 一种支持跨区块链交易的数据验证方法 |
US20190236606A1 (en) * | 2018-01-31 | 2019-08-01 | Salesforce.Com, Inc. | Systems, methods, and apparatuses for implementing a virtual chain model for distributed ledger technologies in a cloud based computing environment |
CN111666289A (zh) * | 2020-06-23 | 2020-09-15 | 中信银行股份有限公司 | 数据的存储与查询方法、装置、电子设备及可读存储介质 |
-
2021
- 2021-04-06 CN CN202110365735.4A patent/CN112732803B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106503053A (zh) * | 2016-09-26 | 2017-03-15 | 江苏通付盾科技有限公司 | Utxo查询方法及装置 |
CN107077674A (zh) * | 2016-12-29 | 2017-08-18 | 深圳前海达闼云端智能科技有限公司 | 交易验证处理方法、装置及节点设备 |
US20190236606A1 (en) * | 2018-01-31 | 2019-08-01 | Salesforce.Com, Inc. | Systems, methods, and apparatuses for implementing a virtual chain model for distributed ledger technologies in a cloud based computing environment |
CN109347955A (zh) * | 2018-10-19 | 2019-02-15 | 北京奇艺世纪科技有限公司 | 一种区块链网络系统以及信息处理方法 |
CN109993531A (zh) * | 2019-04-01 | 2019-07-09 | 辽宁大学 | 一种支持跨区块链交易的数据验证方法 |
CN111666289A (zh) * | 2020-06-23 | 2020-09-15 | 中信银行股份有限公司 | 数据的存储与查询方法、装置、电子设备及可读存储介质 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113379542A (zh) * | 2021-05-28 | 2021-09-10 | 中邮信息科技(北京)有限公司 | 一种区块链交易的查询方法、装置、介质及电子设备 |
CN113379542B (zh) * | 2021-05-28 | 2024-01-09 | 中邮信息科技(北京)有限公司 | 一种区块链交易的查询方法、装置、介质及电子设备 |
Also Published As
Publication number | Publication date |
---|---|
CN112732803B (zh) | 2021-06-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20210157800A1 (en) | Blockchain-based transaction processing methods, apparatuses, and electronic devices | |
CN110135860B (zh) | 一种基于区块链技术的农作物种子安全溯源系统 | |
CN110009338B (zh) | 基于区块链的记账方法及装置、电子设备 | |
CN111144881A (zh) | 对资产转移数据的选择性访问 | |
AU2019378667C1 (en) | Performing map iterations in blockchain-based system | |
AU2019321745B2 (en) | Prioritizing shared blockchain data storage | |
TW202111568A (zh) | 可信賴執行環境中基於錯誤校正編碼的共享區塊鏈資料儲存 | |
US20230316273A1 (en) | Data processing method and apparatus, computer device, and storage medium | |
CN111640017A (zh) | 一种应用于联盟链跨链转账的交易正确性验证方法及装置 | |
US10735199B2 (en) | File based transmission validation and failure location identification system | |
CN111241589A (zh) | 一种数据库系统、节点和方法 | |
CN115859343A (zh) | 一种交易数据处理方法、装置以及可读存储介质 | |
WO2022141770A1 (zh) | 基于区块链的数据处理方法、装置、设备及可读存储介质 | |
CN111899019A (zh) | 一种黑名单多方交叉验证和共享的方法及系统 | |
CN113421160B (zh) | 一种基于区块链的交易追踪溯源方法 | |
US20230289782A1 (en) | Smart contract-based data processing | |
CN110390524A (zh) | 区块链中作业数据处理方法、装置、电子设备及存储介质 | |
CN111711526A (zh) | 一种区块链节点的共识方法及系统 | |
US20230275771A1 (en) | Pre-execution of block chain transaction in parallel during block consensus | |
CN111241590A (zh) | 一种数据库系统、节点和方法 | |
US20200394162A1 (en) | Operation management method for distributed ledger system, operation management system for distributed ledger system, and operation management program for distributed ledger system | |
CN112732803B (zh) | 一种共识区块链交易查询验证方法及系统 | |
CN110930152A (zh) | 一种基于区块链的数据处理方法及相关设备 | |
CN115480714A (zh) | 一种基于区块链的卫星大数据分布式存储系统 | |
CN111949726A (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 |