【技术实现步骤摘要】
区块链状态的存储、验证方法及区块链节点
[0001]本说明书实施例属于区块链
,尤其涉及一种区块链状态的存储、验证方法及区块链节点。
技术介绍
[0002]区块链(Blockchain)是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。区块链系统中按照时间顺序将数据区块以顺序相连的方式组合成链式数据结构,并以密码学方式保证的不可篡改和不可伪造的分布式账本。由于区块链具有去中心化、信息不可篡改、自治性等特性,区块链也受到人们越来越多的重视和应用。在区块链系统中,一般通过全节点作为参与共识的最小设施,全节点需要包括全量数据,以支持共识功能。
技术实现思路
[0003]本专利技术的目的在于提供一种区块链状态的存储、验证方法及区块链节点,可以实现针对细粒度数据进行验证。
[0004]本说明书第一方面提供一种区块链状态的存储方法,由区块链节点执行,待存储的目标状态数据为所述区块链中的第一参数的状态数据;所述方法包括:
[0005]从区块链中获取上一个区块对应的第一状态树和第一默克树,所述第一默克树中包括第一参数的多个第一状态数据,所述第一状态树中包括所述第一默克树的第一根哈希值;
[0006]基于所述目标状态数据,更新所述第一默克树,得到第二默克树,所述第二默克树包括第二根哈希值;
[0007]基于所述第二根哈希值,更新所述第一状态树,得到第二状态树;
[0008]与当前区块关联地存储所述第二状态树和所述第二默克树。
[0009]本 ...
【技术保护点】
【技术特征摘要】
1.一种区块链状态的存储方法,由区块链节点执行,待存储的目标状态数据为所述区块链中的第一参数的状态数据;所述方法包括:从区块链中获取上一个区块对应的第一状态树和第一默克树,所述第一默克树中包括第一参数的多个第一状态数据,所述第一状态树中包括所述第一默克树的第一根哈希值;基于所述目标状态数据,更新所述第一默克树,得到第二默克树,所述第二默克树包括第二根哈希值;基于所述第二根哈希值,更新所述第一状态树,得到第二状态树;与当前区块关联地存储所述第二状态树和所述第二默克树。2.根据权利要求1所述的方法,其中,所述更新所述第一默克树,包括:基于所述目标状态数据,更新所述第一默克树中与所述目标状态数据对应的第一树节点的哈希值;自底向上更新从所述第一树节点到所述第一默克树的根节点的路径中其它各个树节点的哈希值。3.根据权利要求1所述的方法,其中,所述更新所述第一状态树,包括:基于所述第二根哈希值,更新所述第一状态树中与所述第一根哈希值对应的第二树节点的哈希值;自底向上更新从所述第二树节点到所述状态树的根节点的路径中其它各个树节点的哈希值。4.根据权利要求1所述的方法,其中,所述目标状态数据与资产或图片相对应。5.根据权利要求1所述的方法,其中,所述第一默克树为二叉默克树;所述二叉默克树通过以下步骤构建得到:获取针对所述多个第一状态数据预先构建的k
‑
叉树;所述k
‑
叉树中的每个树节点对应于一个第一状态数据;将所述k
‑
叉树转换为二叉树;对于所述二叉树,按照从下到上的顺序,计算各层树节点的目标哈希值,直至到达根节点;如此得到所述二叉默克树。6.根据权利要求5所述的方法,其中,所述计算各层树节点的目标哈希值,包括:基于所述二叉树中各个树节点对应的各个第一状态数据,计算所述各个树节点对应的各个初始哈希值;对于所述各个树节点中的当前节点,若当前节点为叶子节点,则将对应的初始哈希值作为当前节点的目标哈希值;若当前节点为非叶子节点,则将左子节点的目标哈希值、右子节点的目标哈希值和当前节点的初始哈希值拼接后再哈希,得到当前节点的目标哈希值。7.根据权利要求6所述的方法,其中,所述第一根哈希值为所述二叉默克尔树的根节点的目标哈希值。8.根据权利要求5所述的方法,其中,所述将所述k
‑
叉树转换为二叉树,包括:将所述k
‑
叉树补全为完全k
‑
叉树;按照从上到下的顺序,对所述完全k
‑
叉树中的各层树节点进行编号;按照所述编号,将所述完全k
‑
叉...
【专利技术属性】
技术研发人员:何家华,刘谦,蒋志勇,
申请(专利权)人:蚂蚁区块链科技上海有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。