用于更新区块链节点处的公钥集合的方法及装置制造方法及图纸

技术编号:23893144 阅读:51 留言:0更新日期:2020-04-22 07:19
本说明书实施例提供了用于更新区块链节点处的公钥集合的方法,公钥集合包括区块链网络中的所有参与共识的区块链节点的公钥,该方法包括:针对新加入的至少一个区块,基于该区块的区块头中的收据索引信息和节点变更类交易标识,确定该区块中是否存在节点变更类交易标识所指示的节点变更类交易,收据索引信息包括交易类型标识字段;当该区块中存在节点变更类交易时,获取该区块的区块体信息;从区块体信息中获取节点变更类交易的收据信息,收据信息包括公钥字段,公钥字段用于存放节点变更类交易所指示的被变更区块链节点的公钥;从收据信息的公钥字段中获取的被变更区块链节点的公钥;以及利用所获取的公钥来更新公钥集合。

Methods and devices for updating public key sets at blockchain nodes

【技术实现步骤摘要】
用于更新区块链节点处的公钥集合的方法及装置
本说明书实施例涉及区块链技术,具体地,涉及用于更新区块链节点处的公钥集合的方法及装置。
技术介绍
在区块链系统中,出于某些区块链操作的需要,可能会在各个区块链节点处维护区块链系统中所有区块链节点的公钥集合。在区块链系统中,难免会发生区块链节点变更,例如新区块链节点加入区块链系统或已加入的区块链节点退出区块链系统。在发生区块链节点变更时,需要一种可信任的方式来更新区块链系统中的公钥集合。
技术实现思路
鉴于上述,本说明书实施例提供了一种用于更新区块链节点处的公钥集合的方法及装置。根据本说明书实施例的一个方面,提供了一种用于更新区块链节点处的公钥集合的方法,所述公钥集合包括区块链网络中的所有参与共识的区块链节点的公钥,所述方法包括:针对新加入的至少一个区块,基于该区块的区块头中的收据索引信息和节点变更类交易标识,确定该区块中是否存在所述节点变更类交易标识所指示的节点变更类交易,所述节点变更类交易以用于执行区块链节点变更操作的智能合约为交易对象,所述收据索引信息包括交易类型标识字段,所述交易类型标识字段指示该区块中的各个交易的交易类型;当该区块中存在节点变更类交易时,获取该区块的区块体信息;从所述区块体信息中获取所述节点变更类交易的收据信息,所述收据信息包括公钥字段,所述公钥字段用于存放所述节点变更类交易所指示的被变更区块链节点的公钥;从所述收据信息的公钥字段中获取的被变更区块链节点的公钥;以及利用所获取的公钥来更新所述公钥集合。可选的,在一个示例中,所述区块体信息可以包括交易树和收据树,从所述区块体信息中获取所述节点变更类交易的收据信息可以包括:基于所述节点变更类交易标识,确定被指定发起所述节点变更类交易的指定发起方地址以及所述节点变更类交易对应的智能合约地址;基于所述区块体信息中的交易树信息和所述指定发起方地址以及所述智能合约地址,从所述交易树中确定出所述节点变更类交易以及所述节点变更类交易在所述交易树中的第一位置;以及从所述收据树中获取与所确定的第一位置对应的第二位置处的收据信息。可选的,在一个示例中,在获取所述收据树中的与所确定的第一位置对应的第二位置处的收据信息之前,从所述区块体信息中获取所述节点变更类交易的收据信息还可以包括:基于所述节点变更类交易中包含的交易对象地址和所述智能合约的智能合约地址,对所述节点变更类交易进行验证。获取所述收据树中的与所确定的第一位置对应的第二位置处的收据信息包括:当所述节点变更交易验证通过时,获取所述收据树中的与所确定的第一位置对应的第二位置处的收据信息。可选的,在一个示例中,基于从所述交易树中确定出的节点变更类交易的交易对象地址信息和所述智能合约的智能合约地址,对所述节点变更类交易进行验证可以包括:基于从所述交易树中确定出的节点变更类交易的交易发起方地址、交易对象地址、所述指定发起方地址以及所述智能合约地址,对所查找出的节点变更交易进行验证。可选的,在一个示例中,所述节点变更类交易标识指示节点新增类交易,利用所获取的公钥来更新所述公钥集合可以包括:将所述公钥添加到所述公钥集合中,或所述节点变更类交易标识指示节点删除类交易,利用所获取的公钥来更新所述公钥集合包括:将所述公钥从所述公钥集合中删除。可选的,在一个示例中,所述区块链系统可以为联盟链系统。可选的,在一个示例中,所述智能合约可以布署在创世区块中。根据本说明书实施例的另一方面,还一种用于在联盟链中更新公钥集合的装置,所述公钥集合包括区块链网络中所有参与共识的区块链节点的公钥,所述装置包括:节点变更交易确定单元,针对新加入的至少一个区块,基于该区块的区块头中的收据索引信息和节点变更类交易标识,确定该区块中是否存在所述节点变更类交易标识所指示的节点变更类交易,所述节点变更类交易以用于执行区块链节点变更操作的智能合约为交易对象,所述收据索引信息包括交易类型标识字段,所述交易类型标识字段指示该区块中的各个交易的交易类型;区块体信息获取单元,当该区块中存在节点变更类交易时,获取该区块的区块体信息;收据信息获取单元,从所述区块体信息中获取所述节点变更类交易的收据信息,所述收据信息包括公钥字段,所述公钥字段用于存放所述节点变更类交易所指示的被变更区块链节点的公钥;公钥获取单元,从所述收据信息的公钥字段中获取的被变更区块链节点的公钥;以及公钥集合更新单元,利用所获取的公钥来更新所述公钥集合。可选的,在一个示例中,所述区块体信息可以包括交易树和收据树,所述收据信息获取单元可以包括:指定交易信息确定模块,基于所述节点变更类交易标识,确定被指定发起所述节点变更类交易的指定发起方地址以及所述节点变更类交易对应的智能合约地址;第一位置确定模块,基于所述区块体信息中的交易树信息和所述指定发起方地址以及所述智能合约地址,从所述交易树中确定出所述节点变更类交易以及所述节点变更类交易在所述交易树中的第一位置;以及收据信息获取模块,从所述收据树中获取与所确定的第一位置对应的第二位置处的收据信息。可选的,在一个示例中,所述收据信息获取单元可以包括:节点变更类交易验证模块,在获取所述收据树中的与所确定的第一位置对应的第二位置处的收据信息之前,基于所述节点变更类交易中包含的交易对象地址和所述智能合约的智能合约地址,对所述节点变更类交易进行验证,以及所述收据信息获取模块当所述节点变更交易验证通过时,获取所述收据树中的与所确定的第一位置对应的第二位置处的收据信息。可选的,在一个示例中,所述节点变更交易验证模块可以基于从所述交易树中确定出的节点变更类交易的交易发起方地址、交易对象地址、所述指定发起方地址以及所述智能合约地址,对所查找出的节点变更交易进行验证。可选的,在一个示例中,所述节点变更类交易标识可以指示节点新增类交易,所述公钥集合更新单元可以将所述公钥添加到所述公钥集合中,或所述节点变更类交易标识可以指示节点删除类交易,所述公钥集合更新单元可以将所述公钥从所述公钥集合中删除。根据本说明书实施例的另一方面,还提供一种计算设备,包括:至少一个处理器;以及存储器,所述存储器存储指令,当所述指令被所述至少一个处理器执行时,使得所述至少一个处理器执行如上所述的方法。根据本说明书实施例的另一方面,还提供一种非暂时性机器可读存储介质,其存储有可执行指令,所述指令当被执行时使得所述机器执行如上所述的方法。利用本说明书实施例的方法及装置,通过在基于区块头中的收据索引信息和节点变更类交易标识确定出相应区块中存在节点变更类交易标识所指示的节点变更交易时,获取区块体信息,然后基于所获取的区块体信息获取节点变更类交易所对应的区块链节点的公钥,进而利用所获取的公钥来更新公钥集合,不仅能够提供一种可信任的区块链公钥集合更新方式,并且由于区块体信息获取以及公钥获取过程在确定存在节点变更类交易之后进执行,能够减轻各个区块链节点的负担。附图说明通过参照下面的附图,可以实现对于本说明书实施例内容的本质和优点的进一步理解。在附图中,类本文档来自技高网...

