一种基于双层链式架构的区块链激励方法与流程

文档序号:23341850发布日期:2020-12-18 16:39阅读:101来源:国知局
一种基于双层链式架构的区块链激励方法与流程

本申请涉及区块链技术领域,具体的涉及一种基于双层链式架构的区块链激励方法。



背景技术:

在传统单链架构的区块链系统中,只有一种共识算法,激励方式也比较单一,通常是在一轮共识算法中,只会对率先挖出区块并成功被延长到链上的矿工进行奖励,其他的矿工则没有任何奖励。这种单一的激励方式在纯工作量证明共识算法(proofofwork,pow)中更为突显,算力越大的矿工在单位时间内率先挖出区块的概率越大,被延长到区块链上的概率就越大,得到奖励的概率也越大;而那些算力较小的矿工同样付出了算力成本,但被延长到区块链上的概率相对很小,得到奖励的概率也很小,尤其,如果没有被延长到链上,则得到的奖励是零,则导致大部分的矿工得不到奖励,浪费了自身的算力资源。

因此,传统单链架构的区块链系统中,单一共识算法先出先得的激励模式缺乏有效的激励辅助机制,只会奖励最先挖出区块的矿工,导致网络算力越来越集中,催生出大的中心矿池,造成网络算力的浪费,且无法解决自私挖矿、女巫攻击以及51%算力攻击等问题。



技术实现要素:

本申请提供一种基于双层链式架构的区块链激励方法,以解决传统单链架构的区块链系统中,单一共识算法先出先得的激励模式缺乏有效的激励辅助机制,只会奖励最先挖出区块的矿工,导致网络算力越来越集中,催生出大的中心矿池,造成网络算力的浪费,且无法解决自私挖矿、女巫攻击以及51%算力攻击等问题。

一种基于双层链式架构的区块链激励方法,包括:

在第一层链上,创建常规区块模版;

在第一层链上,经过第一层共识算法,按照当前共识轮次生成的所述常规区块模版,生成多个常规区块;

将所述常规区块转化为系统交易,形成区块交易匹配对,且将所述系统交易进行全网广播;

对所述常规区块进行哈希散列排序,随机挑选出一个所述常规区块作为幸运常规区块延长到所述第一层链上;

在第二层链上,经过第二层共识算法,将所有所述系统交易打包,生成一个当前计数器区块;所述常规区块模版内关联有上一个计数器区块指向,所述上一个计数器区块是在上一轮所述第二层共识算法中生成的计数器区块;

统计每个常规区块矿工在当前共识轮次生成的所述常规区块数量,得到每个所述常规区块矿工的当前常规挖矿贡献数;

计算当前共识轮次所有所述常规区块矿工和计数器区块矿工的当前轮次贡献比例,存储在所述当前计数器区块内;

根据所述上一个计数器区块内存储的上一轮次贡献比例对上一共识轮次的每个所述常规区块矿工和所述计数器区块矿工进行奖励。

本申请实施例提供的一种基于双层链式架构的区块链激励方法,引入按劳分配的激励机制,每个参与区块生成的矿工都会得到奖励,奖励的多少的依据是在参与共识轮次中的贡献比例,能够解决传统单链架构的区块链系统中,先出先得的激励模式只奖励最先挖出区块的矿工,导致网络算力越来越集中而催生出中心矿池的问题,所以,本申请提供的基于双层链式架构的区块链激励方法能够缓解算力集中,实现更真实的去中心化,还能避免算力的浪费。进一步通过对常规区块进行哈希散列排序来随机挑选出一个常规区块作为延长在链上的区块,而不再是依据最大算力的选取标准对幸运常规区块进行选择,能够进一步降低算力最大矿工的影响力,可以加强去中心化的效果。另外,在依据按劳分配激励机制的同时,会给予算力最大常规区块矿工、幸运常规区块矿工以及计数器区块矿工额外奖励系数,还可以给予手续费等奖励,能够缓解女巫攻击,解决私自挖矿和51%算力攻击的问题。

附图说明

为了更清楚地说明本申请的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本申请实施例提供的一种基于双层链式架构的区块链激励方法流程图;

图2为图1所示基于双层链式架构的区块链激励方法的数据结构关系图;

图3为图1所示步骤s7的详细流程。

