一种基于公有区块链的共识算法、设备及存储介质制造技术

技术编号:20993020 阅读:42 留言:0更新日期:2019-04-29 22:52
本发明专利技术公开了一种基于公有区块链的共识算法、设备及存储介质,其中,所述算法包括:获取区块链的当前区块高度,并依据区块高度判断是否满足选取记账者选取条件;如果满足记账者选取条件,获取全网主节点列表并选取列表中在线时间大于预设天数的主节点加入记账者候选列表;对记账者候选列表中的节点进行排序;在排序后的记账者候选列表中随机选择N个节点作为记账者;N个记账者轮流生产区块;N个记账者完成一轮区块生产后重复上述步骤。本发明专利技术使得公有区块链的共识算法能同时满足安全、去中心化、及性能的要求。

A Consensus Algorithms, Equipment and Storage Medium Based on Public Block Chain

The invention discloses a consensus algorithm, equipment and storage medium based on public block chain, in which the algorithm includes: obtaining the current block height of the block chain and judging whether the selection condition of the selected bookkeeper is satisfied according to the block height; if the selection condition of the bookkeeper is satisfied, obtaining the list of the main nodes of the whole network and selecting the main nodes in the list whose online time is longer than the preset number of days. Join the candidate list of bookkeepers; sort the nodes in the candidate list of bookkeepers; randomly select N nodes as bookkeepers in the sorted candidate list of bookkeepers; N bookkeepers rotate to produce blocks; N bookkeepers repeat the above steps after completing a round of block production. The invention enables the consensus algorithm of the public block chain to meet the requirements of security, decentralization and performance at the same time.

【技术实现步骤摘要】
一种基于公有区块链的共识算法、设备及存储介质
本专利技术涉及区块链
,尤其涉及一种基于公有区块链的共识算法、设备及存储介质。
技术介绍
现有典型公有区块链代表有比特币、以太坊、EOS、比特股,它们所采用的共识算法分别是POW(ProofofWork)、DPOS(DelegatedProofofStake)类型的。比特币、以太坊采用的是POW共识算法,这种共识算法优点是完全去中心化的工作方式,每个节点都可以产生区块,这样同时带来了很明显的缺点:1)、成本高,记账者需要耗费大量的硬件、电力成本来产块,投入一般要达到上千万;2)、效率低,每秒能处理交易数据只有7笔左右,这样的交易量完全无法满足许多商业区块链应用软件的要求。EOS采用的是DPOS共识算法,这种共识算法优点是处理交易量速度快,每秒处理交易量能达到2000笔左右。为了达到这个要求,采用的是半去中心化的工作方式,通过投票选取出来21个超级节点,由它们产生区块。这种共识算法缺点:1)、违背了公有链的去中心化精神;2)、容易遭受到DDOS攻击,只要攻击这21个超级节点,那么整个区块链网络将无法产生区块,导致无法正常工作;3)、硬件配置要求非常高,超级节点每台服务器的价格甚至要高达几十万元人民币;4)、EOS并不完全属于公有链,处于公有链和联盟链之间的一种链。比特股采用的也是DPOS共识算法,它跟EOS的DPOS共识算法非常类似。不同之处在于,通过投票选取出来是101个共识节点,其它的基本都是一样,因此它的缺点和EOS也基本相同。即现有的共识算法不能同时满足安全、去中心化、及性能的要求。因此,现有技术还有待发展。
技术实现思路
鉴于上述现有技术的不足之处,本专利技术的目的在于提出一种基于公有区块链的共识算法、设备及存储介质,旨在使得公有区块链的共识算法能同时满足安全、去中心化、及性能的要求。为实现上述目的,本专利技术采取了以下技术方案:一种基于公有区块链的共识算法,其中,包括下述步骤:S10,获取区块链的当前区块高度,并依据区块高度判断是否满足选取记账者选取条件;S20,如果满足记账者选取条件,获取全网主节点列表并选取列表中在线时间大于预设天数的主节点加入记账者候选列表;S30,对记账者候选列表中的节点进行排序;S40,在排序后的记账者候选列表中随机选择N个节点作为记账者;S50,N个记账者轮流生产区块;S60,N个记账者完成一轮区块生产后重复步骤S10至S60。优选地,所述预设天数大于等于3天;所述N为9到21之间的奇数。优选地,所述记账者选取条件的判断步骤为:S11,用区块链的当前区块高度对N求余;S12,如果求余结果为0,则判断为满足选取条件;S13,如果求余结果不为0,则判断为不满足选取条件。优选地,所述对记账者候选列表中的主节点进行排序采用得分值从高到低进行排序,所述得分值的计算包括下述步骤:S31,用主节点抵押地址、当前链最新区块的时间两个数据生成一个SAH256的HASH值,所述主节点抵押地址用公钥经过Base58生成;S32,对所述HASH值每4个字节作为一段数据,将该段数据传给转化函数将HASH值转化32位整数数据;S33,重复步骤S32,直到转化完整个HASH数据,得到一个转化成32位整数的数组,再对这数组的各个整数相加得到一个最终256位整数,将所述256位整数作为主节点的得分值。优选地,所述在记账者候选列表中随机选择N个节点作为记账者选取步骤为:S41,用Xorshift随机算法打乱记账者候选列表;S42,从打乱后记账者候选列表中取前N个节点作为记账者;优选地,所述Xorshift随机算法打乱记账者候选列表包括如下步骤:S411,产生一个64位常数K,所述常数K由三个输入因子运算得来,分别是:一个任意整数k1、记账者候选列表中一交换对象的索引i、一个固定数K2;S412,对常数K自身不同部位的进行移位、异或,再做乘法运算,使该数变成一个随机数而获得随机性;S413,用随机数对固定数K2求余,求余结果加i得另一个索引j;S414,将索引i,j对应的对象进行交换;S415,循环上述步骤,直到交换完整个记账者候选列表。优选地,还包括区块的验证,验证步骤如下:S71,判断区块中的nBits、nNonce是否为零;如果不为零,拒绝此区块,否则继续下面步骤;S72,获取本地时间,用本地时间减去区块中的时间,判断结果是否大于负的“产块间隔时间+n秒”,n≥2,如果大于,拒绝此区块,否则继续下面步骤;S73,用区块中的主节点的抵押地址验证区块中的签名值,验证不通过,拒绝此区块,否则继续下面步骤;S74,如果节点当前处于同步区块阶段,则直接至此验证完成,否则继续下面步骤;S75,用区块中的时间减去选取N个记账者所记录时间,得到的结果再除以产块时间间隔,除后得到的结果再对N求余,由此得到一个索引;S76,通过所述索引在本地N个记账者列表中找到主节点的抵押地址,判断它是否等于区块中的主节点的抵押地址,如果不相等,拒绝此区块,否则接受此区块。本专利技术还提出一种基于公有区块链的共识设备,其中,所述基于公有区块链的共识设备包括存储器、处理器及存储在所述存储器中并被配置为由所述处理器执行的计算机程序,所述处理器执行所述计算机程序时,实现上述的共识算法。本专利技术还提出一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机程序,所述计算机程序被执行时实现上述的共识算法。本专利技术的基于公有区块链的共识算法、设备及存储介质,通过在主节点列表中随机选取N个节点作为记账者,N个记账者轮流生产区块完成后再重新随机选取记账者,使得公有区块链的共识算法能同时满足安全、去中心化、及性能的要求。附图说明为了更清楚地说明本专利技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图示出的结构获得其他的附图。图1为本专利技术基于公有区块链的共识算法第一实施方式的流程示意图;图2为本专利技术基于公有区块链的共识算法中记账者选取条件判断的流程示意图;图3为本专利技术记账者候选列表中主节点得分值计算的流程示意图;图4为本专利技术记账者候选列表中随机选取记账者的流程示意图;图5为本专利技术随机算法打乱记账者候选列表的流程示意图;图6为本专利技术基于公有区块链的共识算法中区块验证的流程示意图。具体实施方式下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本专利技术的一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。请参考图1,图1为本专利技术基于公有区块链的共识算法的流程,包括下述步骤:S10,获取区块链的当前区块高度,并依据区块高度判断是否满足选取记账者选取条件;S20,如果满足记账者选取条件,获取全网主节点列表并选取列表中在线时间大于预设天数的主节点加入记账者候选列表;S30,对记账者候选列表中的节点进行排序;S40,在排序后的记账者候选列表中随机选择N个节点作为记账者;S50,N个记账者轮流生产本文档来自技高网
...

