一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种高网络性能与安全性的vaPBFT区块链共识方法与流程

2021-12-04 02:24:00 来源:中国专利 TAG:

一种高网络性能与安全性的vapbft区块链共识方法
技术领域
1.本发明公开了一种高网络性能与安全性的vapbft区块链共识方法,具体涉及区块链核心技术中的分布式共识技术。


背景技术:

2.区块链技术是一种分布式技术的典型应用,依靠点对点通信、分布式共识来保障整个区块链网络的可靠高效运行。目前区块链网络的容量限制,能源浪费等问题已经对大规模的区块链产业应用造成制约。共识协议是区块链技术体系中最重要的模块之一,也是各区块链实现中最重要的区别之一。现有的区块链共识协议,在综合考虑交易吞吐量、交易确认时延、确定性、扩展性、安全性、公平性、有效激励等方面,存在难以满足实际产业应用需求的问题。
3.共识算法作为保障区块链落地的最重要最核心的算法,从根本上决定了区块链的性能与特性,也是众多区块链实现的核心区分点。
4.共识算法解决的是分布式系统对某个提案(proposal),大部分节点达成一致意见的过程。
5.对于分布式系统来讲,各个节点通常都是相同的确定性状态机模型(又称为状态机复制问题,state

machine replication),从相同初始状态开始接收相同顺序的指令,则可以保证相同的结果状态。因此,系统中多个节点最关键地是对多个事件的顺序进行共识。


技术实现要素:

6.为了解决上述存在的不足之处及缺点,本发明专利提出了一种高网络性能与安全性的vapbft区块链共识方法。
7.本发明为解决技术问题所采用的技术方案如下:一种高网络性能与安全性的vapbft区块链共识方法,其特征在于,通过无需节点间进行通信的算法,在保证随机性、公平性、有效性的前提下筛选出最终参与共识的节点,缩减最终共识节点网络规模:a.首先将节点类型划分为最终共识节点、候选共识节点、普通服务节点三类,从机制上最终共识节点、候选共识节点会根据算法调度进行分布式共识;而普通服务节点不参与共识,只提供区块链服务;b.最终共识节点与候选共识节点是可以互相转换的,转换时机是每一次节点出块之后;转换依据是节点活力值的消耗与累计情况;c.所谓节点活力值是指节点的交易服务活跃度;指定节点的活力值数值来源于其接收到的客户端交易请求所消耗燃料的累计值;客户端发送交易时,交易信息包含接收此交易的节点标识,同时交易都是签名的,因此后续区块链上各节点都可以免通信而通过计算方式得到一致的活力值累计数据;d.节点活力值的消耗与增加方式为,在节点出块后,将从出块节点扣减当前块中所有交易消耗燃料数量的活力值,将向各节点添加自己接收交易所消耗燃料数量的活力值;e.最终共识节点与候选共识节点的转换规则为,出块后,若出块节点的累计活力值<0,则发生节点轮换,即当前出块共识节点退出最终共识节点清单;同时需要从原
候选共识节点清单中,根据vrf可验证随机函数,随机选择出一个节点累计活力值≥0的节点作为新的共识节点,参与后续共识;f.整个转换过程不需要节点通信,只需大家执行一致的规则;同时在选择新的共识节点时,只要满足了门槛要求,那么所有节点就是平等的;而只要此节点提供了交易服务,就满足了门槛要求;g.在统计意义上,出块消耗的累计活力值 = 所有交易累计生产的活力值,因此可以保证节点出块的公平性和激励的有效性:接收到的交易越多,最终的出块越多;同时只要参与业务发起就有机会参与出块记账,这样会有效激发区块链生态的活力。
8.优化的,在选定出块共识节点后,基于pbft算法,优化网络抗攻击性和出块节点的随机性:h.使用pbft算法保证共识算法的基本性能,包括交易吞吐量、交易确认时延、区块链免分叉;i.引入vrf可验证随机函数,根据当前出块内容,来保证下一出块节点的公平性和随机性;j.引入抗攻击参数,配合vrf可验证随机函数,将下一出块节点设置为一个范围,提高出块节点的不可预测性,进而提高网络抗攻击性;而抗攻击参数可以在抗攻击能力与网络负载压力之间进行平衡;k.在这一阶段的共识过程中,所有节点是完全平等的,保证共识网络的去中心化。
9.本发明所达到的有益效果是:本发明提供了一种提高网络性能与安全性的vapbft区块链共识算法,通过在保证参与节点公平、随机、多劳多得的前提下,缩减最终共识的网络规模,来实现区块链网络规模的可扩展性,提高了网络性能;同时基于pbft算法,引入可验证随机函数以及抗攻击参数,来提高区块链共识网络的随机公平性和抗网络攻击能力。vapbft算法在通信需求、计算需求上,都比较小且可控,不会产生大量能源和资源的消耗,相比现有的区块链共识算法也更为绿色环保。
附图说明
10.附图用来提供对本发明的进一步理解,并且构成说明书的一部分,与本发明的实施例一起用于解释本发明,并不构成对本发明的限制。在附图中:图1是本发明的vapbft共识步骤流程图。
具体实施方式
11.一种高网络性能与安全性的vapbft区块链共识方法,其特征在于,通过无需节点间进行通信的算法,在保证随机性、公平性、有效性的前提下筛选出最终参与共识的节点,缩减最终共识节点网络规模:a.首先将节点类型划分为最终共识节点、候选共识节点、普通服务节点三类,从机制上最终共识节点、候选共识节点会根据算法调度进行分布式共识;而普通服务节点不参与共识,只提供区块链服务;b.最终共识节点与候选共识节点是可以互相转换的,转换时机是每一次节点出块之后;转换依据是节点活力值的消耗与累计情况;c.所谓节点活力值是指节点的交易服务活跃度;指定节点的活力值数值来源于其接收到的客户端交易请求所消耗燃料的累计值;客户端发送交易时,交易信息包含接收此交易的节点标识,同时交易都是签名的,因此后续区块链上各节点都可以免通信而通过计算方式得到一致的活力值累计数据;
d.节点活力值的消耗与增加方式为,在节点出块后,将从出块节点扣减当前块中所有交易消耗燃料数量的活力值,将向各节点添加自己接收交易所消耗燃料数量的活力值;e.最终共识节点与候选共识节点的转换规则为,出块后,若出块节点的累计活力值<0,则发生节点轮换,即当前出块共识节点退出最终共识节点清单;同时需要从原候选共识节点清单中,根据vrf可验证随机函数,随机选择出一个节点累计活力值≥0的节点作为新的共识节点,参与后续共识;f.整个转换过程不需要节点通信,只需大家执行一致的规则;同时在选择新的共识节点时,只要满足了门槛要求,那么所有节点就是平等的;而只要此节点提供了交易服务,就满足了门槛要求;g.在统计意义上,出块消耗的累计活力值 = 所有交易累计生产的活力值,因此可以保证节点出块的公平性和激励的有效性:接收到的交易越多,最终的出块越多;同时只要参与业务发起就有机会参与出块记账,这样会有效激发区块链生态的活力;在选定出块共识节点后,基于pbft算法,优化网络抗攻击性和出块节点的随机性:h.使用pbft算法保证共识算法的基本性能,包括交易吞吐量、交易确认时延、区块链免分叉;i.引入vrf可验证随机函数,根据当前出块内容,来保证下一出块节点的公平性和随机性;j.引入抗攻击参数,配合vrf可验证随机函数,将下一出块节点设置为一个范围,提高出块节点的不可预测性,进而提高网络抗攻击性;而抗攻击参数可以在抗攻击能力与网络负载压力之间进行平衡;k.在这一阶段的共识过程中,所有节点是完全平等的,保证共识网络的去中心化。
12.实施例1如图1所示,一种高网络性能与安全性的vapbft区块链共识方法,其特征在于,包括分析区块链层次结构和资源争用情况,确定解决问题的目标方向;总体实施步骤分为三个大阶段,第一阶段,客户端app通过提交包含节点id的交易到目标节点,锁定目标节点的活力值服务收益;第二阶段,根据vrf可验证随机函数和节点活力值nodeactivity,筛选出最终参与共识的节点清单;第三阶段,基于vrf可验证随机函数和pbft实用拜占庭容错算法,完成最终的去中心化分布式共识;具体步骤如下:步骤101,app提交包含节点标识的交易请求到区块链节点,该节点可以是任何类型的区块链节点;交易请求将通过广播算法,使用p2p通信传输到所有区块链共识和候选节点;步骤201,区块链节点对共识算法执行环境初始化,包括五个节点清单的初始化:参与节点清单、共识节点清单、候选共识节点清单、普通服务节点清单、本轮出块节点清单;其中

