具有可调整法定数量的区块链分片制造技术

技术编号:33198763 阅读:30 留言:0更新日期:2022-04-24 00:31
一种方法包括由节点计算机向网络分片中的多个节点计算机广播包括区块链的新区块的提议消息。所述节点计算机可从所述多个节点计算机接收至少一个投票消息,所述至少一个投票消息指示对所述新区块的验证。所述节点计算机可在预定时间量之后接收多个预提交消息,所述多个预提交消息包括至少所述新区块和基于所述至少一个投票消息创建的区块证书。如果所述多个预提交消息中的接收到的预提交消息的数目大于与所述网络分片相关联的法定数量值,则所述节点计算机可将所述新区块提交给所述区块链。块链。块链。

【技术实现步骤摘要】
【国外来华专利技术】具有可调整法定数量的区块链分片
[0001]相关申请交叉引用
[0002]本申请为PCT申请,其要求2019年9月11日提交的第62/898,905号美国临时申请的权益,所述美国临时申请出于所有目的以全文引用的方式并入本文中。

技术介绍

[0003]分片是一种根据网络大小扩展区块链协议的方法:网络被划分(例如,经由随机取样)为被称作分片的小群验证器节点,其通过代表网络中的所有节点达成拜占庭共识(Byzantine consensus)来并行处理交互。分片可以比整个网络快得多的速率对交互(例如,交易)进行签名,这是因为分片的大小较小,而且共识协议引发的消息复杂性至少是二次的(在参与者数目方面)。
[0004]尽管如此,由于可能形成其中恶意节点占据足够大部分的网络分片的变节分片,从而损害整个分片协议的安全,因此不能任意地使分片较小。实际上,此类事件的概率随着网络分片大小的倒数呈指数增长,从而产生实际上由数百个节点组成的大分片。
[0005]本专利技术的实施例单独地以及共同地解决了这些问题和其它问题。

技术实现思路

