一种基于门限签名和公平奖励的DPoS共识方法及其系统技术方案

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

【技术实现步骤摘要】
一种基于门限签名和公平奖励的DPoS共识方法及其系统
本专利技术涉及DPoS共识
,具体为一种基于门限签名和公平奖励的DPoS共识方法及其系统。
技术介绍
区块链是随着比特币等数字加密货币逐渐兴起而盛行的一种新型去中心化分布式系统,具有去中心化、时序数据、集体维护、可编程和安全可信等特点。目前,区块链已引起政府部门、金融机构、科技企业和资本市场的高度重视与广泛关注。如何在一个去中心化的分布式系统中高效地达成共识是区块链技术研究的重要问题。要使区块链成为一个难以攻破的、公开的、不可篡改数据记录的去中心化的诚实可信的系统,需要在尽可能短的时间内做到分布式数据记录的安全、明确及不可逆,提供一个最坚实且去中心化的系统。区块链中,共识机制是最为核心的一部分,它可以保证区块链中的数据在分布式节点之间达到账本一致性且账本数据不可被篡改。股份授权证明机制(DelegatedProofofStake,DPoS),是一种区块链的共识算法,2014年4月由Bitshares的首席开发者DanLarimer(现为EOSCTO)提出并应用。当时Dan观察到比特币系统共识算法POW的一些问题:比如矿池导致算力越来越集中、电力耗费过大等。所以他提出了一种更加快速、安全且能源消耗比较小的算法,这就是后来的DPOS。DPOS是一种基于投票选举的共识算法,有点像民主大会,持币人选出几个代表节点来运营网络,用专业运行的网络服务器来保证区块链网络的安全和性能。DPOS机制中,不需要算力解决数学难题,而是由持币者选出谁说生产者,如果生产者不称职,就有随时有可能被投票出局,这也就解决了POS的性能问题。区块链上的随机数一直是一个热门话题。无论是在一些权益证明)共识协议的设计里,还是在智能合约平台,譬如Ethereum和EOS上一些非常火爆的游戏类应用,随机数都占据了核心的地位。同时,很多这些应用中,实际设计的随机数获取方案还非常不成熟,以至经常会有应用因为不安全的随机数而被黑客攻击的新闻出现。可验证延迟函数(VerifibleDelayFunction,VDF)对于一些从公共来源获取随机数的方法非常有用。比如从股票市场或者是从PoW区块链上获取。这些随机源拥有足够的随机性。但是高频交易者可以影响股价,同时,PoW区块链的矿工也可以通过不广播自己挖出的区块来降低自己不想要的随机数结果的出现概率。但是这样的攻击方式成立的前提条件是攻击者有时间在其他诚实参与者之前预测出随机数结果。VDF恰好能阻止这一点。如果将VDF的时间参数设置到足够长(比如10个块的间隔),将最新的区块头作为输入扔进VDF中,输出作为随机数结果。那么攻击者只能在10个块之后才能知道随机数的结果是什么,那个时候想要再改变结果已经很难了。此外,VDF也可以增强一些多方参与的随机数方案。比如Commit-and-Reveal方案中,攻击者可以拖到Reveal阶段的最后再决定是否揭示自己的承诺。如果我们去掉Commit阶段,并且协议的最后整合所有人的输入之后不直接作为随机数结果,而是放入VDF中,并且将VDF的时间参数设置到足够长(晚于最后提交期限),那么即使是最后一刻提交的人也无法知道随机数的结果,操纵结果也就无从谈起。与之相比较,其他的多方参与方案通常最多容忍小于一半的恶意节点,并且交互的开销要比上述方案更大。2014年Bitshares引入了股份授权证明(DelegatedProofofStake,DPoS)。DPoS共识的目的就是通过更新顺序达成快速共识,使得交易确认速度大幅提升。DPoS共识主张股东投票的方式选出符合他们利益的见证人(票数排行前101位)来完成每一轮的共识。每一轮共识中,见证人有2秒的许可时间按顺利出块,如果不能在给定的时间内生成块,则将出块的权利授予给下一个见证人。因此,区块的生产者都是提前选出来的,这一确定性保证了每秒能处理超10万的交易量,且能在平均仅1秒的时间内被确认。投票选出的101个见证人的权利对等,如果发现它们存在宕机或者作恶,网络可以重新投票进而替换见证人。为了进一步实现上万级别的交易处理量,在Bitshares之后提出了EOS,EOS所推出的共识为BFT-DPoS。EOS在DPoS的基础上最终选出21个主节点,它们有权力生产区块,这些主节点被称为区块生产者(BlockProducer,BP)。不仅如此,EOS在此基础上还引入了BFT的机制:每当一个区块在网络中广播时,其余的BP节点就会立即对这个区块进行确认,经过2/3节点确认的区块将会进入不可逆状态。一旦区块上有了15个BP的投票通过,该区块就会被确定。在这个共识机制下,安全确认的时间为0.5s(区块间隔)+0.3s(区块传播延时)<1s,从而达到了秒级的确认性能。股份授权证明共识机制较其他共识相比,可以实现秒级的共识验证,且该类共识并不需要庞大的计算开销。由于这些优点,EOS项目中采用了DPoS共识,它使用21个见证人并行出块的方式,性能效率极高,被誉为区块链3.0,曾经轰动全国的超级节点竞选热度一度赶上了比特币的讨论。但现有的DPoS共识机制也存在着以下三点缺陷:1、DPoS方式只有21个节点固定出块,导致中心化问题严重;2、由于出块奖励只给21个见证人和候选节点,普通节点不会得到任何奖励,使得普通节点的投票积极性很差,该类共识缺乏足够公平的激励机制;3、最后,在DPoS中,见证人之间通过PBFT对区块进行验证,区块上必须要附上2/3的见证人签名才被认定区块有效,由于各个节点之间需要互相广播区块并更新自己的本地数据库,这么多签名附在区块中需要被其他节点一一验证,使得节点之间的通讯开销变多。
技术实现思路
(一)解决的技术问题针对现有技术的不足,本专利技术提供了一种基于门限签名和公平奖励的DPoS共识方法及其系统,具备可以在没有可信第三方的情况下,实现一个公平奖励、去中心化式的、加快验证速度从而每秒交易量大幅提高的区块链共识系统的优点,解决了DPoS方式只有21个节点固定出块,导致中心化问题严重,由于出块奖励只给21个见证人和候选节点,普通节点不会得到任何奖励,使得普通节点的投票积极性很差,该类共识缺乏足够公平的激励机制,在DPoS中,见证人之间通过PBFT对区块进行验证,区块上必须要附上2/3的见证人签名才被认定区块有效,由于各个节点之间需要互相广播区块并更新自己的本地数据库,这么多签名附在区块中需要被其他节点一一验证,使得节点之间的通讯开销变多的问题。(二)技术方案为实现可以在没有可信第三方的情况下,实现一个公平奖励、去中心化式的、加快验证速度从而每秒交易量大幅提高的区块链共识系统的目的,本专利技术提供如下技术方案:一种基于门限签名和公平奖励的DPoS共识方法,包括如下步骤:步骤一、初始节点投票阶段,投票阶段最终会选出N(大约数目为441个)自提名节点进入见证人候选池中,具体步骤如下:a.节点自提名网络中所有节点都可以在社区中自我提名并注册成为潜在的区块生产者,在这个阶段,节点通常会建立一个竞选网站以吸引本文档来自技高网
...