参与节点清单=共识节点清单 候选共识节点清单 普通服务节点清单

本轮出块节点清单∈共识节点清单

所有清单都是按照节点标识(nodeid)升序排列的;步骤202,根据上一区块哈希值计算自己是否是本次合法出块节点:pos=int(vrf(prevblockhash))%len(consensusnodeslist),minerslist=consensusnodeslist[pos

antiattack,pos antiattack],currnode∈minerslist;步骤203,从交易池获得待上链交易,打包出块步骤204,将准备好的块发送到其他共识节点准备共识步骤301,各共识节点接收所有合法出块节点发送的待共识区块并按出块人形成升序清单,readyblocklist;步骤302,根据vrf随机函数从待共识区块清单中确定最终的待共识区块:pos= int(vrf(prevblockhash))% len(readyblocklist),readyblock= readyblocklist[pos];步骤303,执行常规交易;步骤304,执行共识节点轮换交易,计算当前出块节点(minernode)出块后的活力值newmineractivity = oldmineractivity
ꢀ–ꢀ
blockgas, 若newmineractivity < 0,则将miner移出consensusnodeslist;在此基础上,选择新的出块节点:pos = int(vrf(prevblockhash))% len(candidatenodeslist),如果(candidatenodeslist[pos].nodeactivity<0)则pos=pos 1直至满足candidatenodeslist[pos].nodeactivity≥0;将节点candidatenodeslist[pos]加入consensusnodeslist,同时将candidatenodeslist[pos]从candidatenodeslist移出,将minernode加入candidatenodeslist;根据readyblock中的交易txlist,循环累计各节点的节点活力值:currnodeid = txlist[i].nodeid, newnodeactivity = oldnodeactivity txlist[i].txgas;保持candidatenodeslist,consensusnodeslist按节点标识升序排列;步骤305,对readyblock的执行结果基于pbft进行三阶段共识;步骤306,对共识结果进行判;步骤307,完成共识,将readyblock区块上链;本轮共识结束,进行下一轮共识。
[0013]
最后应说明的是:以上所述仅为本发明的优选实施例而已,并不用于限制本发明,尽管参照前述实施例对本发明进行了详细的说明,对于本领域的技术人员来说,其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献