一种基于随机数映射的区块链共识方法技术

技术编号:23983558 阅读:105 留言:0更新日期:2020-04-29 12:27
本发明专利技术请求保护一种基于随机数映射的区块链共识方法,用于高效、公正的选取记账节点,算法包含监督节点的选取,均匀分布随机数的产生与计算,记账节点的选取这三个步骤;所述监督节点负责计算链上每个参与记账的节点产生的随机数,然后选出记账节点,随后向其他节点发送广播,公布哪个节点是下一个记账节点;所述均匀分布随机数的计算结果对应参与记账的节点的id,即为下一个记账节点的id;所述记账节点负责链上数据的记录与维护;本发明专利技术基于随机数映射,对传统共识算法中记账人的选取方式进行改进,提出一种基于随机数映射的共识机制,能够更加高效、更加公正的选取记账节点,改善现在区块链中的社会分层现象,大幅度提高共识效率,抵制中心化的趋势。

A consensus method of blockchain based on random number mapping

【技术实现步骤摘要】
一种基于随机数映射的区块链共识方法
本专利技术属于计算机领域,尤其涉及一种基于随机数映射的区块链共识方法。
技术介绍
如何在分布式系统中高效地达成共识是区块链乃至分布式计算领域的重要研究问题,与社会系统中“民主”和“集中”的对立关系相似,决策权越分散的系统达成共识的效率越低,但系统稳定性和满意度越高;而决策权越集中的系统更易达成共识,但同时更易出现专制和独裁。区块链技术的核心优势之一,就是能够在决策权高度分散的去中心化系统中,使得各节点高效地针对区块数据的有效性和一致性达成共识。由于点对点网络存在较高的网络延迟,各个节点所观察到的事务先后顺序不可能完全一致。因此,区块链系统需要设计一种机制,对在相近时间内发生的事务的先后顺序进行共识,这种对一个时间窗口内的事务的先后顺序达成共识的算法被称为“共识机制”。共识机制的作用是保障系统的一致性,并保证系统安全、稳定的运行。共识机制描述了区块链系统的核心工作——节点竞争记账,即产生新区块的过程。工作量证明依赖算力进行Hash运算,这一过程即为挖矿。而与工作量证明机制比拼算力不同,权益证明(proofofstake,PoS)是根据钱包中的货币数目及货币存在天数来确定一个新的度量单位,即“币龄”来实现的,它根据币龄大小的关系降低了计算机进行Hash计算的难度,一定程度上缓解了资源浪费问题。随后又出现了PoS的进化版本——行动证明(PoA),在权益持有者中选取挖块者,这种共识机制又大大缩短了达到共识的时间。然而,PoW机制和PoS机制几乎是挖块成功的节点独享获得的交易费,而其余付出过工作量或者币龄的节点一无所得。在这种情况下,区块链中的大节点更容易发起51%攻击,获得全部收益进而控制整个区块链。不仅如此,这样还可能加剧区块链中“富者更富,穷者更穷”的现象,不利于区块链的健康持续发展。虽然共识机制不断进化,达到共识的时间也不断缩短,并且还能够实现一定的扩展性,但目前的共识机制并不能支持毫秒级的数据上链,而且不能公平合理的分配记账权,在PoW中,计算出符合条件的Hash值节点获得全部收益;在PoS中,币龄越大的人获得挖块权并获得全部收益的概率越大;对于PoW而言,如果某个节点掌握了超过全网50%的算力,它就有可能操纵整个区块链从而获得全部收益;对于PoS而言,如果某个节点掌握了超过了全网50%的币龄,它就有可能瓜分所有的收益。
技术实现思路
本专利技术旨在解决以上现有技术的问题。提出了一种基于随机数映射的区块链共识方法。本专利技术的技术方案如下:一种基于随机数映射的区块链共识方法,其包括以下步骤:步骤1、将区块链上的节点划分为三种角色包括:所有参与节点、监督节点以及记账节点,并从参与节点中选取监督节点;其中,所有参与节点是指区块链系统中所有功能正常的节点,能够参与整个记账过程,能够担任监督节点与记账节点;监督节点,是由链上的参与节点轮流担任,用于计算收到的随机数,然后选出记账节点,再将随机数累加后,向其他节点发送广播,公布哪个节点是下一个记账节点;记账节点,从所有参与节点中选取产生,负责链上数据的记录与维护,为了防止节点成为“中心”,保证每个结点的担任记账节点的概率相等;步骤2、除监督节点外,其它每个参与节点都通过线性同余算法生成随机数,并发送到监督节点;监督节点接收每个参与节点利用线性同余算法产生的随机数,并利用随机数映射算法进行计算,得到计算结果,并广播至链上所有参与节点;步骤3、采用随机数映射算法产生记账节点,某个参与节点收到的映射到自己id的消息数量超过监督节点数的设定百分比阈值,就广播一条记账节点任职消息并开始本轮记账工作,进一步的,所述步骤2每个参与节点都通过线性同余算法生成随机数,具体包括:线性同余算法含有4个参数:模数m(m>0),乘数a(0≤a<m),增量c(0≤c<m),初值即种子X0(0≤X0<m),使用迭代公式:Xn+1=(a·Xn+c)modm线性同余法的最大周期是m,但一般情况下会小于m,要使周期达到最大,应该满足以下条件:(1)c和m互为质数;(2)m的所有质因子的积能整除a-1;(3)若m是4的倍数,则a-1也是;(4)a,c,x0(初值,一般即种子)都比m小;(5)a,c是正整数;得到随机数序列{Xn},如果m,a,c,X0都是整数,则产生的随机数序列{Xn}也都是整数,且0≤Xn<m,只要满足条件0≤Xn,Xn+1<m,则由它产生的序列一定具有周期性,a,c和m的取值是产生高质量随机数的关键,对于一个随机数算法来说,只要产生的随机数序列的周期充分长,就能具有在(0,1)上均匀分布的及相互独立的性质,为使随机数序列的周期尽可能大,m应尽可能大,选m接近等于计算机能表示的最大整数。进一步的,所述步骤3采用随机数映射算法产生记账节点具体包括:每一个节点通过Liapunov定理与概率密度函数得到这个值存在于正态分布对应的哪一个节点区间之内,然后映射到已发送随机数节点的顺序id,随后广播一条消息公告自己的结果。本专利技术的优点及有益效果如下:1、本专利技术有助于使用随机数映射算法为区块链系统设计新的共识机制;本专利技术采用随机选取记账节点的方式,改善现有区块链的社会分层现象,大幅度提高共识效率,抵制系统中心化的趋势。2、与其他解决方案不同,本专利技术不会大量地消耗算力,不会加剧区块链中“富者更富,穷者更穷”的现象;线性同余算法产生的随机数很好的满足均匀分布的特性,产生的随机数无法被预测;记账节点由所有参与节点共同选取,不受某些节点的控制,保证了整个系统的安全与公正。本专利技术主要创新点为:利用线性同余算法产生均匀分布随机数;利用随机数映射算法产生记账节点。这种方式能保证公平性(节点的选取不会受到某一节点的影响,因为每个节点都会产生随机数,谁也影响不了谁);同时,不会造成算力的浪费(pow算法会消耗大量算力计算hash值);不会加剧区块链中“富者更富,穷者更穷”的现象(pow中,算力越大,记账概率越高;pos币龄越大的人获得挖块权并获得全部收益的概率越大)。附图说明图1是本专利技术提供优选实施例的系统示意图;图2是本专利技术的算法结构图;图3是本专利技术的算法时序图。具体实施方式下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、详细地描述。所描述的实施例仅仅是本专利技术的一部分实施例。本专利技术解决上述技术问题的技术方案是:如图1所示,本实施例中的基于随机数映射的区块链共识机制,包括:将区块链上的节点划分为三种角色;将记账节点的选取过程划分为三个步骤;使用线性同余算法生成均匀分布的随机数;使用Liapunov定理与概率密度函数作为随机数的映射算法选取记账节点。首先,本专利技术将区块链上的节点划分为三种角色包括:所有参与节点、监督节点以及记账节点;其中,所有参与节点是指区块链系统中所有功能正常的节点,能够本文档来自技高网
...