【技术保护点】
1.一种基于公有区块链的共识算法,其特征在于,包括下述步骤:S10,获取区块链的当前区块高度,并依据区块高度判断是否满足选取记账者选取条件;S20,如果满足记账者选取条件,获取全网主节点列表并选取列表中在线时间大于预设天数的主节点加入记账者候选列表;S30,对记账者候选列表中的节点进行排序;S40,在排序后的记账者候选列表中随机选择N个节点作为记账者;S50,N个记账者轮流生产区块;S60,N个记账者完成一轮区块生产后重复步骤S10至S60。

【技术特征摘要】
1.一种基于公有区块链的共识算法,其特征在于,包括下述步骤:S10,获取区块链的当前区块高度,并依据区块高度判断是否满足选取记账者选取条件;S20,如果满足记账者选取条件,获取全网主节点列表并选取列表中在线时间大于预设天数的主节点加入记账者候选列表;S30,对记账者候选列表中的节点进行排序;S40,在排序后的记账者候选列表中随机选择N个节点作为记账者;S50,N个记账者轮流生产区块;S60,N个记账者完成一轮区块生产后重复步骤S10至S60。2.根据权利要求1所述的基于公有区块链的共识算法,其特征在于,所述预设天数大于等于3天;所述N为9到21之间的奇数。3.根据权利要求1所述的基于公有区块链的共识算法,其特征在于,所述记账者选取条件的判断步骤为:S11,用区块链的当前区块高度对N求余;S12,如果求余结果为0,则判断为满足选取条件;S13,如果求余结果不为0,则判断为不满足选取条件。4.根据权利要求1所述的基于公有区块链的共识算法,其特征在于,所述对记账者候选列表中的主节点进行排序采用得分值从高到低进行排序,所述得分值的计算包括下述步骤:S31,用主节点抵押地址、当前链最新区块的时间两个数据生成一个SAH256的HASH值,所述主节点抵押地址用公钥经过Base58生成;S32,对所述HASH值每4个字节作为一段数据,将该段数据传给转化函数将HASH值转化32位整数数据;S33,重复步骤S32,直到转化完整个HASH数据,得到一个转化成32位整数的数组,再对这数组的各个整数相加得到一个最终256位整数,将所述256位整数作为主节点的得分值。5.根据权利要求1所述的基于公有区块链的共识算法,其特征在于,所述在记账者候选列表中随机选择N个节点作为记账者选取步骤为:S41,用Xorshift随机算法打乱记账者候选列表;S42,从打乱后记账者候选列表中取前N个节点作为记账者。6.根据权利要求5所述的基于公有区块链...

【专利技术属性】
技术研发人员:涂小强
申请(专利权)人:深圳银链科技有限公司
类型:发明
国别省市:广东,44

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

1