CN114648330A - 基于区块链的交易验证方法、装置及区块链系统 - Google Patents
基于区块链的交易验证方法、装置及区块链系统 Download PDFInfo
- Publication number
- CN114648330A CN114648330A CN202210277269.9A CN202210277269A CN114648330A CN 114648330 A CN114648330 A CN 114648330A CN 202210277269 A CN202210277269 A CN 202210277269A CN 114648330 A CN114648330 A CN 114648330A
- Authority
- CN
- China
- Prior art keywords
- transaction
- bloom filter
- result
- verification
- transaction verification
- 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.)
- Pending
Links
Images
Classifications
-
- 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
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/38—Payment protocols; Details thereof
- G06Q20/382—Payment protocols; Details thereof insuring higher security of transaction
-
- 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
Landscapes
- Business, Economics & Management (AREA)
- Engineering & Computer Science (AREA)
- Accounting & Taxation (AREA)
- Finance (AREA)
- Physics & Mathematics (AREA)
- Strategic Management (AREA)
- General Business, Economics & Management (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Development Economics (AREA)
- Economics (AREA)
- Marketing (AREA)
- Technology Law (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供基于区块链的交易验证方法、装置及区块链系统,涉及金融领域和区块链技术领域,该方法包括:向待验证交易对应的全节点发送交易验证请求;接收所述全节点根据所述交易验证请求返回的交易验证信息,所述交易验证信息包括待验证交易对应的布隆过滤器位图、布隆过滤器哈希方法、梅克尔树根以及梅克尔路径结果;根据所述全节点返回的交易验证信息中的布隆过滤器哈希方法、布隆过滤器位图、梅克尔路径结果以及梅克尔树根得到所述待验证交易对应的交易验证结果。本申请基于布隆过滤器对梅克尔证明进行了扩展,克服了现有的梅克尔证明只能验证肯定命题的缺陷,提高了交易验证的正确率。
Description
技术领域
本申请涉及金融领域和区块链技术领域,具体涉及基于区块链的交易验证方法、装置及区块链系统。
背景技术
目前区块链中一般使用梅克尔证明方法进行交易的有效性验证,即给定梅克尔路径,并根据梅克尔路径逐层两两计算交易的哈希值得到梅克尔树根。梅克尔树根记录在区块链节点的区块头中。当轻节点需要证明某笔交易确实存在于区块链节点中时,全节点只需要给出梅克尔树上的梅克尔路径,再由轻节点按照给出的梅克尔路径重新算一遍哈希得到梅克尔树根,当校验得到的梅克尔树根和区块头中存储的梅克尔树根一致时,说明该笔交易确实存在。
梅克尔证明的优点是能减轻轻节点的存储压力和通讯开销,提高支付验证速度。但梅克尔证明也存在一个局限,即若全节点恶意返回交易不存在,则全节点不会给出梅克尔路径,此时轻节点无法判定交易是否确实不存在。即梅克尔证明只能验证肯定性命题,不能验证否定性命题。
发明内容
为了解决现有技术中的问题,本申请提供基于区块链的交易验证方法、装置及区块链系统,涉及金融领域和区块链技术领域。
第一方面,本申请从轻节点的角度提供一种基于区块链的交易验证方法,包括:
向待验证交易对应的全节点发送交易验证请求;
接收所述全节点根据所述交易验证请求返回的交易验证信息,所述交易验证信息包括待验证交易对应的布隆过滤器位图、布隆过滤器哈希方法、梅克尔树根以及梅克尔路径结果;
根据所述布隆过滤器哈希方法以及所述布隆过滤器位图得到所述待验证交易对应的布隆过滤器验证结果;
根据所述梅克尔路径结果以及所述梅克尔树根得到所述待验证交易对应的梅克尔证明结果;
根据所述布隆过滤器验证结果以及所述梅克尔证明结果得到所述待验证交易对应的交易验证结果。
在一实施例中,所述根据所述梅克尔路径结果以及所述梅克尔树根得到所述待验证交易对应的梅克尔证明结果,包括:
判断所述梅克尔路径结果中是否存在梅克尔路径;若梅克尔路径不存在,所述梅克尔证明结果为交易不存在;
若梅克尔路径存在,则根据所述梅克尔路径计算所述待验证交易对应的哈希值;
根据所述哈希值与所述梅克尔树根是否一致获取所述克尔证明结果;若一致,则所述梅克尔证明结果为交易存在;若不一致,则梅克尔证明结果为交易不存在。
在一实施例中,所述根据所述布隆过滤器哈希方法以及所述布隆过滤器位图得到所述待验证交易对应的布隆过滤器验证结果,包括:
根据所述布隆过滤器哈希方法对所述待验证交易进行哈希运算,得到所述待验证交易对应的布隆过滤器位图值;
根据所述布隆过滤器位图值以及所述布隆过滤器位图得到所述待验证交易对应的布隆过滤器验证结果。
在一实施例中,所述根据所述布隆过滤器位图值以及所述布隆过滤器位图得到所述待验证交易对应的布隆过滤器验证结果,包括:
将所述布隆过滤器位图值以及所述布隆过滤器位图进行按位与计算,得到按位与结果;
判断所述按位与结果与所述布隆过滤器位图是否一致;
若一致,则所述布隆过滤器验证结果为交易存在;
若不一致,则所述布隆过滤器验证结果为交易不存在。
在一实施例中,所述根据所述布隆过滤器验证结果以及所述梅克尔证明结果得到所述待验证交易对应的交易验证结果,包括:
若所述梅克尔证明结果及所述布隆过滤器验证结果均为交易存在,则所述交易验证结果为交易存在;
若所述布隆过滤器验证结果为交易不存在,则所述交易验证结果为交易不存在。
在一实施例中,所述根据所述布隆过滤器验证结果以及所述梅克尔证明结果得到所述待验证交易对应的交易验证结果,还包括:
若所述布隆过滤器验证结果为交易存在且若所述梅克尔证明结果为交易不存在,则根据所述布隆过滤器验证结果以及所述梅克尔证明结果确定所述布隆过滤器的实际误判率;
根据所述实际误判率以及所述布隆过滤器的理论误判率确定所述全节点是否可信;若可信,所述交易验证结果为交易不存在;若不可信,所述交易验证结果为交易存在。
在一实施例中,所述根据所述布隆过滤器验证结果以及所述梅克尔证明结果确定所述布隆过滤器的实际误判率,包括:
统计所述布隆过滤器的成功次数和误判次数,其中,所述成功次数为所述梅克尔证明结果与所述布隆过滤器验证结果均为交易存在的次数,所述误判次数为所述梅克尔证明结果为交易不存在,且所述布隆过滤器验证结果为交易存在的次数;
计算所述误判次数与成功次数的比值,得到所述布隆过滤器的实际误判率。
在一实施例中,所述根据所述实际误判率以及所述布隆过滤器的理论误判率确定所述全节点是否可信,包括:
当所述实际误判率大于所述理论误判率时,所述全节点不可信,否则所述全节点可信。
第二方面,本申请从全节点的角度提供另一种基于区块链的交易验证方法,包括:
接收轻节点发送的待验证交易对应的交易验证请求;
根据所述交易验证请求生成交易验证信息,并将所述交易验证信息返回至所述轻节点,以使所述轻节点根据所述交易验证信息中的布隆过滤器哈希方法、布隆过滤器位图、梅克尔路径结果以及梅克尔树根得到所述待验证交易对应的交易验证结果。
第三方面,本申请提供一种区块链系统,包括:
共识节点,用于打包布隆过滤器哈希方法;
全节点,用于从所述共识节点获取所述布隆过滤器哈希方法和所述全节点的所有交易对应的布隆过滤器位图;以及当接收轻节点发送的待验证交易对应的交易验证请求时,根据所述交易验证请求生成交易验证信息,并向所述轻节点返回所述交易验证信息;
轻节点,用于向所述全节点发送交易验证请求,并根据所述全节点返回的交易验证信息中的布隆过滤器哈希方法、布隆过滤器位图、梅克尔路径结果以及梅克尔树根得到所述待验证交易对应的交易验证结果。
在一实施例中,所述轻节点具体用于:
根据所述布隆过滤器哈希方法以及所述布隆过滤器位图得到所述待验证交易对应的布隆过滤器验证结果;
根据所述梅克尔路径结果以及所述梅克尔树根得到所述待验证交易对应的梅克尔证明结果;以及
根据所述布隆过滤器验证结果以及所述梅克尔证明结果得到所述待验证交易对应的交易验证结果。
在一实施例中,所述共识节点还用于:
根据所述布隆过滤器哈希方法遍历所有交易,得到各交易对应的布隆过滤器位图值;
将各交易对应的布隆过滤器位图值按位与计算,得到布隆过滤器位图。
第四方面,本申请提供一种基于区块链的交易验证方法,应用于本申请提供的任一区块链系统,该方法包括:
轻节点向待验证交易对应的全节点发送交易验证请求;
全节点根据所述交易验证请求生成交易验证信息,将所述交易验证信息返回至所述轻节点,其中,所述交易验证信息包括待验证交易对应的布隆过滤器位图、布隆过滤器哈希方法、梅克尔树根以及梅克尔路径结果;所述布隆过滤器位图由所述共识节点根据所述布隆过滤器哈希方法以及所述全节点内的各交易计算得到;
轻节点根据所述布隆过滤器哈希方法、所述布隆过滤器位图、所述梅克尔路径结果以及所述梅克尔树根得到所述待验证交易对应的交易验证结果。
在一实施例中,所述轻节点根据所述布隆过滤器哈希方法、所述布隆过滤器位图、所述梅克尔路径结果以及所述梅克尔树根得到所述待验证交易对应的交易验证结果,包括:
轻节点根据所述布隆过滤器哈希方法以及所述布隆过滤器位图得到所述待验证交易对应的布隆过滤器验证结果;
轻节点根据所述梅克尔路径结果以及所述梅克尔树根得到所述待验证交易对应的梅克尔证明结果;以及
轻节点根据所述布隆过滤器验证结果以及所述梅克尔证明结果得到所述待验证交易对应的交易验证结果。
第五方面,本申请提供一种基于区块链的交易验证装置,与本申请从轻节点的角度提供的基于区块链的交易验证方法对应,该装置包括:
交易验证请求发送模块,用于向待验证交易对应的全节点发送交易验证请求;
交易验证信息接收模块,用于接收所述全节点根据所述交易验证请求返回的交易验证信息,所述交易验证信息包括待验证交易对应的布隆过滤器位图、布隆过滤器哈希方法、梅克尔树根以及梅克尔路径结果;
布隆过滤器验证结果生成模块,用于根据所述布隆过滤器哈希方法以及所述布隆过滤器位图得到所述待验证交易对应的布隆过滤器验证结果;
梅克尔证明结果生成模块,用于根据所述梅克尔路径结果以及所述梅克尔树根得到所述待验证交易对应的梅克尔证明结果;
交易验证结果生成模块,用于根据所述布隆过滤器验证结果以及所述梅克尔证明结果得到所述待验证交易对应的交易验证结果。
在一实施例中,所述梅克尔证明结果生成模块包括:
梅克尔路径判断单元,用于判断所述梅克尔路径结果中是否存在梅克尔路径;
哈希值计算单元,用于当梅克尔路径存在时,根据所述梅克尔路径计算所述待验证交易对应的哈希值;
哈希值比较单元,用于判断所述哈希值与所述梅克尔树根是否一致;
梅克尔证明结果生成单元,用于根据梅克尔路径是否存在或所述哈希值与所述梅克尔树根是否一致获取所述克尔证明结果;若梅克尔路径不存在,所述梅克尔证明结果为交易不存在;若所述哈希值与所述梅克尔树根一致,则所述梅克尔证明结果为交易存在;若所述哈希值与所述梅克尔树根不一致,则梅克尔证明结果为交易不存在。
在一实施例中,所述布隆过滤器验证结果生成模块包括:
布隆过滤器位图值计算单元,用于根据所述布隆过滤器哈希方法对所述待验证交易进行哈希运算,得到所述待验证交易对应的布隆过滤器位图值;
布隆过滤器验证结果生成单元,用于根据所述布隆过滤器位图值以及所述布隆过滤器位图得到所述待验证交易对应的布隆过滤器验证结果。
在一实施例中,所述布隆过滤器验证结果生成单元具体用于:
将所述布隆过滤器位图值以及所述布隆过滤器位图进行按位与计算,得到按位与结果;
判断所述按位与结果与所述布隆过滤器位图是否一致;
若一致,则所述布隆过滤器验证结果为交易存在;
若不一致,则所述布隆过滤器验证结果为交易不存在。
在一实施例中,所述交易验证结果生成模块包括:
误判率计算单元,用于当所述布隆过滤器验证结果为交易存在且若所述梅克尔证明结果为交易不存在时,根据所述布隆过滤器验证结果以及所述梅克尔证明结果确定所述布隆过滤器的实际误判率;
全节点可信判断单元,用于根据所述实际误判率以及所述布隆过滤器的理论误判率确定所述全节点是否可信;
交易验证结果生成单元,用于当所述梅克尔证明结果及所述布隆过滤器验证结果均为交易存在时,将所述交易验证结果确定为交易存在;当所述布隆过滤器验证结果为交易不存在时,将所述交易验证结果确定为交易不存在;当所述布隆过滤器验证结果为交易存在且所述梅克尔证明结果为交易不存在时,若所述全节点可信,则将所述交易验证结果确定为交易不存在;若所述全节点不可信,则将所述交易验证结果确定为交易存在。
在一实施例中,所述误判率计算单元具体用于:
统计所述布隆过滤器的成功次数和误判次数,其中,所述成功次数为所述梅克尔证明结果与所述布隆过滤器验证结果均为交易存在的次数,所述误判次数为所述梅克尔证明结果为交易不存在,且所述布隆过滤器验证结果为交易存在的次数;
计算所述误判次数与成功次数的比值,得到所述布隆过滤器的实际误判率。
第六方面,本申请提供另一种基于区块链的交易验证装置,与本申请从全节点的角度提供的基于区块链的交易验证方法对应,该装置包括:
交易验证请求接收模块,用于接收轻节点发送的待验证交易对应的交易验证请求;
交易验证信息生成模块,用于根据所述交易验证请求生成交易验证信息,并将所述交易验证信息返回至所述轻节点,以使所述轻节点根据所述交易验证信息中的布隆过滤器哈希方法、布隆过滤器位图、梅克尔路径结果以及梅克尔树根得到所述待验证交易对应的交易验证结果。
本申请的基于区块链的交易验证方法、装置及区块链系统利用布隆过滤器对梅克尔证明进行了扩展,克服了现有的梅克尔证明只能验证肯定性命题的缺陷,两者的结合可同时验证肯定性命题和否定性命题,提高了交易验证的正确率。本申请执行时只需要在区块链节点的区块头中增加少量字段,不会对轻节点的存储和网络传输造成负担。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请适用的一种应用场景的示意图。
图2为本申请提供的基于区块链的交易验证方法的一种示意图。
图3为本申请提供的得到梅克尔证明结果的流程图。
图4为本申请提供的梅克尔路径的一种结构示意图。
图5为本申请提供的得到布隆过滤器验证结果的示意图。
图6至图9为本申请提供的一个交易的布隆过滤器位图值的示意图。
图10为本申请提供的全节点的布隆过滤器位图的一种示意图。
图11为本申请提供的得到布隆过滤器验证结果的另一种示意图。
图12和图13为本申请提供的待验证交易对应的布隆过滤器位图值的示意图。
图14和图15为本申请提供的待验证交易对应的按位与结果示意图。
图16为本申请提供的得到交易验证结果的示意图。
图17为本申请提供的得到布隆过滤器的实际误判率的示意图。
图18为本申请提供的基于区块链的交易验证方法的另一种示意图。
图19为本申请提供的基于区块链的交易验证方法的另一种示意图。
图20为本申请提供的基于区块链的交易验证装置的示意图。
图21为本申请提供的基于区块链的交易验证装置的另一种示意图。
图22为本申请提供的基于区块链的交易验证装置的另一种示意图。
图23为本申请提供的基于区块链的交易验证装置的另一种示意图。
图24为本申请提供的基于区块链的交易验证装置的另一种示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
为了便于公众理解本申请的基于区块链的交易验证方法,本申请首先提供基于区块链的交易验证方法的应用场景,本申请应用场景的其中一个示例如图1所示,该场景为一个区块链系统,包括三类节点,分别为轻节点1、全节点2以及共识节点3。其中,轻节点1中仅包含全节点2的区块头的数据。与现有的区块链节点不同,本申请的共识节点的区块头在现有字段的基础上增加了四个字段:布隆过滤器哈希方法集合名、布隆过滤器位图长度m与交易数n的比值BitPreKey(后文可直接表示为BitPreKey)以及哈希方法个数k以及布隆过滤器位图。相应的,全节点2在同步共识节点的区块数据时,全节点2的区块头中也同样会增加布隆过滤器哈希方法集合名、BitPreKey以及哈希方法个数k以及布隆过滤器位图这四个字段。因此,全节点2的区块头中共包含有以下8个字段:区块编号、上一个区块哈希、梅克尔树根、交易数n、布隆过滤器哈希方法集合名、BitPreKey以及哈希方法个数k以及布隆过滤器位图,其中,前四个字段为全节点2的区块头中原本就有的字段,后四个字段为新增的字段。
图1所示的区块链系统中,轻节点、全节点以及共识节点的数量均为至少一个,为便于表示,图1仅以包含一个轻节点、一个全节点以及一个共识节点为例进行说明,本申请不以此为限。
第一方面,本申请首先从图1给出的应用场景中轻节点1的角度,对本申请的基于区块链的交易验证方法进行说明。请同时参见图1和图2,该基于区块链的交易验证方法包括以下步骤:
步骤S101,向待验证交易对应的全节点发送交易验证请求。
步骤S102,接收所述全节点根据所述交易验证请求返回的交易验证信息,所述交易验证信息包括待验证交易对应的布隆过滤器位图、布隆过滤器哈希方法、梅克尔树根以及梅克尔路径结果。
其中,交易验证请求中包括下载全节点2的区块头的请求,以及对待验证交易进行验证所需的数据的请求。全节点2的区块头中包含全节点对应的区块编号、上一个区块哈希、梅克尔树根、布隆过滤器哈希方法集合名、交易数n、BitPreKey以及哈希方法个数k以及布隆过滤器位图。对待验证交易进行验证所需的数据至少包括布隆过滤器位图以及梅克尔路径结果。步骤S102中的布隆过滤器哈希方法可基于区块头中的布隆过滤器哈希方法集合名获取到。
步骤S103,根据所述布隆过滤器哈希方法以及所述布隆过滤器位图得到所述待验证交易对应的布隆过滤器验证结果。
在该步骤中,通过所述布隆过滤器哈希方法对待验证交易进行哈希运算后得到一个与布隆过滤器位图长度相等的数列,根据该数列与布隆过滤器位图即可得到布隆过滤器验证结果。详细步骤将在后续实施例中进行说明。
步骤S104,根据所述梅克尔路径结果以及所述梅克尔树根得到所述待验证交易对应的梅克尔证明结果。
在该步骤中,按照所述梅克尔路径对待验证交易进行哈希运算后得到一个哈希值,根据该哈希值与梅克尔树根即可得到梅克尔证明结果。详细步骤将在后续实施例中进行说明。
步骤S105,根据所述布隆过滤器验证结果以及所述梅克尔证明结果得到所述待验证交易对应的交易验证结果。
本步骤中,综合布隆过滤器验证结果和梅克尔证明结果,确定待验证交易是否存在。具体的确定步骤将在后续实施例中进行说明。
本实施例中,步骤S103和步骤S104实际上为并列关系,这两个步骤的执行顺序可以调换,这里展示的是先执行步骤S103,后执行步骤S104的情况,实际应用中也可以先执行步骤S104,后执行步骤S103。仅执行顺序的改变不会对本申请造成影响,因此本申请对此不作限定。
本申请的基于区块链的交易验证方法利用布隆过滤器对梅克尔证明进行了扩展,克服了现有的梅克尔证明只能验证肯定性命题的缺陷,两者的结合可同时验证肯定性命题和否定性命题,提高了交易验证的正确率。本申请执行时只需要在区块链节点的区块头中增加少量字段,不会对轻节点的存储和网络传输造成负担。
在一实施例中,如图3所示,步骤S104,根据所述梅克尔路径结果以及所述梅克尔树根得到所述待验证交易对应的梅克尔证明结果,包括:
步骤S1041,判断所述梅克尔路径结果中是否存在梅克尔路径;若梅克尔路径存在,则执行步骤S1042;若梅克尔路径不存在,则执行步骤S1045;
步骤S1042,根据所述梅克尔路径计算所述待验证交易对应的哈希值;
步骤S1043,判断所述哈希值与所述梅克尔树根是否一致;若一致,则执行步骤S1044,若不一致,则执行步骤S1045;
步骤S1044,将所述梅克尔证明结果确定为交易存在;然后执行步骤S1046;
步骤S1045,将所述梅克尔证明结果确定为交易不存在;然后执行步骤S1046;
步骤S1046,输出梅克尔证明结果。
具体地,步骤S1041中,梅克尔路径结果由全节点返回至轻节点,梅克尔路径结果有两种可能的情况,第一种为待验证交易对应的梅克尔路径,即对应步骤S1041中梅克尔路径存在的情况;第二种为空,即对应步骤S1041中梅克尔路径不存在的情况。当梅克尔路径结果为空时,表示全节点无法找到待验证交易对应的梅克尔路径,或者全节点找到了待验证交易对应的梅克尔路径但恶意返回空结果,无论是全节点是否恶意返回空,只要全节点返回空,轻节点就会得出交易不存在的梅克尔证明结果。由此可见,通过梅克尔证明得到的交易不存在的结果可能是不准确的。
步骤S1042至步骤S1045为在判断梅克尔路径结果中存在梅克尔路径时执行的步骤,这里通过一个示例进行说明:
图4为梅克尔路径的示意图。假设图4中的交易1为本申请的待验证交易,交易2、交易3和交易4为全节点中的其他交易,则将待验证交易带入梅克尔路径中的交易1的位置,按照梅克尔路径两两向上依次计算哈希值,最终可得到一个哈希值,即图4中的“哈希1-4”,此时步骤S1042执行完毕;然后判断“哈希1-4”与梅克尔树根是否一致(即步骤S1043);若一致,则将所述梅克尔证明结果确定为交易存在;若不一致,则将所述梅克尔证明结果确定为交易不存在。
本实施例详细说明了基于梅克尔证明的原理确定梅克尔证明结果的过程。
在一实施例中,如图5所示,步骤S103,根据所述布隆过滤器哈希方法以及所述布隆过滤器位图得到所述待验证交易对应的布隆过滤器验证结果,包括:
步骤S1031,根据所述布隆过滤器哈希方法对所述待验证交易进行哈希运算,得到所述待验证交易对应的布隆过滤器位图值;
步骤S1032,根据所述布隆过滤器位图值以及所述布隆过滤器位图得到所述待验证交易对应的布隆过滤器验证结果。
其中,布隆过滤器位图由全节点从共识节点同步到的布隆过滤器哈希方法对全节点内的所有交易进行哈希运算得到,其计算过程通过以下示例进行说明:
假设全节点中有交易key,全节点从共识节点处同步到的布隆过滤器哈希方法有三个,用哈希方法hash1、hash2和hash3对交易key进行哈希运算,得到交易key对应的第一个布隆过滤器位图值,如图6所示;用哈希方法hash2对交易key进行哈希运算,得到交易key对应的第二个布隆过滤器位图值值,如图7所示;用哈希方法hash3对交易key进行哈希运算,得到交易key对应的第三个布隆过滤器位图值值,如图8所示;然后将图6至图8所示的三个的布隆过滤器位图值进行按位与计算,得到交易key对应的布隆过滤器位图值,如图9所示。图6至图8中的哈希值以及图9中的布隆过滤器位图值具有相同的长度,本示例中其长度为16bit。当有多个交易key1、key2、……、keyn时,布隆过滤器位图就是所有交易的布隆过滤器位图值进行按位与计算得到的结果,例如图10所示。可以理解的是,当全节点中只有一个交易key时,交易key对应的布隆过滤器位图值就是全节点的布隆过滤器位图。
布隆过滤器位图的长度m与交易数n和BitPreKey有关,可表示为m=n*BitPreKey,其中,n为交易数,BitPreKey为布隆过滤器位图长度m与交易数n的比值,由全节点从共识节点处同步得到。
在全节点计算得到布隆过滤器位图后,轻节点可向全节点请求获取该布隆过滤器位图,并基于该布隆过滤器位图以及布隆过滤器哈希方法得到布隆过滤器验证结果。此处通过以下示例对步骤S1031和步骤S1032进行说明:
假设轻节点接收到全节点发送的布隆过滤器哈希方法有3个,分别为hash1、hash2和hash3,步骤S1031中,轻节点分别用布隆过滤器哈希方法hash1、hash2和hash3对待验证交易进行哈希运算,得到待验证交易对应的布隆过滤器位图值;
步骤S1032中,轻节点根据所述布隆过滤器位图值以及所述布隆过滤器位图得到所述待验证交易对应的布隆过滤器验证结果。具体参见图10:
步骤S10321,将待验证交易的布隆过滤器位图值以及所述布隆过滤器位图(参见图10)进行按位与计算,得到按位与结果;
步骤S10322,判断所述按位与结果与所述布隆过滤器位图是否一致;若一致,执行步骤S10323,若不一致,执行步骤S10324;
步骤S10323,将所述布隆过滤器验证结果确定为交易存在;然后执行步骤S10325;
步骤S10324,将所述布隆过滤器验证结果确定为交易不存在;然后执行步骤S10325;
步骤S10325,输出布隆过滤器验证结果。
图12和图13分别为待验证交易对应的布隆过滤器位图值的两个例子,图12所示的布隆过滤器位图值与图10所示的布隆过滤器位图按位与计算得到的按位与结果如图14所示,图14所述的按位与结果与图10所示的布隆过滤器位图不一致,此时对应步骤S10322中不一致的情况,输出的布隆过滤器验证结果为交易存在;图13所示的布隆过滤器位图值与图10所示的布隆过滤器位图按位与计算得到的按位与结果如图15所示,图15所述的按位与结果与图10所示的布隆过滤器位图一致,此时对应步骤S10322中一致的情况,输出的布隆过滤器验证结果为交易不存在。
在一实施例中,如图16所示,步骤S105,根据所述布隆过滤器验证结果以及所述梅克尔证明结果得到所述待验证交易对应的交易验证结果,包括:
步骤S1051,判断梅克尔证明结果是否为交易存在;若是,执行步骤S1052,若否执行步骤S1053;
步骤S1052,判断布隆过滤器验证结果是否为交易存在;若是,则执行步骤S1054;若否,则执行步骤S1055;
步骤S1053,判断布隆过滤器验证结果是否为交易存在;若是,则执行步骤S1056;若否,则执行步骤S1055;
步骤S1054,将所述交易验证结果确定为交易存在;然后执行步骤S1058;
步骤S1055,将所述交易验证结果确定为交易不存在;然后执行步骤S1058;
步骤S1056,根据所述布隆过滤器验证结果以及所述梅克尔证明结果确定所述布隆过滤器的实际误判率;
步骤S1057,根据所述实际误判率以及所述布隆过滤器的理论误判率判断所述全节点是否可信;若可信,则执行步骤S1055;若不可信,则执行步骤S1054;
步骤S1058,输出交易验证结果。
由此可见,在步骤S105中,根据所述布隆过滤器验证结果以及所述梅克尔证明结果得到所述待验证交易对应的交易验证结果,需要根据以下原则进行:
1)梅克尔证明结果为交易存在,布隆过滤器验证结果为交易存在,则交易验证结果为交易存在;
2)梅克尔证明结果为交易不存在,布隆过滤器验证结果为交易不存在,则交易验证结果为交易不存在;
3)梅克尔证明结果为交易不存在,布隆过滤器验证结果为交易存在,则需要进一步判断。
通过以上原则1)至2),可以得出,步骤S105具体包括:
若所述梅克尔证明结果及所述布隆过滤器验证结果均为交易存在,则将所述交易验证结果确定为交易存在(对应原则1));
若所述布隆过滤器验证结果为交易不存在,则将所述交易验证结果确定为交易不存在(对应原则2))。
其中,原则1)中,梅克尔证明结果和布隆过滤器验证结果一致,且梅克尔证明结果为交易存在,由于梅克尔证明可以验证肯定命题,因此以梅克尔证明结果为准;原则2)中,梅克尔证明结果和布隆过滤器验证结果一致,且布隆过滤器验证结果为交易不存在,由于梅克尔证明可以验证否定命题,因此以布隆过滤器验证结果为准;原则3)中,梅克尔证明结果为交易存在,布隆过滤器验证结果为交易不存在,两者不一致,这种情况实际上几乎不可能出现,这里规定以布隆过滤器验证结果为准。
由此可见,只要梅克尔证明结果为交易存在,就以梅克尔证明结果为准,只要布隆过滤器验证结果为交易不存在,就以布隆过滤器验证结果为准。实际上,还有一种情况是:梅克尔证明结果为交易存在,布隆过滤器验证结果为交易不存在,这种情况理论上不可能出现,但为了方案的完整性,本申请仍给出这种情况的假设,当梅克尔证明结果为交易存在,布隆过滤器验证结果为交易不存在时,以布隆过滤器验证结果为准。
原则3)中,梅克尔证明结果为交易不存在,布隆过滤器验证结果为交易存在,由于梅克尔证明只能验证肯定命题,布隆过滤器只能验证否定命题,因此无法判断两者的结果是否正确。这种情况下,为了提高交易验证结果的准确性,需要做出进一步判断。
梅克尔证明结果为交易不存在时,我们认为要么是待验证交易确实不存在对应的梅克尔路径,要么是待验证交易存在对应的梅克尔路径但全节点恶意返回待验证交易不存在对应的梅克尔路径,只有这两种情况。因此,我们只要判断全节点是否可信就能确定梅克尔证明结果是否准确,简单而言,若全节点可信,则梅克尔证明结果准确,所述交易验证结果为交易不存在;若全节点不可信,则梅克尔证明结果不准确,所述交易验证结果为交易存在。具体请参见图15中的步骤S1056至步骤S1057,该步骤是在“梅克尔证明结果为交易不存在,布隆过滤器验证结果为交易存在”的情况下才会执行。
在本实施例中,根据所述布隆过滤器验证结果以及所述梅克尔证明结果确定所述布隆过滤器的实际误判率,然后根据所述实际误判率以及所述布隆过滤器的理论误判率确定所述全节点是否可信。其中,如图17所示,步骤S1056,根据所述布隆过滤器验证结果以及所述梅克尔证明结果确定所述布隆过滤器的实际误判率,包括:
步骤S10561,统计所述布隆过滤器的成功次数和误判次数,其中,所述成功次数为所述梅克尔证明结果与所述布隆过滤器验证结果均为交易存在的次数,所述误判次数为所述梅克尔证明结果为交易不存在,且所述布隆过滤器验证结果为交易存在的次数。
步骤S10562,计算所述误判次数与成功次数的比值,得到所述布隆过滤器的实际误判率。即实际误判率=误判次数/成功次数。
在一实施例中,步骤S1057,根据所述实际误判率以及所述布隆过滤器的理论误判率确定所述全节点是否可信,具体包括:
判断所述实际误判率大于所述理论误判率,若是则确定所述全节点不可信,若否,则确定所述全节点可信。
其中,实际误判率通过步骤S10561和步骤S10562得到,理论误判率通过查表得到。具体的布隆过滤器理论误判率(哈希碰撞概率)参见表1至表3:
表1:布隆过滤器理论误判率(哈希碰撞概率)对应表一
表2:布隆过滤器理论误判率(哈希碰撞概率)对应表二
表3:布隆过滤器理论误判率(哈希碰撞概率)对应表三
m/n | k | k=17 | k=18 | k=19 | k=20 | k=21 | k=22 | k=23 | k=24 |
22 | 15.2 | 2.67E-05 | |||||||
23 | 15.9 | 1.61E-05 | |||||||
24 | 16.6 | 9.84E-06 | 1.00E-05 | ||||||
25 | 17.3 | 6.08E-06 | 6.11E-06 | 6.27E-06 | |||||
26 | 18 | 3.81E-06 | 3.76E-06 | 3.80E-06 | 3.92E-06 | ||||
27 | 18.7 | 2.41E-06 | 2.34E-06 | 2.33E-06 | 2.37E-06 | ||||
28 | 19.4 | 1.54E-06 | 1.47E-06 | 1.44E-06 | 1.44E-06 | 1.48E-06 | |||
29 | 20.1 | 9.96E-07 | 9.35E-07 | 9.01E-07 | 8.89E-07 | 8.96E-07 | 9.21E-07 | ||
30 | 20.8 | 6.50E-07 | 6.00E-07 | 5.69E-07 | 5.54E-07 | 5.50E-07 | 5.58E-07 | ||
31 | 21.5 | 4.29E-07 | 3.89E-07 | 3.63E-07 | 3.48E-07 | 3.41E-07 | 3.41E-07 | 3.48E-07 | |
32 | 22.2 | 2.85E-07 | 2.55E-07 | 2.34E-07 | 2.21E-07 | 2.13E-07 | 2.10E-07 | 2.12E-07 | 2.17E-07 |
上述表1至表3中,m/n即为BitPreKey的值,k为哈希方法的个数。学术界已有研究证明,对于交易个数为n,布隆过滤器位图长度(单位为Bit)为m,哈希方法个数为k,当满足k=m/n*ln(2)时,哈希碰撞概率最低。从表1至表3可知,当BitPreKey=m/n=10,k=7时,哈希碰撞概率只有0.00819;当BitPreKey=m/n=32,k=22时,哈希碰撞概率只有2.1e-07。
本实施例中,假设全节点可信,在“梅克尔证明结果为交易不存在,布隆过滤器验证结果为交易存在”这种无法判断两者的结果是否正确的情况下,假设梅克尔证明结果正确,布隆过滤器验证结果误判,计算该情况下的布隆过滤器的实际误判率。由于布隆过滤器存在一个理论误判率,该理论误判率与布隆过滤器位图长度m与交易数n的比值BitPreKey以及哈希方法个数k相关,布隆过滤器的实际误判率一般不会超过该理论误判率。因此,如果计算得到的布隆过滤器的实际误判率大于理论误判率,则认为布隆过滤器误判的结论是错误的,即布隆过滤器没有误判,布隆过滤器验证结果是准确的,进而可得梅克尔证明结果是不准确的,全节点不可信。
由此可见,利用布隆过滤器辅助梅克尔证明对待验证交易进行验证的方法,除具备梅克尔证明原有的验证肯定命题的功能之外,还同时具备布隆过滤器验证否定命题的功能,进一步的还可验证全节点是否可信,有效提高了交易验证的准确性。
第二方面,本申请从图1给出的应用场景中全节点2的角度,对本申请的基于区块链的交易验证方法进行说明。请同时参见图1和图18,该基于区块链的交易验证方法包括以下步骤:
步骤S201,接收轻节点发送的待验证交易对应的交易验证请求;
步骤S202,根据所述交易验证请求生成交易验证信息,并将所述交易验证信息返回至所述轻节点,以使所述轻节点根据所述交易验证信息中的布隆过滤器哈希方法、布隆过滤器位图、梅克尔路径结果以及梅克尔树根得到所述待验证交易对应的交易验证结果。
其中,轻节点得到交易验证结果的步骤参见图2至图17以及对应的说明书的内容即可,此处不再赘述。
本申请中的布隆过滤器位图由共识节点计算得到,具体步骤为:
根据布隆过滤器哈希方法遍历所有交易,得到各交易对应的布隆过滤器位图值;以及
将各交易对应的布隆过滤器位图值按位与计算,得到布隆过滤器位图。
具体地,参见图6至图10以及对应的说明书的内容即可,此处不再赘述。
第三方面,本申请提供一种区块链系统,参见图1,该系统包括:
共识节点3,用于打包布隆过滤器哈希方法,共识节点的区块头新增布隆过滤器方法集合名、BitPreKey、哈希方法个数以及布隆过滤器位图四个字段;
全节点2,用于从所述共识节点同步获取所述布隆过滤器哈希方法和所述全节点的所有交易对应的布隆过滤器位图;以及当接收轻节点发送的待验证交易对应的交易验证请求时,根据所述交易验证请求生成交易验证信息,并向所述轻节点返回所述交易验证信息;
轻节点2,用于向所述全节点发送交易验证请求,并根据所述全节点返回的交易验证信息中的布隆过滤器哈希方法、布隆过滤器位图、梅克尔路径结果以及梅克尔树根得到所述待验证交易对应的交易验证结果。
在一实施例中,所述轻节点具体用于:
根据所述布隆过滤器哈希方法以及所述布隆过滤器位图得到所述待验证交易对应的布隆过滤器验证结果;
根据所述梅克尔路径结果以及所述梅克尔树根得到所述待验证交易对应的梅克尔证明结果;以及
根据所述布隆过滤器验证结果以及所述梅克尔证明结果得到所述待验证交易对应的交易验证结果。
其中,轻节点得到交易验证结果的步骤参见图2至图17以及对应的说明书的内容即可,此处不再赘述。
在一实施例中,所述共识节点还用于:
根据所述布隆过滤器哈希方法遍历所有交易,得到各交易对应的布隆过滤器位图值;
将各交易对应的布隆过滤器位图值按位与计算,得到布隆过滤器位图。
具体地,参见图6至图10以及对应的说明书的内容即可,此处不再赘述。
第四方面,本申请提供一种基于区块链的交易验证方法,应用于本申请提供的任一区块链系统,如图19所示,该方法包括:
步骤S301,共识节点向全节点同步布隆过滤器哈希方法集合名、BitPreKey、哈希方法个数以及布隆过滤器位图;
步骤S302,全节点接收共识节点发送的布隆过滤器哈希方法以及与全节点中所有交易对应的布隆过滤器位图;
步骤S303,轻节点向待验证交易对应的全节点发送交易验证请求;
步骤S304,全节点根据所述交易验证请求生成交易验证信息,将所述交易验证信息返回至所述轻节点,其中,所述交易验证信息包括待验证交易对应的布隆过滤器位图、布隆过滤器哈希方法、梅克尔树根以及梅克尔路径结果;
步骤S305,轻节点根据所述布隆过滤器哈希方法、所述布隆过滤器位图、所述梅克尔路径结果以及所述梅克尔树根得到所述待验证交易对应的交易验证结果。
在一实施例中,所述轻节点根据所述布隆过滤器哈希方法、所述布隆过滤器位图、所述梅克尔路径结果以及所述梅克尔树根得到所述待验证交易对应的交易验证结果,包括:
轻节点根据所述布隆过滤器哈希方法以及所述布隆过滤器位图得到所述待验证交易对应的布隆过滤器验证结果;
轻节点根据所述梅克尔路径结果以及所述梅克尔树根得到所述待验证交易对应的梅克尔证明结果;以及
轻节点根据所述布隆过滤器验证结果以及所述梅克尔证明结果得到所述待验证交易对应的交易验证结果。
其中,轻节点得到交易验证结果的步骤参见图2至图17以及对应的说明书的内容即可,此处不再赘述。
基于同一发明构思,本申请实施例还提供了基于区块链的交易验证装置,可以用于实现上述实施例所描述的方法,如下面的实施例所述。由于基于区块链的交易验证装置解决问题的原理与基于区块链的交易验证方法相似,因此基于区块链的交易验证装置的实施可以参见基于区块链的交易验证方法的实施,重复之处不再赘述。以下所使用的,术语“单元”或者“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的系统较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
第五方面,本申请提供一种基于区块链的交易验证装置,与本申请从轻节点的角度提供的基于区块链的交易验证方法对应,如图20所示,该装置包括:
交易验证请求发送模块401,用于向待验证交易对应的全节点发送交易验证请求;
交易验证信息接收模块402,用于接收所述全节点根据所述交易验证请求返回的交易验证信息,所述交易验证信息包括待验证交易对应的布隆过滤器位图、布隆过滤器哈希方法、梅克尔树根以及梅克尔路径结果;
布隆过滤器验证结果生成模块403,用于根据所述布隆过滤器哈希方法以及所述布隆过滤器位图得到所述待验证交易对应的布隆过滤器验证结果;
梅克尔证明结果生成模块404,用于根据所述梅克尔路径结果以及所述梅克尔树根得到所述待验证交易对应的梅克尔证明结果;
交易验证结果生成模块405,用于根据所述布隆过滤器验证结果以及所述梅克尔证明结果得到所述待验证交易对应的交易验证结果。
在一实施例中,如图21所示,所述梅克尔证明结果生成模块404包括:
梅克尔路径判断单元4041,用于判断所述梅克尔路径结果中是否存在梅克尔路径;
哈希值计算单元4042,用于当梅克尔路径存在时,根据所述梅克尔路径计算所述待验证交易对应的哈希值;
哈希值比较单元4043,用于判断所述哈希值与所述梅克尔树根是否一致;
梅克尔证明结果生成单元4044,用于根据梅克尔路径是否存在或所述哈希值与所述梅克尔树根是否一致获取所述克尔证明结果;若梅克尔路径不存在,所述梅克尔证明结果为交易不存在;若所述哈希值与所述梅克尔树根一致,则所述梅克尔证明结果为交易存在;若所述哈希值与所述梅克尔树根不一致,则梅克尔证明结果为交易不存在。
在一实施例中,如图22所示,所述布隆过滤器验证结果生成模块403包括:
布隆过滤器位图值计算单元4031,用于根据所述布隆过滤器哈希方法对所述待验证交易进行哈希运算,得到所述待验证交易对应的布隆过滤器位图值;
布隆过滤器验证结果生成单元4032,用于根据所述布隆过滤器位图值以及所述布隆过滤器位图得到所述待验证交易对应的布隆过滤器验证结果。
在一实施例中,所述布隆过滤器验证结果生成单元4032具体用于:
将所述布隆过滤器位图值以及所述布隆过滤器位图进行按位与计算,得到按位与结果;
判断所述按位与结果与所述布隆过滤器位图是否一致;
若一致,则所述布隆过滤器验证结果为交易存在;
若不一致,则所述布隆过滤器验证结果为交易不存在。
在一实施例中,如图23所示,所述交易验证结果生成模块405包括:
误判率计算单元4051,用于当所述布隆过滤器验证结果为交易存在且若所述梅克尔证明结果为交易不存在时,根据所述布隆过滤器验证结果以及所述梅克尔证明结果确定所述布隆过滤器的实际误判率;
全节点可信判断单元4052,用于根据所述实际误判率以及所述布隆过滤器的理论误判率确定所述全节点是否可信;
交易验证结果生成单元4053,用于当所述梅克尔证明结果及所述布隆过滤器验证结果均为交易存在时,将所述交易验证结果确定为交易存在;当所述布隆过滤器验证结果为交易不存在时,将所述交易验证结果确定为交易不存在;当所述布隆过滤器验证结果为交易存在且所述梅克尔证明结果为交易不存在时,若所述全节点可信,则将所述交易验证结果确定为交易不存在;若所述全节点不可信,则将所述交易验证结果确定为交易存在。
在一实施例中,所述误判率计算单元4051具体用于:
统计所述布隆过滤器的成功次数和误判次数,其中,所述成功次数为所述梅克尔证明结果与所述布隆过滤器验证结果均为交易存在的次数,所述误判次数为所述梅克尔证明结果为交易不存在,且所述布隆过滤器验证结果为交易存在的次数;
计算所述误判次数与成功次数的比值,得到所述布隆过滤器的实际误判率。
第六方面,本申请提供另一种基于区块链的交易验证装置,与本申请从全节点的角度提供的基于区块链的交易验证方法对应,如图24所示,该装置包括:
交易验证请求接收模块501,用于接收轻节点发送的待验证交易对应的交易验证请求;
交易验证信息生成模块502,用于根据所述交易验证请求生成交易验证信息,并将所述交易验证信息返回至所述轻节点,以使所述轻节点根据所述交易验证信息中的布隆过滤器哈希方法、布隆过滤器位图、梅克尔路径结果以及梅克尔树根得到所述待验证交易对应的交易验证结果。
本申请的基于区块链的交易验证方法、装置及区块链系统利用布隆过滤器对梅克尔证明进行了扩展,克服了现有的梅克尔证明只能验证肯定性命题的缺陷,两者的结合可同时验证肯定性命题和否定性命题,提高了交易验证的正确率。本申请执行时只需要在区块链节点的区块头中增加少量字段,不会对轻节点的存储和网络传输造成负担。
本领域技术人员应明白,本说明书的实施例可提供为方法、系统或计算机程序产品。因此,本说明书实施例可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本说明书实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本说明书实施例的至少一个实施例或示例中。
在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。以上所述仅为本说明书实施例的实施例而已,并不用于限制本说明书实施例。对于本领域技术人员来说,本说明书实施例可以有各种更改和变化。凡在本说明书实施例的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本说明书实施例的权利要求范围之内。
Claims (16)
1.一种基于区块链的交易验证方法,其特征在于,包括:
向待验证交易对应的全节点发送交易验证请求;
接收所述全节点根据所述交易验证请求返回的交易验证信息,所述交易验证信息包括待验证交易对应的布隆过滤器位图、布隆过滤器哈希方法、梅克尔树根以及梅克尔路径结果;
根据所述布隆过滤器哈希方法以及所述布隆过滤器位图得到所述待验证交易对应的布隆过滤器验证结果;
根据所述梅克尔路径结果以及所述梅克尔树根得到所述待验证交易对应的梅克尔证明结果;
根据所述布隆过滤器验证结果以及所述梅克尔证明结果得到所述待验证交易对应的交易验证结果。
2.根据权利要求1所述的基于区块链的交易验证方法,其特征在于,所述根据所述梅克尔路径结果以及所述梅克尔树根得到所述待验证交易对应的梅克尔证明结果,包括:
判断所述梅克尔路径结果中是否存在梅克尔路径;若梅克尔路径不存在,所述梅克尔证明结果为交易不存在;
若梅克尔路径存在,则根据所述梅克尔路径计算所述待验证交易对应的哈希值;
根据所述哈希值与所述梅克尔树根是否一致获取所述克尔证明结果;若一致,则所述梅克尔证明结果为交易存在;若不一致,则梅克尔证明结果为交易不存在。
3.根据权利要求2所述的基于区块链的交易验证方法,其特征在于,所述根据所述布隆过滤器哈希方法以及所述布隆过滤器位图得到所述待验证交易对应的布隆过滤器验证结果,包括:
根据所述布隆过滤器哈希方法对所述待验证交易进行哈希运算,得到所述待验证交易对应的布隆过滤器位图值;
根据所述布隆过滤器位图值以及所述布隆过滤器位图得到所述待验证交易对应的布隆过滤器验证结果。
4.根据权利要求3所述的基于区块链的交易验证方法,其特征在于,所述根据所述布隆过滤器位图值以及所述布隆过滤器位图得到所述待验证交易对应的布隆过滤器验证结果,包括:
将所述布隆过滤器位图值以及所述布隆过滤器位图进行按位与计算,得到按位与结果;
判断所述按位与结果与所述布隆过滤器位图是否一致;
若一致,则所述布隆过滤器验证结果为交易存在;
若不一致,则所述布隆过滤器验证结果为交易不存在。
5.根据权利要求4所述的基于区块链的交易验证方法,其特征在于,所述根据所述布隆过滤器验证结果以及所述梅克尔证明结果得到所述待验证交易对应的交易验证结果,包括:
若所述梅克尔证明结果及所述布隆过滤器验证结果均为交易存在,则所述交易验证结果为交易存在;
若所述布隆过滤器验证结果为交易不存在,则所述交易验证结果为交易不存在。
6.根据权利要求4所述的基于区块链的交易验证方法,其特征在于,所述根据所述布隆过滤器验证结果以及所述梅克尔证明结果得到所述待验证交易对应的交易验证结果,还包括:
若所述布隆过滤器验证结果为交易存在且若所述梅克尔证明结果为交易不存在,则根据所述布隆过滤器验证结果以及所述梅克尔证明结果确定所述布隆过滤器的实际误判率;
根据所述实际误判率以及所述布隆过滤器的理论误判率确定所述全节点是否可信;若可信,所述交易验证结果为交易不存在;若不可信,所述交易验证结果为交易存在。
7.根据权利要求6所述的基于区块链的交易验证方法,其特征在于,所述根据所述布隆过滤器验证结果以及所述梅克尔证明结果确定所述布隆过滤器的实际误判率,包括:
统计所述布隆过滤器的成功次数和误判次数,其中,所述成功次数为所述梅克尔证明结果与所述布隆过滤器验证结果均为交易存在的次数,所述误判次数为所述梅克尔证明结果为交易不存在,且所述布隆过滤器验证结果为交易存在的次数;
计算所述误判次数与成功次数的比值,得到所述布隆过滤器的实际误判率。
8.根据权利要求6所述的基于区块链的交易验证方法,其特征在于,所述根据所述实际误判率以及所述布隆过滤器的理论误判率确定所述全节点是否可信,包括:
当所述实际误判率大于所述理论误判率时,所述全节点不可信,否则所述全节点可信。
9.一种基于区块链的交易验证方法,其特征在于,包括:
接收轻节点发送的待验证交易对应的交易验证请求;
根据所述交易验证请求生成交易验证信息,并将所述交易验证信息返回至所述轻节点,以使所述轻节点根据所述交易验证信息中的布隆过滤器哈希方法、布隆过滤器位图、梅克尔路径结果以及梅克尔树根得到所述待验证交易对应的交易验证结果。
10.一种区块链系统,其特征在于,包括:
共识节点,用于打包布隆过滤器哈希方法;
全节点,用于从所述共识节点获取所述布隆过滤器哈希方法和所述全节点的所有交易对应的布隆过滤器位图;以及当接收轻节点发送的待验证交易对应的交易验证请求时,根据所述交易验证请求生成交易验证信息,并向所述轻节点返回所述交易验证信息;
轻节点,用于向所述全节点发送交易验证请求,并根据所述全节点返回的交易验证信息中的布隆过滤器哈希方法、布隆过滤器位图、梅克尔路径结果以及梅克尔树根得到所述待验证交易对应的交易验证结果。
11.根据权利要求10所述的区块链系统,其特征在于,所述轻节点具体用于:
根据所述布隆过滤器哈希方法以及所述布隆过滤器位图得到所述待验证交易对应的布隆过滤器验证结果;
根据所述梅克尔路径结果以及所述梅克尔树根得到所述待验证交易对应的梅克尔证明结果;以及
根据所述布隆过滤器验证结果以及所述梅克尔证明结果得到所述待验证交易对应的交易验证结果。
12.根据权利要求10所述的区块链系统,其特征在于,所述共识节点还用于:
根据所述布隆过滤器哈希方法遍历所有交易,得到各交易对应的布隆过滤器位图值;
将各交易对应的布隆过滤器位图值按位与计算,得到布隆过滤器位图。
13.一种基于区块链的交易验证方法,应用于权利要求10至12中任一项所述的区块链系统,其特征在于,包括:
轻节点向待验证交易对应的全节点发送交易验证请求;
全节点根据所述交易验证请求生成交易验证信息,将所述交易验证信息返回至所述轻节点,其中,所述交易验证信息包括待验证交易对应的布隆过滤器位图、布隆过滤器哈希方法、梅克尔树根以及梅克尔路径结果;所述布隆过滤器位图由所述共识节点根据所述布隆过滤器哈希方法以及所述全节点内的各交易计算得到;
轻节点根据所述布隆过滤器哈希方法、所述布隆过滤器位图、所述梅克尔路径结果以及所述梅克尔树根得到所述待验证交易对应的交易验证结果。
14.一种基于区块链的交易验证装置,其特征在于,包括:
交易验证请求发送模块,用于向待验证交易对应的全节点发送交易验证请求;
交易验证信息接收模块,用于接收所述全节点根据所述交易验证请求返回的交易验证信息,所述交易验证信息包括待验证交易对应的布隆过滤器位图、布隆过滤器哈希方法、梅克尔树根以及梅克尔路径结果;
布隆过滤器验证结果生成模块,用于根据所述布隆过滤器哈希方法以及所述布隆过滤器位图得到所述待验证交易对应的布隆过滤器验证结果;
梅克尔证明结果生成模块,用于根据所述梅克尔路径结果以及所述梅克尔树根得到所述待验证交易对应的梅克尔证明结果;
交易验证结果生成模块,用于根据所述布隆过滤器验证结果以及所述梅克尔证明结果得到所述待验证交易对应的交易验证结果。
15.根据权利要求14所述的基于区块链的交易验证装置,其特征在于,所述交易验证结果生成模块包括:
误判率计算单元,用于当所述布隆过滤器验证结果为交易存在且若所述梅克尔证明结果为交易不存在时,根据所述布隆过滤器验证结果以及所述梅克尔证明结果确定所述布隆过滤器的实际误判率;
全节点可信判断单元,用于根据所述实际误判率以及所述布隆过滤器的理论误判率确定所述全节点是否可信;
交易验证结果生成单元,用于当所述梅克尔证明结果及所述布隆过滤器验证结果均为交易存在时,将所述交易验证结果确定为交易存在;当所述布隆过滤器验证结果为交易不存在时,将所述交易验证结果确定为交易不存在;当所述布隆过滤器验证结果为交易存在且所述梅克尔证明结果为交易不存在时,若所述全节点可信,则将所述交易验证结果确定为交易不存在;若所述全节点不可信,则将所述交易验证结果确定为交易存在。
16.一种基于区块链的交易验证装置,其特征在于,包括:
交易验证请求接收模块,用于接收轻节点发送的待验证交易对应的交易验证请求;
交易验证信息生成模块,用于根据所述交易验证请求生成交易验证信息,并将所述交易验证信息返回至所述轻节点,以使所述轻节点根据所述交易验证信息中的布隆过滤器哈希方法、布隆过滤器位图、梅克尔路径结果以及梅克尔树根得到所述待验证交易对应的交易验证结果。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210277269.9A CN114648330A (zh) | 2022-03-17 | 2022-03-17 | 基于区块链的交易验证方法、装置及区块链系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210277269.9A CN114648330A (zh) | 2022-03-17 | 2022-03-17 | 基于区块链的交易验证方法、装置及区块链系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114648330A true CN114648330A (zh) | 2022-06-21 |
Family
ID=81995672
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210277269.9A Pending CN114648330A (zh) | 2022-03-17 | 2022-03-17 | 基于区块链的交易验证方法、装置及区块链系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114648330A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116993505A (zh) * | 2023-09-25 | 2023-11-03 | 腾讯科技(深圳)有限公司 | 交易处理方法、装置、电子设备及存储介质 |
-
2022
- 2022-03-17 CN CN202210277269.9A patent/CN114648330A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116993505A (zh) * | 2023-09-25 | 2023-11-03 | 腾讯科技(深圳)有限公司 | 交易处理方法、装置、电子设备及存储介质 |
CN116993505B (zh) * | 2023-09-25 | 2024-01-16 | 腾讯科技(深圳)有限公司 | 交易处理方法、装置、电子设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110602148B (zh) | 一种区块的状态树的生成和链上数据验证的方法及装置 | |
CN114944932B (zh) | 将区块添加到被许可的区块链的方法和系统 | |
CN109313654B (zh) | 使用布隆过滤器对被许可的区块链进行去同步恢复的方法和系统 | |
CN109766389B (zh) | 一种基于位图索引的区块链轻客户端验证查询方法 | |
CN110543488B (zh) | 一种验证节点更新方法、装置及设备 | |
CN106991148B (zh) | 一种支持全更新操作的数据库验证系统及方法 | |
US20240097919A1 (en) | Consensus trusted cluster changing method, computer device and computer-readable storage medium | |
CN113411189B (zh) | 数据处理方法及装置、溯源方法及装置、电子设备 | |
CN114221972A (zh) | 中继区块链系统以及跨链交易方法 | |
CN110149379B (zh) | 一种基于层逻辑的多原链吞吐量扩展方法 | |
CN114648330A (zh) | 基于区块链的交易验证方法、装置及区块链系统 | |
WO2022100946A1 (en) | Merkle proof entity | |
CN112132574B (zh) | 区块链数据校验方法、数据处理方法、装置及设备 | |
Tsuchiya et al. | Using bounded model checking to verify consensus algorithms | |
CN113326332B (zh) | 一种区块链的快照同步方法及装置 | |
US20210392002A1 (en) | Cross-certification for secure binding of cryptographic systems | |
Wang et al. | Efficient verifiable databases with additional insertion and deletion operations in cloud computing | |
CN117539925A (zh) | 一种数据处理方法、装置、介质和设备 | |
KR102648532B1 (ko) | 데이터 베이스 질의 결과를 검증하기 위한 방법 및 그 디바이스 | |
Zou et al. | Dynamic provable data possession based on ranked Merkle hash tree | |
Chu et al. | Optimizing Distributed Protocols with Query Rewrites [Technical Report] | |
CN110324422B (zh) | 一种云应用的证实方法及系统 | |
CN111241047A (zh) | 一种文件同步方法及装置 | |
Di Giusto et al. | Guessing the Buffer Bound for k-Synchronizability | |
JPWO2020240295A5 (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 |