技术领域
本发明涉及去中心化的系统包括区块链和其他分布式系统,具体来说是可扩展的串联服务工作量证明方法。
背景技术
对于有大量节点的去中心化系统,通常采用工作量证明的方式(POW)来实现共识。具体过程是,每个参与的节点通过解决一个运算量比较大的数学题目,通常是以暴力破解的方式,获得符合需求的结果。第一个获得结果的节点向网络递交这个结果,以及对去中心化系统更新的提案。其他节点在验证运算结果的有效性后,接受这个提案并更新本地的系统状态,从而实现去中心化系统的全局一致性。比特币就是利用这个工作量证明的共识方式。
发明内容
本发明由以下几部分组成:
一种简明高效的串联服务工作量证明的方案,包括:
提供服务的多个有效网络节点的集合A;
所述节点集合A中的某个节点m从所述节点集合A中选取多个服务对象作为目标服务节点集合B;
对于某个提案,节点m计算所述提案与所述目标服务节点集合B中所有节点的相关函数,从中筛选获得优选的结果对应的节点b, 节点b属于集合B;
节点m获得节点b服务后的签名标识;
根据定义的串联级数,重复0次或多次以下步骤:以所述签名标识或者签名标识派生的信息作为新提案,节点m计算所述新提案与所述目标服务节点集合B中所有节点的相关函数,获得优选的结果对应的节点b1, 节点b1属于集合B;节点m获得节点b1服务后的签名标识;
达到定义的串联级数后,每级的签名标识集合即为工作量证明。
一种简明高效的串联服务工作量证明的方案,包括:
提供服务的多个有效网络节点的集合A;
所述节点集合A中的某个节点m从所述节点集合A中选取多个服务对象作为目标服务节点集合B;
对于某个提案,节点m计算所述提案与所述目标服务节点集合B中所有节点的相关函数,从中筛选获得优选的结果对应的节点b, 节点b属于集合B;
节点m获得节点b服务后的签名标识;
根据定义的串联级数,重复0次或多次以下步骤:以所述签名标识或者签名标识派生的信息作为新提案,由节点b计算所述新提案与所述目标服务节点集合B中所有节点的相关函数,获得优选的结果对应的节点b1, 节点b1属于集合B;节点b获得节点b1服务后的签名标识并返回给节点m;
达到定义的串联级数后,每级的签名标识集合即为工作量证明。
根据权利要求1,2所述的工作量证明,其特征是:
所述工作量证明与定义的要求进行比较,如果满足,工作量证明符合要求;
如果不满足,增加所述的串联级数,直至工作量证明符合定义的要求。
一种去中心化的奖励系统,其特征是:
递交多个服务节点返回的签名标识集合构成的工作量证明,在伴随的共识提案中包括奖励方案:
工作量证明的递交节点获得定义的奖励数额;
提供服务的每个服务节点获得定义的奖励数额。
一种去中心化的共识方案,其特征是:
参与共识的多个共识节点;
实用上述权利要求1,2任一工作量证明方法;
使用上述权利要求4的奖励系统;
网络节点获得符合要求的工作量证明后,依据所述奖励系统分配奖励,将工作量证明、奖励分配、可以但不限于网络中的其他交易合并成共识提案,递交到网络中,其他节点验证并接受后达成共识结果。
根据权利要求1,2所述的目标服务节点集合B的选取过程,其特征在于,
选取的过程根据权利要求5中所述的共识结果派生的随机数从网络节点集合A中随机产生。
根据权利要求1,2所述的提供服务的网络节点集合A,其特征是:
在共识运行一定阶段以后,网络节点集合可以包括从当前共识状态向前追溯某个范围内的所有递交共识结果的节点、从当前共识状态向前追溯某个范围内的所有提供服务的节点的集合。
根据权利要求1,2所述的提供服务的网络节点集合A,其特征是:
新的节点可以在递交定义的系统支持的通证之后选择自由加入所述节点集合A。
根据权利要求1,2所述的提供服务的网络节点集合A,其特征是:
某个节点如果从当前共识状态向前追溯某个范围内,没有递交共识结果,或者没有为其他共识结果提供服务,所述节点将被从网络节点集合A中移除。
根据权利要求1,2所述参与共识的节点,其特征是:
网络接口;存储器;和耦合网络接口和存储器的处理器;
处理器配置为:
通过网络接口接收多个交易;处理每个交易获得结果,将交易结果合并成提案;
从服务目标服务节点集合B中获得优选节点;
从优选节点获得服务后的签名标识;
递交提案与验证标识至其他共识节点;
从其他共识节点接受提案与验证标识;
验证该提案与验证标识符合预定要求;
接受该提案,并更新本地状态。
附图说明
附图1中显示的是共识节点实现工作量证明的一个实例过程。102是所有有效共识节点的集合,共识节点101,103,107,111都是其中的一个节点。共识节点对应一个目标服务节点集合104。目标服务节点集合104是有效共识节点集合的子集。实现工作量证明的过程是从节点101查询目标服务节点集合104中的每个节点,计算提案与每个节点的相关函数,筛选获得优选结果对应的优选节点107,节点101向优选节点107发起服务查询105,优选节点107对服务请求回复签名106. 随后,节点101获得签名并派生出新提案。节点101可以继续以上步骤获得串联第二级的优选节点111的签名,或者,节点101通过第一级的优选节点107,由节点107向第二级的优选节点111发起服务请求。最终由第二级的优选节点111返回对新提案的签名。根据定义的串联级数,每级的签名标识集合{106,110}即为工作量证明。
具体实施形式
工作量证明共识方式(POW)支持大量的、无准入许可的网络。但是,POW需要消耗大量的算力,也就是需要消耗大量的电力。目前比特币网络的总耗电量已经超过一个中等国家的耗电量。并且,这个耗电量还在持续地增长中。
本发明是一个快速的、可扩展的工作量证明方法,加上一个去中心化的激励系统,由此衍生一个可扩展的去中心化的共识方案。
参与共识的每个节点是互联网的一个节点,并对外提供服务。服务的内容可以包括但不限于:开放一个TCP/IP端口,接受其他节点的请求然后进行签名,并将签名结果返回给对方节点。
有效的网络节点集合可以包括以下几部分:初始化时期指定的多个节点;在共识运行一定阶段以后,从当前共识状态向前追溯某个范围内的所有递交共识结果的节点、从当前共识状态向前追溯某个范围内的所有提供服务的节点的集合;递交定义的系统支持的通证之后选择自由加入的新节点。
有效的网络节点集合可以去除以下节点:从当前共识状态向前追溯某个范围内,没有递交共识结果,或者没有为其他共识结果提供服务的节点。
每个节点可以获得一个目标服务节点集合。所述目标服务节点集合是有效网络节点集合的子集。目标服务节点集合选取的过程可以从当前共识结果派生随机数,然后从有效网络节点集合中随机产生。
由此我们可以构建一种简明高效的串联服务工作量证明的方案,包括:
提供服务的多个有效网络节点的集合A;
某个节点m对应的目标服务节点集合B;
对于某个提案,节点m计算所述提案与所述目标服务节点集合B中所有节点的相关函数,从中筛选获得优选的结果对应的节点b, 节点b属于集合B;
节点m获得节点b服务后的签名标识;
根据定义的串联级数,重复0次或多次以下步骤:以所述签名标识或者签名标识派生的标识作为新提案,节点m计算所述新提案与所述目标服务节点集合B中所有节点的相关函数,获得优选的结果对应的节点b1, 节点b1属于集合B;节点m获得节点b1的签名标识;
达到定义的串联级数后,每级的签名标识集合即为工作量证明。
此外,可以构建另一种类似的简明高效的串联服务工作量证明的方案,包括:
提供服务的多个有效网络节点的集合A;
某个节点m对应的目标服务节点集合B;
对于某个提案,节点m计算所述提案与所述目标服务节点集合B中所有节点的相关函数,从中筛选获得优选的结果对应的节点b, 节点b属于集合B;
节点m获得节点b服务后的签名标识;
根据定义的串联级数,重复0次或多次以下步骤:以所述签名标识或者签名标识派生的标识作为新提案,由节点b计算所述新提案与所述目标服务节点集合B中所有节点的相关函数,获得优选的结果对应的节点b1, 节点b1属于集合B;节点b获得节点b1的签名标识并返回给节点m;
达到定义的串联级数后,每级的签名标识集合即为工作量证明。
获得上述的工作量证明后,所述工作量证明与定义的要求进行比较,如果满足,工作量证明符合要求;如果不满足,增加所述的串联级数,直至工作量证明符合定义的要求。
同时,系统实现一种去中心化的奖励系统,其特征是:
递交多个服务节点返回的签名标识集合构成的工作量证明后,在伴随的共识提案中包括奖励方案:
工作量证明的递交节点获得定义的奖励数额;
提供服务的每个节点获得定义的奖励数额。
由此可以实现一种去中心化的共识方案,其特征是:
参与共识的多个共识节点;
采用上述工作量证明方法;
使用上述奖励系统;
网络节点获得符合要求的工作量证明后,依据所述奖励系统分配奖励,将工作量证明、奖励分配、可以但不限于网络中的其他交易合并成共识提案,递交到网络中,其他节点验证并接受后达成共识结果。
本发明的优点是不需要消耗运算资源来实现符合要求的工作量证明,使得最终共识的达成不依赖于能源的大量消耗。同时,本发明可以容纳海量的有效网络节点,因为发起提案的节点只需要在获得符合要求的工作量证明后递交一次到网络中,不需要节点之间的相互确认,从而大大减少网络中的通讯量。
机译: 使用工作量证明技术的服务器,可抵御拒绝服务攻击
机译: 使用累积的工作量证明方法防止网络拒绝服务攻击
机译: 一种利用工作量证明来控制基于区块链的游戏难度的分布式贴片机和分布式贴片机方法