具体实施方式

下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请的一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。

本申请提供的一种基于双层链式架构的区块链激励方法基于双层链式架构的区块链,双层链式架构的区块链可以包括第一层链和第二层链,第一层链和第二层链可以都是公链,也可以是私链,本申请不作具体限定。第一层链可以是价值共识层链,第二层链可以是激励共识层链;在另一种区块链架构中,第一层链可以是激励共识层链,第二层链可以是价值共识层链,本申请均不作具体限定。

图1为本申请实施例提供的一种基于双层链式架构的区块链激励方法流程图;图2为图1所示基于双层链式架构的区块链激励方法的数据结构关系图。结合图1和图2,本申请实施例提供的一种基于双层链式架构的区块链激励方法,具体包括如下步骤:

s1:在第一层链上,创建常规区块模版。

s2:在第一层链上,经过第一层共识算法,按照当前共识轮次生成的常规区块模版,生成多个常规区块(regularblock,rb)。常规区块是包含真实交易价值属性的区块,在每一轮共识算法的开始,都会进行常规区块模版的建立,在当前轮次的共识算法中,所有新生成的常规区块均按照常规区块模版进行生成。

s3:将常规区块转化为系统交易(systemtransaction,st),形成区块交易匹配对(st-rb),且将系统交易进行全网广播。在此步骤中,在当前共识轮次的第一共识算法中生成的所有常规区块都会转化为系统交易,且是一对一的进行转化,可以采用bat(blockastransaction,区块交易转换协议)技术进行常规区块与系统交易的转化。常规区块中存储有锁定脚本,锁定脚本记录有生成该常规区块的常规区块矿工的身份信息,常规区块矿工生成常规区块的过程可以描述为挖矿过程,每个常规区块矿工都可以生成多个常规区块,生成常规区块的数量根据算力的不同而不同。相互匹配的一对系统交易和常规区块存储有相同的锁定脚本。

如图2所示,对双层链式架构的区块链的数据结构进行示例性说明,以虚线作为间隔线区分上一共识轮次和当前共识轮次的区块生成情况,在当前共识轮次中,第一层链上的常规区块矿工a生成了常规区块#1,常规区块矿工b生成了常规区块#2、常规区块#3和常规区块#4,常规区块矿工x生成了常规区块#m,其中x为常规区块矿工的总数,m为常规区块的总数,x和m均是正整数;与常规区块#1-常规区块#m对应匹配的是系统交易#1-系统交易#m。在上一共识轮次中,生成常规区块1-常规区块n,n为上一共识轮次中生成常规区块的总数,n是正整数。图2只是示意性的,本申请不作具体限定。

s4:对常规区块进行哈希散列排序,随机挑选出一个常规区块作为幸运常规区块延长到第一层链上。采用哈希散列排序的方式,在当前共识轮次生成的多个常规区块中随机挑选出一个作为幸运常规区块,幸运常规区块可以作为延长到第一层链上的区块。作为示意性说明,如图2所示,在上一共识轮次中,随机挑选出的幸运常规区块是常规区块4,并将常规区块4延长在第一层链上;在当前共识轮次中,通过哈希散列排序,随机挑选出常规区块#2作为幸运常规区块延长到第一层链上。

s5:在第二层链上,经过第二层共识算法,将所有系统交易打包,生成一个当前计数器区块;常规区块模版内关联有上一个计数器区块指向,上一个计数器区块是在上一轮第二层共识算法中生成的计数器区块。在每轮次第二层共识算法中,只会生成一个计数器区块,作为当前计数器区块,当前计数器区块由计数器区块矿工生成。根据常规区块模版的设定,每个常规区块都关联有上一个计数器区块指向,即上一共识轮次生成的计数器区块与当前共识轮次生成的常规区块具有指向关联。在当前共识轮次中生成的常规区块与当前计数器区块的区块高度相同,即第一层链和第二层链可以是同步延长的。

s6:统计每个常规区块矿工在当前共识轮次生成的所述常规区块数量,得到每个常规区块矿工的当前常规挖矿贡献数。示意性说明,如图2所示,在当前共识轮次中,常规区块矿工a的当前常规挖矿贡献数为1,常规区块矿工b的当前挖空贡献数为3,常规区块矿工x的当前挖矿贡献数为1。

