区块链共识推举方法技术

技术编号:21634110 阅读:32 留言:0更新日期:2019-07-17 12:48
本申请涉及区块链共识推举方法,包括以下步骤:在推举周期内区块链各节点采用随机函数分别产生随机数;区块链各节点间进行随机数同步,使得各节点具有相同的随机数;区块链各节点分别对同步后随机数进行处理,通过计算选取记账者,在不存在相同记账者时推举该记账者,在存在相同记账者时通过一次函数求出记账者且推举该记账者。在设置的推举周期内,区块链中所有节点均会在该推举周期内生成随机数,提高了数据篡改的难度,增加了数据安全性;且由于采用随机函数分别产生随机数,从根源上保证了随机性;在存在相同记账者时采用一次函数求出记账者,一方面更加充分保证了随机性,另一方面降低了算法复杂度,节约了计算资源,提升了计算效率。

Block Chain Consensus Selection Method

【技术实现步骤摘要】
区块链共识推举方法
本申请涉及区块链领域,特别是涉及区块链共识推举方法。
技术介绍
区块链(Blockchain)是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式,区块链的一种应用实现是比特币,它本质上是一个去中心化的数据库,同时作为比特币的底层技术,是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了一批次比特币网络交易的信息,用于验证其信息的有效性(防伪)和生成下一个区块。区块链作为一种特殊的分布式数据库,以其去中心化、开放性、自治性和不可篡改、匿名等特性,逐渐受到各行业广泛关注,其中,去中心化、不可篡改的属性为解决各行业的信任机制提供可能,改变了诸多现有行业的基础架构,并在跨境支付、费用结算、数字票据等领域得到广泛应用。当前区块链主要分为:公有链、联盟链和私有链,其中,公有链中的节点可以按照特定规则自由进入系统读取数据、发送交易信息,节点之间通过共识机制开展工作;联盟链由若干机构共同参与管理,其中节点被预先设定,每个块的生成由所有预选节点共同决定;私有链对单独的个人或实体开放,其写入权限由某个组织和机构控制,由于参与的节点有限且可控,因此私有链具有交易速度快、隐私保护好和交易成本低等特性。除公有链解决了信任机制外,联盟链和私有链均需建立一定的信任机制,且带有中心化的特征,而公有链现有的工作量证明(ProofofWork,POW)方法对算力要求较高,同样造成公有链性能较低。公开号为CN107347009A的中国专利给出了区块链一维随机数共识推举方法,包括:联盟内所有特定节点分别产生随机数xi;所有特定节点之间互相同步随机数xi;每个特定节点分别计算全部随机数的平均值M;每个特定节点中,分别通过比较平均值M与随机数xi之间的距离,取距离最小的持有随机数xi的节点Pi作为候选记账者;所有特定节点之间相互同步候选记账者及参与平均值计算的节点数量值,将各节点推举出的相同的候选记账者作为记账者。公开号为CN107493173A的中国专利给出了一种区块链随机数共识推举记账者的方法,包括:联盟内所有特定节点分别产生随机数xi;所有特定节点之间互相同步随机数xi;每个特定节点对于所有随机数xi计算函数f1获得全部随机数的基准值M;每个特定节点中,分别通过基准值M与随机数xi通过函数f2计算候选记账者函数值J,取f2(xi,M)满足预设特征的持有随机数xi的节点Pi作为候选记账者;所有特定节点之间相互同步候选记账者,并推举出记账者。但是,上述两专利文献中只考虑推举周期内,区块链中产生随机数的节点,数据篡改的难度较低,数据安全性不佳;且选用离均值M最近的节点推举为记账者,随机性存在漏洞;当推举出记账者相同时,上述两专利文献通过递归求出最终的记账者,计算耗费资源较多。
技术实现思路
基于此,有必要提供一种区块链共识推举方法。一种区块链共识推举方法,其包括以下步骤:S100,在推举周期内区块链各节点采用随机函数分别产生随机数;S200,区块链各节点间进行随机数同步,使得各节点具有相同的随机数;S300,区块链各节点分别对同步后随机数进行处理,通过计算选取记账者,在不存在相同记账者时推举该记账者,在存在相同记账者时通过一次函数求出记账者且推举该记账者。上述区块链共识推举方法在设置的推举周期内,区块链中所有节点均会在该推举周期内生成随机数,提高了数据篡改的难度,增加了数据安全性;且由于采用随机函数分别产生随机数,从根源上保证了随机性,进一步增加了数据安全性;在存在相同记账者时采用一次函数求出记账者,而非选用离均值最近或最远的函数值作为推举记账者,一方面更加充分保证了随机性,另一方面降低了算法复杂度,节约了计算资源,提升了计算效率。进一步地,在其中一个实施例中,步骤S300还包括:采用被推举的记账者作为候选记账者,区块链的任意节点对候选记账者进行校验,若存在不同的候选记账者则本次推举失败,返回执行步骤S100,若候选记账者一致,则本次推举成功。在其中一个实施例中,步骤S300中,采用计算公式通过计算选取记账者。在其中一个实施例中,所述计算公式包括:Ci=Xi+(Xi-M)2;其中,Xi为区块链的节点Bi生成的随机数,M为同步后随机数且为同一推举周期内所有随机数的均值,Ci为区块链的节点Bi对应的计算结果,选择Ci最小值对应节点Bi为记账者。在其中一个实施例中,Ci出现相同最小值时且相同最小值的个数为Q,随机选取Q个相同最小值中的一个Ci对应的区块链节点Bi为记账者。在其中一个实施例中,采用一次随机选取函数随机选取Q个相同最小值中第f个Cf,i对应的区块链节点为记账者。在其中一个实施例中,步骤S200中,区块链各节点间通过互相发送数据块进行随机数同步。在其中一个实施例中,所述数据块包括数据块唯一性标识、随机数及其生成时间、及生成随机数的对应区块链的节点标识。在其中一个实施例中,步骤S100具体包括:S110,在区块链节点Bi间推举记账者的周期为T,第一次推举记账者的起始时间为t;其中,i=1,2,3,…,N,N表示区块链中所有区块节点的个数;S120,在推举周期T内区块链中各节点Bi分别采用随机函数生成范围大于等于0且小于1的随机数Xi;步骤S200具体包括:S210,区块链各节点Bi间互相发送数据块Di,通过Di实现随机数同步,其中,Di由数据块唯一性标识Idi、随机数Xi、Xi的生成时间ti及生成随机数Xi的对应区块链节点标识Bi组成;S220,在同步数据块Di的过程中,除节点Bi外所有节点均收到数据块Di,节点Bi同样会收到其他N-1个节点同步的数据块,使得各节点中均有周期T内区块链各节点产生的所有N个数据块;步骤S300具体包括:S310,若区块链各节点在周期T内接收到其他节点同步的属于同一周期T的数据块个数为N-1,满足各节点中在同一推举周期T内存在的生成随机数共N个,则执行步骤S320,否则返回执行步骤S120;S320,采用公式计算节点中在同一推举周期T内生成随机数的平均值其中N为区块链节点个数,Xk为区块链的节点Bk生成的随机数;S330,区块链节点Bi根据本节点生成随机数Xi,计算Ci=Xi+(Xi-M)2,且选择Ci最小值对应节点Bi为记账者;其中,若Ci出现相同最小值时,且相同最小值的个数为Q,则采用函数f=rand()%Q随机选取Q个相同最小值C1,i,…,CQ,t中第f个Cf,i对应的区块链节点为记账者;S340,区块链中任意节点对所有节点共同推举出的候选记账者Bj,其中1≤j≤N且j为正整数,进行校验,若存在不同的候选记账者则本次推举失败,返回执行步骤S120,若候选记账者一致,则本次记账者推举成功。在其中一个实施例中,步骤S220包括:S221,区块链的节点Bi验证接收到其他节点同步的数据块的合法性;S222,区块链各节点分别核对节点中同一周期T内的数据块数量是否一致,是则执行步骤S310,否则返回执行步骤S120。在其中一个实施例中,步骤S221包括:验证数据块中随机数是否在大于等于0且小于1的范围内,及验证数据块中随机数的生成时间是否均属于同一推举周期T,均是执行步骤S222,任一为否则返回执行步骤S120。附图说明图1为本申请一实施例的流程示意图。图本文档来自技高网
...

