CN113326332A - 一种区块链的快照同步方法及装置 - Google Patents

一种区块链的快照同步方法及装置 Download PDF

Info

Publication number
CN113326332A
CN113326332A CN202110678534.XA CN202110678534A CN113326332A CN 113326332 A CN113326332 A CN 113326332A CN 202110678534 A CN202110678534 A CN 202110678534A CN 113326332 A CN113326332 A CN 113326332A
Authority
CN
China
Prior art keywords
block
snapshot
type
node
target
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
Application number
CN202110678534.XA
Other languages
English (en)
Inventor
张清
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
WeBank Co Ltd
Hong Kong University of Science and Technology HKUST
Original Assignee
WeBank Co Ltd
Hong Kong University of Science and Technology HKUST
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by WeBank Co Ltd, Hong Kong University of Science and Technology HKUST filed Critical WeBank Co Ltd
Priority to CN202110678534.XA priority Critical patent/CN113326332A/zh
Publication of CN113326332A publication Critical patent/CN113326332A/zh
Priority to PCT/CN2021/130443 priority patent/WO2022262184A1/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor

Landscapes

  • Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computing Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mobile Radio Communication Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明公开了一种区块链的快照同步方法及装置,其中方法为:待加入节点获取来自证明节点的第一快照、第二快照和第一类目标区块的块头;所述待加入节点根据所述第一类目标区块的块头验证所述第一快照和所述第二快照,并在验证通过后同步所述第二快照。上述方法应用于金融科技(Fintech)时,通过对第一类目标区块验证,确定区块链最新的区块的工作量是有效的,那么便可以在对第一快照和第二快照验证通过后同步所述第二快照,从而只需要验证第一类目标区块,即可进行第二快照的同步。

Description

