基于参与度的记账打块方法技术

技术编号:21458052 阅读:32 留言:0更新日期:2019-06-26 06:10
本发明专利技术公开了基于参与度的记账打块方法,通过节点在网络中的参与度分配投票权参与投票,通过私钥发送投票,公钥确认后发送至网络中,通过投票结果统计并按一定算法选出57个打块节点开始打块,最后分配打块收益,通过基于参与度进行投票选出打块节点的方式,使得打块机会公平,保证区块网络内节点的活跃程度,促进区块链的发展。

【技术实现步骤摘要】
基于参与度的记账打块方法
本专利技术属于区块链领域,尤其涉及一种基于参与度的记账打块方法。
技术介绍
随着比特币的出现,区块链技术被越来越多的认识,区块链中的挖矿尤其受到很多技术迷的青睐,现有的区块链网络中,由哪一个节点产生区块是跟节点设备的计算能力相关,一个节点设备的算力越强,其越可能产生区块。例如,当一个节点设备的算力超过全网其它所有节点的算力时,则基本上每次都会是这一个节点设备产生区块。因此,在各个节点设备的算力差异较大的情况下,现有的挖矿机制无法保证区块链网络中的各个节点设备具有公平挖矿的机会,而且现有的区块链网络每10分钟才会住一个区块,而10分钟只有1个节点可以获得。这样就导致很多节点没办法参与到整个系统中,失去了参与区块链网络的热情,对于区块链网络的节点数有很大的影响。
技术实现思路
本专利技术所要解决的技术问题在于提供一种打块机会公平,出块时间短的一种基于参与度的记账打块方法。为解决上述技术问题,本专利技术的技术解决方案是:基于参与度的记账打块方法,包括如下步骤:(1)广播网络中的所有节点,各节点基于在网络中的参与度进行投票;(2)将节点A所投的票经过私钥签名后发送至网络,网络上其他节点通过A节点公钥进行签名验证;(3)通过验证后若符合实际情况,便采纳A节点的投票,网络其他节点收集到所有类似A的节点投票后进行统计;(4)网络会向上和向下各广播一层,确保每层节点接收数大于拜占庭最低一致比例1-(n-1)/3,然后累计广播∑((1-(n-1)/3)*N)3,当N等于10时,得票最高的57个节点达成一致,57个胜出节点按得票数的排序顺序开始打块;(5)打块开始时,先将当前区块周期内的所有交易进行打包,统计交易总量,打造区块,并使用本节点私钥进行签名;(6)签名完成后节点将区块广播到网络上,网络上各节点接收到区块时,将对该区块进行验证;(7)验证通过后,加入本地区块队列的末尾,如果验证无效,将进行丢弃;(8)打块结束后,分配打块所得收益。进一步的,步骤(6)中的验证区块的方法是先使用该节点公钥对该区块签名进行验证,签名验证通过时将对该区块进行拆包验证,对区块内所包含的交易进行逐笔验证。进一步的,步骤(7)中若出现区块校验通过,但却不属于本地区块链条上区块时,将区块放入孤块池中。进一步的,步骤(7)中若在本区块周期内接收到多个区块,而且这些区块均正确,将对区块链条进行分叉处理,本地下一轮区块将优先在最长最快的区块上打造新区块;若在未来的区块处理中,发现其它分叉变的比原有的区块链长,那么将本地工作的区块链条切换到最长的这一条上。进一步的,步骤(4)中打块方法是利用打块,先计算出这一轮57个区块周期内的最小带宽,而后打块的大小就是对应这个最小带宽。进一步的,步骤(1)中参与度是以节点的权益大小、上一轮交易量、网络贡献情况三个维度来计算该节点投票数的。进一步的,所述的网络贡献情况是根据该节点在上一次打块过程中的投票活跃程度及历史活跃程度累计统计。进一步的,步骤(8)中的分配收益方法是:打块的节点获得50%的收益,剩余50%收益根据其他投票节点的投票量分配。进一步的,步骤(1)中广播网络节点包括移动端节点和PC端节点。进一步的,所述的移动端节点通过HTTP协议握手后,利用websocket进行全网广播。本专利技术的有益效果是:1、通过基于参与度进行投票选出打块节点的方式,使得打块机会公平,每个节点出块时间变短;每128秒就可以出一个块。2、通过收益分配机制,激起每个节点的参与度,保证区块网络内节点的活跃程度。3、通过特定的节点选择方式,选出最适合的57个打块节点,保证网络节点一致性附图说明图1是本专利技术的流程图;图2是本专利技术步骤(1)的参与度参考维度图;图3是本专利技术步骤(8)的收益分配示意图;图4是本专利技术步骤(1)建立连接协议代码图;图5是本专利技术实施例二动态打块示意图;具体实施方式下面结合附图和具体实施例对本专利技术作进一步详述。在此需要说明的是,下面所描述的本专利技术各个实施例中所涉及的技术特征只要彼此之间未构成冲突就可以相互组合。实施例一:如图1所示,基于参与度的记账打块方法,包括如下步骤:(1)广播网络中的所有节点,各节点基于在网络中的参与度进行投票;其中广播网络节点包括移动端节点和PC端节点,PC端节点通过https协议进行广播,如图4所示,移动端节点通过HTTP协议握手后,利用websocket进行全网广播;如图2所示,网络中的参与度是以节点的权益大小、上一轮交易量、网络贡献情况三个维度来计算该节点投票数的。节点的权益大小,就是该节点在整个区块链的P2P网络中的地位,是否作为挖矿节点还是仅仅是查询节点,挖矿节点的权益普遍大于查询节点;上一轮交易量就是在上一次打块过程中参与交易额,这里的交易量同样会参考该节点的历史交易额;最后网络贡献情况是根据该节点在上一次打块过程中的投票活跃程度及历史活跃程度累计统计,从这三个维度综合可以判定该节点在整个区块链的P2P网络中的参与度,参与度越高,在这个过程中投票的票数就越多。(2)将节点A所投的票经过私钥签名后发送至网络,网络上其他节点通过A节点公钥进行签名验证,若节点A投的票未经过其他节点签名验证,那么A节点所投的票就进不了整个P2P网络,自然也并不会有效,此处节点A代表网络中任意一个参与投票的节点;(3)通过验证后若符合实际情况,便采纳A节点的投票,此处符合实际情况是指A节点投的票与P2P网络基于A节点的参与度分配给它的投票权一致,若一致便是符合实际情况,当网络其他节点收集到所有类似A的节点投票后进行统计,统计票数高低情况后,发布至P2P网络。(4)网络会向上和向下各广播一层,确保每层节点接收数大于拜占庭最低一致比例1-(n-1)/3,然后累计广播∑((1-(n-1)/3)*N)3,当N等于10时,得票最高的57个节点达成一致,57个胜出节点按得票数的排序顺序开始打块,这里的打块是打造区块的意思,由57个节点参与打块,其他节点因为投票情况被这57个节点代表;(5)打块开始时,先将当前区块周期内的所有交易进行打包,统计交易总量,打造区块,并使用本节点私钥进行签名;(6)签名完成后节点将区块广播到网络上,网络上各节点接收到区块时,将对该区块进行验证;验证方法是先使用该节点公钥对该区块签名进行验证,签名验证通过时将对该区块进行拆包验证,对区块内所包含的交易进行逐笔验证。(7)验证通过后,加入本地区块队列的末尾,如果验证无效,将进行丢弃;此时若出现区块校验通过,但却不属于本地区块链条上区块时,将该区块放入孤块池中。如果在本区块周期内接收到多个区块,而且这些区块均正确,将对区块链条进行分叉处理,本地下一轮区块将优先在最长最快的区块上打造新区块;这样可以保证效率,若在未来的区块处理中,发现其它分叉变的比原有的区块链长,那么将本地工作的区块链条切换到最长的这一条上。(8)打块结束后,分配打块所得收益,如图3所示,具体的分配方法是打块的节点获得50%的收益,剩余50%收益根据其他投票节点的投票量分配,例如B节点在这个过程中获得打块权,则它所打的块的收益50%归自己,另外50%基于投票给它的节点的投票数比例分配。为了进一步说明本专利技术的实施,下面简单介绍下一个节点(节点B)参与打块的整个流程本文档来自技高网...

