CN112738141A - 基于责备机制的状态验证方法、系统、p2p网络 - Google Patents
基于责备机制的状态验证方法、系统、p2p网络 Download PDFInfo
- Publication number
- CN112738141A CN112738141A CN201910972912.8A CN201910972912A CN112738141A CN 112738141 A CN112738141 A CN 112738141A CN 201910972912 A CN201910972912 A CN 201910972912A CN 112738141 A CN112738141 A CN 112738141A
- Authority
- CN
- China
- Prior art keywords
- block
- verification
- state information
- state
- node
- 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/104—Peer-to-peer [P2P] networks
-
- 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/50—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees
Landscapes
- Business, Economics & Management (AREA)
- Engineering & Computer Science (AREA)
- Accounting & Taxation (AREA)
- Finance (AREA)
- Technology Law (AREA)
- Economics (AREA)
- Marketing (AREA)
- Strategic Management (AREA)
- Development Economics (AREA)
- Physics & Mathematics (AREA)
- General Business, Economics & Management (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明涉及一种基于责备机制的区块状态验证方法,包括:对于一全节点,验证当前主链上的任一区块的交易状态,判断该任一区块是否为状态正确区块;找出该任一区块的向前正确区块和责备区块;生成该任一区块的第三状态信息;当一轻节点验证该当前主链上的待验区块的交易状态时,从该全节点获取该待验区块的验证状态信息,或确定该待验区块的追责区块,从该全节点获取该追责区块的所有责备区块和该追责区块的验证状态信息,与该轻节点本地存储的该追责区块的第三状态信息进行比较,以验证该全节点提供的验证状态信息的真伪。
Description
技术领域
本发明属于互联网技术领域,具体涉及一种区块链系统的交易状态验证方法及系统。
背景技术
区块链系统由于网络延迟等多方面的原因无法完全避免账本结构中的分叉。在许多区块链的共识协议算法中,虽然主链上的区块的交易执行状态是需要验证的,但分叉链上的区块通常并不需要或无法进行验证。因此,验证分叉链上的区块执行状态会造成严重的额外开销。然而,许多的共识算法对于主链的选择需要一定的时间才能收敛。在未收敛的过程中,靠近账本末端的主链会发生若干次变化。于是,某一时刻在分叉链上的区块可能在下一个时刻变成主链区块。因此,如果在分叉链上的区块不进行状态验证,会使得主链上的区块所存的状态哈希值并不正确,从而无法为轻节点提供状态证明。本发明提出了一种基于责备机制的状态验证方法,使得全节点无需验证分叉链上的交易执行状态,同时又能够为轻节点提供主链区块上的状态证明,从而避免了不必要的计算开销。
目前区块链系统中,每个区块头部会存储该区块执行之后的状态信息。当全节点接收到网络中传来的区块后,它执行该区块,并验证执行之后的状态信息是否与该区块头中存储的状态信息一致。
全节点维护区块链账本中的多条链并根据共识算法选择一条主链,其他链为分叉链。全节点接收网络中其他节点传播出来的区块,并将该区块接入到相应的链上;全节点执行该区块所在的链直到该区块的位置,然后验证该区块的状态信息;同时,全节点根据这个新收到的区块重新选择主链。
主链的选择依赖于区块状态信息的验证。这导致主链和分叉链上的区块的状态信息都需要去验证。然而,分叉链上的状态信息对于轻节点来说并没有用。所以分叉链上状态信息的验证造成了计算的浪费。
发明内容
针对现有技术中存在的问题,本发明提出一种基于责备机制的区块状态验证方法,仅对主链上的区块进行交易状态验证,通过增加责备信息和状态信息,使得全节点无需验证分叉链上的交易执行状态,同时又能够为轻节点提供主链区块上的状态证明,从而避免不必要的计算开销。。
具体来说,本方法包括:对于一全节点,验证当前主链上的任一区块的交易状态,以该任一区块的真实Merkle树根哈希值为第一状态信息,以该任一区块区块头存储的Merkle树根哈希值为第二状态信息;若该第一状态信息与该第二状态信息相等,则该任一区块为状态正确区块,反之为状态错误区块;以距离该任一区块最近的向前的状态正确区块为该任一区块的向前正确区块;以该任一区块和其向前正确区块之间的区块为该任一区块的责备区块;当该任一区块存在责备区块时,以该任一区块和其所有责备区块的第一状态信息,生成该任一区块的第三状态信息,并以该主链区块为其责备区块的追责区块,反之,则以该任一区块的第一状态信息生成该任一区块的第三状态信息;当一轻节点验证该当前主链上的待验区块的交易状态时,从该全节点获取该待验区块的验证状态信息,或确定该待验区块的追责区块,从该全节点获取该追责区块的所有责备区块和该追责区块的验证状态信息,与该轻节点本地存储的该追责区块的第三状态信息进行比较,以验证该全节点提供的验证状态信息的真伪。
本发明所述的区块状态验证方法,其中对于链入分叉链的区块,该全节点不验证其交易状态。
本发明所述的区块状态验证方法,其中该当前主链中,当区块BN-M为区块BN的向前正确区块时,区块BN的责备信息blameN=M-1,其中,M、N为正整数,M<N,M≥1。
本发明所述的区块状态验证方法,其中对于该全节点,区块BN的第一状态信息为SN,第二状态信息为S'N,第三状态信息为S"N,当S'N=SN时,S"N=hash(SN);当S'N≠SN时,S"N=hash(SN-M+1、SN-M+2、……、SN)。
本发明所述的区块状态验证方法,其中该轻节点对该当前主链上的待验区块BP进行状态验证的步骤具体包括:当待验区块BP具有追责区块BQ时,则从任一全节点获取区块BQ及区块BQ的所有责备区块BQ-R、……、BP、……、BQ-1的验证状态信息sQ-R、……、sP、……、sQ-1、sQ,若S"Q=hash(sQ-R、……、sP、……、sQ-1、sQ),则sP=SP,从该全节点获取的区块BP的验证状态信息sP为正确,反之则sP≠SP,从该全节点获取的区块BP的验证状态信息sP为错误;其中,P、Q、R为正整数,Q>P,且Q>R;当待验区块BP不具有追责区块时,则从任一全节点获取待验区块BP的验证状态信息sP,若S"P=hash(sP),则sP=SP,从该全节点获取的区块BP的验证状态信息sP为正确,反之则sP≠SP,从该全节点获取的区块BP的验证状态信息sP为错误。
本发明还提出一种基于责备机制的区块状态验证系统,包括:信息生成模块,用于一全节点验证当前主链上的任一区块的交易状态,以确定区块之间的关系;其中,对于该全节点,验证当前主链上的该任一区块的交易状态,以该任一区块的真实Merkle树根哈希值为第一状态信息,以该任一区块区块头存储的Merkle树根哈希值为第二状态信息;若该第一状态信息与该第二状态信息相等,则该任一区块为状态正确区块,反之为状态错误区块;以距离该任一区块最近的向前的状态正确区块为该任一区块的向前正确区块;以该任一区块和其向前正确区块之间的区块为该任一区块的责备区块;当该任一区块存在责备区块时,以该任一区块和其所有责备区块的第一状态信息,生成该任一区块的第三状态信息,并以该主链区块为其责备区块的追责区块,反之,则以该任一区块的第一状态信息生成该任一区块的第三状态信息;状态验证模块,用于一轻节点对区块交易状态的验证;其中,当该轻节点验证该当前主链上的待验区块的交易状态时,从该全节点获取该待验区块的验证状态信息,或确定该待验区块的追责区块,从该全节点获取该追责区块的所有责备区块和该追责区块的验证状态信息,与该轻节点本地存储的该追责区块的第三状态信息进行比较,以验证该全节点提供的验证状态信息的真伪。
本发明所述的区块状态验证系统,其中该信息生成模块对于链入分叉链的区块,不验证其交易状态。
本发明所述的区块状态验证系统,其中于该信息生成模块中,该当前主链中,当区块BN-M为区块BN的第三区块时,区块BN的责备信息blameN=M-1,其中,M、N为正整数,M<N,M≥1。
本发明所述的区块状态验证系统,其中于该信息生成模块中,区块BN的第一状态信息为SN,第二状态信息为S'N,第三状态信息为S"N,当S'N=SN时,S"N=hash(SN);当S'N≠SN时,S"N=hash(SN-M+1、SN-M+2、……、SN)。
本发明所述的区块状态验证系统,其中该状态验证模块具体包括:第一验证模块,用于当待验区块BP具有追责区块BQ时,则从任一全节点获取区块BQ及区块BQ的所有责备区块BQ-R、……、BP、……、BQ-1的验证状态信息sQ-R、……、sP、……、sQ-1、sQ,若S"Q=hash(sQ-R、……、sP、……、sQ-1、sQ),则sP=SP,从该全节点获取的区块BP的验证状态信息sP为正确,反之则sP≠SP,从该全节点获取的区块BP的验证状态信息sP为错误;其中,P、Q、R为正整数,Q>P,且Q>R;第二验证模块,用于当待验区块BP不具有追责区块时,则从任一全节点获取待验区块BP的验证状态信息sP,若S"P=hash(sP),则sP=SP,从该全节点获取的区块BP的验证状态信息sP为正确,反之则sP≠SP,从该全节点获取的区块BP的验证状态信息sP为错误。
本发明还提出一种可读存储介质,存储有可执行指令,该可执行指令用于执行基于责备机制的区块状态验证方法。
本发明还提出一种数据处理装置,用于作为P2P网络的全节点,接收、共识验证并存储该P2P网络中的区块,或作为P2P网络的轻节点,接收、共识验证并存储该P2P网络中的区块的区块头,该数据处理装置包括:前述的可读存储介质;处理器,该处理器调取并执行该可读存储介质中的可执行指令,以执行基于责备机制的区块状态验证方法。
本发明还提出一种P2P网络,其中该P2P网络以前述的数据处理装置为共识节点。
本发明使得全节点无需对分叉链上的区块的状态信息进行验证(也就是只对主链上的区块进行状态验证)就可以对轻节点提供主链上的状态证明,从而极大的减小了区块交易状态验证的计算开销。
附图说明
图1是本发明的责备信息示意图。
图2是本发明的轻节点交易状态验证示意图。
图3是本发明的数据处理装置结构示意图。
图4是本发明的P2P网络结构示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。此外,下面所描述的本发明各个实施方式中所涉及到的技术特征只要彼此之间未构成冲突就可以相互组合。
在本发明的机制中,新挖出的区块会被接入主链或对应的分叉链。对于全节点,首先让主链的选择不依赖于对区块执行状态的验证,对分叉链上的区块,不验证其执行状态,但是对主链区块的执行状态,需要严格的验证。该机制允许主链上存在执行状态不正确的区块。对于不同的共识算法,主链的选择可以采用最长链规则,最重子树规则等等。在验证某一主链区块的状态时,在所有区块的区块头中增加责备信息,责备信息是一个整数值,若这个主链区块的父区块所存的状态信息正确,则这个主链区块的责备信息为0,若发现这个主链区块的父区块所存的状态信息不正确,设定这个主链区块的责备信息为一非零值。从这个主链区块开始,顺着其所在的链向前(创世区块方向)找到第一个交易状态正确的区块,该交易状态正确的区块与这个主链区块的相对偏移量,即该交易状态正确的区块与这个主链区块之间间隔的区块数量就是这个主链区块的责备信息对应的整数值。比如,如果这个主链区块的责备信息为0,则这个主链区块的父区块的状态是正确的,也就是没有责备任何区块;如果这个主链区块的责备信息为1,则这个主链区块的父区块的状态是错误的,而这个父区块的父区块(这个主链区块的爷区块)的状态信息是正确的;举例来说,对于主链区块BN,如BN的责备信息blameN=0,区块BN认为其父区块BN-1所存的状态信息正确,责备信息blameN是以区块BN-1与区块BN的相对偏移量0来取值;如BN的责备信息blameN=1,区块BN认为其父区块BN-1所存的状态信息错误,但其爷区块BN-2所存的状态信息正确,责备信息blameN是以区块BN-2与区块BN的相对偏移量1(BN与BN-2之间间隔的区块数量)来取值。
本发明的基于责备机制的区块状态验证方法包括两个主要步骤
步骤S1,对于某一个区块链系统的全节点,当新增加的区块链入区块链后,仅验证当前主链的区块,而对分叉链中的区块不进行验证;获取主链区块正确的Merkle树根哈希值(hashMerkleRoot Merkle)S,将其与矿工挖掘区块时得到的挖掘根哈希值S'进行对比,若相等,则这个区块为交易状态正确区块,若不相等,则这个区块为交易状态错误区块;
对于主链中的任一区块,设置责备信息blame,并以这个区块向前的区块中,连续的交易状态错误区块的数量(正整数值)为这个区块的责备信息blame;如此一来,从任一区块的责备信息blame中就可以得到,这个区块向前方向上的第几个区块是距离这个区块最近的交易状态正确区块;以这个区块和其向前方向上最近的交易状态正确区块之间存在的交易状态错误区块的正确根哈希值,以及这个区块的正确根哈希值,得到这个区块的交易信息S";
具体来说,当主链上的区块BN的向前区块BN-M为交易状态正确区块,且区块BN与区块BN-M之间不存在其他交易状态正确区块时,区块BN与区块BN-M的相对偏移量为M-1,即区块BN的责备信息blameN=M-1,其中,M、N为正整数,M<N,M≥1;以区块BN-M为区块BN的向前正确区块,以区块BN-M与区块BN之间的M-1个交易状态错误区块BN-1、……、BN-M+1为区块BN的责备区块,相对的,以区块BN为区块BN-1、……、BN-M+1的追责区块;例如,M=1时,blameN=M-1=0,区块BN-M与区块BN之间存在0个(不存在)交易状态错误区块,即区块BN不存在追责区块;当M=2时,blameN=M-1=1,区块BN-M与区块BN之间存在1个交易状态错误区块BN-1(区块BN的追责区块BN-1);当M=3时,blameN=M-1=2,区块BN-M与区块BN之间存在2个交易状态错误区块BN-1、BN-2……
以区块BN的责备区块的正确根哈希值SN-M+1、SN-M+2、……、SN-1,以及区块BN的正确根哈希值SN,得到区块BN的区块头状态信息S"N=hash(SN-M+1、SN-M+2、……、SN-1、SN);如果区块BN没有责备区块,即M=1,区块BN为区块BN-1的子区块,则区块BN的区块头状态信息S"N为区块BN的正确根哈希值SN的哈希摘要,即S"N=hash(SN);
步骤S2,对于区块链系统的某一个轻节点,当需要对当前主链上的区块BP进行交易状态验证时,首先确定区块BP是否为某一区块的责备区块,即区块BP是否存在追责区块;
当区块BP不存在追责区块时,从任一全节点获取区块BP的验证状态信息sP,将hash(sP)与轻节点存储的区块BP的区块头交易信息S"P进行比较,若hash(sP)=S"P,则sP=SP,即,从该全节点获得的验证状态信息sP为区块BP的正确的Merkle树根哈希值SP;若hash(sP)≠S"P,则sP≠SP,从该全节点获得的验证状态信息sP为错误的的Merkle树根哈希值;
当区块BP存在追责区块BQ时,从任一全节点获取区块BQ及区块BQ的所有责备区块BQ-R、……、BP、……、BQ-1的验证状态信息sQ-R、……、sP、……、sQ-1、sQ,将hash(sQ-R、……、sP、……、sQ-1、sQ)与轻节点存储的区块BQ的区块头交易信息S"Q进行比较,若hash(sQ-R、……、sP、……、sQ-1、sQ)=S"Q,则可以证明sP=SP,即,从该全节点获得的验证状态信息sP为区块BP的正确的Merkle树根哈希值SP;若hash(sQ-R、……、sP、……、sQ-1、sQ)≠S"Q,则证明sP≠SP,从该全节点获得的验证状态信息sP为错误的的Merkle树根哈希值;其中,P、Q、R为正整数,Q>P,且Q>R。
如图1所示,blame表示责备信息。区块B1的责备信息是0,说明当B1挖出的时候,节点认为区块B0的状态是正确的。区块B2的责备信息是2,说明当B2挖出来的时候,节点认为B0和B1的状态信息是错误的。以此类推,B4认为B1是正确的,B3认为B2是错误的,也就是认为B1是正确的。因此,在B1之后挖出来的区块中,也就是B1的子树下的区块中,有2/3的区块认为B1是正确的,也就是超过半数的区块认为B1是正确的。
那么如何为轻节点提供区块状态的证明呢?轻节点也拥有和全节点一样的由区块头构成的账本结构。与全节点不同,轻节点不执行区块,所以无法局部产生正确的区块状态。但是根据一个区块的子树下的区块责备信息,轻节点可以验证一个区块的状态信息是否正确。比如图1中B1的子树下有超过半数的区块认为它的状态信息是正确的,于是轻节点可以认为区块B1的状态信息是正确的。但是对于那些状态信息不正确的区块,如何让轻节点能够得到对应的正确的状态信息呢?
图2是本发明的轻节点交易状态验证示意图。如图2所示,每个区块的头部都存储着状态信息,由S"表示。当责备信息为0时,该区块的状态信息就是当前区块执行后状态的哈希摘要,比如S"0。若责备信息不为0,比如图2中的区块B3,其责备信息是2,即B1和B2的状态信息S"1和S"2是不正确的。假设区块B3的状态信息是正确的。在产生区块B3的时候,该全节点计算出正确的区块B1和B2以及B3的正确根哈希值S1,S2,S3,然后将它们编码成哈希值S"3=hash(S1、S2、S3),存在区块B3的头部。假如轻节点希望验证区块B2的状态信息,向一全节点提出请求,全节点向它提供区块B1和B2以及B3的验证状态信息s1、s2、s3,这里使用s表示验证状态信息,是指轻节点并不能确定全节点提供的验证状态信息是否就是区块B1和B2以及B3的正确根哈希值,需要进行真伪的判别。然后轻节点计算出相应的哈希值hash(s1、s2、s3)与B3的区块头中存放的S"3做比较。如果相等,则s2就是区块B2的正确的状态信息(正确根哈希值)。
图3是本发明的数据处理终端结构示意图。如图3所示,本发明还提出一种数据处理终端,包括处理器和可读存储介质,其中处理器通过读取可读存储介质存储的可执行指令,以接收、共识验证并存储该P2P网络中的区块;可读存储介质存储有可执行指令,可执行指令被处理器执行时,实现上述基于责备机制的区块状态验证方法。本领域普通技术人员可以理解上述方法中的全部或部分步骤可通过程序来指令相关硬件(例如处理器)完成,所述程序可以存储于可读存储介质中,如只读存储器、磁盘或光盘等。上述实施例的全部或部分步骤也可以使用一个或多个集成电路来实现。相应地,上述实施例中的各模块可以采用硬件的形式实现,例如通过集成电路来实现其相应功能,也可以采用软件功能模块的形式实现,例如通过处理器执行存储于存储器中的程序/指令来实现其相应功能。本发明实施例不限制于任何特定形式的硬件和软件的结合。
图4是本发明的P2P网络结构示意图。如图4所示,本发明的P2P网络包括多个共识节点,这些共识节点中,包括至少一个全节点,还可以包括一个或多个轻节点,其中,本发明的P2P网络的全节点和轻节点为前述的数据处理终端。
本发明可以完全避免分叉链上区块的状态验证所带来的计算开销。假设一个区块链系统每5秒出一个区块,区块广播到全网的延迟为2分钟。那么这个区块链的分叉的宽度大概就是24。于是本发明可以节省23/24≈96%区块验证计算开销。
本发明使得全节点无需对分叉链上的区块的状态信息进行验证(也就是只对主链上的区块进行状态验证)就可以对轻节点提供主链上的状态证明。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (13)
1.一种基于责备机制的区块状态验证方法,其特征在于,包括:
对于一全节点,验证当前主链上的任一区块的交易状态,以该任一区块的真实Merkle树根哈希值为第一状态信息,以该任一区块区块头存储的Merkle树根哈希值为第二状态信息;若该第一状态信息与该第二状态信息相等,则该任一区块为状态正确区块,反之为状态错误区块;以距离该任一区块最近的向前的状态正确区块为该任一区块的向前正确区块;以该任一区块和其向前正确区块之间的区块为该任一区块的责备区块;当该任一区块存在责备区块时,以该任一区块和其所有责备区块的第一状态信息,生成该任一区块的第三状态信息,并以该主链区块为其责备区块的追责区块,反之,则以该任一区块的第一状态信息生成该任一区块的第三状态信息;
当一轻节点验证该当前主链上的待验区块的交易状态时,从该全节点获取该待验区块的验证状态信息,或确定该待验区块的追责区块,从该全节点获取该追责区块的所有责备区块和该追责区块的验证状态信息,与该轻节点本地存储的该追责区块的第三状态信息进行比较,以验证该全节点提供的验证状态信息的真伪。
2.权利要求1所述的区块状态验证方法,其特征在于,对于链入分叉链的区块,该全节点不验证其交易状态。
3.权利要求1所述的区块状态验证方法,其特征在于,该当前主链中,当区块BN-M为区块BN的向前正确区块时,区块BN的责备信息blameN=M-1,其中,M、N为正整数,M<N,M≥1。
4.权利要求3所述的区块状态验证方法,其特征在于,对于该全节点,区块BN的第一状态信息为SN,第二状态信息为S'N,第三状态信息为S"N,当S'N=SN时,S"N=hash(SN);当S'N≠SN时,S"N=hash(SN-M+1、SN-M+2、……、SN)。
5.权利要求4所述的区块状态验证方法,其特征在于,该轻节点对该当前主链上的待验区块BP进行状态验证的步骤具体包括:
当待验区块BP具有追责区块BQ时,则从任一全节点获取区块BQ及区块BQ的所有责备区块BQ-R、……、BP、……、BQ-1的验证状态信息sQ-R、……、sP、……、sQ-1、sQ,若S"Q=hash(sQ-R、……、sP、……、sQ-1、sQ),则sP=SP,从该全节点获取的区块BP的验证状态信息sP为正确,反之则sP≠SP,从该全节点获取的区块BP的验证状态信息sP为错误;其中,P、Q、R为正整数,Q>P,且Q>R;
当待验区块BP不具有追责区块时,则从任一全节点获取待验区块BP的验证状态信息sP,若S"P=hash(sP),则sP=SP,从该全节点获取的区块BP的验证状态信息sP为正确,反之则sP≠SP,从该全节点获取的区块BP的验证状态信息sP为错误。
6.一种基于责备机制的区块状态验证系统,其特征在于,包括:
信息生成模块,用于一全节点验证当前主链上的任一区块的交易状态,以确定区块之间的关系;其中,对于该全节点,验证当前主链上的该任一区块的交易状态,以该任一区块的真实Merkle树根哈希值为第一状态信息,以该任一区块区块头存储的Merkle树根哈希值为第二状态信息;若该第一状态信息与该第二状态信息相等,则该任一区块为状态正确区块,反之为状态错误区块;以距离该任一区块最近的向前的状态正确区块为该任一区块的向前正确区块;以该任一区块和其向前正确区块之间的区块为该任一区块的责备区块;当该任一区块存在责备区块时,以该任一区块和其所有责备区块的第一状态信息,生成该任一区块的第三状态信息,并以该主链区块为其责备区块的追责区块,反之,则以该任一区块的第一状态信息生成该任一区块的第三状态信息;
状态验证模块,用于一轻节点对区块交易状态的验证;其中,当该轻节点验证该当前主链上的待验区块的交易状态时,从该全节点获取该待验区块的验证状态信息,或确定该待验区块的追责区块,从该全节点获取该追责区块的所有责备区块和该追责区块的验证状态信息,与该轻节点本地存储的该追责区块的第三状态信息进行比较,以验证该全节点提供的验证状态信息的真伪。
7.权利要求6所述的区块状态验证系统,其特征在于,该信息生成模块对于链入分叉链的区块,不验证其交易状态。
8.权利要求6所述的区块状态验证系统,其特征在于,于该信息生成模块中,该当前主链中,当区块BN-M为区块BN的第三区块时,区块BN的责备信息blameN=M-1,其中,M、N为正整数,M<N,M≥1。
9.权利要求8所述的区块状态验证系统,其特征在于,于该信息生成模块中,区块BN的第一状态信息为SN,第二状态信息为S'N,第三状态信息为S"N,当S'N=SN时,S"N=hash(SN);当S'N≠SN时,S"N=hash(SN-M+1、SN-M+2、……、SN)。
10.权利要求9所述的区块状态验证系统,其特征在于,该状态验证模块具体包括:
第一验证模块,用于当待验区块BP具有追责区块BQ时,则从任一全节点获取区块BQ及区块BQ的所有责备区块BQ-R、……、BP、……、BQ-1的验证状态信息sQ-R、……、sP、……、sQ-1、sQ,若S"Q=hash(sQ-R、……、sP、……、sQ-1、sQ),则sP=SP,从该全节点获取的区块BP的验证状态信息sP为正确,反之则sP≠SP,从该全节点获取的区块BP的验证状态信息sP为错误;其中,P、Q、R为正整数,Q>P,且Q>R;
第二验证模块,用于当待验区块BP不具有追责区块时,则从任一全节点获取待验区块BP的验证状态信息sP,若S"P=hash(sP),则sP=SP,从该全节点获取的区块BP的验证状态信息sP为正确,反之则sP≠SP,从该全节点获取的区块BP的验证状态信息sP为错误。
11.一种可读存储介质,存储有可执行指令,该可执行指令用于执行如权利要求1~5任一项所述的基于责备机制的区块状态验证方法。
12.一种数据处理装置,用于作为P2P网络的全节点,接收、共识验证并存储该P2P网络中的区块,或作为P2P网络的轻节点,接收、共识验证并存储该P2P网络中的区块的区块头,该数据处理装置包括:
如权利要求11所述的可读存储介质;
处理器,该处理器调取并执行该可读存储介质中的可执行指令,以执行基于责备机制的区块状态验证方法。
13.一种P2P网络,其特征在于,该P2P网络以如权利要求12所述的数据处理装置为共识节点。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910972912.8A CN112738141B (zh) | 2019-10-14 | 2019-10-14 | 基于责备机制的状态验证方法、系统、p2p网络 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910972912.8A CN112738141B (zh) | 2019-10-14 | 2019-10-14 | 基于责备机制的状态验证方法、系统、p2p网络 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112738141A true CN112738141A (zh) | 2021-04-30 |
CN112738141B CN112738141B (zh) | 2023-10-24 |
Family
ID=75588460
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910972912.8A Active CN112738141B (zh) | 2019-10-14 | 2019-10-14 | 基于责备机制的状态验证方法、系统、p2p网络 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112738141B (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107729471A (zh) * | 2017-10-13 | 2018-02-23 | 上海策赢网络科技有限公司 | 一种区块链及其生成方法与设备 |
WO2019032891A1 (en) * | 2017-08-09 | 2019-02-14 | Visa International Service Association | SYSTEM AND METHOD FOR VERIFYING INTERACTIONS |
CN109508982A (zh) * | 2018-11-21 | 2019-03-22 | 北京蓝石环球区块链科技有限公司 | 基于区块链主链加并行多子链的repb共识 |
CN109508973A (zh) * | 2018-11-09 | 2019-03-22 | 京东方科技集团股份有限公司 | 基于区块链的价格管理方法、装置和区块链系统 |
CN109861956A (zh) * | 2018-10-29 | 2019-06-07 | 梁伟 | 基于状态通道的数据验证系统、方法、装置及设备 |
-
2019
- 2019-10-14 CN CN201910972912.8A patent/CN112738141B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2019032891A1 (en) * | 2017-08-09 | 2019-02-14 | Visa International Service Association | SYSTEM AND METHOD FOR VERIFYING INTERACTIONS |
CN107729471A (zh) * | 2017-10-13 | 2018-02-23 | 上海策赢网络科技有限公司 | 一种区块链及其生成方法与设备 |
CN109861956A (zh) * | 2018-10-29 | 2019-06-07 | 梁伟 | 基于状态通道的数据验证系统、方法、装置及设备 |
CN109508973A (zh) * | 2018-11-09 | 2019-03-22 | 京东方科技集团股份有限公司 | 基于区块链的价格管理方法、装置和区块链系统 |
CN109508982A (zh) * | 2018-11-21 | 2019-03-22 | 北京蓝石环球区块链科技有限公司 | 基于区块链主链加并行多子链的repb共识 |
Also Published As
Publication number | Publication date |
---|---|
CN112738141B (zh) | 2023-10-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11914712B1 (en) | Blockchain based secure naming and update verification | |
CN108200210B (zh) | 基于区块链的链管理的方法、装置及计算机可读介质 | |
Bonneau et al. | Coda: Decentralized cryptocurrency at scale | |
CN108683539B (zh) | 区块链网络的管理方法、装置、介质及电子设备 | |
EP3547609B1 (en) | Apparatus and method for establishing secured connection | |
KR20190104793A (ko) | 스마트 계약 시스템에서 블록체인을 생성하고 무결성을 검증하는 방법 | |
CN111723406B (zh) | 一种区块链的共识算法及系统 | |
KR20210003234A (ko) | 분할된 블록체인 네트워크에서 블록체인의 블록을 유지하는 것 | |
CN109493061B (zh) | 一种区块链的数据的验证方法、装置、电子设备及存储介质 | |
US11182403B2 (en) | Systems and methods of launching new nodes in a blockchain network | |
CN110574020A (zh) | 区块链中的快照管理 | |
US20210233068A1 (en) | Settlement system, settlement method, user device, and settlement program | |
US20190287099A1 (en) | Distributed ledger update method | |
CN111275438B (zh) | 区块链网络的共识方法、装置、设备和存储介质 | |
US20200402026A1 (en) | Blockchain management system, blockchain management apparatus, information providing apparatus, and blockchain management method | |
CN110766410B (zh) | 基于默克尔树的可信跨链事件构造与验证方法和设备 | |
Bonneau et al. | Mina: Decentralized cryptocurrency at scale | |
CN113127569A (zh) | 用于区块链系统的共识方法、装置、电子设备及存储介质 | |
CN115225639B (zh) | 共识可信集群的变更方法、装置、计算机设备及介质 | |
CN110223174B (zh) | 区块交易记账方法和系统、数据处理终端、区块链系统 | |
KR20200081533A (ko) | 사물 인터넷 환경을 위한 동적 블라인드 투표기반의 블록체인 합의방법 | |
CN110837505A (zh) | 状态数据存储方法、状态数据同步方法、设备和存储介质 | |
CN109685657B (zh) | 在区块链网络中处理交易的方法和节点设备以及存储介质 | |
CN113254526B (zh) | 区块链共识方法、装置及系统 | |
CN111061813B (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 | ||
TA01 | Transfer of patent application right | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20230626 Address after: Room 3901, No. 701, Yunjin Road, Xuhui District, Shanghai, 200030 Applicant after: Shanghai Shutu blockchain Research Institute Address before: 100084 6 / F, East Building, block D, Tsinghua Tongfang science and Technology Plaza, Haidian District, Beijing Applicant before: Beijing Qinghong Weigu Technology Development Co.,Ltd. |
|
GR01 | Patent grant | ||
GR01 | Patent grant |