首页 / 专利库 / 银行与财务事项 / 区块链交易 / 一种基于PoW和PoS改进的区块链共识机制

一种基于PoW和PoS改进的链共识机制

阅读:307发布:2020-05-13

专利汇可以提供一种基于PoW和PoS改进的链共识机制专利检索,专利查询,专利分析的服务。并且本 发明 涉及一种基于PoW和PoS改进的 区 块 链 共识机制,本发明通过降低哈希碰撞计算难度来加快区块链出块速度、减少交易等待时间、减少算 力 的浪费;通过给纳入币龄计算的持币时间设置上限,避免由于币龄无限增长而带来的富者无限富的问题;通过引入信用值并根据 节点 行为动态调整信用值以及加入竞争等待时间,来平衡记账权的竞争,让更多的节点获得记账机会。与当前PoW和PoS相比,本发明提出的改进共识机制具有更快的出块速度、更短的交易等待时间、更少的算力浪费,并在一定程度上避免了类似于 马 太效应的富者愈富问题,平衡了记账权的竞争,让更多的算力较弱、权益较小的节点也尽可能地获得一些记账权。,下面是一种基于PoW和PoS改进的链共识机制专利的具体信息内容。

1.一种基于PoW和PoS改进的链共识机制,其特征在于,所述方法包括:
(1)优化PoW:
a)降低哈希计算的难度,减少寻找随机数所花费的算:将初始难度设为1,对应难度值为6,即找到的随机数Nonce拼接前一个区块的hash值再进行哈希计算得到的hash值的前
6位为0,这样矿工节点只需花几十秒就能找到Nonce;
b)将出块速度保持在1分钟左右,以获得更快的交易确认:设置一个竞争等待时间wTime为10秒,第一个找到Nonce的节点立即向全网广播,此时触发wTime,此后10秒内找到的节点都有机会获得记账权,10秒之后还没有找到的节点则失去获得本次记账权的机会,停止计算;找到Nonce所花费的时间记为fTime,作为确定打包记账权的一个因素;
c)将难度调整机制改为每创建720个区块调整一次,即每12小时左右调整一次难度,难度计算公式改为:
newDiff=oldDidd*(43200/totalTime)
newDiff为新区块的难度,oldDiff为前一个区块的难度,totalTime为创建过去720个区块所花费的总时长,单位为秒,由于出块速度在1分钟左右,所以43200/totalTime趋近于
1,newDiff和oldDiff近似相等,如果算力增加,totalTime就会小于43200秒,43200/totalTime大于1,newDiff将大于oldDiff,难度增加;反之,算力减小,难度减小,以此来动态调整计算难度;
(2)优化PoS:
针对PoS可能会出现的节点权益无限增大的问题,PoWaS设置一个有效持币时间ValueTime,并设置最大值,币龄的计算公式为:
CoinAge=Coin*ValueTime
若持币时间超过有效持币时间最大值,则ValueTime停止增长,由公式可以看出超出的时长不会纳入币龄的计算,以此来限制币龄的无限增长,防止权益无限增大;
(3)引入信用值:为每个节点赋予一个信用值cPoint,作为记账权的一个参考因素,根据节点的行为增加和扣除信用值,用信用值奖励来调动矿工节点的挖矿积极性,信用值扣除来减少节点作恶的几率;
(4)确定记账权:记账权竞争流程为:
a)各矿工节点根据当前的难度值进行哈希计算寻找随机数Nonce,使得该Nonce拼接上前一个区块的hash值再进行哈希计算后得到的hash值的前n位为0,n等于难度值;
b)当某矿工找到Nonce后,立即向全网广播,此时触发竞争等待时间wTime,为10秒,其他节点收到广播后,还有10秒的计算时间,如果10秒内找到了Nonce,也立即向全网广播,10秒后仍然没有找到Nonce的节点失去本轮记账机会;
c)找到Nonce的节点根据fTime、CoinAge和cPoint这三个值计算出所有找到Nonce的节点的pStake值;
d)若发现自己的pStake最大,则将所有的pStake信息以及自己打包好的区块广播至全网,宣布自己获得打包权,其他节点收到信息后进行验证,若验证通过,将收到信息中的区块作为区块链最后一个区块进行下一轮的挖矿计算;
e)若发现自己的pStake不是最大的,则竞争失败,等待获得打包权节点的广播信息;
f)没有找到Nonce的节点停止计算,收到获得记账权的节点的广播信息后,再进行下一轮的计算。
2.根据权利要求1所述的基于PoW和PoS改进的区块链共识机制,其特征在于,信用值采用1000分制,最高为1000,每个节点的初始信用值为400,成功记账后会获得1信用值奖励,节点如果发生恶意行为,比如恶意分叉,将扣除20信用值;若信用值较低,则对节点竞争记账权进行限制,具体规则如下:
a)信用值低于400时,限制120轮,即2小时左右无法参与记账权竞争;
b)信用值低于300时,限制720轮,即12小时左右无法参与记账权竞争;
c)信用值低于200时,限制4320轮,即72小时左右无法参与记账权竞争;
d)信用值低于100时,剔除该节点,取消其矿工资格。

