区块存储方法、装置、计算机设备及存储介质制造方法及图纸

技术编号:24589326 阅读:27 留言:0更新日期:2020-06-21 02:23
本申请公开了一种区块存储方法、装置、计算机设备及存储介质,属于区块链技术领域。本申请通过基于节点设备的私钥片段,对区块链系统中目标节点设备所生成的区块进行签名,得到第一签名信息,向该目标节点设备发送该第一签名信息,若接收到该目标节点设备发送的第二签名信息,基于与该全局私钥对应的全局公钥对该第二签名信息进行验证,得到第一验证信息,若该第一验证信息表示验证通过,将该区块存储在该区块链系统的区块链上,节点设备无需将在区块链系统中广播第一签名信息,而是仅将第一签名信息发送至目标节点设备,将每轮投票中的消息复杂度从O(n

Block storage method, device, computer equipment and storage medium

【技术实现步骤摘要】
区块存储方法、装置、计算机设备及存储介质
本申请涉及区块链
,特别涉及一种区块存储方法、装置、计算机设备及存储介质。
技术介绍
区块链系统是一种分布式的系统,共识机制是区块链系统中不可或缺的一环,通过共识机制可以协助区块链系统中各节点之间保持数据一致,也即解决分布式系统的一致性问题。共识机制简单来说就是一种投票机制,目标节点设备创建区块之后,其他节点设备基于共识算法对区块进行共识投票,在共识通过后目标节点设备将该区块写入区块链。目前,区块链系统通常是基于广播方式进行共识投票,BFS(ByzantineFaultTolerance,拜占庭容错)等共识算法中通常包含至少一轮投票,由于广播方式在每轮投票中消息复杂度为O(n2),此时随着参与共识的节点设备数量的增多,区块链系统的性能提升反而下降,为保证区块链系统业务可用,参与共识的节点设备数量将受到限制,也即是说,区块链系统的可扩展性较差。
技术实现思路
本申请实施例提供了一种区块存储方法、装置、计算机设备及存储介质,能够提升区块链系统的可扩展性。该技术方案如下:一方面,提供了一种区块存储方法,应用于区块链系统中的节点设备,所述方法包括:基于所述节点设备的私钥片段,对所述区块链系统中目标节点设备所生成的区块进行签名,得到第一签名信息,向所述目标节点设备发送所述第一签名信息,所述私钥片段为所述区块链系统的全局私钥的一部分;若接收到所述目标节点设备发送的第二签名信息,基于与所述全局私钥对应的全局公钥对所述第二签名信息进行验证,得到第一验证信息,所述第二签名信息用于表示基于所述全局私钥对所述区块进行签名的签名信息;若所述第一验证信息表示验证通过,将所述区块存储在所述区块链系统的区块链上。在一种可能实施方式中,所述第二签名信息为多个节点设备的第一签名信息相加所得的聚合签名信息,且所述第二签名信息由所述目标节点设备在第一目标条件下发送,所述第一目标条件为所述目标节点设备接收到第一签名信息的数量与所述区块链系统中节点设备的数量之比大于第一目标比例。在一种可能实施方式中,所述将所述区块存储在所述区块链系统的区块链上之前,所述方法还包括:基于所述私钥片段对所述第二签名信息以及所述区块进行签名,得到第三签名信息,向所述目标节点设备发送所述第三签名信息;若接收到所述目标节点设备发送的第四签名信息,基于所述全局公钥对所述第四签名信息进行验证,得到第二验证信息,所述第四签名信息用于表示基于所述全局私钥对所述第二签名信息以及所述区块进行签名的签名信息;若所述第二验证信息表示验证通过,执行将所述区块存储在所述区块链系统的区块链上的操作。在一种可能实施方式中,所述第四签名信息为多个节点设备的第三签名信息相加所得的聚合签名信息,且所述第四签名信息由所述目标节点设备在第二目标条件下发送,所述第二目标条件为所述目标节点设备接收到第三签名信息的数量与所述区块链系统中节点设备的数量之比大于第二目标比例。在一种可能实施方式中,所述基于所述节点设备的私钥片段,对所述区块链系统中目标节点设备所生成的区块进行签名,得到第一签名信息之前,所述方法还包括:基于分布式密钥生成协议,获取所述私钥片段和所述全局公钥,向其他节点设备共识通知密钥完成消息;若接收到密钥完成消息的数量等于所述其他节点设备的数量,向所述其他节点设备共识通知确认消息;若接收到确认消息的数量与所述其他节点设备的数量之比大于第三目标比例,基于所述私钥片段和所述全局公钥,执行所述区块存储方法。在一种可能实施方式中,所述基于分布式密钥生成协议,获取所述私钥片段和所述全局公钥包括:基于随机生成的秘密数值,获取共享私钥份额,将所述共享私钥份额以及共享公钥片段发送至所述其他节点设备;接收所述其他节点设备的共享私钥份额以及共享公钥片段,验证所述其他节点设备的共享私钥份额的有效性,得到第三验证信息,向所述其他节点设备广播所述第三验证信息;将所述共享私钥份额以及所述其他节点设备的共享私钥份额相加,得到所述私钥片段;将所述共享公钥片段以及所述其他节点设备的共享公钥片段相加,得到所述全局公钥。一方面,提供了一种区块存储方法,应用于区块链系统中的目标节点设备,所述方法包括:接收多个节点设备的第一签名信息,一个第一签名信息为一个节点设备基于所述节点设备的私钥片段对所述目标节点设备所生成的区块进行签名所得,所述私钥片段为所述区块链系统的全局私钥的一部分;若接收到第一签名信息的数量与所述区块链系统中节点设备的数量之比大于第一目标比例,对所述多个节点设备的第一签名信息进行聚合,得到第二签名信息,分别向所述多个节点设备发送所述第二签名信息,所述第二签名信息用于表示基于所述全局私钥对所述区块进行签名的签名信息;若所述多个节点设备基于与所述全局私钥对应的全局公钥对所述第二签名信息验证通过,将所述区块存储在所述区块链系统的区块链上。在一种可能实施方式中,所述将所述区块存储在所述区块链系统的区块链上之前,所述方法还包括:接收所述多个节点设备的第三签名信息,一个第三签名信息为一个节点设备基于所述私钥片段对所述第二签名信息以及所述区块进行签名所得;若接收到第三签名信息的数量与所述区块链系统中节点设备的数量之比大于第二目标比例,对所述多个节点设备的第三签名信息进行聚合,得到第四签名信息,分别向所述多个节点设备发送所述第四签名信息,所述第四签名信息用于表示基于所述全局私钥对所述第二签名信息以及所述区块进行签名的签名信息;若所述多个节点设备基于所述全局公钥对所述第四签名信息验证通过,执行将所述区块存储在所述区块链系统的区块链上的操作。一方面,提供了一种区块存储装置,应用于区块链系统中的节点设备,所述装置包括:签名发送模块,用于基于所述节点设备的私钥片段,对所述区块链系统中目标节点设备所生成的区块进行签名,得到第一签名信息,向所述目标节点设备发送所述第一签名信息,所述私钥片段为所述区块链系统的全局私钥的一部分;验证模块,用于若接收到所述目标节点设备发送的第二签名信息,基于与所述全局私钥对应的全局公钥对所述第二签名信息进行验证,得到第一验证信息,所述第二签名信息用于表示基于所述全局私钥对所述区块进行签名的签名信息;存储模块,用于若所述第一验证信息表示验证通过,将所述区块存储在所述区块链系统的区块链上。在一种可能实施方式中,所述第二签名信息为多个节点设备的第一签名信息相加所得的聚合签名信息,且所述第二签名信息由所述目标节点设备在第一目标条件下发送,所述第一目标条件为所述目标节点设备接收到第一签名信息的数量与所述区块链系统中节点设备的数量之比大于第一目标比例。在一种可能实施方式中,所述签名发送模块,还用于:基于所述私钥片段对所述第二签名信息以及所述区块进行签名,得到第三签名信息,向所述目标节点设备发送所述第三签名信息;所述验证模块,还用于:若接收到所本文档来自技高网...

【技术保护点】
1.一种区块存储方法,其特征在于,应用于区块链系统中的节点设备,所述方法包括:/n基于所述节点设备的私钥片段,对所述区块链系统中目标节点设备所生成的区块进行签名,得到第一签名信息,向所述目标节点设备发送所述第一签名信息,所述私钥片段为所述区块链系统的全局私钥的一部分;/n若接收到所述目标节点设备发送的第二签名信息,基于与所述全局私钥对应的全局公钥对所述第二签名信息进行验证,得到第一验证信息,所述第二签名信息用于表示基于所述全局私钥对所述区块进行签名的签名信息;/n若所述第一验证信息表示验证通过,将所述区块存储在所述区块链系统的区块链上。/n

【技术特征摘要】
1.一种区块存储方法,其特征在于,应用于区块链系统中的节点设备,所述方法包括:
基于所述节点设备的私钥片段,对所述区块链系统中目标节点设备所生成的区块进行签名,得到第一签名信息,向所述目标节点设备发送所述第一签名信息,所述私钥片段为所述区块链系统的全局私钥的一部分;
若接收到所述目标节点设备发送的第二签名信息,基于与所述全局私钥对应的全局公钥对所述第二签名信息进行验证,得到第一验证信息,所述第二签名信息用于表示基于所述全局私钥对所述区块进行签名的签名信息;
若所述第一验证信息表示验证通过,将所述区块存储在所述区块链系统的区块链上。


2.根据权利要求1所述的方法,其特征在于,所述第二签名信息为多个节点设备的第一签名信息相加所得的聚合签名信息,且所述第二签名信息由所述目标节点设备在第一目标条件下发送,所述第一目标条件为所述目标节点设备接收到第一签名信息的数量与所述区块链系统中节点设备的数量之比大于第一目标比例。


3.根据权利要求1所述的方法,其特征在于,所述将所述区块存储在所述区块链系统的区块链上之前,所述方法还包括:
基于所述私钥片段对所述第二签名信息以及所述区块进行签名,得到第三签名信息,向所述目标节点设备发送所述第三签名信息;
若接收到所述目标节点设备发送的第四签名信息,基于所述全局公钥对所述第四签名信息进行验证,得到第二验证信息,所述第四签名信息用于表示基于所述全局私钥对所述第二签名信息以及所述区块进行签名的签名信息;
若所述第二验证信息表示验证通过,执行将所述区块存储在所述区块链系统的区块链上的操作。


4.根据权利要求1所述的方法,其特征在于,所述第四签名信息为多个节点设备的第三签名信息相加所得的聚合签名信息,且所述第四签名信息由所述目标节点设备在第二目标条件下发送,所述第二目标条件为所述目标节点设备接收到第三签名信息的数量与所述区块链系统中节点设备的数量之比大于第二目标比例。


5.根据权利要求1所述的方法,其特征在于,所述基于所述节点设备的私钥片段,对所述区块链系统中目标节点设备所生成的区块进行签名,得到第一签名信息之前,所述方法还包括:
基于分布式密钥生成协议,获取所述私钥片段和所述全局公钥,向其他节点设备共识通知密钥完成消息;
若接收到密钥完成消息的数量等于所述其他节点设备的数量,向所述其他节点设备共识通知确认消息;
若接收到确认消息的数量与所述其他节点设备的数量之比大于第三目标比例,基于所述私钥片段和所述全局公钥,执行所述区块存储方法。


6.根据权利要求5所述的方法,其特征在于,所述基于分布式密钥生成协议,获取所述私钥片段和所述全局公钥包括:
基于随机生成的秘密数值,获取共享私钥份额,将所述共享私钥份额以及共享公钥片段发送至所述其他节点设备;
接收所述其他节点设备的共享私钥份额以及共享公钥片段,验证所述其他节点设备的共享私钥份额的有效性,得到第三验证信息,向所述其他节点设备广播所述第三验证信息;
将所述共享私钥份额以及所述其他节点设备的共享私钥份额相加,得到所述私钥片段;
将所述共享公钥片段以及所述其他节点设备的共享公钥片段相加,得到所述全局公钥。


7.一种区块存储方法,其特征在于,应用于区块链系统中的目标节点设备,所述方法包括:
接收多个节点设备的第一签名信息,一个第一签名信息为一个节点设备基于所述节点设备的私钥片段对所述目标节点设备所生成的区块进行签名所得,所述私钥片段为所述区块链系统的全局私钥的一部分;
若接收到第一签名信息的数量与所述区块链系统中节点设备的数量之比大于第一目标比例,对所述多个节点设备的第一签名信息进行聚合,得到第二签名信息,分别向所述多个节点设备发送所述第二签名信息,所述第二签名信息用于表示基于所述全局私钥对所述区块进行签名的签名信息;
若所述多个节点设备基于与所述全局私钥对应的全局公钥对所述第二签名信息验证通过,将所述区块存储在所述区块链系统的区块链上。


8.根据权利要求7所述的方法,其特征在于,所述将所述区块存储在所述...

【专利技术属性】
技术研发人员:刘攀
申请(专利权)人:腾讯科技深圳有限公司
类型:发明
国别省市:广东;44

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

1