利索能及
我要发布
收藏
专利号: 2019110496504
申请人: 广东工业大学
专利类型:发明专利
专利状态:已下证
更新日期:2026-06-16
缴费截止日期: 暂无
联系人

摘要:

权利要求书:

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个超级节点和验证者确认后才会接着生产区块;

所述步骤S6具体包括以下步骤:

s61:验证者条件满足;

s62:验证者的凭证生成;

s63:验证者参与验证工作;

s64:获奖者的挑选和验证过程;

在步骤s61中,在一个区块周期开始时,备用节点需满足以下条件才能成为验证者的资格,条件如下:a:备用节点获取的票数权重须大于系统X%的总票数,X%为实时计算的能领取100EOS奖励的最低票数权重;

b:参加验证的备用节点需锁仓一定量的EOS保证金到特定账户;

c:验证者需持续和所有超级节点和其他验证者保持实时通信状态;

在步骤s62中,VBDPOS共识方法对新区块达成共识的过程和现有DPOS共识方法的区别在于VBDPOS在验证这一步多了验证者资格审核和验证者参与区块验证,VBDPOS会基于当前的种子参数公布一个随机算法,就是可验证的随机函数VRF,VRF一个关键参数是用户的私钥,这个私钥只有用户本人才知道;接着,每个备用节点使用自己的私钥对种子参数签名并输入哈希函数后,得到自己的凭证;凭证通过零知识证明,可以在完全不泄露私钥的基础上,证明某个凭证的所有者拥有权;凭证包含5个特性:A:种子参数是不断更新的,种子参数不可预测的,所以凭证也是不断更新,凭证是随机数;

B.哈希函数和私钥确保每一个凭证的所有人都是特定;

C.非对称密钥算法和零知识证明确保凭证的所有者可以证明凭证的所有权;

D.凭证不可伪造;

E.凭证是在本地进行,需要私钥生成却又可以不需要公开私钥的同时全网验证;

在步骤s63中,当新区块没有公布之前,备用节点只知道自己是否是验证者,无法知道自己是否是获奖者,只有当区块完成生产和验证后,验证者才知道自己是否获得了此轮区块验证的验证奖励;在结果没出来之前,攻击者无法预测凭证,不知道哪个凭证是最小,在结果出来之后,攻击者无法更改历史;

在步骤S5中,设所有验证者数量为Nall,2/3验证者数量为N2/3,区块高度为第r轮,第r轮r产生的区块为B1,第r+1轮产生的区块为B2,第r轮的种子参数为Q ,负责出块的超级节点为A超级节点,设某个时刻A超级节点收到的验证者签名和凭证数量为X,区块的确认具体步骤如下:r r

s51:区块、种子参数的生产与广播,第r‑1轮的最小凭证Q ,即为第r轮的种子参数Q ,在第r轮区块生产过程中,超级节点会按照规定的算法安排好顺序生产区块,当前负责出块的超级节点会收集交易信息将其打包进区块,并将打包好的区块B1和此轮区块的种子参数rQ,广播给其他超级节点和验证者验证,在等待区块确认的过程中,会同时产生新区块B2;

s52:区块的验证与凭证的生成,系统里的超级节点和验证者时刻在线,监听着网络,当r他们收到新区块B1和种子参数Q 后,首先会根据基于可验证随机函数挑选获奖者的算法流程生成各自的凭证;其次各自独立对区块B1进行验证,确保交易信息无误和无作假后;

每一个超级节点和验证者会把第r轮的区块B1和各自的「签名+凭证」在网络里广播;

s53:区块B1得到系统确认,A超级节点在广播区块B1后会持续监听网络,当收集到超过

15个超级节点的签名确认和超过2/3验证者的签名确认和凭证后,即可视为区块B1得到了系统确认,超级节点会将区块B1添加到区块链上,将之前生产好的第r+1轮的区块B2和种子r+1参数Q 广播,进入第r+1轮的区块确认;区块B1得到系统确认,因为网络延迟的缘故,会有两种不同的处理方式,得到二种不同的处理结果,确保系统正常运行,延迟被控制在一秒以内;A超级节点会时刻判断收集到的超级节点的签名确认数量,一旦超级节点签名确认数量大于等于15个,A超级节点会进入计时状态,并判断收集到的验证者的签名确认数量。

2.根据权利要求1所述的基于可验证随机函数分配验证者奖励的异步BFT&DPOS共识方法,其特征在于,所述步骤s53具体包括:

1)在进入计时状态时,如果X=Nall,A超级节点会自动比较所有验证者的凭证大小,得r+1出一个最小凭证,第r轮的最小凭证即为第r+1轮的种子参数Q ,A超级节点会将区块B1添r+1加到区块链上,将之前生产好的第r+1轮的区块B2和种子参数Q 广播,进入第r+1轮的区块确认;

2)在进入计时状态时,如果N2/3

3)在进入计时状态时,如果X

1轮的种子参数Q ,接着A超级节点会将区块B1添加到区块链上,将之前生产好的第r+1轮r+1的区块B2和种子参数Q 广播,进入第r+1轮的区块确认;

4)在进入计时状态时,如果X

3.根据权利要求1所述的基于可验证随机函数分配验证者奖励的异步BFT&DPOS共识方法,其特征在于,所述步骤s64主要包括以下步骤:s641:公私钥的生成,验证者A通过椭圆曲线加密ECC算法生成私钥SK与公钥PK;

s642:签名的实现,将区块A输入SHA256哈希函数输出哈希摘要H(A),再对哈希摘要使用私钥签名Sig(H(A)),此处得到对区块A的签名,验证者将「区块A+签名Sig(H(A))」发送给其他节点;

s643:签名的验证,其他节点有验证者的公钥PK,得到区块A和签名Sig(H(A))后,将「公钥PK+区块A+签名Sig(H(A))」输入验证函数,根据数字签名的原理,即可得到验证结果;

s644:种子参数的更新,第一轮的种子参数为由随机算法,此后每一轮的区块生产过程会有一个不断更新的参数Q,称为种子参数,种子参数本质是由0和1组成的长度为256位的字符串,是输入通过SHA‑256哈希函数后的输出哈希值,种子参数是不断更新的,种子参数是不可预测的,种子参数Qr的生成就是对应可验证随机函数里的生成随机数输出,公式如下:r r‑1

Q=H(SIGA(Q ,r)),r>1

s645:凭证的生成,通过可验证随机函数生成验证者A的独一无二的凭证,在第r轮的区r‑1块验证过程中,验证者A使用自己的私钥对上一轮种子参数Q 和轮数r进行签名,签名后得r‑1 r‑1 r到SigA(Q ,r),签名本质上是使用私钥对Q 和r串联后字符串进行加密,将签名SigA(Q‑1,r)通过函数转换生成零知识证明字节串PROOFA,PROOF输入哈希函数得到用户A的凭证Hr‑1(SigA(Q ,r));

r‑1

s646:选出获奖者,由凭证构建的2进制小数0.H(SigA(Q ,r))在0和1之间均匀分布,在一轮验证过程中,资格验证里要求验证者在线,因此每个验证者最后都会收到其他所有验证者在第r轮的凭证,大小对比后凭证最小者,即为第r轮的达成共识的“获奖者”;

s647:凭证的验证,在第r轮,其他验证者收到验证者A的凭证和A给出的PROOFA后,其他验证者会对PROOFA进行验证,如果使用经过数字证书保障的验证者A的公钥解密验证者A给r‑1出的PROOFA,得到的结果与种子参数Q 一致,说明验证通过,唯一且经过验证的PROOFA得r‑1出的凭证H(SigA(Q ,r))是唯一的,且所有权能被证明属于验证者A,凭证不可伪造且因哈希函数的特性可被快速验证;

s648:奖励的分发;负责出块的超级节点和验证者会保持实时通信,由于超级节点和验证者是实时点对点交流,因此出块的超级节点会最快收集验证者的签名确认和凭证,会率先给出排名,之后随机广播的「签名+凭证」会被其他超级节点和验证者陆续确认,系统和节点会通过智能合约自动收集,自动验证,自动分配本轮验证的奖励,奖励会在第r轮区块成r为不可逆状态后由智能合约自动分发,r‑1轮获奖者的凭证就是下一轮的种子参数Q;

在步骤s64中,负责此轮区块生产的超级节点A会将区块发送给其他超级节点和备用节点,区块发送采用随机广播和点对点传送的组合方式,所以传播延迟极低,达成共识快,事后能查证;验证过程的验证者会将此轮区块生成的凭证,区块的签名,区块,验证结果广播给所有超级节点和备用节点,新区块在确认过程中,节点会持续监听收集验证结果和凭证,并自动比较凭证大小,挑选出最小凭证,持有最小凭证的验证者就是此轮获奖的验证者,可以获得验证奖励,验证奖励不是及时分发的,根据最小凭证,获奖者虽然知道自己中奖了,但需要等到该区块成为不可逆状态后才能获得奖励。