[0006]本公开的一个实施例涉及一种方法,其包括:由节点计算机向网络分片中的多个节点计算机广播包括区块链的新区块的提议消息;由所述节点计算机从所述多个节点计算机接收至少一个投票消息,所述至少一个投票消息指示对所述新区块的验证;在预定时间量之后,由所述节点计算机接收包括至少所述新区块和基于所述至少一个投票消息创建的区块证书的多个预提交消息;以及如果所述多个预提交消息中的接收到的预提交消息的数目大于与所述网络分片相关联的法定数量值,则由所述节点计算机将所述新区块提交给所述区块链。
[0007]本公开的另一实施例涉及一种被编程为执行上述方法的节点计算机。
[0008]关于本专利技术的实施例的其它细节可参见具体实施方式和附图。
附图说明
[0009]图1示出实施例的分片变节与先前工作的比较。
[0010]图2示出根据实施例的区块链系统。
[0011]图3A示出根据实施例的节点计算机。
[0012]图3B示出根据实施例的客户端装置。
[0013]图4示出在RapidChain中对大小N=2000并且F=33%的网络中的网络分片进行取样的故障概率曲线图。
[0014]图5示出根据实施例的从大小N=2000并且F=33%的网络获得不同类型的分片的概率曲线图。
[0015]图6示出当节点计算机加入和/或离开时交互到分片表的重组。
[0016]图7示出说明根据实施例的区块提交方法的流程图。
[0017]图8示出根据实施例的跨分片验证方法的流程图。
[0018]图9示出实施例的分片变节与先前工作的额外比较。
[0019]图10示出根据实施例的分片大小在部分同步中如何影响无故障时间(time

to

failure)的曲线图。
[0020]图11示出根据实施例的法定数量大小的曲线图。
[0021]图12示出根据实施例的四个网络分片的图解说明。
具体实施方式
[0022]在论述本专利技术的实施例之前,可以进一步详细描述一些术语。
[0023]“区块链”可以是通过密码术关联的不断扩充的记录列表。区块链可包括一系列区块。区块链中的每个区块可包括一个或多个历史交易的电子记录以及元数据。在一些实施例中,区块链中的区块可通过包括对前一区块(例如,前一区块的散列输出)的参考而相联系。区块链中的每个新区块的内容可基于新交易和区块链中的先前区块而以算法方式确定。区块链中的信息可以是不可变的。区块链可被分片成存储在委员会处的区块链分片。例如,一个委员会可存储区块链的一个分片,而不同委员会可以存储区块链的不同分片。
[0024]“验证网络”可包括被编程为提供对交互的验证的一组计算机节点。验证网络可以是使用经由通信链路互连的若干计算机节点的分布式计算系统。验证网络可使用任何适当网络实施,所述网络包括内联网、互联网、蜂窝网络、局域网或任何其它此类网络或其组合。在一些情况下,节点可由第三方或管理实体独立操作。此类实体可连续地添加或从验证网络移除计算机节点。在一些实施例中,验证网络中的节点可以是完整节点。
[0025]“节点”可以是线或路径相交或分支的点,或者可以是中心点或连接点。在一些情况下,节点可以是“计算机节点”,其可以是任何计算机或可在含有所述节点的网络内独立地操作的计算机群组。在一些实施例中,可完全验证区块链中的每个区块和交互的节点可表征为“完整节点”。在一些情况下,完整节点可存储完整区块链(即,每个区块和每个交互)。在一些情况下,客户端装置可以是验证网络中的节点计算机。
[0026]“网络分片”可包括网络的节点(例如,节点计算机)的子群组。网络分片可包括网络的任何合适数目的节点计算机,并且网络中可存在任何合适数目的网络分片。在一些情况下,网络分片中的节点计算机可以是区块链网络中的验证器节点。网络分片中的节点计算机可维持区块链或区块链的一部分。在一些实施例中,由网络分片维持的区块链可以是区块链分片。“区块链分片”可以是区块链的一部分。所述部分可包括区块链的数个区块,但不包括整个区块链。在一些实施例中,验证网络中的每个网络分片可包括相同数目的节点计算机。
[0027]“参考网络分片”可包括可作为网络中节点计算机的参考的网络分片。参考网络分片可包括可周期性地重新配置网络中的网络分片的数个节点计算机。参考分片的节点计算机可维持并更新节点到分片表和交互到分片表。参考分片的节点计算机可将对节点到分片表和交互到分片表的更新广播到网络的网络分片。参考分片可包括诚实多数节点计算机。
[0028]“区块”可包括保持一个或多个交互的记录的数据元素,并且可以是区块链的子部件。区块可包括区块标头和区块主体。区块可包括被散列并编码成梅克尔树(Merkle tree)
的一批有效交互。每个区块可包括区块链中前一区块(或多个区块)的密码散列。
[0029]“区块标头”可以是包括关于区块的信息的标头。区块标头可用于标识区块链中的特定区块。区块标头可包括任何合适的信息,例如前一散列、梅克尔根、时间戳和临时数。在一些实施例中,区块标头还可包括难度值。
[0030]“交互”可以包括互惠作用或影响。“交互”可以包括各方、各装置和/或各实体之间的通信、联系或交换。示例交互包括两方之间的交易和两个装置之间的数据交换。在一些实施例中,交互可以包括用户请求访问安全数据、安全网页、安全位置等。在其它实施例中,交互可以包括支付交易,在所述支付交易中,两个装置可以交互以促进支付。
[0031]“交互数据”可以是与交互相关联的数据。例如,交互可以是将数字资产从一方转移到另一方。例如,交互数据可以包括交易金额和未花费的交易输出(UTXO)。在一些实施例中,交互数据可指示为交互一方的不同实体以及被交换的价值或信息。交互数据可包括价值、与发送方相关联的信息(例如令牌或账户信息本文档来自技高网
...

【技术保护点】

【技术特征摘要】
【国外来华专利技术】1.一种方法,包括:由节点计算机向网络分片中的多个节点计算机广播包括区块链的新区块的提议消息;由所述节点计算机从所述多个节点计算机接收至少一个投票消息,所述至少一个投票消息指示对所述新区块的验证;在预定时间量之后,由所述节点计算机接收包括至少所述新区块和基于所述至少一个投票消息创建的区块证书的多个预提交消息;以及如果所述多个预提交消息中的接收到的预提交消息的数目大于与所述网络分片相关联的法定数量值,则由所述节点计算机将所述新区块提交给所述区块链。2.根据权利要求1所述的方法,其中所述提议消息包括所述新区块、视图编号和前一区块证书。3.根据权利要求2所述的方法,其中所述多个节点计算机在广播所述至少一个投票消息之前验证所述前一区块证书。4.根据权利要求1所述的方法,其中所述网络分片中的所述多个节点计算机是维持作为第一区块链的所述区块链的第一分片中的第一多个节点计算机,其中所述法定数量值是第一法定数量值,并且其中维持第二区块链的第二分片中的第二多个节点计算机与第二法定数量值相关联。5.根据权利要求4所述的方法,还包括:由所述节点计算机基于与所述第一网络分片相关联的不活动定时器来生成关断消息;以及由所述节点计算机将所述关断消息发送给所述第二网络分片中的所述第二多个节点计算机,其中所述第二网络分片是网络参考分片,其中所述参考网络分片确定关断所述第一网络分片并将所述第一多个节点计算机分布到多个额外分片。6.根据权利要求4所述的方法,其中在广播所述提议消息之前,所述方法还包括:由所述节点计算机从客户端装置接收提交交互请求消息,所述提交交互请求消息包括交互数据和由一个或多个分片创建的一个或多个包括证明,其中所述一个或多个包括证明中的至少一个包括证明是由所述第二网络分片创建的;由所述节点计算机验证所述一个或多个包括证明;以及如果所述一个或多个包括证明有效,则由所述节点计算机至少将所述交互数据包括在所述新区块中。7.根据权利要求1所述的方法,其中所述新区块包括区块标头和区块主体,其中所述区块标头是包括至少累加器值的元组。8.根据权利要求7所述的方法,其中在将所述新区块提交给所述区块链之后,所述方法还包括:由所述节点计算机从所述节点计算机的存储器移除所述区块主体。9.根据权利要求1所述的方法,其中所述网络分片中的所述多个节点计算机包括20至200个节点计算机,并且其中所述法定数量值在25至40的范围内。10.根据权利要求1所述的方法,还包括:在接收所述多个预提交消息之后,由所述节点计算机验证所述多个预提交消息。11.一种节点计算机,包括:
处理器;以及耦合到所述处理器的计算机可读介质,所述计算机可读介质包括能由所述处理器执行以实施方法的代码,所述方法包括:向网络分片中的多个节点计算机广播包括区块链的新区块的提议消息;从所述多个节点计算机接收至少一个投票消息,所述至少一个投票消息指示对所述新区块的验证;在预定时间量之后,接收包括至少所述新区块和基于所述至少一个投票消息创建的区块证书的多个预提交消息;以及如果所述多个预提交消息中的接收到的预提交消息的数目大于与所述网络分片相关联的法定数量值,则将所述新区块提交给所述区块链。12.根据权利要求11所述的节点计算机,其中所述提议消息包括所述新区块、视图编号和前一区块证书,其中所述多个预提交消息中的每个预提交消息包括所述视图编号,并且其中所述方法还包括:在接收所述多个预提交消息之后,至少使用每个预提交消息中的所述视图编号来验证所述多个预提交消息。13.根据权利要求11所述的节点计算机,其中在广播所述提议消息之前,所述方法还包括:从客户端装置接收提交交互请求消息,所述提交交互请求消息包括交互数据和一个或多个包括证明;由所述节点计算机验证所述一个或多个包括证明;以及如果所述一个或多个包括证明有效,则由所述节点计算机至少将所述交互数据包括在所述新区块中。14.根据权利要求11所述的节点计算机,其中所述网络分片是网络参考分片,而所述节点计算机是第一节点计算机并且是维持第一区块链的所述参考网络分片的当前领导者,其中第二分片中的第二多个节点计算机维持第二区块链,并且其中所述方法还包括:从所述第二多个节点计算机接收一个或多个关断消息;如果所述一个或多个关断消息中的接收到的关断消息的数目大于与所述第二网络分片相关联的关断阈值,则将所述第二多个节点计算机中的每个节点计算机指派给当前历元中节点到分片表中的空值网...

【专利技术属性】
技术研发人员:M
申请(专利权)人:维萨国际服务协会
类型:发明
国别省市:

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

1