s7:计算当前共识轮次所有常规区块矿工和计数器区块矿工的当前轮次贡献比例,存储在当前计数器区块内。

图3为图1所示步骤s7的详细流程图。如图3所示,步骤s7具体包括如下子步骤:

s71:对每个当前常规挖矿贡献数和当前计数挖矿贡献数进行标准化处理,得到对应的当前常规挖矿贡献值和当前计数挖矿贡献值;当前计数挖矿贡献数为计数器区块矿工在当前共识轮次生成的当前计数器区块数量,当前计数挖矿贡献数为1。

标准化处理具体可以是将每个当前常规挖矿贡献数和当前计数挖矿贡献数乘以各自的额外奖励系数,分别得到各自对应的当前常规挖矿贡献值和当前计数挖矿贡献值。另外,具有额外奖励系数的矿工可以分别为生成幸运常规区块的幸运常规区块矿工、算力最大常规区块矿工和生成当前计数器区块的计数器区块矿工,对应的额外奖励系数分别为:幸运奖励系数、最大算力奖励系数和计数器区块奖励系数。容易理解的是,幸运常规区块矿工即是生成幸运常规区块的矿工,算力最大常规区块矿工即是生成常规区块数量最多或者最快的矿工。幸运奖励系数可以大于最大算力奖励系数;计数器区块奖励系数可以大于幸运奖励系数。举例说明,如果某一轮共识中只有5个矿工,分别为常规区块矿工a、常规区块矿工b、常规区块矿工c、常规区块矿工d和计数器区块矿工,各自的当前挖矿贡献数分别为1、3、10、50和1,如果常规区块矿工d为算力最大常规区块矿工,如果常规区块矿工b生成的常规区块被随机选择为幸运常规区块,则常规区块矿工b为幸运常规区块矿工。则常规区块矿工b、常规区块矿工d和计数器区块矿工可以获得额外奖励系数,可以分别是4、1和10。最终常规区块矿工a、常规区块矿工b、常规区块矿工c、常规区块矿工d和计数器区块矿工的最终挖矿贡献数为1、3*4、10、50*1和1*10,最终挖矿贡献数则作为常规区块矿工和计数器区块矿工的当前常规挖矿贡献值和当前计数挖矿贡献值,分别为1、12、10、50、10。

s72:计算当前共识轮次所有常规区块矿工和计数器区块矿工的当前轮次贡献比例。具体当前轮次贡献比例计算公式可以为:

(当前常规挖矿贡献值/挖矿贡献总值)*100%,和

(当前计数挖矿贡献值/挖矿贡献总值)*100%,

其中,挖矿贡献总值为所有当前常规挖矿贡献值与当前计数挖矿贡献值总和。

继续采用步骤s71中的示例说明,常规区块矿工a、常规区块矿工b、常规区块矿工c、常规区块矿工d和计数器区块矿工的当前轮次贡献比例分别为1/(1+12+10+50+10)*100%、12/(1+12+10+50+10)*100%、10/(1+12+10+50+10)*100%、50/(1+12+10+50+10)*100%和10/(1+12+10+50+10)*100%。

s73:将当前轮次贡献比例存储在当前计数器区块内。

s8:根据上一个计数器区块内存储的上一轮次贡献比例对上一共识轮次的每个常规区块矿工和计数器区块矿工进行奖励。

每个共识轮次都会产生各个矿工的贡献比例,所有矿工在当前共识轮次中的贡献比例可以汇总为一个总表,可以定义为当前轮次贡献比例,存储在当前共识轮次生成的当前计数器区块内,每当一个共识轮次结束,在下一个共识轮次过程中可以对上一共识轮次的矿工进行奖励,通过调取上一个计数器区块存储的上一轮次贡献比例,对每个常规区块矿工和计数器区块矿工进行奖励。

本申请实施例提供的一种基于双层链式架构的区块链激励方法,引入按劳分配的激励机制,每个参与区块生成的矿工都会得到奖励,奖励的多少的依据是在参与共识轮次中的贡献比例,能够解决传统单链架构的区块链系统中,先出先得的激励模式只奖励先挖出区块的矿工,导致网络算力越来越集中而催生出中心矿池的问题,所以,本申请提供的基于双层链式架构的区块链激励方法能够缓解算力集中,实现更真实的去中心化,还能避免算力的浪费。

