区块链系统中的状态验证方法、装置、节点和区块链系统制造方法及图纸

技术编号:36453450 阅读:13 留言:0更新日期:2023-01-25 22:50
一种区块链系统中的状态验证方法、装置、节点和区块链系统,区块链系统包括第一节点和第二节点,第一节点存储有树状状态数据,树状状态数据的叶子节点中包括状态,树状状态数据的从根节点到叶子节点的路径中的节点包括状态的key,树状状态数据中的父节点包括基于其子节点中的数据计算得到的哈希值,该方法由第二节点执行。该方法包括:从第一节点接收多个状态;确定多个状态的key的公共前缀;根据多个状态计算树状状态数据中与公共前缀相对应的中间节点的目标哈希值;对目标哈希值进行验证以对多个状态进行验证。以对多个状态进行验证。以对多个状态进行验证。

【技术实现步骤摘要】
区块链系统中的状态验证方法、装置、节点和区块链系统


[0001]本说明书实施例属于区块链
,尤其涉及一种区块链系统中的状态验证方法、装置、节点和区块链系统。

技术介绍

[0002]区块链(Blockchain)是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。区块链系统中按照时间顺序将数据区块以顺序相连的方式组合成链式数据结构,并以密码学方式保证的不可篡改和不可伪造的分布式账本。由于区块链具有去中心化、信息不可篡改、自治性等特性,区块链也受到人们越来越多的重视和应用。区块链系统中,一般通过全节点作为参与共识的最小设施,全节点需要包括全量数据,以支持共识功能。

技术实现思路

[0003]本专利技术的目的在于提供一种区块链系统中的状态验证方法、装置、节点和区块链系统,可以更为快速的完成对多个状态进行验证,以利提高区块链系统的性能。
[0004]第一方面,提供了一种区块链系统中的状态验证方法,所述区块链系统包括第一节点和第二节点,所述第一节点存储有树状状态数据,所述树状状态数据的叶子节点中包括状态,所述树状状态数据中从根节点到叶子节点的路径上的节点包括所述状态的key,所述树状状态数据中的父节点包括基于其子节点中的数据计算得到的哈希值,所述方法由所述第二节点执行。所述方法包括:从所述第一节点接收多个第一状态;确定所述多个第一状态的key的公共前缀;根据所述多个第一状态,计算所述树状状态数据中与所述公共前缀相对应的中间节点的目标哈希值;对所述目标哈希值进行验证,以对所述多个第一状态进行验证。
[0005]第二方面,提供了一种区块链系统中的状态验证装置,所述区块链系统包括第一节点和第二节点,所述第一节点存储有树状状态数据,所述树状状态数据的叶子节点中包括状态,所述树状状态数据中从根节点到叶子节点的路径上的节点包括所述状态的key,所述树状状态数据中的父节点包括基于其子节点中的数据计算得到的哈希值,所述装置部署在所述第二节点中。所述装置包括:通信处理单元,用于从所述第一节点接收多个第一状态;前缀处理单元,用于确定所述多个第一状态的key的公共前缀;哈希计算单元,用于根据所述多个第一状态,计算所述树状状态数据中与所述公共前缀相对应的中间节点的目标哈希值;验证处理单元,用于对所述目标哈希值进行验证,以对所述多个第一状态进行验证。
[0006]第三方面,提供了一种区块链系统中的节点,所述区块链系统包括第一节点和第二节点,所述第一节点存储有树状状态数据,所述树状状态数据的叶子节点中包括状态,所述树状状态数据中从根节点到叶子节点的路径上的节点包括所述状态的key,所述树状状态数据中的父节点包括基于其子节点中的数据计算得到的哈希值。所述第二节点包括:通信处理单元,用于从所述第一节点接收多个第一状态;前缀处理单元,用于确定所述多个第
一状态的key的公共前缀;哈希计算单元,用于根据所述多个第一状态,计算所述树状状态数据中与所述公共前缀相对应的中间节点的目标哈希值;验证处理单元,用于对所述目标哈希值进行验证,以对所述多个第一状态进行验证。
[0007]第四方面,提供了一种区块链系统,所述区块链系统包括第一节点和第二节点,所述第一节点存储有树状状态数据,所述树状状态数据的叶子节点中包括状态,所述树状状态数据中从根节点到叶子节点的路径上的节点包括所述状态的key,所述树状状态数据中的父节点包括基于其子节点中的数据计算得到的哈希值。其中:所述第二节点用于从所述第一节点接收多个第一状态;确定所述多个第一状态的key的公共前缀;根据所述多个第一状态,计算所述树状状态数据中与所述公共前缀相对应的中间节点的目标哈希值;对所述目标哈希值进行验证,以对所述多个第一状态进行验证。
[0008]第五方面,提供了一种计算机可读存储介质,其上存储有计算机程序,当所述计算机程序在计算机中执行时,令计算机执行第一方面中所述的方法。
[0009]第六方面,提供一种计算设备,包括存储器和处理器,所述存储器中存储有可执行代码,所述处理器执行所述可执行代码时,实现第一方面所述的方法。
[0010]在本说明书实施例的方案中,对于来自全量节点的多个状态,轻节点在确定多个状态的key具有公共前缀的情况下,可以根据该多个状态计算树状状态数据中与该公共前缀相对应的中间节点的目标哈希值,进而对目标哈希值进行验证以完成对该多个状态的验证,无需逐一验证该多个状态,可以更为快速的完成对该多个状态的验证,有利于提高区块链系统的性能。
附图说明
[0011]为了更清楚地说明本说明书实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本说明书中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
[0012]图1示出了一实施例中的区块链架构图;
[0013]图2为PBFT共识算法中的共识过程示意图;
[0014]图3是相关技术中的共识节点的区块链数据存储的结构示意图;
[0015]图4为MPT树的结构示意图;
[0016]图5为本说明书实施例中提供的一种状态验证方法的流程图;
[0017]图6为本说明书实施例中提供的状态哈希值树和存储哈希值树的示意图;
[0018]图7是本说明书实施例中提供的状态哈希值树的示意图;
[0019]图8为本说明书实施例中提供的基于树状验证数据验证多个状态的过程示意图;
[0020]图9为本说明书实施例中提供的一种共识方法的流程图;
[0021]图10为本说明书实施例中提供的一种状态验证装置的结构示意图;
[0022]图11为本说明书实施例中提供一种区块链系统中的节点的结构图。
具体实施方式
[0023]为了使本
的人员更好地理解本说明书中的技术方案,下面将结合本说明
书实施例中的附图,对本说明书实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本说明书一部分实施例,而不是全部的实施例。基于本说明书中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都应当属于本说明书保护的范围。
[0024]图1示出了一实施例中的区块链架构图。在图1所示的区块链架构图中,区块链100中包括N个节点,图1中示意示出节点1

