首页 / 专利库 / 电信 / 节点 / 基于可验证随机函数分配验证者奖励的异步BFT&DPOS共识机制

基于可验证随机函数分配验证者奖励的异步BFT&DPOS共识机制

阅读:911发布:2021-04-14

专利汇可以提供基于可验证随机函数分配验证者奖励的异步BFT&DPOS共识机制专利检索,专利查询,专利分析的服务。并且本 发明 公开基于可验证随机函数分配验证者奖励的异步BFT&DPOS共识机制,主要包括:S1:系统初始化;S2:选出超级 节点 ;S3:选出验证者;S4:区 块 的产生;S5:区块的确认;S6:奖励的分配;S7:超级节点的切换。本发明引入“验证者”的 角 色,验证者让备用节点不再闲置,而是会参与区块的验证工作,验证者可以在超级节点串通作恶攻击系统的第一时刻,通过行使验证权使系统停止运行,从而能使基于VBDPOS共识机制的系统能在第一时间阻止攻击者对系统的攻击,提高了系统的安全性。通过区块确认方案的设计,使得VBDPOS共识机制在提高整体安全性的 基础 上,同时使性能不过多降低,可以满足现有商业要求。,下面是基于可验证随机函数分配验证者奖励的异步BFT&DPOS共识机制专利的具体信息内容。

1.基于可验证随机函数分配验证者奖励的异步BFT&DPOS共识机制,其特征在于,包括以下步骤:
S1:系统初始化,在VBDPOS共识机制里,想要成为节点候选人的申请人通过提交设备、设施、人员资料说明和证明,候选人通过申请后成为节点;
S2:选出超级节点,代币持有者通过投票系统对各个节点候选人进行投票,根据票数排名选出票数最高的21个节点为超级节点,每生产252个区为一个区块周期,每一个区块周期开始时,都会实时更新投票数,对超级节点和验证者排名进行更新;
S3:选出验证者,当备用节点满足以下的三个条件,即可申请成为验证者,参与系统的区块验证和确认工作;三个条件为:备用节点获取的票数权重须大于系统X%的总票数,X%为根据网络得票率实时计算的能领取100EOS奖励的最低票数权重;参与验证的备用节点需仓一定数量的EOS保证金到特定账户,保证金提交的特定账户可以是权威机构的指定账户,或者由智能合约保证的特定账户;验证者需持续和所有超级节点和其他验证者保持实时通信状态;
S4:区块的产生,与异步BFT-DPOS共识机制一致,在一轮区块生产过程中,超级节点会按照规定的算法安排好顺序生产区块,当前负责出块的超级节点会收集交易信息将其打包进区块,并将打包好的区块广播给其他超级节点和验证者验证,在等待区块确认的过程中,会同时产生新区块;如果一个节点在最近的24个小时内都没有产生区块,那么它将被移出超级节点的候选名单;
S5:区块的确认,其他超级节点和验证者会对新区块进行验证,并把验证和签名结果广播,当负责出块的超级节点在广播后会持续监听网络,收集到15个超级节点的签名确认和超过2/3验证者的签名确认和凭证后,超级节点和验证者会根据不同的情况,按照VBDPOS共识机制的区块确认方案,来做出不用的选择;
S6:奖励的分配,根据基于可验证随机函数挑选获奖者的奖励分发机制,每一轮区块确认完成后,系统内的节点都会比较出一个最小凭证,对最小凭证达成共识,而持有最小凭证的验证者即是此轮区块的获奖者,可以获得这轮区块的验证奖励;
S7:超级节点的切换,在区块的产生过程中,如果属于A超级节点的12个区块内,则上一个区块没确认时,A超级节点便会开始生产下一个区块,因为A超级节点可以相信自己没有作假。但如果A超级节点生产完12个区块,轮到B超级节点生产区块时,B超级节点会等到自己确认A超级节点的第12个区块已经获得其他15个超级节点和验证者确认后才会接着生产区块。
2.根据权利要求1所述的基于可验证随机函数分配验证者奖励的异步BFT&DPOS共识机制,其特征在于,在步骤S5中,设所有验证者数量为Nall,2/3验证者数量为N2/3,区块高度为r
第r轮,第r轮产生的区块为B1,第r+1轮产生的区块为B2,第r轮的种子参数为Q ,负责出块的超级节点为A超级节点,设某个时刻A超级节点收到的验证者签名和凭证数量为X,VBDPOS区块的确认具体步骤如下:
s51:区块、种子参数的生产与广播,第r-1轮的最小凭证Qr,即为第r轮的种子参数Qr,在第r轮区块生产过程中,超级节点会按照规定的算法安排好顺序生产区块,当前负责出块的超级节点会收集交易信息将其打包进区块,并将打包好的区块B1和此轮区块的种子参数Qr,广播给其他超级节点和验证者验证,在等待区块确认的过程中,会同时产生新区块B2;
s52:区块的验证与凭证的生成,系统里的超级节点和验证者时刻在线,监听着网络,当他们收到新区块B1和种子参数Qr后,首先会根据基于可验证随机函数挑选获奖者的算法流程生成各自的凭证;其次各自独立对区块B1进行验证,确保交易信息无误和无作假后。
每一个超级节点和验证者会把第r轮的区块B1和各自的「签名+凭证」在网络里广播;
s53:区块B1得到系统确认,A超级节点在广播区块B1后会持续监听网络,当收集到超过
15个超级节点的签名确认和超过2/3验证者的签名确认和凭证后,即可视为区块B1得到了系统确认,超级节点会将区块B1添加到区块链上,将之前生产好的第r+1轮的区块B2和种子r+1
参数Q 广播,进入第r+1轮的区块确认;区块B1得到系统确认,因为网络延迟的缘故,会有两种不同的处理方式,得到二种不同的处理结果,确保系统正常运行,延迟被控制在一秒以内;A超级节点会时刻判断收集到的超级节点的签名确认数量,一旦超级节点签名确认数量大于等于15个,A超级节点会进入计时状态,并判断收集到的验证者的签名确认数量。
3.根据权利要求2所述的基于可验证随机函数分配验证者奖励的异步BFT&DPOS共识机制,其特征在于,所述步骤s53具体包括:
1)在进入计时状态时,如果X=Nall,A超级节点会自动比较所有验证者的凭证大小,得出一个最小凭证,第r轮的最小凭证即为第r+1轮的种子参数Qr+1,A超级节点会将区块B1添r+1
加到区块链上,将之前生产好的第r+1轮的区块B2和种子参数Q 广播,进入第r+1轮的区块确认;
2)在进入计时状态时,如果N2/33)在进入计时状态时,如果X4)在进入计时状态时,如果X4.根据权利要求1所述的基于可验证随机函数分配验证者奖励的异步BFT&DPOS共识机制,其特征在于,所述步骤S6具体包括以下步骤:
s61:验证者条件满足;
s62:验证者的凭证生成;
s63:验证者参与验证工作;
S64:获奖者的挑选和验证过程。
5.根据权利要求4所述的基于可验证随机函数分配验证者奖励的异步BFT&DPOS共识机制,其特征在于,在步骤s61中,在一个区块周期开始时,备用节点需满足以下条件才能成为验证者的资格,条件如下:
a:备用节点获取的票数权重须大于系统X%的总票数,X%为实时计算的能领取100EOS奖励的最低票数权重;
b:参加验证的备用节点需锁仓一定量的EOS保证金到特定账户;
c:验证者需持续和所有超级节点和其他验证者保持实时通信状态。
6.根据权利要求4所述的基于可验证随机函数分配验证者奖励的异步BFT&DPOS共识机制,其特征在于,在步骤s62中,VBDPOS共识机制对新区块达成共识的过程和现有DPOS共识机制的区别在于VBDPOS在验证这一步多了验证者资格审核和验证者参与区块验证,VBDPOS会基于当前的种子参数公布一个随机算法,就是可验证的随机函数VRF,VRF一个关键参数是用户的私钥,这个私钥只有用户本人才知道;接着,每个备用节点使用自己的私钥对种子参数签名并输入哈希函数后,得到自己的凭证;凭证通过零知识证明,可以在完全不泄露私钥的基础上,证明某个凭证的所有者拥有权;凭证包含5个特性:
A:种子参数是不断更新的,种子参数不可预测的,所以凭证也是不断更新,凭证是随机数;
B.哈希函数和私钥确保每一个凭证的所有人都是特定;
C.非对称密钥算法和零知识证明确保凭证的所有者可以证明凭证的所有权;
D.凭证不可伪造;
E.凭证是在本地进行,需要私钥生成却又可以不需要公开私钥的同时全网验证。
7.根据权利要求4所述的基于可验证随机函数分配验证者奖励的异步BFT&DPOS共识机制,其特征在于,在步骤s63中,当新区块没有公布之前,备用节点只知道自己是否是验证者,无法知道自己是否是获奖者,只有当区块完成生产和验证后,验证者才知道自己是否获得了此轮区块验证的验证奖励;在结果没出来之前,攻击者无法预测凭证,不知道哪个凭证是最小,在结果出来之后,攻击者无法更改历史。
8.根据权利要求4所述的基于可验证随机函数分配验证者奖励的异步BFT&DPOS共识机制,其特征在于,在步骤s64中,负责此轮区块生产的超级节点A会将区块发送给其他超级节点和备用节点,区块发送采用随机广播和点对点传送的组合方式,所以传播延迟极低,达成共识快,事后能查证;验证过程的验证者会将此轮区块生成的凭证,区块的签名,区块,验证结果广播给所有超级节点和备用节点,新区块在确认过程中,节点会持续监听收集验证结果和凭证,并自动比较凭证大小,挑选出最小凭证,持有最小凭证的验证者就是此轮获奖的验证者,可以获得验证奖励,验证奖励不是及时分发的,根据最小凭证,获奖者虽然知道自己中奖了,但需要等到该区块成为不可逆状态后才能获得奖励。
9.根据权利要求4所述的基于可验证随机函数分配验证者奖励的异步BFT&DPOS共识机制,其特征在于,所述步骤s64主要包括以下步骤:
s641:公私钥的生成;
s642:签名的实现;
s643:签名的验证;
s644:种子参数的更新;
s645:凭证的生成;
s646:选出获奖者;
s647:凭证的验证;
s648:奖励的分发。