【技术保护点】
1.基于参与度的记账打块方法,包括如下步骤:(1)广播网络中的所有节点,各节点基于在网络中的参与度进行投票;(2)将节点A所投的票经过私钥签名后发送至网络,网络上其他节点通过A节点公钥进行签名验证;(3)通过验证后若符合实际情况,便采纳A节点的投票,网络其他节点收集到所有类似A的节点投票后进行统计;(4)网络会向上和向下各广播一层,确保每层节点接收数大于拜占庭最低一致比例1‑(n‑1)/3,然后累计广播∑((1‑(n‑1)/3)*N)

【技术特征摘要】
1.基于参与度的记账打块方法,包括如下步骤:(1)广播网络中的所有节点,各节点基于在网络中的参与度进行投票;(2)将节点A所投的票经过私钥签名后发送至网络,网络上其他节点通过A节点公钥进行签名验证;(3)通过验证后若符合实际情况,便采纳A节点的投票,网络其他节点收集到所有类似A的节点投票后进行统计;(4)网络会向上和向下各广播一层,确保每层节点接收数大于拜占庭最低一致比例1-(n-1)/3,然后累计广播∑((1-(n-1)/3)*N)3,当N等于10时,得票最高的57个节点达成一致,57个胜出节点按得票数的排序顺序开始打块;(5)打块开始时,先将当前区块周期内的所有交易进行打包,统计交易总量,打造区块,并使用本节点私钥进行签名;(6)签名完成后节点将区块广播到网络上,网络上各节点接收到区块时,将对该区块进行验证;(7)验证通过后,加入本地区块队列的末尾,如果验证无效,将进行丢弃;(8)打块结束后,分配打块所得收益。2.根据权利要求1所述的基于参与度的记账打块方法,其特征在于步骤(6)中的验证区块的方法是先使用该节点公钥对该区块签名进行验证,签名验证通过时将对该区块进行拆包验证,对区块内所包含的交易进行逐笔验证。3.根据权利要求1所述的基于参与度的记账打块方法,其特征在于步骤(7)中若出现区块校验通过,但却不属于本地区块链条上区块时,将区块放入孤块池中。4.根...

【专利技术属性】
技术研发人员:杨税令
申请(专利权)人:厦门本能管家科技有限公司
类型:发明
国别省市:福建,35

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

1