节点8。节点之间的连线示意性的表示P2P(Peer to Peer,点对点)连接,所述连接例如可以为TCP连接等,用于在节点之间传输数据。
[0025]区块链领域中的交易可以指在区块链中执行并记录在区块链中的任务单元。交易中通常包括发送字段(From)、接收字段(To)和数据字段(Data)。其中,在交易为转账交易的情况中,From字段表示发起该交易(即发起对另一个账户的转账任务)的账户地址,To字段表示接收该交易(即接收转账)的账户地址,Data字段中包括转账金额。
[0026本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种区块链系统中的状态验证方法,所述区块链系统包括第一节点和第二节点,所述第一节点存储有树状状态数据,所述树状状态数据的叶子节点中包括状态,所述树状状态数据中从根节点到叶子节点的路径上的节点包括所述状态的key,所述树状状态数据中的父节点包括基于其子节点中的数据计算得到的哈希值,所述方法由所述第二节点执行,包括:从所述第一节点接收多个第一状态;确定所述多个第一状态的key的公共前缀;根据所述多个第一状态,计算所述树状状态数据中与所述公共前缀相对应的中间节点的目标哈希值;对所述目标哈希值进行验证,以对所述多个第一状态进行验证。2.根据权利要求1所述的方法,所述对所述目标哈希值进行验证包括:获取所述树状状态数据中根节点的第一哈希值和若干树节点的哈希值,根据所述若干树节点的哈希值与所述目标哈希值计算所述根节点的第二哈希值,验证所述第二哈希值与所述第一哈希值是否相同。3.根据权利要求1所述的方法,所述第二节点中存储有与所述树状状态数据对应的树状验证数据,所述树状验证数据的叶子节点中包括所述状态的哈希值,所述树状验证数据中从根节点到叶子节点的路径上的节点包括所述状态的key,所述树状验证数据中的父节点包括基于其子节点中的数据计算得到的哈希值;所述对所述目标哈希值进行验证,包括:获取所述树状验证数据中根节点的第一哈希值和若干树节点的哈希值,根据所述若干树节点的哈希值与所述目标哈希值计算所述根节点的第二哈希值,验证所述第二哈希值与所述第一哈希值是否相同。4.根据权利要求2或3所述的方法,所述树节点是,所述根节点到所述中间节点的路径上的节点的兄弟节点。5.根据权利要求1所述的方法,所述对所述目标哈希值进行验证,包括:确定所述中间节点的当前哈希值与所述目标哈希值是否相同。6.根据权利要求1所述的方法,所述第一状态的key表征注册在所述区块链系统中的用户账户;或者,所述第一状态的key表征属于注册在所述区块链系统中的合约账户的变量。7.根据权利要求1所述的方法,所述父节点的子节点是叶子节点的情况下,所述父节点包括的哈希值,基于所述父节点的子节点所包括的状态的哈希值,以及所述父节点的子节点所包括的状态的key的组成部分计算得到。8.根据权利要求1所述的方法,所述从所述第一节点接收多个第一状态,包括:从所述第一节点接收共识提议,所述共识提议包括待执行的多个交易的读集,所述读集包括所述第一节点根据所述多个交易从所述树状状态数据中读取的所述多个第一状态;所述方法还包括:根据所述多个第一状态的验证结果与所述第一节点、所述区块链系统中的其它共识节点对所述共识提议进行共识。9.根据权利要求8所述的方法,所述共识提议中还包括所述多个交易的排列顺序,所述方法还包括:在对所述共识提议达成共识的情况下,根据所述排列顺序和所述读集执行所述多个交易以得到写集,所述写集用于更新若干第...

【专利技术属性】
技术研发人员:卓海振
申请(专利权)人:蚂蚁区块链科技上海有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1