说明书全文

一种基于PoW和PoS改进的链共识机制

技术领域

[0001] 本发明涉及区块链技术领域,具体涉及一种基于PoW和PoS改进的区块链共识机制。

背景技术

[0002] 共识机制作为区块链的核心,其作用就是使各节点在没有中心管理机构的情况下,遵循一定的规则实现自治从而保证区块链的稳定运行。
[0003] PoW(Proof of Work)工作量证明机制,是比特币所采用的共识机制,矿工节点通过不断的哈希碰撞计算寻找一个随机数,使得该随机数拼接上前一个区块的哈希值再进行哈希计算所得到的哈希值前n位为零,n的大小就对应计算难度的大小,每创建2016个区块后难度会根据当前算动态调整,使出块速度始终保持在10分钟左右。最先计算出随机数的矿工节点获得记账权,立即将全网前十分钟的交易信息打包创建新区块,并将随机数和新区块广播至全网节点,其他矿工收到广播后立即验证随机数和区块中的交易信息,若验证通过,停止当前的计算,将该区块加入到自己的区块链上后再进行新一轮的哈希计算。
[0004] PoS(Proof of Stake)权益证明机制,引入了币龄的概念,每个代币都有对应的价值来度量持币者参与决策的权重,叫做权益,如果发生交易,交易的这部分代币的币龄将会被消耗,每消耗一定的币龄都会产生一定的利息币。PoS中是通过权益来获得记账权的,权益大的节点获得记账权的概率较大。
[0005] 从PoW的工作流程和其难度调节机制中可以看出,在创建新区块的时候全网矿工节点都处于高负荷的计算中,算力再好的节点计算出一个随机数也需要10分钟左右的时间,其他没有算出随机数的节点花费了10分钟的算力却得不到任何奖励。显然,产生巨大的算力和电力资源浪费是PoW机制的重大缺陷
[0006] PoS机制虽然解决了PoW大量浪费算力和电力资源的问题,但正是因为不需要花费算力,记账权来源于权益,所以挖矿几乎是没有成本的。一旦恶意节点制造分叉链,对于其他节点来说,不管在哪条链上挖矿都没有成本,他们可能会选择在每一条链上都进行挖矿,这样无论最终哪条链被选作主链,都会获得收益。如果大多数的矿工都选择在所有分叉上挖矿,那么区块链很可能被硬分叉,并且更容易遭到双花攻击,稳定性无法保证。如果持币不交易,币龄是持续增长的,对应的权益也是持续增长的,那么持币较多的节点可能会选择大量囤积代币,一方面持币吃息,另一方面获取更大的权益,这样就会导致某些节点的权益越来越大,带来富者愈富的问题。

发明内容