本申请实施例提供的一种基于双层链式架构的区块链激励方法,进一步通过对常规区块进行哈希散列排序来随机挑选出一个常规区块作为延长在链上的区块,而不再是依据最大算力的选取标准对幸运常规区块进行选择,能够进一步降低算力最大矿工的影响力,可以加强去中心化的效果。

再进一步的,本申请实施例提供的一种基于双层链式架构的区块链激励方法,在依据按劳分配激励机制的同时,会给予算力最大常规区块矿工、幸运常规区块矿工以及计数器区块矿工额外奖励系数,还可以给予手续费等奖励,能够缓解女巫攻击的动力,从而在分散算力与集中算力之间达到一个纳什均衡状态。

本申请实施例提供的一种基于双层链式架构的区块链激励方法,还能够解决自私挖矿的问题,自私挖矿是指:在纯工作量证明共识算法的单链式公链系统中,存在个别算力较大的恶意矿工,恶意矿工挖到区块i后不进行广播,而是自己扣留区块i,形成私有链,并且继续挖下一个区块j,当检测到区块链网络上有其他矿工挖出与区块i高度相同的区块i′时,恶意矿工再广播区块i(如果区块j已经挖出,则将区块i和区块j同时广播),使得区块链网络进入竞争状态,如此就会产生集中对区块链网络系统收益的攻击手段。例如,第一种情况是,当恶意矿工挖出区块j时直接广播,将区块链全网的链转移到自身形成的私链上,恶意矿工则可以同时获得区块i和区块j的收益,从而浪费掉网络在区块i′以及区块链分叉上付出的算力;第二种情况是,如果某个诚实的矿工基于恶意矿工挖出区块i上,又挖出了新区块,那么恶意矿工可以拿到区块i的收益;第三种情况是,如果诚实矿工先于恶意矿工在挖到区块i′之前挖出新区块,那么恶意矿工不获利,但是对区块链网络的攻击已经产生,依然给区块链网络造成负面影响。本申请提供的基于双层链式架构的区块链激励方法,基于双链架构,在不同层链上采用不同的共识算法,其中一层链可以采用与算力无关的二元拜占庭协议,可以提高价值区块的出块效率,另一层链仍然可以采用改进的工作量证明共识算法,由于工作量证明共识算法具有高达51%的拜占庭节点容错能力,可以提高整体系统的安全性。在第二层链的共识过程中,利用bat技术收集来自于第一层链中的所有区块交易匹配对(st-rb),用于统计每个矿工的贡献数据,以进行按劳分配。另外,在第一层链上,由于幸运常规区块是通过哈希散列排序随机选出来延长在链上的,所以哪个常规区块会被选为幸运常规区块无法提前预知,算力大的矿工也就无法利用算力大的优势通过私自挖矿扣除区块的方式进行分叉链的延长,因为一旦这样做,被扣押的区块将不被广播到网络中,即不会被网络矿工收录,因此会直接失去参与当前共识轮次的机会,也即通过扣押区块的方式不仅不会获得奖励,还会浪费掉自身的算力资源。所以,第一层链上的多个常规区块,采用随机的挑选机制,使得算力大的矿工失去自私挖矿的能力,从而使得私自挖矿不可实现。

同时,在第一层链中随机挑选幸运常规区块延长到第一层链上的方式,使得算力较大矿工无法利用算力大的优势通过私自挖矿进行私链延长,在奖励机制上解决自私挖矿的发生,能够实现矿工的出块权利和获得奖励权利的分离,使得算力大的恶意矿工的算力攻击成功率进一步下降。容易理解的是,出块权利是指矿工挖出区块被延长到区块链上的权利,获得奖励权利是指矿工能够得到当前共识轮次的奖励的权利。在传统的单链公链中,算力越大的矿工最先挖出区块的概率越大,能够获得奖励的概率也越大,其他矿工则无任何奖励,这种模式下的矿工是出块权利和获得奖励权利都集中于一身。因此本申请的激励机制也能够在一定程度上缓解单链架构中纯工作量证明算法造成的51%攻击的效果。

本说明书中各个实施例之间相同相似的部分互相参见即可。尤其,对于实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例中的说明即可。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1