【技术保护点】
1.一种区块链共识推举方法,其特征在于,包括以下步骤:S100,在推举周期内区块链各节点采用随机函数分别产生随机数;S200,区块链各节点间进行随机数同步,使得各节点具有相同的随机数;S300,区块链各节点分别对同步后随机数进行处理,通过计算选取记账者,在不存在相同记账者时推举该记账者,在存在相同记账者时通过一次函数求出记账者且推举该记账者。

【技术特征摘要】
1.一种区块链共识推举方法,其特征在于,包括以下步骤:S100,在推举周期内区块链各节点采用随机函数分别产生随机数;S200,区块链各节点间进行随机数同步,使得各节点具有相同的随机数;S300,区块链各节点分别对同步后随机数进行处理,通过计算选取记账者,在不存在相同记账者时推举该记账者,在存在相同记账者时通过一次函数求出记账者且推举该记账者。2.根据权利要求1所述区块链共识推举方法,其特征在于,步骤S300中,采用计算公式通过计算选取记账者。3.根据权利要求2所述区块链共识推举方法,其特征在于,所述计算公式包括:Ci=Xi+(Xi-M)2;其中,Xi为区块链的节点Bi生成的随机数,M为同步后随机数且为同一推举周期内所有随机数的均值,Ci为区块链的节点Bi对应的计算结果,选择Ci最小值对应节点Bi为记账者。4.根据权利要求3所述区块链共识推举方法,其特征在于,Ci出现相同最小值时且相同最小值的个数为Q,随机选取Q个相同最小值中的一个Ci对应的区块链节点Bi为记账者。5.根据权利要求4所述区块链共识推举方法,其特征在于,采用一次随机选取函数随机选取Q个相同最小值中第f个Cf,i对应的区块链节点为记账者。6.根据权利要求1所述区块链共识推举方法,其特征在于,步骤S200中,区块链各节点间通过互相发送数据块进行随机数同步。7.根据权利要求6所述区块链共识推举方法,其特征在于,所述数据块包括数据块唯一性标识、随机数及其生成时间、及生成随机数的对应区块链的节点标识。8.根据权利要求1所述区块链共识推举方法,其特征在于,步骤S100具体包括:S110,在区块链节点Bi间推举记账者的周期为T,第一次推举记账者的起始时间为t;其中,i=1,2,3,…,N,N表示区块链中所有区块节点的个数;S120,在推举周期T内区块链中各节点Bi分别采用随机函数生成范围大于等于0且小于1的随机数Xi;步骤S200具体包括:S210,区块链各节点Bi间互相发...

【专利技术属性】
技术研发人员:宋强林志波索智鑫卢廷杰陆宏治劳卫伦洪梓铭
申请(专利权)人:广州供电局有限公司
类型:发明
国别省市:广东,44

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

1