[0007] 本发明的目的是提供一种基于PoW和PoS改进的区块链共识机制,以加快区块链中区块的出块速度、减少交易等待时间、减少算力资源浪费,限制币龄的无限增长,避免出现节点权益无限增大的问题,并引入信用值来平衡节点间记账权的竞争,让算力较弱、权益较小节点也能尽可能地获得一些记账权。
[0008] 为了达到上述目的,本发明所采用的技术方案是:一种基于PoW和PoS改进的区块链共识机制,其特征在于,所述方法包括:
[0009] (1)优化PoW:
[0010] a)降低哈希计算的难度,减少寻找随机数所花费的算力:将初始难度设为1,对应难度值为6,即找到的随机数Nonce拼接前一个区块的hash值再进行哈希计算得到的hash值的前6位为0,这样矿工节点只需花几十秒就能找到Nonce;
[0011] b)将出块速度保持在1分钟左右,以获得更快的交易确认:设置一个竞争等待时间wTime为10秒,第一个找到Nonce的节点立即向全网广播,此时触发wTime,此后10秒内找到的节点都有机会获得记账权,10秒之后还没有找到的节点则失去获得本次记账权的机会,停止计算;找到Nonce所花费的时间记为fTime,作为确定打包记账权的一个因素;
[0012] c)将难度调整机制改为每创建720个区块调整一次,即每12小时左右调整一次难度,难度计算公式改为:
[0013] newDiff=oldDidd*(43200/totalTime)
[0014] newDiff为新区块的难度,oldDiff为前一个区块的难度,totalTime为创建过去720个区块所花费的总时长,单位为秒,由于出块速度在1分钟左右,所以43200/totalTime趋近于1,newDiff和oldDiff近似相等,如果算力增加,totalTime就会小于43200秒,43200/totalTime大于1,newDiff将大于oldDiff,难度增加;反之,算力减小,难度减小,以此来动态调整计算难度;
[0015] (2)优化PoS:
[0016] 针对PoS可能会出现的节点权益无限增大的问题,PoWaS设置一个有效持币时间ValueTime,并设置最大值,币龄的计算公式为:
[0017] CoinAge=Coin*ValueTime
[0018] 若持币时间超过有效持币时间最大值,则ValueTime停止增长,由公式可以看出超出的时长不会纳入币龄的计算,以此来限制币龄的无限增长,防止权益无限增大;
[0019] (3)引入信用值:为每个节点赋予一个信用值cPoint,作为记账权的一个参考因素,根据节点的行为增加和扣除信用值,用信用值奖励来调动矿工节点的挖矿积极性,信用值扣除来减少节点作恶的几率;
[0020] (4)确定记账权:记账权竞争流程为:
[0021] a)各矿工节点根据当前的难度值进行哈希计算寻找随机数Nonce,使得该Nonce拼接上前一个区块的hash值再进行哈希计算后得到的hash值的前n位为0,n等于难度值;
[0022] b)当某矿工找到Nonce后,立即向全网广播,此时触发竞争等待时间wTime,为10秒,其他节点收到广播后,还有10秒的计算时间,如果10秒内找到了Nonce,也立即向全网广播,10秒后仍然没有找到Nonce的节点失去本轮记账机会;
[0023] c)找到Nonce的节点根据fTime、CoinAge和cPoint这三个值计算出所有找到Nonce的节点的pStake值;
[0024] d)若发现自己的pStake最大,则将所有的pStake信息以及自己打包好的区块广播至全网,宣布自己获得打包权,其他节点收到信息后进行验证,若验证通过,将收到信息中的区块作为区块链最后一个区块进行下一轮的挖矿计算;
[0025] e)若发现自己的pStake不是最大的,则竞争失败,等待获得打包权节点的广播信息;
[0026] f)没有找到Nonce的节点停止计算,收到获得记账权的节点的广播信息后,再进行下一轮的计算。
[0027] 进一步的,信用值采用1000分制,最高为1000,每个节点的初始信用值为400,成功记账后会获得1信用值奖励,节点如果发生恶意行为,比如恶意分叉,将扣除20信用值;若信用值较低,则对节点竞争记账权进行限制,具体规则如下:
[0028] a)信用值低于400时,限制120轮,即2小时左右无法参与记账权竞争;
[0029] b)信用值低于300时,限制720轮,即12小时左右无法参与记账权竞争;
[0030] c)信用值低于200时,限制4320轮,即72小时左右无法参与记账权竞争;
[0031] d)信用值低于100时,剔除该节点,取消其矿工资格。
[0032] 本发明的有益效果是:本发明通过降低哈希碰撞计算难度来加快区块链出块速度、减少交易等待时间、减少算力的浪费;通过给纳入币龄计算的持币时间设置上限,避免由于币龄无限增长而带来的富者无限富的问题;通过引入信用值并根据节点行为动态调整信用值以及加入竞争等待时间,来平衡记账权的竞争,让更多的节点获得记账机会。
[0033] 与当前PoW和PoS相比,本发明提出的改进共识机制具有更快的出块速度、更短的交易等待时间、更少的算力浪费,并在一定程度上避免了类似于太效应的富者愈富问题,平衡了记账权的竞争,让更多的算力较弱、权益较小的节点也尽可能地获得一些记账权。附图说明
[0034] 图1为本发明的基于PoW和PoS改进的区块链共识机制的记账权竞争流程图

具体实施方式