说明书全文

基于可验证随机函数分配验证者奖励的异步BFT&DPOS共识

机制

技术领域

[0001] 本发明涉及链技术领域,更具体地,涉及一种基于可验证随机函数分配验证者奖励的异步BFT&DPOS共识机制

背景技术

[0002] 区块链技术的出现被称为新一代革命,区块链技术的出现让分布式系统和分布式应用得以蓬勃发展,区块链技术是多技术和学科的综合,而在决定一个区块链分布式系统好坏的区块链技术里最重要的便是共识机制,共识机制是区块链分布式系统安全性和能够良好发展的核心技术。
[0003] 区块链系统是去中心化的,节点是各处分散且平行的,所以必须设计一套制度,来维护分布式系统的运作顺序与公平性,统一区块链的版本,并奖励提供资源维护区块链的使用者,以及惩罚恶意的危害者。这样的制度,必须依赖某种方式来证明,是由谁来取得了一个区块链的打包权(或称记帐权),并且可以获取打包这一个区块的奖励;又或者是谁意图进行危害,就会获得一定的惩罚,让分布式系统运转的制度便被称为共识机制,共识机制背景问题是拜占庭问题,在一个分布式去中心化的网络中,节点如何达成共识,保持数据一致,维护系统运行。区块链在经过约10年发展后,目前被公认为三大主流共识机制分别是以比特币为代表的POW共识机制,以以太坊为代表的POS共识机制,以及以EOS为代表的DPOS共识机制。
[0004] 目前市值前十的名为EOS的区块链分布式系统是由Block.one公司主导开发的高性能区块链底层操作系统,而EOS采取的共识机制是DPOS(委托权益证明)共识机制。DPOS共识机制通过去中心化的投票机制,投票选举出21位超级节点,21位超级节点代表全体EOS持有者履行权利和义务。超级节点被赋予记账权,收集交易信息将其打包进区块,并将区块广播给其他超级节点,通过验证后再将区块上传至区块链,获得相应的奖励。DPOS(委托权益证明)机制,是在PoS基础上优化而来的,通过投票选举的方式,选出生产者,代表他们履行权利和义务,而不是用算来决定。如果生产者不称职,随时可能会被持币人投票出局。
[0005] 现有的EOS设计的DPOS共识机制的奖励分配设置不合理,现有的EOS在10亿代币总量的基础上,采用领取时触发的连续增发方式,每年增发近似5%。增发的EOS代币用于节点奖励和提案基金两方面,其中节点奖励占五分之一,即EOS系统里增发的5%的代币里面,有1%的代币为节点奖励,剩下的4%为提案基金。在1%的节点奖励里又具体细分为两种奖励,一是超级节点出块奖励,二是超级节点和备用节点的得票率奖励。出块奖励占1%的四分之一,也就是每年增发的5%EOS代币里面有0.25%作为出块的奖励给到超级节点,每年增发的5%EOS代币里面有0.75%会作为得票奖励给到超级节点和备用节点,得票率奖励的分配规则是按照得票率占比来进行奖励分配,当得票率占比过低,导致备用节点实际领取的投票奖励不足100个EOS代币,则此备用节点无法获取投票奖励。
[0006] 由于现有的EOS系统的DPOS共识机制的惩罚机制不及时,导致EOS系统存在安全隐患。当超级节点串通对EOS系统发动攻击时,例如通过验证虚假交易、打包虚假交易、生产包含这些虚假交易的区块、同时打包多个区块和双花攻击等手段,会对EOS系统造成了不可挽回的损失,使持币者的利益蒙受了巨大的损失。
[0007] 即使系统或者说用户发现超级节点的串通行为,但对攻击者的惩罚或者说对系统的维护是后置性的,即使最后持币者投票把作恶的攻击者投出了超级节点,对攻击者造成了惩罚,维护了EOS系统的稳定,但攻击者造成的损失已经无法挽回,因此EOS系统本身的安全和EOS系统用户的利益无法及时得到保障。