【技术保护点】
1.一种基于门限签名和公平奖励的DPoS共识方法,其特征在于:包括如下步骤:/n步骤一、初始节点投票阶段,投票阶段最终会选出N(大约数目为441个)自提名节点进入见证人候选池中,具体步骤如下:/na.节点自提名/n网络中所有节点都可以在社区中自我提名并注册成为潜在的区块生产者,在这个阶段,节点通常会建立一个竞选网站以吸引用户投票,在网站中,竞选节点一般指定其当选成功后所用到的硬件和软件,有的甚至会给出奖励分配方案吸引用户的投票,自我提名阶段必须在开始投票过程之前全部完成,所有自提名的节点会被列入社区建立的自提名表单中,为下一阶段节点投票提供投票对象;/nb.节点投票/n在主网未上线时,可借用公信力较强的以太坊的智能合约完成投票过程,待主网建立起来后,可直接在自身的区块链系统中建立合约完成投票过程,社区成员使用以太坊的ERC-20协议代币投票表决后,合约会冻结所有账户并拍摄ERC-20代币持有者的初期余额,在整个投票过程中,设定投票时间为T,节点对每个节点的投票贡献不止是代币的数量多少,而是由代币数量n,投票及时度p与节点的投票权重w三个变量决定,一个节点参与投票的贡献φ

【技术特征摘要】
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.其他见证...

【专利技术属性】
技术研发人员:任野坤
申请(专利权)人:浙江工商大学
类型:发明
国别省市:浙江;33

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1