[0035] 下面结合附图和实例对本发明做进一步阐述,但不是对本发明的限定。
[0036] (1)优化PoW部分
[0037] 针对PoW出块速度慢、交易等待时间长以及算力浪费大等问题,PoWaS做出优化方案:
[0038] a)降低哈希计算的难度,减少寻找随机数所花费的算力。将初始难度设为1,对应难度值为6,即找到的随机数Nonce拼接前一个区块的hash值再进行哈希计算得到的hash值的前6位为0,这样矿工节点基本上只花几十秒就能找到Nonce。
[0039] b)将出块速度保持在1分钟左右,以获得更快的交易确认。设置一个竞争等待时间(wTime)为10秒,第一个找到Nonce的节点立即向全网广播,此时触发wTime,此后10秒内找到的节点都有机会获得记账权,10秒之后还没有找到的节点则失去获得本次记账权的机会,停止计算。找到Nonce所花费的时间记为fTime,作为确定打包记账权的一个因素。
[0040] c)将难度调整机制改为每创建720个区块调整一次,即每12小时左右调整一次难度。难度计算公式改为:
[0041] newDiff=oldDidd*(43200/totalTime)
[0042] newDiff为新区块的难度,oldDiff为前一个区块的难度,totalTime为创建过去720个区块所花费的总时长,单位为秒。由于出块速度在1分钟左右,所以43200/totalTime趋近于1,newDiff和oldDiff近似相等。如果算力增加,totalTime就会小于43200秒,43200/totalTime大于1,newDiff将大于oldDiff,难度增加;反之,算力减小,难度减小,以此来动态调整计算难度。
[0043] (2)优化PoS部分
[0044] 针对PoS可能会出现的节点权益无限增大的问题,PoWaS设置一个有效持币时间(ValueTime),并设置最大值,币龄的计算公式为:
[0045] CoinAge=Coin*ValueTime
[0046] 若持币时间超过有效持币时间最大值,则ValueTime停止增长,由公式可以看出超出的时长不会纳入币龄的计算,以此来限制币龄的无限增长,防止权益无限增大。
[0047] (3)引入信用值
[0048] 引入信用值,为每个节点赋予一个信用值(cPoint),作为记账权的一个参考因素,根据节点的行为增加和扣除信用值,用信用值奖励来调动矿工节点的挖矿积极性,信用值扣除来减少节点作恶的几率。
[0049] 信用值采用1000分制,最高为1000,每个节点的初始信用值为400,成功记账后会获得1信用值奖励,节点如果发生恶意行为,比如恶意分叉,将扣除20信用值。若信用值较低,则对节点竞争记账权进行限制,具体规则如下:
[0050] a)信用值低于400时,限制120轮,即2小时左右无法参与记账权竞争;
[0051] b)信用值低于300时,限制720轮,即12小时左右无法参与记账权竞争;
[0052] c)信用值低于200时,限制4320轮,即72小时左右无法参与记账权竞争;
[0053] d)信用值低于100时,剔除该节点,取消其矿工资格。
[0054] (4)确定记账权
[0055] 记账权竞争流程为:
[0056] a)各矿工节点根据当前的难度值进行哈希计算寻找随机数Nonce,使得该Nonce拼接上前一个区块的hash值再进行哈希计算后得到的hash值的前n位为0,n等于难度值。
[0057] b)当某矿工找到Nonce后,立即向全网广播,此时触发竞争等待时间wTime,为10秒,其他节点收到广播后,还有10秒的计算时间,如果10秒内找到了Nonce,也立即向全网广播,10秒后仍然没有找到Nonce的节点失去本轮记账机会。
[0058] c)找到Nonce的节点根据fTime、CoinAge和cPoint这三个值计算出所有找到Nonce的节点的pStake值。
[0059] d)若发现自己的pStake最大,则将所有的pStake信息以及自己打包好的区块广播至全网,宣布自己获得打包权,其他节点收到信息后进行验证,若验证通过,将收到信息中的区块作为区块链最后一个区块进行下一轮的挖矿计算。
[0060] e)若发现自己的pStake不是最大的,则竞争失败,等待获得打包权节点的广播信息。
[0061] f)没有找到Nonce的节点停止计算,收到获得记账权的节点的广播信息后,再进行下一轮的计算。完整的记账权竞争流程如图1所示。
[0062] 最后应当说明的是,以上内容仅用以说明本发明的技术方案,而非对本发明保护范围的限制,本领域的普通技术人员对本发明的技术方案进行的简单修改或者等同替换,均不脱离本发明技术方案的实质和范围。
高效检索全球专利

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

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

申请试用

分析报告

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

申请试用

QQ群二维码
意见反馈