发明内容

[0008] 本发明为克服上述现有技术中EOS系统的DPOS共识机制的惩罚机制不及时的问题,提供一种基于可验证随机函数分配验证者奖励的异步BFT&DPOS共识机制。
[0009] 为解决上述技术问题,本发明采用的技术方案是:一种基于可验证随机函数分配验证者奖励的异步BFT&DPOS共识机制,包括以下步骤:
[0010] S1:系统初始化,在VBDPOS共识机制里,想要成为节点候选人的申请人通过提交设备、设施、人员资料说明和证明,候选人通过申请后成为节点;
[0011] S2:选出超级节点,代币持有者通过投票系统对各个节点候选人进行投票,根据票数排名选出票数最高的21个节点为超级节点,每生产252个区块为一个区块周期,每一个区块周期开始时,都会实时更新投票数,对超级节点和验证者排名进行更新;
[0012] S3:选出验证者,当备用节点满足以下的三个条件,即可申请成为验证者,参与系统的区块验证和确认工作;三个条件为:备用节点获取的票数权重须大于系统X%的总票数,X%为根据网络得票率实时计算的能领取100EOS奖励的最低票数权重;参与验证的备用节点需仓一定数量的EOS保证金到特定账户,保证金提交的特定账户可以是权威机构的指定账户,或者由智能合约保证的特定账户;验证者需持续和所有超级节点和其他验证者保持实时通信状态;
[0013] S4:区块的产生,与异步BFT-DPOS共识机制一致,在一轮区块生产过程中,超级节点会按照规定的算法安排好顺序生产区块,当前负责出块的超级节点会收集交易信息将其打包进区块,并将打包好的区块广播给其他超级节点和验证者验证,在等待区块确认的过程中,会同时产生新区块;如果一个节点在最近的24个小时内都没有产生区块,那么它将被移出超级节点的候选名单;
[0014] S5:区块的确认,其他超级节点和验证者会对新区块进行验证,并把验证和签名结果广播,当负责出块的超级节点在广播后会持续监听网络,收集到15个超级节点的签名确认和超过2/3验证者的签名确认和凭证后,超级节点和验证者会根据不同的情况,按照VBDPOS共识机制的区块确认方案,来做出不用的选择;
[0015] S6:奖励的分配,根据基于可验证随机函数挑选获奖者的奖励分发机制,每一轮区块确认完成后,系统内的节点都会比较出一个最小凭证,对最小凭证达成共识,而持有最小凭证的验证者即是此轮区块的获奖者,可以获得这轮区块的验证奖励;
[0016] S7:超级节点的切换,在区块的产生过程中,如果属于A超级节点的12个区块内,则上一个区块没确认时,A超级节点便会开始生产下一个区块,因为A超级节点可以相信自己没有作假。但如果A超级节点生产完12个区块,轮到B超级节点生产区块时,B超级节点会等到自己确认A超级节点的第12个区块已经获得其他15个超级节点和验证者确认后才会接着生产区块。
[0017] 需要说明的是,步骤S3可以与步骤S4同时进行,但是步骤S4需在步骤S5之前。
[0018] 优选地,在步骤S5中,设所有验证者数量为Nall,2/3验证者数量为N2/3,区块高度为第r轮,第r轮产生的区块为B1,第r+1轮产生的区块为B2,第r轮的种子参数为Qr,负责出块的超级节点为A超级节点,设某个时刻A超级节点收到的验证者签名和凭证数量为X,VBDPOS区块的确认具体步骤如下:
[0019] s51:区块、种子参数的生产与广播,第r-1轮的最小凭证Qr,即为第r轮的种子参数Qr,在第r轮区块生产过程中,超级节点会按照规定的算法安排好顺序生产区块,当前负责出块的超级节点会收集交易信息将其打包进区块,并将打包好的区块B1和此轮区块的种子参数Qr,广播给其他超级节点和验证者验证,在等待区块确认的过程中,会同时产生新区块B2;
[0020] s52:区块的验证与凭证的生成,系统里的超级节点和验证者时刻在线,监听着网络,当他们收到新区块B1和种子参数Qr后,首先会根据基于可验证随机函数挑选获奖者的算法流程生成各自的凭证;其次各自独立对区块B1进行验证,确保交易信息无误和无作假后。
[0021] 每一个超级节点和验证者会把第r轮的区块B1和各自的「签名+凭证」在网络里广播;
[0022] s53:区块B1得到系统确认,A超级节点在广播区块B1后会持续监听网络,当收集到超过15个超级节点的签名确认和超过2/3验证者的签名确认和凭证后,即可视为区块B1得到了系统确认,超级节点会将区块B1添加到区块链上,将之前生产好的第r+1轮的区块B2和种子参数Qr+1广播,进入第r+1轮的区块确认;区块B1得到系统确认,因为网络延迟的缘故,会有两种不同的处理方式,得到二种不同的处理结果,确保系统正常运行,延迟被控制在一秒以内;A超级节点会时刻判断收集到的超级节点的签名确认数量,一旦超级节点签名确认数量超过(包含)15个,A超级节点会进入计时状态,并判断收集到的验证者的签名确认数量。
[0023] 优选地,所述步骤s53具体包括:
[0024] 1)在进入计时状态时,如果X=Nall,A超级节点会自动比较所有验证者的凭证大小,得出一个最小凭证,第r轮的最小凭证即为第r+1轮的种子参数Qr+1,A超级节点会将区块B1添加到区块链上,将之前生产好的第r+1轮的区块B2和种子参数Qr+1广播,进入第r+1轮的区块确认;
[0025] 2)在进入计时状态时,N2/3
[0026] 3)在进入计时状态时,如果X
[0027] 4)在进入计时状态时,如果X
[0028] 在上述技术方案中,在区块的确认这一步,引入验证者后,区块的确认由之前的只需15个超级节点验证和确认,变成了需要15个超级节点和超过2/3验证者验证和确认,比起现有的基于DPOS共识机制的系统,基于VBDPOS共识机制的系统的安全性大大提高了,问题在于当前区块需要的验证和确认数量增多,会影响区块链系统里的下一个区块的产生(每一个区块都是在上一个区块基础上产生的),所以VBDPOS共识机制里,新设计了确认区块的方案,使VBDPOS共识机制在提高了系统安全性的基础上,使系统的性能不会受到过多的印象,因为在方案设计里,系统正常运行时,延迟被控制在一秒之内,而这个出块效率在区块链领域,可以满足商业需求,足以投入商业使用。
[0029] 验证者是强制在线的和强制要求参与每一轮的区块确认的,但系统不会因为验证者出现问题而宕机,而是会继续稳定运行。在现有的网络状态中,一秒是足够所有节点对同一个凭证同步完毕的时间,在参与验证的过程中,A验证者的签名确认和凭证在一秒内没有被正在生产的超级节点收到,就会视作A验证者缺席此轮区块确认。也就是如果这两种情况发生了,A验证者点对点直接发送签名和凭证没有被正在生产的超级节点收到,A验证者随机广播的签名和验证没有被正在生产的超级节点收到,那就视为A验证者缺席了此轮区块确认,无法参与此轮区块生产的获奖者挑选,A会被扣除5%的保证金,这5%的保证金是此轮的验证者奖励,而A验证者会因为保证金不足而被剔除验证者资格,直到A重新提交保证金获得验证者资格,才能在下一轮区块周期参与验证工作和获得验证奖励。不管A验证者是因为什么问题而无法参与验证,A验证者的缺席会对最小凭证的选取造成影响,因为最小凭证会因为验证者的缺席与否发生变化。
[0030] 优选地,所述步骤S6具体包括以下步骤:
[0031] s61:验证者条件满足;
[0032] s62:验证者的凭证生成;
[0033] s63:验证者参与验证工作;
[0034] S64:获奖者的挑选和验证过程。
[0035] 在本技术方案中,基于可验证随机函数挑选获奖者的奖励分发机制,可以使VBDPOS共识机制的每一轮验证者奖励分配都是随机的、不可预测的,从而对于验证者而言,奖励分配是公平的。此外每一轮区块验证奖励都随机分配有两个优点,一是在奖励上的直观,每一轮的区块验证奖励都是固定数额,不会因为验证者数量增加而减少。二是完全随机分配奖励是自带时间属性的平均分配,验证者不会因为参与区块验证而没被抽中为获奖者就不再参与区块验证,因为只要参与验证的时间足够长,轮数足够多,持续参与,根据大数定律,验证者被抽中为获奖者的频率会接近概率。
[0036] 优选地,在步骤s61中,在一个区块周期开始时,备用节点需满足以下条件才能成为验证者的资格,条件如下:
[0037] a:备用节点获取的票数权重须大于系统X%的总票数,X%为实时计算的能领取100EOS奖励的最低票数权重;
[0038] b:参加验证的备用节点需锁仓一定量的EOS保证金到特定账户;
[0039] c:验证者需持续和所有超级节点和其他验证者保持实时通信状态。
[0040] 在本技术方案中,不满足条件的备用节点,即使参与了验证过程(发送签名和凭证),不会被超级节点和系统认可,也无法获得奖励。票数必须有一定的要求,因为验证工作并不需要太大的门槛,从健康的共识机制这个度而言,验证工作是为了给备用节点分配奖励的手段,为了让奖励给到有贡献的备用节点,所以要对备用节点有限定要求。
[0041] 优选地,在步骤s62中,VBDPOS共识机制对新区块达成共识的过程和现有DPOS共识机制的区别在于VBDPOS在验证这一步多了验证者资格审核和验证者参与区块验证,VBDPOS会基于当前的种子参数公布一个随机算法,就是可验证的随机函数VRF,VRF一个关键参数是用户的私钥,这个私钥只有用户本人才知道;接着,每个备用节点使用自己的私钥对种子参数签名并输入哈希函数后,得到自己的凭证;凭证通过零知识证明,可以在完全不泄露私钥的基础上,证明某个凭证的所有者拥有权;凭证包含5个特性:
[0042] A:种子参数是不断更新的,种子参数不可预测的,所以凭证也是不断更新,凭证是随机数;
[0043] B.哈希函数和私钥确保每一个凭证的所有人都是特定;
[0044] C.非对称密钥算法和零知识证明确保凭证的所有者可以证明凭证的所有权;
[0045] D.凭证不可伪造;
[0046] E.凭证是在本地进行,需要私钥生成却又可以不需要公开私钥的同时全网验证。
[0047] 优选地,在步骤s63中,当新区块没有公布之前,备用节点只知道自己是否是验证者,无法知道自己是否是获奖者,只有当区块完成生产和验证后,验证者才知道自己是否获得了此轮区块验证的验证奖励;在结果没出来之前,攻击者无法预测凭证,不知道哪个凭证是最小,在结果出来之后,攻击者无法更改历史。
[0048] 优选地,在步骤s64中,负责此轮区块生产的超级节点A会将区块发送给其他超级节点和备用节点,区块发送采用随机广播和点对点传送的组合方式,所以传播延迟极低,达成共识快,事后能查证。验证过程的验证者会将此轮区块生成的凭证,区块的签名,区块,验证结果广播给所有超级节点和备用节点,新区块在确认过程中,节点会持续监听收集验证结果和凭证,并自动比较凭证大小,挑选出最小凭证,持有最小凭证的验证者就是此轮获奖的验证者,可以获得验证奖励,验证奖励不是及时分发的,根据最小凭证,获奖者虽然知道自己中奖了,但需要等到该区块成为不可逆状态后才能获得奖励。
[0049] 优选地,所述步骤s64主要包括以下步骤:
[0050] s641:公私钥的生成;s642:签名的实现;s643:签名的验证;s644:种子参数的更新;s645:凭证的生成;s646:选出获奖者;s647:凭证的验证;s648:奖励的分发。
[0051] 在VBDPOS共识机制中,验证者是通过条件筛选的备用节点,验证者一定是备用节点,而备用节点不一定是验证者。系统角色说明如下,用户:发起交易,投票选出备用节点和超级节点;超级节点:收集交易信息将其打包进区块,并将区块广播给其他超级节点,通过验证后再将区块上传至区块链,获得相应的奖励;备用节点:作为超级节点的备用节点,如果在一轮区块生产开始,备用节点的票数排名进入前21,则备用节点会变成超级节点,行使超级节点的权利,完成超级节点的义务,获得超级节点的收益;验证者:是满足条件的备用节点,新增验证权力,会参与区块确认的验证,并且会参与验证奖励的分配。
[0052] 与现有技术相比,有益效果是:
[0053] VBDPOS共识机制在现有DPOS共识机制的超级节点和备用节点的基础上,引入了“验证者”的角色,让符合特定要求的备用节点成为验证者,验证者的角色引入让备用节点不再闲置,而是会参与区块的验证工作,验证者可以在超级节点串通作恶攻击系统的第一时刻,通过行使验证权使系统停止运行,从而能使基于VBDPOS共识机制的系统能在第一时间阻止攻击者对系统的攻击,解决了系统里惩罚机制不及时的问题,提高了系统的安全性。通过区块确认方案设计,使得VBDPOS共识机制在提高整体安全性的基础上,同时使性能不过多降低,可以满足现有商业要求。通过基于可验证随机函数挑选获奖者的奖励分发机制,实现了奖励随机的、不可预测的、公平的分发。
[0054] 通过基于可验证随机函数挑选获奖者来分配奖励,会促使备用节点参与区块的验证工作,比起现有的DPOS共识机制备用节点根据得票率就能获得奖励,验证者为了保证验证工作得到共识和认可,验证者必须时刻保持在线和设备可用,这一方面降低了无能力的备用节点利用奖励分配规则漏洞只拿奖励无能力干活的影响,另一方面对诚实并且有贡献的工作者增大了奖励,从而使当系统的超级节点出现故障时,一直在线和保持数据备份的有能力验证者能更加迅速接替故障的超级节点投入工作,使系统稳定运行。
[0055] 现有的DPOS共识机制的投票奖励一方面并不能直接对应备用节点的贡献,其次是奖励过低,使大部分备用节点都是亏损状态,在长期亏损的情况下,备用节点会选择离开EOS,从而降低EOS系统的稳定性和分布式性能。所以VBDPOS共识机制提高了备用节点的奖励,并且通过基于可验证随机函数挑选获奖者来分配奖励,来保证奖励分配的公平性。这会促进备用节点选择为系统工作,而不是离开系统。
[0056] VBDPOS共识机制极大地提高了区块链系统的抗恶意分叉能力,VBDPOS共识机制比起现有DPOS共识机制的差别是,在区块的验证和确认这一步,不再是由超级节点完成,而是由超级节点和验证者同时参与。验证者不参与区块的生产,但参与区块的验证和确认。当超级节点作恶/不作为/串通勾结等攻击行为出现后,独立的验证者能第一时间给出“不确认”的区块签名确认,使作恶区块无法生效,从而第一时间防止系统遭受攻击,保护系统的安全和系统用户的利益。
[0057] VBDPOS共识机制提高了系统安全性,且不对系统性能有过多影响,能投入商业使用。
[0058] 安全性能的提高往往象征着成本的付出,比如比特币系统里为了保障POW共识机制的安全性,不惜让矿工花费大量电力和设备等资源来保证比特币系统的稳定运行,不被攻击。但VBDPOS共识机制是在小幅度提高成本的同时,大幅度地提高了系统的安全性能。因为VBDPOS机制是更好地利用了已有资源,充分挖掘了备用节点的价值,相比起现有EOS的节点,VBDPOS共识机制的节点的要求和DPOS共识机制的节点要求一致,无需增加其余的硬件和设备。VBDPOS多花费的成本仅仅是通讯成本和计算成本,而通讯成本仅仅是简单的收发信息,计算成本主要是对哈希函数的计算和验证,两项成本都无需花费大量资源,使用家用计算机和家用网络都能完成,因此VBDPOS共识机制在大幅度提高安全性的时候,并没有大幅度的提高成本,仅仅是网络通讯费用和小电力成本的小幅度增加。
[0059] VBDPOS共识机制不仅具有安全性,而且它的安全性具有成长性,区块链代币的价格提高和验证者数量增多,会增加基于VBDPOS共识机制的区块链系统的安全性,代币价格的提高会直接提高VBDPOS抗恶意分叉能力,也会吸引更多验证者,从而间接提高VBDPOS抗恶意分叉能力,因此VBDPOS共识机制比起现有的DPOS共识机制不仅具备更高的安全性能,而且安全性具有更高的成长性。附图说明
[0060] 图1是本发明基于可验证随机函数分配验证者奖励的异步BFT&DPOS共识机制的流程图
[0061] 图2是本发明中VBDPOS共识机制区块确认流程图;
[0062] 图3是本发明中基于VRF挑选获奖者的逻辑流程图;
[0063] 图4是本发明实施例中基于可验证函数挑选获奖者的流程图。

