本发明专利技术公开了一种区块链两阶段共识方法、装置、设备和介质,方法包括:将各场景参与方作为区块链节点,根据场景需求确定共识节点规模和共识节点的选取算法,利用选取算法从区块链节点中选取得到共识节点;根据区块链运行的网络环境选择共识算法,根据共识节点和共识算法进行区块共识。本发明专利技术第一阶段根据区块链网络的规模通过选取算法得到小部分共识节点,使得共识节点规模适配场景需求,同时提升共识节点选取的公平性;第二阶段中共识算法是根据区块链运行的网络环境来选择的,能够提升性能;两个阶段相互独立并可融合形成两阶段共识,即选取算法和共识算法可根据场景需求和运行的网络环境任意组合,从而适配不同场景。从而适配不同场景。从而适配不同场景。
【技术实现步骤摘要】
一种区块链两阶段共识方法、装置、设备和介质
[0001]本专利技术属于区块链
,具体涉及一种区块链两阶段共识方法、装置、设备和介质。
技术介绍
[0002]随着云服务和网络资源的相互推进,云网融合已成为一种必然趋势,面向云网场景的基础设施也逐渐增多。云网在不断的发展中同样伴随着一些问题,其中,利用区块链技术将有助于解决云网场景下集中式单点故障、多方互不信任等问题,然而,目前区块链的节点规模、共识方式和性能都无法最佳适配云网场景。其中,节点规模是指区块链节点部署方式和组网规模,共识方式是指是否固定共识节点进行区块竞争类共识或者协同类共识,性能是指业务处理效率。
[0003]区块链共识的实质是各节点通过竞选记账权获取打包区块的资格以及其他节点验证区块,最终多方达成一致性共识。目前,区块链共识各有利弊,基于BFT(拜占庭容错)类共识的区块链由于指定节点作为共识节点记账,因此处理性能相对高效,但是无法适用于大规模区块链网络,并且无法解决共识节点公平选取的问题;基于PoW(工作量证明)共识的区块链由于让所有节点均作为共识节点相互竞争记账权,因此适用于大规模区块链网络,并且解决了共识节点公平选取的问题,但是其处理性能过于低效;基于DPoS(权益委托证明)共识的区块链由于通过投票选取出的主节点和少部分共识节点进行出块和验证,其中,主节点进行出块,其他共识节点进行验证,因此也适用于大规模区块链网络,并且解决了性能问题,但是由于DPoS基于链上资产确定票数并且出块奖励只分配给打包出区块的节点,所以导致选取出的主节点和少部分共识节点拥有大量的资产,进而获得大量的投票权利,从而使这些节点成为固定共识节点,同时这些节点容易遭受长时间的攻击从而导致攻击成功率提高,因此无法避免固定节点的针对性攻击和垄断倾向以及共识节点公平选取等问题。
技术实现思路
[0004]专利技术目的:针对现有技术中存在的问题,本专利技术公开了一种区块链两阶段共识方法、装置、设备和介质,兼顾区块链的共识节点规模、共识节点选取公平性和性能,从而适用于大规模区块链网络和满足不同场景的实际业务需求和部署模式。
[0005]技术方案:为实现上述专利技术目的,本专利技术采用如下技术方案:
[0006]一种区块链两阶段共识方法,包括:
[0007]将各场景参与方作为区块链节点,根据场景需求确定共识节点规模和共识节点的选取算法;利用所述选取算法从所述区块链节点中选取得到共识节点;
[0008]根据区块链运行的网络环境选择共识算法,根据所述共识节点和共识算法进行区块共识。
[0009]进一步的,利用所述选取算法从所述区块链节点中选取得到共识节点,方法包括:
[0010]将区块链节点ID进行注册成为共识候选节点;
[0011]根据选取算法在共识候选节点中进行竞选得到共识节点;
[0012]在区块链中公示共识节点。
[0013]进一步的,根据所述共识节点和共识算法进行区块共识,方法包括:
[0014]若所述共识算法为竞争类共识算法,则根据所述共识算法在共识节点中进行区块共识;
[0015]若所述共识算法为协同类共识算法,则从所有共识节点中任意选出一个主节点,基于所述共识算法进行区块共识,若该主节点打包的区块验证合法,则得到共识后的区块,结束共识;否则,选出一个新的主节点进行区块共识,若所有共识节点作为主节点打包的区块均验证不合法,则从所述共识候选节点中选取共识节点进行区块共识直到得到共识后的区块。
[0016]进一步的,所述共识算法为同步共识算法、半同步共识算法或异步共识算法。
[0017]进一步的,还包括共识热升级步骤,用于将当前的选取算法与共识算法的组合升级为其他选取算法与共识算法的组合,并在预先设定的生效区块高度生效。
[0018]进一步的,所述共识热升级的步骤,包括:
[0019]初始化提案合约模板得到提案合约,所述提案合约模板包括提案参数和对提案合约的操作方法,所述提案参数除了包括选取算法的标识、共识算法的标识和生效区块高度,还包括签名阈值,对应的所述操作方法包括签名和验证方法,或者所述提案参数还包括投票通过率阈值,对应的所述操作方法包括投票和计票方法;
[0020]在区块链上部署提案合约,区块链所有节点对提案合约进行签名或者投票表决;
[0021]当签名数达到签名阈值或者投票通过率超过投票通过率阈值,则提案合约被表决通过,提案参数中选取算法的标识和共识算法的标识对应的选取算法和共识算法在预先设定的生效区块高度开始生效。
[0022]进一步的,满足预设条件后,重新选择选取算法选取共识节点,或者利用所述选取算法重新从所述区块链节点中选取共识节点。
[0023]进一步的,若所述选取算法为匿名投票,当成功进行区块共识后得到一个区块和对应的出块奖励,所有共识节点平分50%的出块奖励,为选取共识节点而进行匿名投票的区块链节点平分50%的出块奖励。
[0024]一种区块链两阶段共识装置,包括:
[0025]共识节点选择模块,用于将各场景参与方作为区块链节点,根据场景需求确定共识节点规模和共识节点的选取算法;利用所述选取算法从所述区块链节点中选取得到共识节点;
[0026]区块共识模块,用于根据区块链运行的网络环境选择共识算法,根据所述共识节点和共识算法进行区块共识。
[0027]进一步的,还包括共识热升级模块,共识热升级模块用于:将当前的选取算法与共识算法的组合升级为其他选取算法与共识算法的组合并在预先设定的生效区块高度生效。
[0028]一种电子设备,包括处理器、存储器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述区块链两阶段共识方法。
[0029]一种计算机可读存储介质,,存储有计算机可执行指令,所述计算机可执行指令用
于执行上述区块链两阶段共识方法。
[0030]有益效果:与现有技术相比较,本专利技术具有如下有益效果:
[0031]本专利技术设计了一种区块链两阶段共识方法,第一阶段将各场景参与方作为区块链节点,根据场景需求确定共识节点规模和选取算法,使得共识节点规模适配场景需求,通过选取算法来选取共识节点,而非人为指定共识节点,可以提升共识节点选取的公平性;第二阶段根据共识节点和共识算法进行区块共识,其中共识算法是根据区块链运行的网络环境来选择的,适配于网络环境的共识算法则能够提升性能。两个阶段相互独立并可融合形成两阶段共识,即选取算法和共识算法可根据场景需求和运行的网络环境任意组合,从而适配不同场景。
附图说明
[0032]图1为本专利技术实施例中的区块链两阶段共识方法的流程图;
[0033]图2为本专利技术实施例中区块链两阶段共识方法的共识节点选取轮数的示意图;
[0034]图3为本专利技术实施例中选取共识节点的流程图;
[0035]图4为本专利技术实施例中区块共识的流程图;
[0036]图5为本专利技术实施例中共识热升级的示意图;本文档来自技高网...
【技术保护点】
【技术特征摘要】
1.一种区块链两阶段共识方法,其特征在于,包括:将各场景参与方作为区块链节点,根据场景需求确定共识节点规模和共识节点的选取算法;利用所述选取算法从所述区块链节点中选取得到共识节点;根据区块链运行的网络环境选择共识算法,根据所述共识节点和共识算法进行区块共识。2.根据权利要求1所述的一种区块链两阶段共识方法,其特征在于,利用所述选取算法从所述区块链节点中选取得到共识节点,方法包括:将区块链节点ID进行注册成为共识候选节点;根据选取算法在共识候选节点中进行竞选得到共识节点;在区块链中公示共识节点。3.根据权利要求2所述的一种区块链两阶段共识方法,其特征在于,根据所述共识节点和共识算法进行区块共识,方法包括:若所述共识算法为竞争类共识算法,则根据所述共识算法在共识节点中进行区块共识;若所述共识算法为协同类共识算法,则从所有共识节点中任意选出一个主节点,基于所述共识算法进行区块共识,若该主节点打包的区块验证合法,则得到共识后的区块,结束共识;否则,选出一个新的主节点进行区块共识,若所有共识节点作为主节点打包的区块均验证不合法,则从所述共识候选节点中选取共识节点进行区块共识直到得到共识后的区块。4.根据权利要求1所述的一种区块链两阶段共识方法,其特征在于,所述共识算法为同步共识算法、半同步共识算法或异步共识算法。5.根据权利要求1所述的一种区块链两阶段共识方法,其特征在于,还包括共识热升级步骤,用于将当前的选取算法与共识算法的组合升级为其他选取算法与共识算法的组合,并在预先设定的生效区块高度生效。6.根据权利要求5所述的一种区块链两阶段共识方法,其特征在于,所述共识热升级的步骤,包括:初始化提案合约模板得到提案合约,所述提案合约模板包括提案参数和对提案合约的操作方法,所述提案参数除了包括选取算法的标识、共识算法的标识和生效区块高度,还包括签名阈值,对应的所述操作方法包...
【专利技术属性】
技术研发人员:管章双,潘凤薇,苏瑜阳,张晨,黄韬,
申请(专利权)人:网络通信与安全紫金山实验室,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。