【技术保护点】
1.一种用于更新区块链节点处的公钥集合的方法,所述公钥集合包括区块链网络中的所有参与共识的区块链节点的公钥,所述方法包括:/n针对新加入的至少一个区块,基于该区块的区块头中的收据索引信息和节点变更类交易标识,确定该区块中是否存在所述节点变更类交易标识所指示的节点变更类交易,所述节点变更类交易以用于执行区块链节点变更操作的智能合约为交易对象,所述收据索引信息包括交易类型标识字段,所述交易类型标识字段指示该区块中的各个交易的交易类型;/n当该区块中存在节点变更类交易时,获取该区块的区块体信息;/n从所述区块体信息中获取所述节点变更类交易的收据信息,所述收据信息包括公钥字段,所述公钥字段用于存放所述节点变更类交易所指示的被变更区块链节点的公钥;/n从所述收据信息的公钥字段中获取的被变更区块链节点的公钥;以及/n利用所获取的公钥来更新所述公钥集合。/n

【技术特征摘要】
1.一种用于更新区块链节点处的公钥集合的方法,所述公钥集合包括区块链网络中的所有参与共识的区块链节点的公钥,所述方法包括:
针对新加入的至少一个区块,基于该区块的区块头中的收据索引信息和节点变更类交易标识,确定该区块中是否存在所述节点变更类交易标识所指示的节点变更类交易,所述节点变更类交易以用于执行区块链节点变更操作的智能合约为交易对象,所述收据索引信息包括交易类型标识字段,所述交易类型标识字段指示该区块中的各个交易的交易类型;
当该区块中存在节点变更类交易时,获取该区块的区块体信息;
从所述区块体信息中获取所述节点变更类交易的收据信息,所述收据信息包括公钥字段,所述公钥字段用于存放所述节点变更类交易所指示的被变更区块链节点的公钥;
从所述收据信息的公钥字段中获取的被变更区块链节点的公钥;以及
利用所获取的公钥来更新所述公钥集合。