具体实施方式

[0064] 附图仅用于示例性说明,不能理解为对本专利的限制;为了更好说明本实施例,附图某些部件会有省略、放大或缩小,并不代表实际产品的尺寸;对于本领域技术人员来说,附图中某些公知结构及其说明可能省略是可以理解的。附图中描述位置关系仅用于示例性说明,不能理解为对本专利的限制。
[0065] 本发明实施例的附图中相同或相似的标号对应相同或相似的部件;在本发明的描述中,需要理解的是,若有术语“上”、“下”、“左”、“右”“长”“短”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此附图中描述位置关系的用语仅用于示例性说明,不能理解为对本专利的限制,对于本领域的普通技术人员而言,可以根据具体情况理解上述术语的具体含义。
[0066] 下面通过具体实施例,并结合附图,对本发明的技术方案作进一步的具体描述:
[0067] 实施例1
[0068] 如图1所示,一种基于可验证随机函数分配验证者奖励的异步BFT&DPOS共识机制,包括以下步骤:
[0069] S1:系统初始化,在VBDPOS共识机制里,想要成为节点候选人的申请人通过提交设备、设施、人员资料说明和证明,候选人通过申请后成为节点;
[0070] S2:选出超级节点,代币持有者通过投票系统对各个节点候选人进行投票,根据票数排名选出票数最高的21个节点为超级节点,每生产252个区块为一个区块周期,每一个区块周期开始时,都会实时更新投票数,对超级节点和验证者排名进行更新;
[0071] S3:选出验证者,当备用节点满足以下的三个条件,即可申请成为验证者,参与系统的区块验证和确认工作;三个条件为:备用节点获取的票数权重须大于系统X%的总票数,X%为根据网络得票率实时计算的能领取100EOS奖励的最低票数权重;参与验证的备用节点需锁仓一定数量的EOS保证金到特定账户,保证金提交的特定账户可以是权威机构的指定账户,或者由智能合约保证的特定账户;验证者需持续和所有超级节点和其他验证者保持实时通信状态;
[0072] S4:区块的产生,与异步BFT-DPOS共识机制一致,在一轮区块生产过程中,超级节点会按照规定的算法安排好顺序生产区块,当前负责出块的超级节点会收集交易信息将其打包进区块,并将打包好的区块广播给其他超级节点和验证者验证,在等待区块确认的过程中,会同时产生新区块;如果一个节点在最近的24个小时内都没有产生区块,那么它将被移出超级节点的候选名单;
[0073] S5:区块的确认,其他超级节点和验证者会对新区块进行验证,并把验证和签名结果广播,当负责出块的超级节点在广播后会持续监听网络,收集到15个超级节点的签名确认和超过2/3验证者的签名确认和凭证后,超级节点和验证者会根据不同的情况,按照VBDPOS共识机制的区块确认方案,来做出不用的选择;
[0074] S6:奖励的分配,根据基于可验证随机函数挑选获奖者的奖励分发机制,每一轮区块确认完成后,系统内的节点都会比较出一个最小凭证,对最小凭证达成共识,而持有最小凭证的验证者即是此轮区块的获奖者,可以获得这轮区块的验证奖励;
[0075] S7:超级节点的切换,在区块的产生过程中,如果属于A超级节点的12个区块内,则上一个区块没确认时,A超级节点便会开始生产下一个区块,因为A超级节点可以相信自己没有作假。但如果A超级节点生产完12个区块,轮到B超级节点生产区块时,B超级节点会等到自己确认A超级节点的第12个区块已经获得其他15个超级节点和验证者确认后才会接着生产区块。
[0076] 其中,如图2所示,在步骤S5中,设所有验证者数量为Nall,2/3验证者数量为N2/3,区块高度为第r轮,第r轮产生的区块为B1,第r+1轮产生的区块为B2,第r轮的种子参数为Qr,负责出块的超级节点为A超级节点,设某个时刻A超级节点收到的验证者签名和凭证数量为X,VBDPOS区块的确认具体步骤如下:
[0077] s51:区块、种子参数的生产与广播,第r-1轮的最小凭证Qr,即为第r轮的种子参数Qr,在第r轮区块生产过程中,超级节点会按照规定的算法安排好顺序生产区块,当前负责出块的超级节点会收集交易信息将其打包进区块,并将打包好的区块B1和此轮区块的种子参数Qr,广播给其他超级节点和验证者验证,在等待区块确认的过程中,会同时产生新区块B2;
[0078] s52:区块的验证与凭证的生成,系统里的超级节点和验证者时刻在线,监听着网络,当他们收到新区块B1和种子参数Qr后,首先会根据基于可验证随机函数挑选获奖者的算法流程生成各自的凭证;其次各自独立对区块B1进行验证,确保交易信息无误和无作假后。
[0079] 每一个超级节点和验证者会把第r轮的区块B1和各自的「签名+凭证」在网络里广播;
[0080] s53:区块B1得到系统确认,A超级节点在广播区块B1后会持续监听网络,当收集到超过15个超级节点的签名确认和超过2/3验证者的签名确认和凭证后,即可视为区块B1得到了系统确认,超级节点会将区块B1添加到区块链上,将之前生产好的第r+1轮的区块B2和种子参数Qr+1广播,进入第r+1轮的区块确认;区块B1得到系统确认,因为网络延迟的缘故,会有两种不同的处理方式,得到二种不同的处理结果,确保系统正常运行,延迟被控制在一秒以内;A超级节点会时刻判断收集到的超级节点的签名确认数量,一旦超级节点签名确认数量超过(包含)15个,A超级节点会进入计时状态,并判断收集到的验证者的签名确认数量。
[0081] 另外,步骤s53具体包括:
[0082] 1)在进入计时状态时,如果X=Nall,A超级节点会自动比较所有验证者的凭证大小,得出一个最小凭证,第r轮的最小凭证即为第r+1轮的种子参数Qr+1,A超级节点会将区块B1添加到区块链上,将之前生产好的第r+1轮的区块B2和种子参数Qr+1广播,进入第r+1轮的区块确认;
[0083] 2)在进入计时状态时,如果N2/3
[0084] 3)在进入计时状态时,如果X
[0085] 4)在进入计时状态时,如果X
[0086] 在本实施例中,在区块的确认这一步,引入验证者后,区块的确认由之前的只需15个超级节点验证和确认,变成了需要15个超级节点和超过2/3验证者验证和确认,比起现有的基于DPOS共识机制的系统,基于VBDPOS共识机制的系统的安全性大大提高了,问题在于当前区块需要的验证和确认数量增多,会影响区块链系统里的下一个区块的产生(每一个区块都是在上一个区块基础上产生的),所以VBDPOS共识机制里,新设计了确认区块的方案,使VBDPOS共识机制在提高了系统安全性的基础上,使系统的性能不会受到过多的印象,因为在方案设计里,系统正常运行时,延迟被控制在一秒之内,而这个出块效率在区块链领域,可以满足商业需求,足以投入商业使用。
[0087] 验证者是强制在线的和强制要求参与每一轮的区块确认的,但系统不会因为验证者出现问题而宕机,而是会继续稳定运行。在现有的网络状态中,一秒是足够所有节点对同一个凭证同步完毕的时间,在参与验证的过程中,A验证者的签名确认和凭证在一秒内没有被正在生产的超级节点收到,就会视作A验证者缺席此轮区块确认。也就是如果这两种情况发生了,A验证者点对点直接发送签名和凭证没有被正在生产的超级节点收到,A验证者随机广播的签名和验证没有被正在生产的超级节点收到,那就视为A验证者缺席了此轮区块确认,无法参与此轮区块生产的获奖者挑选,A会被扣除5%的保证金,这5%的保证金是此轮的验证者奖励,而A验证者会因为保证金不足而被剔除验证者资格,直到A重新提交保证金获得验证者资格,才能在下一轮区块周期参与验证工作和获得验证奖励。不管A验证者是因为什么问题而无法参与验证,A验证者的缺席会对最小凭证的选取造成影响,因为最小凭证会因为验证者的缺席与否发生变化。
[0088] 另外,如图3所示,步骤S6具体包括以下步骤:
[0089] s61:验证者条件满足;
[0090] s62:验证者的凭证生成;
[0091] s63:验证者参与验证工作;
[0092] S64:获奖者的挑选和验证过程。
[0093] 在本实施例中,基于可验证随机函数挑选获奖者的奖励分发机制,可以使VBDPOS共识机制的每一轮验证者奖励分配都是随机的、不可预测的,从而对于验证者而言,奖励分配是公平的。此外每一轮区块验证奖励都随机分配有两个优点,一是在奖励上的直观,每一轮的区块验证奖励都是固定数额,不会因为验证者数量增加而减少。二是完全随机分配奖励是自带时间属性的平均分配,验证者不会因为参与区块验证而没被抽中为获奖者就不再参与区块验证,因为只要参与验证的时间足够长,轮数足够多,持续参与,根据大数定律,验证者被抽中为获奖者的频率会接近概率。
[0094] 其中,在步骤s61中,在一个区块周期开始时,备用节点需满足以下条件才能成为验证者的资格,条件如下:
[0095] a:备用节点获取的票数权重须大于系统X%的总票数,X%为实时计算的能领取100EOS奖励的最低票数权重;
[0096] b:参加验证的备用节点需锁仓一定量的EOS保证金到特定账户;
[0097] c:验证者需持续和所有超级节点和其他验证者保持实时通信状态。
[0098] 在本实施例中,不满足条件的备用节点,即使参与了验证过程(发送签名和凭证),不会被超级节点和系统认可,也无法获得奖励。票数必须有一定的要求,因为验证工作并不需要太大的门槛,从健康的共识机制这个角度而言,验证工作是为了给备用节点分配奖励的手段,为了让奖励给到有贡献的备用节点,所以要对备用节点有限定要求。
[0099] 另外,在步骤s62中,VBDPOS共识机制对新区块达成共识的过程和现有DPOS共识机制的区别在于VBDPOS在验证这一步多了验证者资格审核和验证者参与区块验证,VBDPOS会基于当前的种子参数公布一个随机算法,就是可验证的随机函数VRF,VRF一个关键参数是用户的私钥,这个私钥只有用户本人才知道;接着,每个备用节点使用自己的私钥对种子参数签名并输入哈希函数后,得到自己的凭证;凭证通过零知识证明,可以在完全不泄露私钥的基础上,证明某个凭证的所有者拥有权;凭证包含5个特性:
[0100] A:种子参数是不断更新的,种子参数不可预测的,所以凭证也是不断更新,凭证是随机数;
[0101] B.哈希函数和私钥确保每一个凭证的所有人都是特定;
[0102] C.非对称密钥算法和零知识证明确保凭证的所有者可以证明凭证的所有权;
[0103] D.凭证不可伪造;
[0104] E.凭证是在本地进行,需要私钥生成却又可以不需要公开私钥的同时全网验证。
[0105] 其中,在步骤s63中,当新区块没有公布之前,备用节点只知道自己是否是验证者,无法知道自己是否是获奖者,只有当区块完成生产和验证后,验证者才知道自己是否获得了此轮区块验证的验证奖励;在结果没出来之前,攻击者无法预测凭证,不知道哪个凭证是最小,在结果出来之后,攻击者无法更改历史。
[0106] 另外,在步骤s64中,负责此轮区块生产的超级节点A会将区块发送给其他超级节点和备用节点,区块发送采用随机广播和点对点传送的组合方式,所以传播延迟极低,达成共识快,事后能查证。验证过程的验证者会将此轮区块生成的凭证,区块的签名,区块,验证结果广播给所有超级节点和备用节点,新区块在确认过程中,节点会持续监听收集验证结果和凭证,并自动比较凭证大小,挑选出最小凭证,持有最小凭证的验证者就是此轮获奖的验证者,可以获得验证奖励,验证奖励不是及时分发的,根据最小凭证,获奖者虽然知道自己中奖了,但需要等到该区块成为不可逆状态后才能获得奖励。
[0107] 另外,如图4所示,步骤s64主要包括以下步骤:
[0108] s641:公私钥的生成,验证者A通过椭圆曲线加密ECC算法生成私钥SK与公钥PK;
[0109] s642:签名的实现,将区块A输入SHA256哈希函数输出哈希摘要H(A),再对哈希摘要使用私钥签名Sig(H(A)),此处得到对区块A的签名。验证者将「区块A+签名Sig(H(A))」发送给其他节点。
[0110] s643:签名的验证,其他节点有验证者的公钥PK,得到区块A和签名Sig(H(A))后,将「公钥PK+区块A+签名Sig(H(A))」输入验证函数,根据数字签名的原理,即可得到验证结果;
[0111] s644:种子参数的更新,第一轮的种子参数为由随机算法(例如SHA-256)更新的随机数。此后每一轮的区块生产过程会有一个不断更新的参数Q,称为种子参数,种子参数本质是由0和1组成的长度为256位的字符串,是输入通过SHA-256哈希函数后的输出哈希值,种子参数是不断更新的,种子参数是不可预测的。种子参数Qr的生成就是对应可验证随机函数里的生成随机数输出,公式如下:
[0112] Qr=H(SIGA(Qr-1,r)),r>1
[0113] s645:凭证的生成,通过可验证随机函数生成验证者A的独一无二的凭证。在第r轮的区块验证过程中,验证者A使用自己的私钥对上一轮种子参数Qr-1和轮数r进行签名,签名后得到SigA(Qr-1,r),签名本质上是使用私钥对Qr-1和r串联后字符串进行加密。将签名SigA(Qr-1,r)通过函数转换生成零知识证明字节串PROOFA,PROOF输入哈希函数得到用户A的凭证H(SigA(Qr-1,r))。
[0114] 1.凭证是一个介于0和1之间的随机256位数字的二进制展开,不同用户的凭证不可能相同。
[0115] 2.种子参数在机制的设计里是随机数,在最终验证结果出来之前,没人知道下一轮的种子参数是多少。
[0116] 3.零知识证明PROOFA一是用来生成凭证,二是用来给其他人验证凭证所有权。
[0117] 4.第r轮,A的凭证H(SigA(Qr-1,r))生成后不会上公布,而是会跟随第r轮区块的验证一起广播。
[0118] s646:选出获奖者,由凭证构建的2进制小数0.H(SigA(Qr-1,r))(也就是将凭证字符串写到小数点后)在0和1之间均匀分布,在一轮验证过程中,资格验证里要求验证者在线,因此每个验证者最后都会收到其他所有验证者在第r轮的凭证,大小对比后凭证最小者,即为第r轮的达成共识的“获奖者”。
[0119] s647:凭证的验证,在第r轮,其他验证者收到验证者A的凭证和A给出的PROOFA后,其他验证者会对PROOFA进行验证,如果使用经过数字证书保障的验证者A的公钥解密验证r-1者A给出的PROOFA,得到的结果与种子参数Q 一致,说明验证通过,唯一且经过验证的PROOFA得出的凭证H(SigA(Qr-1,r))是唯一的,且所有权能被证明属于验证者A,凭证不可伪造且因哈希函数的特性可被快速验证。
[0120] s648:奖励的分发,负责出块的超级节点和验证者会保持实时通信,由于超级节点和验证者是实时点对点交流,因此出块的超级节点会最快收集验证者的签名确认和凭证,会率先给出排名,之后随机广播的「签名+凭证」会被其他超级节点和验证者陆续确认。系统和节点会通过智能合约自动收集,自动验证,自动分配本轮验证的奖励,奖励会在第r轮区块成为不可逆状态后由智能合约自动分发。r-1轮获奖者的凭证就是下一轮的种子参数Qr。
[0121] 显然,本发明的上述实施例仅仅是为清楚地说明本发明所作的举例,而并非是对本发明的实施方式的限定。对于所属领域的普通技术人员来说,在上述说明的基础上还可以做出其它不同形式的变化或变动。这里无需也无法对所有的实施方式予以穷举。凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明权利要求的保护范围之内。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