基于门限签名和公平奖励的DPoS共识方法及其系统与设计方案

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

图片简介:

本技术涉及DPoS共识技术领域,且介绍了一种基于门限签名和公平奖励的DPoS共识方法,包括如下步骤:骤一:初始节点投票阶段最终选出多个自提名节点进入见证人候选池;步骤二:使用可验证延迟函数选出21个见证人;步骤三:见证人进行门限签名共识阶段;步骤四;一轮共识结束发放奖励阶段。该基于门限签名和公平奖励的DPoS共识方法及其系统,可以在没有可信第三方的情况下,实现一个公平奖励、去中心化式的的区块链共识系统,能够显著加快验证速度从而使得每秒交易量大幅提高。

技术要求

1.一种基于门限签名和公平奖励的DPoS共识方法,其特征在于:包括如下步骤:

步骤一、初始节点投票阶段,投票阶段最终会选出N(大约数目为441个)自提名节点进入见证人候选池中,具体步骤如下:

a.节点自提名

网络中所有节点都可以在社区中自我提名并注册成为潜在的区块生产者,在这个阶段,节点通常会建立一个竞选网站以吸引用户投票,在网站中,竞选节点一般指定其当选成功后所用到的硬件和软件,有的甚至会给出奖励分配方案吸引用户的投票,自我提名阶段必须在开始投票过程之前全部完成,所有自提名的节点会被列入社区建立的自提名表单中,为下一阶段节点投票提供投票对象;

b.节点投票

在主网未上线时,可借用公信力较强的以太坊的智能合约完成投票过程,待主网建立起来后,可直接在自身的区块链系统中建立合约完成投票过程,社区成员使用以太坊的ERC-20协议代币投票表决后,合约会冻结所有账户并拍摄ERC-20代币持有者的初期余额,在整个投票过程中,设定投票时间为T,节点对每个节点的投票贡献不止是代币的数量多少,而是由代币数量n,投票及时度p与节点的投票权重w三个变量决定,一个节点参与投票的贡献φi可由以下公式计算(之后部分激励机制会涉及到节点的投票贡献):φi=n×p×w,投票及时度指的就是在规定投票的T时间内节点投票越早,就越容易获得更高的贡献,同样投票的权重也是指节点连续投票的影响力,这两个参数都被设为指数级别的下降函数,若是投票不及时或是没有连续投票的话,这两个参数值就会越来越低,当节点收到投票提醒时,立即将代币投给心仪的候选见证人,当代币被锁定到合约中,这部分代币会被锁定无法使用,等投票阶段结束后,合约会自动赎回对应的代币到用户的账户上;

步骤二、随机选人阶段,使用可验证延迟函数(VDF)来生成随机数,具体步骤如下:

c.利用VDF公平可验证的方式选出21个随机数并映射到1~N的数值范围内从而选出21个见证人;

d.将N个节点各自选出一个随机数将其公开发布到区块链公示板上,经哈希函数处理为256位的哈希值作为可验证拖延函数(VDF)的其中一个输入,并将最终生成的第21个随机数的时间t也作为谜题破解时间输入,整个VDF计算最终会产生一个最终随机数,选择计算过程中的其余20个随机数作为输出,因此最后会有21个输出随机数和它们的证明,对于这21个随机数的计算结果,任何节点都可以进行验证,节点可根据初始化阶段的公共参数pp、输入x、输出y以及证明π这4个参数,调用Verify算法验证输出结果是否为accept,并且使用VDF 最大的优势在于验证的时间复杂度远远低于Eval阶段计算的时间复杂度;

步骤三、门限签名-共识阶段,21个见证人通过分布式密钥产生协议,利用多方参与,计算共享的公私钥对,从而克服单点故障和单个节点不可信问题,之后他们的出块顺序由见证人所获得的投票支持率决定,从高到低排序,投票支持率最高的为第一个出块者,具体步骤如下:

e.节点客户端发起一笔交易Tx,通过钱包签名后该交易数据通过P2P网络发送给所连接的节点服务器(全节点);

f.当全节点BP1收到该交易数据后,首先会对交易进行校验。校验主要分为三个部分:

1.校验交易的权限,是否满足对应的权益要求(EOS中账户具有一系列权限);

2.校验交易的签名,是否有校;

3.校验交易Tx数据是否有效,若校验通过,见证人BP1会将该笔交易放入自己的交易池中;

g.见证人BP1在出块时间内,会将多笔交易从交易池中取出,并打包成区块进行门限签名Sig1,最后再广播给其余20个负责验证的见证人;

h.验证节点收到见证人的区块消息后,验证并门限签名,发送给BP1;

i.BP1收到后合成签名,再次发送给其他见证人;

j.其他见证人验证签名是否得到群公钥的验证;

步骤四、激励发放阶段,每次投票选出N个见证人负责出块,并获得一定的奖励,而这其中每一个见证人的投票者也会从中获得一定的奖励,每一次共识过程结束之后,成功生产区块的某个代表节点要将获得的奖励按照相应的比例分给为它投票的所有节点,使用博弈论沙普利值法算法,最终实现按贡献分配奖励,让普通节点能够积极参与投票过程。

2.根据权利要求1所述的一种基于门限签名和公平奖励的DPoS共识方法,其特征在于:所述节点所拥有的的每一个代币都对应着30张选票,对同一个候选节点只能投一票,不能重复给同一个节点多张票,这样可以减少少数人互相勾结控制主链的风险。

3.根据权利要求1所述的一种基于门限签名和公平奖励的DPoS共识方法,其特征在于:所述沙普利值法算法具体如下:

第一步、输入系统所有节点M,为节点Pi投票的节点个数为N、节点Pi的收益为E、节点Ni贡献值Φi

第二步、输出投票节点所得收益Ei

第三步、n←1

第四步、REPEAT

第五步、iF(n≤N)&&(i∈List)&&(i∈Listld)then

//List表示为当前代表节点投票的节点集合,Listid代表参与投票的所有节点集合

第六

步、

//|S|表示联盟S所包含的成员数,成员I参与不同联盟S为自身参与联盟创造的边际贡献记为[V(S)-V(S\\ {i})],S\\{i}表示从集合S中删除元素i后的集合

第七步、Ei=E×Φ_i(v)

第八步、Listld=Listld-List

//第9步和第10步是为了限制节点的投票次数,当为LIST中的节点分配奖励之后,LISTID会删除这些节点,只有节点同时属于两个集合才会获得收益

第九步、n++

第十步、returnEi

相关文档
最新文档