一种区块链的快照同步方法及装置
技术领域
本发明涉及金融科技(Fintech)领域中的区块链(blockchain)领域,尤其涉及一种区块链的快照同步方法及装置。
背景技术
随着计算机技术的发展,越来越多的技术应用在金融领域,传统金融业正在逐步向金融科技(Fintech)转变,但由于金融行业的安全性、实时性要求,也对技术提出的更高的要求。由于区块链(blockchain)具有不可篡改性,区块链常和金融科技结合应用。
目前,当区块链需要新加入一个节点时,这个新节点需要获取区块链的快照,区块链的快照表示了区块链从创始区块开始一直到最新区块所累积的状态信息。新节点获取了已在区块链的节点发送的快照后,便与区块链上的节点实现状态同步。然而,由于快照是经区块链的所有区块累积得到的状态信息,所以目前区块链的快照的验证需要涉及整条区块链上区块头的下载,验证所需的数据量较大,这是一个亟待解决的问题。
发明内容
本发明提供一种区块链的快照同步方法及装置,解决了现有技术中区块链的快照的验证时所需的数据量较大的问题。
第一方面,本发明提供一种区块链的快照同步方法,包括:待加入节点获取来自证明节点的第一快照、第二快照和第一类目标区块的块头,所述第一快照为所述证明节点声明的所述第一类目标区块的快照,所述第二快照为所述证明节点声明的区块链的最新区块的快照,所述区块链包括第一类区块和第二类区块,所述第一类区块的挖矿难度目标值小于所述第二类区块的挖矿难度目标值,所述第一类目标区块为所述证明节点声明的所述区块链的最新第一类区块;
所述待加入节点根据所述第一类目标区块的块头验证所述第一快照和所述第二快照,并在验证通过后同步所述第二快照。
上述方法中,在获取了第一快照、第二快照和第一类目标区块的块头后,由于所述区块链包括第一类区块和第二类区块,且所述第二类区块的挖矿难度目标值小于所述第一类区块的挖矿难度目标值,所以第一类区块的工作量大于第二类区块的工作量,而通过对第一类目标区块验证,确定区块链最新的区块的工作量是有效的,那么便可以在对第一快照和第二快照验证通过后同步所述第二快照,从而只需要验证第一类目标区块,即可进行第二快照的同步。
可选的,所述待加入节点获取来自所述证明节点的至少一个第一类区块和\或至少一个第二类区块;所述至少一个第一类区块包括所述证明节点声明的所述区块链的第一个第一类区块直至所述第一类目标区块之前的第一个第一类区块;所述至少一个第二类区块包括所述证明节点声明的所述第一类目标区块之后的第一个第二类区块直至所述区块链的第二类目标区块,所述第二类目标区块为所述区块链最新的第二类区块;
所述待加入节点根据所述第一类目标区块的块头验证所述第一快照和所述第二快照,包括:
所述待加入节点根据所述第一类目标区块的块头和\或所述至少一个第一类区块的块头和\或所述至少一个第二类区块的块头验证所述第一快照和所述第二快照。
上述方法中,所述待加入节点还获取来自所述证明节点的至少一个第一类区块和\或至少一个第二类区块,所述待加入节点根据所述第一类目标区块的块头和\或所述至少一个第一类区块的块头和\或所述至少一个第二类区块的块头验证所述第一快照和所述第二快照,仍然只下载了相对于整个区块链的较少区块,可以更准确地验证第一快照和第二快照。
可选的,所述待加入节点根据所述第一类目标区块的块头和\或所述至少一个第一类区块的块头和\或所述至少一个第二类区块的块头验证所述第一快照和所述第二快照,包括:
针对所述第一类目标区块、所述至少一个第一类区块和所述至少一个第二类区块的任一区块的块头,确定所述块头是否验证通过;所述块头验证通过的条件至少包括:所述块头的哈希值满足所述区块的挖矿难度目标值;
若所述第一类目标区块的块头验证通过,且所述待加入节点若确定所述第一类目标区块的块头中的第一默克尔树根和所述第一快照的默克尔树根相同,则确定所述第一快照验证通过,所述第一默克尔树根被所述证明节点声明为所述第一快照的默克尔树根;
若所述待加入节点确定所述第一类目标区块的块头和\或所述至少一个第一类区块的块头和\或所述至少一个第二类区块的块头以及所述第一快照验证通过,则确定所述第二快照验证通过。
上述方法中,通过验证块头的哈希值是否满足所述区块的挖矿难度目标值,以及确定所述第一类目标区块的块头中的第一默克尔树根和所述第一快照的默克尔树根相同,也可以更准确地验证第一快照和第二快照。
可选的,所述块头包括第一哈希值,所述第一哈希值表征了所述区块记录的所述区块之前的一个第一类区块的哈希值;所述块头验证通过的条件还包括:所述第一哈希值与所述证明节点声明的所述区块之前的一个第一类区块的第二哈希值相同。
上述方式下,通过对第一哈希值和第二哈希值的验证,可以更准确地验证区块的块头。
可选的,所述块头包括至少一个第一哈希值,所述至少一个第一哈希值表征了所述区块记录的所述区块之前的至少一个第一类区块的哈希值;所述块头验证通过的条件还包括:所述至少一个第一哈希值中指定次序的第一哈希值与所述证明节点声明的所述指定次序的第二哈希值相同。
上述方式下,通过对所述至少一个第一哈希值中指定次序的第一哈希值和所述证明节点声明的所述指定次序的第二哈希值的验证,可以更准确地验证区块的块头。
可选的,所述块头验证通过的条件还包括:所述至少一个第一哈希值中每个指定次序的第一哈希值与所述证明节点声明的所述指定次序对应的第二哈希值均相同。
上述方式下,通过所述至少一个第一哈希值中每个指定次序的第一哈希值与所述证明节点声明的所述指定次序对应的第二哈希值的验证,可以更准确地验证区块的块头。
可选的,所述待加入节点根据所述第一类目标区块的块头验证所述第一快照和所述第二快照,包括:
所述待加入节点若确定所述第一类目标区块的块头的哈希值满足所述第一类目标区块的挖矿难度目标值,则确定所述第一快照和所述第二快照均验证通过。
上述方式下,通过确定所述第一类目标区块的块头的哈希值满足所述第一类目标区块的挖矿难度目标值,可以只验证所述第一类目标区块,更准确地验证第一快照和第二快照。
第二方面,本发明提供一种区块链的快照同步装置,包括:获取模块,用于获取来自证明节点的第一快照、第二快照和第一类目标区块的块头,所述第一快照为所述证明节点声明的所述第一类目标区块的快照,所述第二快照为所述证明节点声明的区块链的最新区块的快照,所述区块链包括第一类区块和第二类区块,所述第一类区块的挖矿难度目标值小于所述第二类区块的挖矿难度目标值,所述第一类目标区块为所述证明节点声明的所述区块链的最新第一类区块;
验证模块,用于根据所述第一类目标区块的块头验证所述第一快照和所述第二快照,并在验证通过后同步所述第二快照。
可选的,所述获取模块还用于:获取来自所述证明节点的至少一个第一类区块和\或至少一个第二类区块;所述至少一个第一类区块包括所述证明节点声明的所述区块链的第一个第一类区块直至所述第一类目标区块之前的第一个第一类区块;所述至少一个第二类区块包括所述证明节点声明的所述第一类目标区块之后的第一个第二类区块直至所述区块链的第二类目标区块,所述第二类目标区块为所述区块链最新的第二类区块;
所述验证模块具体用于:
根据所述第一类目标区块的块头和\或所述至少一个第一类区块的块头和\或所述至少一个第二类区块的块头验证所述第一快照和所述第二快照。
可选的,所述验证模块具体用于:
针对所述第一类目标区块、所述至少一个第一类区块和所述至少一个第二类区块的任一区块的块头,确定所述块头是否验证通过;所述块头验证通过的条件至少包括:所述块头的哈希值满足所述区块的挖矿难度目标值;
若所述第一类目标区块的块头验证通过,且若确定所述第一类目标区块的块头中的第一默克尔树根和所述第一快照的默克尔树根相同,则确定所述第一快照验证通过,所述第一默克尔树根被所述证明节点声明为所述第一快照的默克尔树根;
确定所述第一类目标区块的块头和\或所述至少一个第一类区块的块头和\或所述至少一个第二类区块的块头以及所述第一快照验证通过,则确定所述第二快照验证通过。
可选的,所述块头包括第一哈希值,所述第一哈希值表征了所述区块记录的所述区块之前的一个第一类区块的哈希值;所述块头验证通过的条件还包括:所述第一哈希值与所述证明节点声明的所述区块之前的一个第一类区块的第二哈希值相同。
可选的,所述块头包括至少一个第一哈希值,所述至少一个第一哈希值表征了所述区块记录的所述区块之前的至少一个第一类区块的哈希值;所述块头验证通过的条件还包括:所述至少一个第一哈希值中指定次序的第一哈希值与所述证明节点声明的所述指定次序的第二哈希值相同。
可选的,所述块头验证通过的条件还包括:所述至少一个第一哈希值中每个指定次序的第一哈希值与所述证明节点声明的所述指定次序对应的第二哈希值均相同。
可选的,所述验证模块具体用于:若确定所述第一类目标区块的块头的哈希值满足所述第一类目标区块的挖矿难度目标值,则确定所述第一快照和所述第二快照均验证通过。
上述第二方面及第二方面各个可选装置的有益效果,可以参考上述第一方面及第一方面各个可选方法的有益效果,这里不再赘述。
第三方面,本发明提供一种计算机设备,包括程序或指令,当所述程序或指令被执行时,用以执行上述第一方面及第一方面各个可选的方法。
第四方面,本发明提供一种存储介质,包括程序或指令,当所述程序或指令被执行时,用以执行上述第一方面及第一方面各个可选的方法。
本发明的这些方面或其他方面在以下实施例的描述中会更加简明易懂。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简要介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种区块链的快照同步方法对应的流程示意图;
图2为本发明实施例提供的一种区块链的快照同步方法中区块头的一种结构示意图;
图3为本发明实施例提供的一种区块链的快照同步方法中区块头的另一种结构示意图;
图4为本发明实施例提供的一种区块链的快照同步装置的结构示意图。
具体实施方式
为了使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进一步地详细描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
在金融机构(银行机构、保险机构或证券机构)在进行业务(如银行的贷款业务、存款业务等)运转过程中,当区块链需要新加入一个节点时,这个新节点需要获取区块链的快照。现有技术中,区块链的快照的验证需要涉及整条区块链上区块头的下载,验证所需的数据量较大,这种情况也会导致任务调度信号传输延迟过长。这种情况不符合银行等金融机构的需求,无法保证金融机构各项业务的高效运转。
为此,如图1所示,本申请提供一种区块链的快照同步方法。
步骤101:待加入节点获取来自证明节点的第一快照、第二快照和第一类目标区块的块头。
步骤102:所述待加入节点根据所述第一类目标区块的块头验证所述第一快照和所述第二快照,并在验证通过后同步所述第二快照。
步骤101~步骤102中,所述第一快照为所述证明节点声明的所述第一类目标区块的快照,所述第二快照为所述证明节点声明的区块链的最新区块的快照,所述区块链包括第一类区块和第二类区块,所述第一类区块的挖矿难度目标值小于所述第二类区块的挖矿难度目标值,所述第一类目标区块为所述证明节点声明的所述区块链的最新第一类区块。
需要说明的是,步骤101~步骤102中,“声明”的内容指所述证明节点确定但待加入节点未确定的内容,如所述第一快照为所述证明节点声明的所述第一类目标区块的快照,即所述第一快照所述证明节点确定了是所述第一类目标区块的快照,待加入节点需要验证第一快照确实如证明节点声明的所述第一类目标区块的快照,之后才能同步第二快照。
另外,区块的挖矿难度目标值越高,说明生成该区块的所付出的工作量越低。举例来说,第一类区块的挖矿难度目标值为T1,第二类区块的挖矿难度目标值T2,T1<T2,那么区块的哈希值满足小于T2的难度小于区块的哈希值满足小于T1,所以第一类区块的更难生成,工作量更高。第二类区块也可以称为普通块(regular block),第一类区块也可以称为铁块(iron block)。
举例来说,区块链共有序号为0~99的个区块,区块0~区块99中,区块30、区块65和区块92均为第一类区块,其余区块为第二类区块。那么第一类目标区块为区块92,第一类目标区块的快照便是第一快照,区块99(第二类区块)的快照便是第二快照。显然,在一些情形下,也可以为第一类区块的快照,如区块30、区块65和区块99均为第一类区块,其余区块为第二类区块的情形下,那么区块99的快照便是第二快照,并且此时第一快照和第二快照相同。
需要说明的是,上述情形仅作为区块的示例情形,事实上,区块链中可以包括多种难度级别的区块,如N种级别的区块,N为大于2的整数,第一类区块和第二类区块为N种级别的区块中任意两种,本申请仅以第一类区块和第二类区块举例说明。
步骤102具体可以如下:
所述待加入节点若确定所述第一类目标区块的块头的哈希值满足所述第一类目标区块的挖矿难度目标值,则确定所述第一快照和所述第二快照均验证通过。
这种方式可以只验证第一类目标区块。
一种可能的实现方式中,还可以执行以下步骤:
所述待加入节点获取来自所述证明节点的至少一个第一类区块和\或至少一个第二类区块。
所述至少一个第一类区块包括所述证明节点声明的所述区块链的第一个第一类区块直至所述第一类目标区块之前的第一个第一类区块;所述至少一个第二类区块包括所述证明节点声明的所述第一类目标区块之后的第一个第二类区块直至所述区块链的第二类目标区块,所述第二类目标区块为所述区块链最新的第二类区块。
举例来说,区块链共有序号为0~99的个区块,区块0~区块99中,区块30、区块65和区块92均为第一类区块,其余区块为第二类区块。那么至少一个第一类区块为区块30和区块65,至少一个第二类区块为区块93~区块99,区块99为第二类目标区块。
步骤102具体可以如下:
所述待加入节点根据所述第一类目标区块的块头和\或所述至少一个第一类区块的块头和\或所述至少一个第二类区块的块头验证所述第一快照和所述第二快照。
至少一个第一类区块边构成了相对于整个区块链而言,挖矿难度目标值更高的链,那么便可以通过至少一个第一类区块的挖矿难度目标值来代表整个区块链的难度,即,如果证明节点能给出至少一个第一类区块(可以称为proof),便可以认为证明节点确实生成了整条区块链,即可验证第二快照的合理性;另外,为了更加精确,还可以验证至少一个第二类区块的块头。步骤101~步骤102的方法在保证了一定安全性的条件下,也能提升了系统共识,减少了分叉,吞吐量可以有数倍的提升。因此,步骤101~步骤102的方法既有效率,又能保障安全。
iron block出现的概率可以设置为q,如q为0.02,也就是说,对于区块链来说,区块链的第二快照对应的proof中区块头的数量期望是q*M,M是这条链中区块数量,q可以通过区块链的其它基本参数,如网络延迟,出块速度等计算而得,相较于原始比特币中的SPV(simplified payment verification)要求下载所有的区块头,本发明显著(大约50倍)地减少了验证时间。
而且,待加入节点还可以只获取第一快照和至少一个第二类区块的块头,并在第一快照验证后,直接根据至少一个第二类区块的块头得到第二快照,此时第二快照无需验证。
进一步地,一种实施方式(以下称为基于哈希值的实施方式)中,步骤102可以为:
针对所述第一类目标区块、所述至少一个第一类区块和所述至少一个第二类区块的任一区块的块头,所述待加入节点确定所述块头是否验证通过;所述块头验证通过的条件至少包括:所述块头的哈希值满足所述区块的挖矿难度目标值;
若所述第一类目标区块的块头验证通过,且所述待加入节点若确定所述第一类目标区块的块头中的第一默克尔树根和所述第一快照的默克尔树根相同,则确定所述第一快照验证通过,所述第一默克尔树根被所述证明节点声明为所述第一快照的默克尔树根;
若所述待加入节点确定所述第一类目标区块的块头和\或所述至少一个第一类区块的块头和\或所述至少一个第二类区块的块头以及所述第一快照验证通过,则确定所述第二快照验证通过。
需要说明的是,第一类目标区块的块头中的第一默克尔树根是第一默克尔树的树根,第一默克尔树是第一类目标区块的第一快照一种数据结构,第一快照还可以通过其他数据结构存储。对于证明节点而言,任一区块的快照都可以储存在证明节点的本地。这种方式仅在区块中增加了一根指针(默克尔树根),指针的有效性也能通过历史快照计算出来。对于不愿意提供快照服务的节点,便无须存储这些信息,因而可以减少区块链网络的负担。
基于哈希值的实施方式中,块头还可以包括第一哈希值,所述第一哈希值表征了所述区块记录的所述区块之前的一个第一类区块的哈希值;所述块头验证通过的条件还包括:所述第一哈希值与所述证明节点声明的所述区块之前的一个第一类区块的第二哈希值相同。
块头的结构可以如图2所示,块头本身的结构包括前一个区块的哈希值以及其他属性值,本申请中还增加了区块前一个第一类区块的哈希,以及区块的快照的默克尔树根。
在上述实施方式中,从存储空间来说,本申请在每个区块增加了2个属性值(区块前一个第一类区块的哈希,以及区块的快照的默克尔树根)。但是需要特别说明的是,这两个属性值是可以从历史数据以及当前所在区块的其它数据中计算得到,这代表着它们虽然作为区块头的属性值参与区块头的哈希值计算,但是它们不必在网络中传输,非证明节点的全节点(不提供快照服务)无需在本地存储这两个属性值。而对于证明节点而言,他们存储这两个属性值仅仅只是为了减少提供快照证明所需的时间,也就是说,他们也可以不存这两个属性值。因此,本发明几乎不需要额外的存储空间。
从验证时间来说,首先本申请需要解释验证者验证一个快照所需要的时间与快照的proof中包含的区块头数量成正比,因为验证快照所需时间主要来自于每一个区块头的验证时间,而验证一个区块头所需时间可以被认为是一个常数时间。因此本申请仅需要考虑一个proof中的区块头数量。
从安全角度来说,本发明提出的快照协议是可以被验证者验证的,这代表着恶意节点想要欺骗验证者(待加入节点)更为困难,由于proof中每个区块头都有一根哈希指针指向前一个区块头,并且每个区块头都需要满足难度需求,以及第一个区块头来自创始区块。因此,如果恶意节点欲欺骗验证者,那么他需要挖一条拥有比诚实节点更多的ironblock的链,也就是说,恶意节点若要冒充区块链,恶意节点的工作量反而会比生成实际的区块链工作量更大。而在之前的研究中已经证明了,在满足恶意节点算力有限的条件下,恶意节点大概率无法做到。因此,坏节点很难在本发明中的快照协议中使得验证者选择相信它的快照。
基于哈希值的实施方式中,所述块头还可以包括至少一个第一哈希值,所述至少一个第一哈希值表征了所述区块记录的所述区块之前的至少一个第一类区块的哈希值;所述块头验证通过的条件还包括:所述至少一个第一哈希值中指定次序的第一哈希值与所述证明节点声明的所述指定次序的第二哈希值相同。
图3示出了上述实施方式中块头的结构,也就是说,一个区块除了第一哈希值外,还可以包括第一哈希值对应区块之前的第一类区块的第一哈希值。举例来说,区块链共有序号为0~99的个区块,区块0~区块99中,区块30、区块65和区块92均为第一类区块,其余区块为第二类区块。区块93的块头中,除了区块92(区块93之前一个第一类区块)的第一哈希值外,还可以包括区块30、区块65的第一哈希值,这些第一哈希值可以组成一个哈希数组。
增加更多的第一哈希值可以使用更为灵活的快照验证方式,验证者可以自己指定proof中每个块头的间隔。例如,验证者可以要求提供的proof中每个区块的块头的前一区块的块头来自与在区块链中之前第2个第一类区块,然后验证者在验证过程中便可以检查在proof中区块头前一个第一类区块的块头的哈希是否等于哈希数组中的第2个哈希值,举例来说,区块93的块头中哈希数组的顺序是区块92、区块65和区块30的哈希值,那么验证者(待加入节点)可以只验证区块65的哈希值。从而可以把这样的验证方式理解为跳跃式或者随机采样验证,验证者可以为不同的区块的块头指定不同的跳跃步数,这使得虽然需要下载的总区块数变少了,但是恶意节点无法知道验证者要求验证哪些区块头,因此恶意节点无法在这个机制中有更大的概率欺骗验证者。
进一步地,所述块头验证通过的条件还可以包括:所述至少一个第一哈希值中每个指定次序的第一哈希值与所述证明节点声明的所述指定次序对应的第二哈希值均相同。
举例来说,区块93的块头中哈希数组的顺序是区块92、区块65和区块30的哈希值,那么验证者(待加入节点)可以都验证区块92、区块65和区块30的哈希值。
如图4所示,本发明提供一种区块链的快照同步装置,包括:获取模块401,用于获取来自证明节点的第一快照、第二快照和第一类目标区块的块头,所述第一快照为所述证明节点声明的所述第一类目标区块的快照,所述第二快照为所述证明节点声明的区块链的最新区块的快照,所述区块链包括第一类区块和第二类区块,所述第一类区块的挖矿难度目标值小于所述第二类区块的挖矿难度目标值,所述第一类目标区块为所述证明节点声明的所述区块链的最新第一类区块;
验证模块402,用于根据所述第一类目标区块的块头验证所述第一快照和所述第二快照,并在验证通过后同步所述第二快照。
可选的,所述获取模块401还用于:获取来自所述证明节点的至少一个第一类区块和\或至少一个第二类区块;所述至少一个第一类区块包括所述证明节点声明的所述区块链的第一个第一类区块直至所述第一类目标区块之前的第一个第一类区块;所述至少一个第二类区块包括所述证明节点声明的所述第一类目标区块之后的第一个第二类区块直至所述区块链的第二类目标区块,所述第二类目标区块为所述区块链最新的第二类区块;
所述验证模块402具体用于:
根据所述第一类目标区块的块头和\或所述至少一个第一类区块的块头和\或所述至少一个第二类区块的块头验证所述第一快照和所述第二快照。
可选的,所述验证模块402具体用于:
针对所述第一类目标区块、所述至少一个第一类区块和所述至少一个第二类区块的任一区块的块头,确定所述块头是否验证通过;所述块头验证通过的条件至少包括:所述块头的哈希值满足所述区块的挖矿难度目标值;
若所述第一类目标区块的块头验证通过,且若确定所述第一类目标区块的块头中的第一默克尔树根和所述第一快照的默克尔树根相同,则确定所述第一快照验证通过,所述第一默克尔树根被所述证明节点声明为所述第一快照的默克尔树根;
确定所述第一类目标区块的块头和\或所述至少一个第一类区块的块头和\或所述至少一个第二类区块的块头以及所述第一快照验证通过,则确定所述第二快照验证通过。
可选的,所述块头包括第一哈希值,所述第一哈希值表征了所述区块记录的所述区块之前的一个第一类区块的哈希值;所述块头验证通过的条件还包括:所述第一哈希值与所述证明节点声明的所述区块之前的一个第一类区块的第二哈希值相同。
可选的,所述块头包括至少一个第一哈希值,所述至少一个第一哈希值表征了所述区块记录的所述区块之前的至少一个第一类区块的哈希值;所述块头验证通过的条件还包括:所述至少一个第一哈希值中指定次序的第一哈希值与所述证明节点声明的所述指定次序的第二哈希值相同。
可选的,所述块头验证通过的条件还包括:所述至少一个第一哈希值中每个指定次序的第一哈希值与所述证明节点声明的所述指定次序对应的第二哈希值均相同。
可选的,所述验证模块402具体用于:若确定所述第一类目标区块的块头的哈希值满足所述第一类目标区块的挖矿难度目标值,则确定所述第一快照和所述第二快照均验证通过。
基于同一发明构思,本发明实施例还提供了一种计算机设备,包括程序或指令,当所述程序或指令被执行时,如本发明实施例提供的区块链的快照同步方法及任一可选方法被执行。
基于同一发明构思,本发明实施例还提供了一种计算机可读存储介质,包括程序或指令,当所述程序或指令被执行时,如本发明实施例提供的区块链的快照同步方法及任一可选方法被执行。
本领域内的技术人员应明白,本发明的实施例可提供为方法、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

