一种去中心化的共识方案的制作方法

文档序号:24154146发布日期:2021-03-05 10:19阅读:95来源:国知局
一种去中心化的共识方案的制作方法

[0001]
本发明涉及去中心化的系统包括区块链和其他分布式系统,具体来说是一种创新的去中心化共识方式。


背景技术:

[0002]
去中心化共识的传统方法有pbft,采用投票的方式,通过网络节点之间对某个提案进行投票,将获得大多数节点同意的提案写入共识系统。在pbft基础上有很多改进的方法:阈值签名采用bls算法,能够有效降低节点投票时候的消息的大小;hotstuff改进了视界(view)改变时候的通讯量;dpos(权益证明)采用各个参与节点的所拥有的股权,通过代理的方式进行投票,或者与pow结合的方式实现共识。
[0003]
对于有大量节点的去中心化系统,通常采用工作量证明的方式(pow)来实现共识。具体过程是,每个参与的节点通过解决一个运算量比较大的数学题目,通常是以暴力破解的方式,获得符合需求的结果。第一个获得结果的节点向网络递交这个结果,以及对去中心化系统更新的提案。其他节点在验证运算结果的有效性后,接受这个提案并更新本地的系统状态,从而实现去中心化系统的全局一致性。比特币就是利用这个工作量证明的共识方式。


技术实现要素:

[0004]
本发明由以下几部分组成:一种去中心化的串联寻址工作量证明,包括:可寻址的资源列表;对于所述资源列表中的资源地址,采用设定的相关函数,以提案、所述资源地址为参数,计算获得结果;比较计算结果与设定的要求;如满足要求,向所述资源地址递交所述提案,并获得该资源对所述提案的签名标识;根据定义的串联级数,重复0次或多次以下步骤: 以签名标识或者签名标识派生的标识作为新提案,对于所述资源列表中的资源地址,采用设定的相关函数,以新提案、所述资源地址为参数,计算获得结果;比较计算结果与设定的要求;如满足要求,向所述资源地址递交所述新提案,并获得该资源对所述新提案的签名标识;达到定义的串联级数后,每级的签名标识集合即为工作量证明。
[0005]
一种去中心化的串联寻址工作量证明,包括:可寻址的资源列表;对于所述资源列表中的资源地址,采用设定的相关函数,以提案、所述资源地址为参数,计算获得结果;比较所有结果,获得优选结果以及对应的优选资源;向所述优选资源地址递交所述提案,并获得该优选资源对所述提案的签名标识;
根据定义的串联级数,重复0次或多次以下步骤: 以签名标识或者签名标识派生的标识作为新提案,对于所述资源列表中的资源地址,采用设定的相关函数,以新提案、所述资源地址为参数,计算获得结果;比较所有结果,获得优选结果以及对应的新优选资源;向所述新优选资源地址递交所述新提案,并获得该新优选资源对所述新提案的签名标识;达到定义的串联级数后,采用以每级的优选结果为参数的目标函数,计算获得最终结果;比较所述最终结果与设定的要求;如满足要求,每级的签名标识集合即为工作量证明。
[0006]
根据上述的优选过程,其特征在于,可以选出一个或者多个优选资源,对每个优选资源按照上述过程处理。
[0007]
一种去中心化的共识方案,包括:参与共识的多个共识节点;可寻址的资源列表;使用上述权利要求1 至 3 中任一项的串联寻址工作量证明;递交提案、串联寻址工作量证明至网络中;网络其他节点验证接受所述提案及串联寻址工作量证明,从而达成共识。
[0008]
上述资源列表,其特征是:多个资源拥有者向资源列表注册其拥有的可寻址资源的信息;所述资源表的维护系统;所述资源表维护系统验证所述已注册资源的有效性、可寻址访问性;资源维护系统通过去中心化共识方式实现对资源列表的管理、增加、删除操作。
[0009]
上述资源维护系统,其特征是:通过基于区块链的智能合约来实现对所述可寻址的资源列表操作。
[0010]
上述可寻址资源,其特征是:资源拥有者维护所述资源的可寻址性;资源拥有者提供对节点的请求内容进行签名标识;资源拥有者返回签名标识给请求方。
[0011]
上述可寻址资源包含但不限于资源拥有者的网络地址。
[0012]
上述可寻址资源包含但不限于资源拥有者在地球表面空间的地址。
[0013]
上述参与共识的节点,其特征是:网络接口;存储器;和耦合网络接口和存储器的处理器;处理器配置为:通过网络接口接收多个交易;处理每个交易获得结果,将交易结果合并成提案;从可寻址资源列表中寻找满足要求的资源;查询所述资源获得验证标识;递交提案与验证标识至其他共识节点;从其他共识节点接受提案与验证标识;验证该提案与验证标识符合预定要求;接受该提案,并更新本地状态。
附图说明
[0014]
附图1中显示的是共识节点获得有效资源的签名的一个实例过程。107是一个去中心化的资源列表,其中包含若干个可寻址的资源101. 每个可寻址资源维护可寻址性和可服务性。共识节点构建一个提案103. 共识节点寻找资源列表中符合要求的可寻址资源。共识节点向所述可寻址资源102提交一个请求,请求中包含提案103。 资源102收到请求后,对请求内容生成签名标识104,并将签名标识104返回给请求方。请求方将原提案103 与签名标识104组合成新提案105。共识节点第二次寻找资源列表中符合要求的新资源。共识节点向所述新资源106提交一个请求,请求中包含新提案105。新资源106收到请求后,对请求内容生成签名标识108,并将签名标识108返回给请求方。共识节点重复这个串联验证过程,直至串联级数达到预定要求。共识节点将最终提案109提交到共识网络110,共识网络110中的每个共识节点111都可以收到这个最终提案,并对有效性进行验证。如果验证成功,则更新本地状态,达成共识。
[0015]
具体实施形式类pbft的共识方式对网络的通讯量要求很高,随节点数量的增加呈级数级增长(o(n^2)-o(n^3))。因此,此方法限制了能够参与的网络节点的数量(<100)。 此外,参与共识的节点的有效性必须事先得到确定,因此这个共识系统是个封闭的、许可准入的网络。
[0016]
工作量证明共识方式(pow)支持大量的、无准入许可的网络。但是,pow需要消耗大量的算力,也就是需要消耗大量的电力。目前比特币网络的总耗电量已经超过一个中等国家的耗电量。并且,这个耗电量还在持续地增长中。
[0017]
本发明是一个支持海量的节点、无准入许可、并且低耗能的去中心化共识方案。
[0018]
传统的pow的耗能问题,其根源在于算力的并行性和不可区分性。共识节点可以任意增加所控制的算力,并行处理运算,从而增加自身获得满足要求的结果的几率。因此,导致竞争者需要投入更多的算力资源。
[0019]
本发明采用可寻址的资源,通过串联的方式,依次查询满足要求的资源,获得资源的签名,以资源签名作为工作量证明,避免了不必要的能量消耗。
[0020]
本发明第一个可具体实施的方式是采用广泛存在的可寻址资源:ip地址。
[0021]
任何一个拥有ip地址的用户可以成为资源提供者。资源提供者向一个去中心化的资源列表递交本人的资源信息,包括ip地址,接受查询和签名服务的端口。资源提供者需要维护该资源ip地址的可寻址、可服务性。
[0022]
去中心化的资源列表记录并维护资源的有效性:可寻址性、可服务性。所述资源表的一种实现方式可以是采用区块链中的智能合约,用智能合约来实现对资源列表操作。具体操作包括:定义智能合约中资源验证节点的集合;每个资源验证节点定期对已注册资源进行寻址访问,以及递交请求、获得签名标识,对签名标识进行验证;每个资源验证节点将验证结果记入智能合约;智能合约根据预定义的规则,对资源进行管理操作:更新、删除。
[0023]
所述资源表可以通过其他去中心化的方式实现,另外一种方式是通过p2p网络协议实现资源列表的各项操作。
[0024]
共识的过程如下:每个共识节点构建一个提案。这个提案可以包括未被加入共识系统的交易集合。共识节点可以对交易集合进行签名,获得一个唯一的哈希值。这个哈希值也可以作为提案。
[0025]
共识节点寻找资源列表中的可寻址资源。对每个可寻址资源,计算某个相关函数的值。一个相关函数的实现可以是但不限于交易集合的签名与资源地址的哈希距离:dist = hash_distance( hash({tx}), resource_addr)共识节点找到优选的哈希距离dist_1所对应的资源,然后向所述可寻址资源提交一个请求。这个请求可以是tcp连接到资源的服务端口。这个请求中包含提案。所述资源收到tcp请求后,对请求内容生成签名标识。这个签名标识可以是用资源拥有者采用自己的私钥对请求的签名。所述资源通过建立的tcp连接将签名标识返回给请求方(共识节点)。
[0026]
共识节点根据定义的串联级数数量,可以将原提案与签名标识以某种形式的组合成新提案。共识节点第二次寻找资源列表中符合要求的新资源,以及优选的哈希距离dist_2。共识节点向所述新资源提交一个请求。这个请求可以是tcp连接到资源的服务端口。这个请求中包含新提案。新资源tcp请求后,对请求内容生成签名标识。这个签名标识可以是用资源拥有者采用自己的私钥对请求的签名。所述新资源通过建立的tcp连接将签名标识返回给请求方。
[0027]
共识节点重复这个串联验证过程,直至串联级数达到预定要求。共识节点记录每一级获得的优选哈希距离{dist_i}。共识节点计算所有级数哈希距离的某个函数。一个这样的函数实现可以是所有距离的乘积:distance_all = dist_1 * dist_2 *
ꢀ…ꢀ
* dist_i如果这个乘积值满足定义的要求,则该共识节点获得了一个串联寻址工作量证明。
[0028]
所述共识节点将提案以及工作量证明提交到共识网络,共识网络中的每个共识节点都可以收到这个提案,并对有效性进行验证。如果验证成功,其他节点接受所述提案,同时更新其他节点的本地状态,达成共识。
[0029]
本实施方案的另外一个实现可以是,对每个可寻址资源,计算某个相关函数的值。一个相关函数的实现可以是但不限于交易集合的签名与资源地址的哈希距离:dist = hash_distance( hash({tx}), resource_addr)共识节点比较所述资源对应的哈希距离是否满足设定的要求,如果满足,则向所述可寻址资源提交一个请求。这个请求可以是tcp连接到资源的服务端口。这个请求中包含提案。所述资源收到tcp请求后,对请求内容生成签名标识。这个签名标识可以是用资源拥有者采用自己的私钥对请求的签名。所述资源通过建立的tcp连接将签名标识返回给请求方(共识节点)。
[0030]
共识节点根据定义的串联级数数量,可以将原提案与签名标识以某种形式的组合成新提案。共识节点第二次寻找资源列表中符合要求的新资源,如果满足,共识节点向所述新资源提交一个请求。这个请求可以是tcp连接到资源的服务端口。这个请求中包含新提案。新资源tcp请求后,对请求内容生成签名标识。这个签名标识可以是用资源拥有者采用自己的私钥对请求的签名。所述新资源通过建立的tcp连接将签名标识返回给请求方。
[0031]
共识节点重复这个串联验证过程,直至串联级数达到预定要求。这样,最终的资源签名标识就是一个串联寻址工作量证明。
[0032]
本实施方案对资源拥有者以及共识节点都没有准入要求,任何符合资格的用户都
可以参与。共识节点使用资源来获得签名标识需要两部分的操作:1. 查询资源列表,计算相关函数;2. 与优选的资源建立链接,发送请求并获得签名标识。这两部分操作均不需要大量的运算。运算量不随资源节点的数量增加而增加。网络通讯量也不随资源节点数量的增加而增加。因此,本方案可以实现大量节点的去中心化共识,而不需要消耗太多的能量。
[0033]
本实施方案采用多级串联资源验证,可以有效地降低单一实体控制大量资源所获得的偏向性。
[0034]
本实施方案采用多级串联资源验证,使得每个共识节点无法预测并预先获得工作量证明,必须通过串联的tcp连接逐步获得工作量证明。这样,共识节点获得工作量证明的几率是不确定的,这个是去中心化系统能够工作非常重要的一个基础。
[0035]
本发明第二个具体实施方式是采用土地资源作为可寻址资源。这个土地资源可以是地球表面的面积或者是立体空间。
[0036]
每个土地资源拥有者可以按照定义的网格确定土地的寻址。土地资源的拥有者可以在定义的网格内安装一个卫星定位硬件系统。这个硬件定位系统可以响应按网格寻址的请求。一个这样的实现是通过rtk(real time kinetics)递交所述硬件所在的确切rtk信息。这个rtk信息可以被其他资源节点验证其所在的网格地址。同时这个硬件定位系统提供一个服务,对共识节点的请求内容进行签名标识。具体的共识步骤与第一个实施方式类似。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1