【技术保护点】
1.一种基于随机数映射的区块链共识方法,其特征在于,包括以下步骤:/n步骤1、将区块链上的节点划分为三种角色包括:所有参与节点、监督节点以及记账节点,并从参与节点中选取监督节点;其中,所有参与节点是指区块链系统中所有功能正常的节点,能够参与整个记账过程,能够担任监督节点与记账节点;监督节点,是由链上的参与节点轮流担任,用于计算收到的随机数,然后选出记账节点,再将随机数累加后,向其他节点发送广播,公布哪个节点是下一个记账节点;记账节点,从所有参与节点中选取产生,负责链上数据的记录与维护,为了防止节点成为“中心”,保证每个结点的担任记账节点的概率相等;/n步骤2、除监督节点外,其它每个参与节点都通过线性同余算法生成随机数,并发送到监督节点;监督节点接收每个参与节点利用线性同余算法产生的随机数,并利用随机数映射算法进行计算,得到计算结果,并广播至链上所有参与节点;/n步骤3、采用随机数映射算法产生记账节点,某个参与节点收到的映射到自己id的消息数量超过监督节点数的设定百分比阈值,就广播一条记账节点任职消息并开始本轮记账工作。/n

【技术特征摘要】
1.一种基于随机数映射的区块链共识方法,其特征在于,包括以下步骤:
步骤1、将区块链上的节点划分为三种角色包括:所有参与节点、监督节点以及记账节点,并从参与节点中选取监督节点;其中,所有参与节点是指区块链系统中所有功能正常的节点,能够参与整个记账过程,能够担任监督节点与记账节点;监督节点,是由链上的参与节点轮流担任,用于计算收到的随机数,然后选出记账节点,再将随机数累加后,向其他节点发送广播,公布哪个节点是下一个记账节点;记账节点,从所有参与节点中选取产生,负责链上数据的记录与维护,为了防止节点成为“中心”,保证每个结点的担任记账节点的概率相等;
步骤2、除监督节点外,其它每个参与节点都通过线性同余算法生成随机数,并发送到监督节点;监督节点接收每个参与节点利用线性同余算法产生的随机数,并利用随机数映射算法进行计算,得到计算结果,并广播至链上所有参与节点;
步骤3、采用随机数映射算法产生记账节点,某个参与节点收到的映射到自己id的消息数量超过监督节点数的设定百分比阈值,就广播一条记账节点任职消息并开始本轮记账工作。


2.根据权利要求1所述的一种基于随机数映射的区块链共识方法,其特征在于,所述步骤2每个参与节点都通过线性同余算法生成随机数,具体包括:
线性同余算法含有4个参数:模数m(m>0),乘数a(0≤a&l...

【专利技术属性】
技术研发人员:徐光侠程金伟马创刘俊吴佳健吴乾隆王尧蔡晶周秀秀
申请(专利权)人:重庆邮电大学
类型:发明
国别省市:重庆;50

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

1