Claims (10)

1.一种区块链的快照同步方法,其特征在于,包括:
待加入节点获取来自证明节点的第一快照、第二快照和第一类目标区块的块头,所述第一快照为所述证明节点声明的所述第一类目标区块的快照,所述第二快照为所述证明节点声明的区块链的最新区块的快照,所述区块链包括第一类区块和第二类区块,所述第一类区块的挖矿难度目标值小于所述第二类区块的挖矿难度目标值,所述第一类目标区块为所述证明节点声明的所述区块链的最新第一类区块;
所述待加入节点根据所述第一类目标区块的块头验证所述第一快照和所述第二快照,并在验证通过后同步所述第二快照。
2.如权利要求1所述的方法,其特征在于,还包括:
所述待加入节点获取来自所述证明节点的至少一个第一类区块和\或至少一个第二类区块;所述至少一个第一类区块包括所述证明节点声明的所述区块链的第一个第一类区块直至所述第一类目标区块之前的第一个第一类区块;所述至少一个第二类区块包括所述证明节点声明的所述第一类目标区块之后的第一个第二类区块直至所述区块链的第二类目标区块,所述第二类目标区块为所述区块链最新的第二类区块;
所述待加入节点根据所述第一类目标区块的块头验证所述第一快照和所述第二快照,包括:
所述待加入节点根据所述第一类目标区块的块头和\或所述至少一个第一类区块的块头和\或所述至少一个第二类区块的块头验证所述第一快照和所述第二快照。
3.如权利要求2所述的方法,其特征在于,所述待加入节点根据所述第一类目标区块的块头和\或所述至少一个第一类区块的块头和\或所述至少一个第二类区块的块头验证所述第一快照和所述第二快照,包括:
针对所述第一类目标区块、所述至少一个第一类区块和所述至少一个第二类区块的任一区块的块头,所述待加入节点确定所述块头是否验证通过;所述块头验证通过的条件至少包括:所述块头的哈希值满足所述区块的挖矿难度目标值;
若所述第一类目标区块的块头验证通过,且所述待加入节点若确定所述第一类目标区块的块头中的第一默克尔树根和所述第一快照的默克尔树根相同,则确定所述第一快照验证通过,所述第一默克尔树根被所述证明节点声明为所述第一快照的默克尔树根;
若所述待加入节点确定所述第一类目标区块的块头和\或所述至少一个第一类区块的块头和\或所述至少一个第二类区块的块头以及所述第一快照验证通过,则确定所述第二快照验证通过。
4.如权利要求3所述的方法,其特征在于,所述块头包括第一哈希值,所述第一哈希值表征了所述区块记录的所述区块之前的一个第一类区块的哈希值;所述块头验证通过的条件还包括:所述第一哈希值与所述证明节点声明的所述区块之前的一个第一类区块的第二哈希值相同。
5.如权利要求3所述的方法,其特征在于,所述块头包括至少一个第一哈希值,所述至少一个第一哈希值表征了所述区块记录的所述区块之前的至少一个第一类区块的哈希值;所述块头验证通过的条件还包括:所述至少一个第一哈希值中指定次序的第一哈希值与所述证明节点声明的所述指定次序的第二哈希值相同。
6.如权利要求5所述的方法,其特征在于,所述块头验证通过的条件还包括:所述至少一个第一哈希值中每个指定次序的第一哈希值与所述证明节点声明的所述指定次序对应的第二哈希值均相同。
7.如权利要求1所述的方法,其特征在于,所述待加入节点根据所述第一类目标区块的块头验证所述第一快照和所述第二快照,包括:
所述待加入节点若确定所述第一类目标区块的块头的哈希值满足所述第一类目标区块的挖矿难度目标值,则确定所述第一快照和所述第二快照均验证通过。
8.一种区块链的快照同步装置,其特征在于,包括:
获取模块,用于获取来自证明节点的第一快照、第二快照和第一类目标区块的块头,所述第一快照为所述证明节点声明的所述第一类目标区块的快照,所述第二快照为所述证明节点声明的区块链的最新区块的快照,所述区块链包括第一类区块和第二类区块,所述第一类区块的挖矿难度目标值小于所述第二类区块的挖矿难度目标值,所述第一类目标区块为所述证明节点声明的所述区块链的最新第一类区块;
验证模块,用于根据所述第一类目标区块的块头验证所述第一快照和所述第二快照,并在验证通过后同步所述第二快照。
9.一种计算机设备,其特征在于,包括程序或指令,当所述程序或指令被处理器执行时,如权利要求1至7中任意一项所述的方法被执行。
10.一种计算机可读存储介质,其特征在于,包括程序或指令,当所述程序或指令被处理器执行时,如权利要求1至7中任意一项所述的方法被执行。
CN202110678534.XA 2021-06-18 2021-06-18 一种区块链的快照同步方法及装置 Pending CN113326332A (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN202110678534.XA CN113326332A (zh) 2021-06-18 2021-06-18 一种区块链的快照同步方法及装置
PCT/CN2021/130443 WO2022262184A1 (zh) 2021-06-18 2021-11-12 一种区块链的快照同步方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110678534.XA CN113326332A (zh) 2021-06-18 2021-06-18 一种区块链的快照同步方法及装置

Publications (1)

Publication Number Publication Date
CN113326332A true CN113326332A (zh) 2021-08-31

Family

ID=77423864

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110678534.XA Pending CN113326332A (zh) 2021-06-18 2021-06-18 一种区块链的快照同步方法及装置

Country Status (2)

Country Link
CN (1) CN113326332A (zh)
WO (1) WO2022262184A1 (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114338715A (zh) * 2021-12-31 2022-04-12 杭州趣链科技有限公司 数据同步方法、区块链系统、终端设备及存储介质
WO2022262184A1 (zh) * 2021-06-18 2022-12-22 深圳前海微众银行股份有限公司 一种区块链的快照同步方法及装置

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108023896A (zh) * 2017-12-28 2018-05-11 江苏通付盾科技有限公司 区块同步方法及系统
CN110011788A (zh) * 2019-04-10 2019-07-12 深圳市网心科技有限公司 一种基于区块链的数据处理方法、系统及相关设备
CN111209343A (zh) * 2020-01-22 2020-05-29 腾讯科技(深圳)有限公司 节点数据同步方法、装置、设备以及存储介质
US20200242592A1 (en) * 2019-01-25 2020-07-30 Coinbase, Inc. Syncing blockchain nodes with snapshots
US20210117385A1 (en) * 2019-10-16 2021-04-22 International Business Machines Corporation Database snapshot for managing state synchronization

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110472972B (zh) * 2018-05-09 2022-12-20 本无链科技(深圳)有限公司 一种区块链存储数据同步快照方法及系统
US11182403B2 (en) * 2019-05-22 2021-11-23 Chainstack Pte. Ltd. Systems and methods of launching new nodes in a blockchain network
CN113326332A (zh) * 2021-06-18 2021-08-31 深圳前海微众银行股份有限公司 一种区块链的快照同步方法及装置

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108023896A (zh) * 2017-12-28 2018-05-11 江苏通付盾科技有限公司 区块同步方法及系统
US20200242592A1 (en) * 2019-01-25 2020-07-30 Coinbase, Inc. Syncing blockchain nodes with snapshots
CN110011788A (zh) * 2019-04-10 2019-07-12 深圳市网心科技有限公司 一种基于区块链的数据处理方法、系统及相关设备
US20210117385A1 (en) * 2019-10-16 2021-04-22 International Business Machines Corporation Database snapshot for managing state synchronization
CN111209343A (zh) * 2020-01-22 2020-05-29 腾讯科技(深圳)有限公司 节点数据同步方法、装置、设备以及存储介质

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2022262184A1 (zh) * 2021-06-18 2022-12-22 深圳前海微众银行股份有限公司 一种区块链的快照同步方法及装置
CN114338715A (zh) * 2021-12-31 2022-04-12 杭州趣链科技有限公司 数据同步方法、区块链系统、终端设备及存储介质

Also Published As

Publication number Publication date
WO2022262184A1 (zh) 2022-12-22

Similar Documents

Publication Publication Date Title
Bonneau et al. Coda: Decentralized cryptocurrency at scale
CN113329031B (zh) 一种区块的状态树的生成方法及装置
US11177962B2 (en) Optimizations for verification of interactions system and method
US20210326867A1 (en) Fork-Tolerant Consensus Protocol
CN113326332A (zh) 一种区块链的快照同步方法及装置
CN112600664B (zh) 延时交易生成方法、延时交易执行方法、设备和存储介质
Esiner et al. Analysis and optimization on FlexDPDP: A practical solution for dynamic provable data possession
CN112348518B (zh) 一种区块链交易证明的方法及装置
Bonneau et al. Mina: Decentralized cryptocurrency at scale
CN111222176A (zh) 基于区块链的云存储持有性证明方法、系统及介质
CN112887365B (zh) 基于mmr算法区块链的超轻量级节点验证方法及装置
CN111640018A (zh) 一种区块链交易存在性验证方法及装置
CN112436944B (zh) 一种基于pow的区块链共识方法及装置
CN114785812B (zh) 一种基于零知识证明的区块链区块同步方法及装置
CN113254526A (zh) 区块链共识方法、装置及系统
CN111523896A (zh) 防攻击方法、设备和存储介质
GB2562079A (en) Continuous hash verification
CN113411191B (zh) 数据审计方法及装置
KR102309503B1 (ko) 블록체인을 이용한 트랜잭션 방법, 노드 장치 및 컴퓨터 판독 가능한 기록 매체
CN112583908B (zh) 应用于出块节点的区块链共识方法、系统、设备及介质
CN112600698B (zh) 应用于非出块节点的区块链共识方法、系统、设备及介质
CN111083221B (zh) 一种交易验证方法及装置
CN113434599A (zh) 一种基于半节点的区块链账本同步方法及装置
WO2021063503A1 (en) Method for enabling efficient evaluation of transactions in a distributed ledger network
Huang et al. Data Availability and Decentralization: New Techniques for zk-Rollups in Layer 2 Blockchain Networks

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