2.如权利要求1所述的方法,其中,所述区块体信息包括交易树和收据树,从所述区块体信息中获取所述节点变更类交易的收据信息包括:
基于所述节点变更类交易标识,确定被指定发起所述节点变更类交易的指定发起方地址以及所述节点变更类交易对应的智能合约地址;
基于所述区块体信息中的交易树信息和所述指定发起方地址以及所述智能合约地址,从所述交易树中确定出所述节点变更类交易以及所述节点变更类交易在所述交易树中的第一位置;以及
从所述收据树中获取与所确定的第一位置对应的第二位置处的收据信息。


3.如权利要求2所述的方法,其中,在获取所述收据树中的与所确定的第一位置对应的第二位置处的收据信息之前,从所述区块体信息中获取所述节点变更类交易的收据信息还包括:
基于所述节点变更类交易中包含的交易对象地址和所述智能合约的智能合约地址,对所述节点变更类交易进行验证,
获取所述收据树中的与所确定的第一位置对应的第二位置处的收据信息包括:
当所述节点变更交易验证通过时,获取所述收据树中的与所确定的第一位置对应的第二位置处的收据信息。


4.如权利要求3所述的方法,其中,基于从所述交易树中确定出的节点变更类交易的交易对象地址信息和所述智能合约的智能合约地址,对所述节点变更类交易进行验证包括:
基于从所述交易树中确定出的节点变更类交易的交易发起方地址、交易对象地址、所述指定发起方地址以及所述智能合约地址,对所查找出的节点变更交易进行验证。


5.如权利要求1-4中任一所述的方法,其中,所述节点变更类交易标识指示节点新增类交易,利用所获取的公钥来更新所述公钥集合包括:
将所述公钥添加到所述公钥集合中,或
所述节点变更类交易标识指示节点删除类交易,利用所获取的公钥来更新所述公钥集合包括:
将所述公钥从所述公钥集合中删除。


6.如权利要求1-4中任一所述的方法,其中,所述区块链系统为联盟链系统。


7.如权利要求1-4中任一所述的方法,其中,所述智能合约布署在创世区块中。


8.一种用于在联盟...

【专利技术属性】
技术研发人员:林鹏
申请(专利权)人:支付宝杭州信息技术有限公司
类型:发明
国别省市:浙江;33

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

1