CN114169670A - 一种区块链两阶段共识方法、装置、设备和介质 - Google Patents
一种区块链两阶段共识方法、装置、设备和介质 Download PDFInfo
- Publication number
- CN114169670A CN114169670A CN202111243458.6A CN202111243458A CN114169670A CN 114169670 A CN114169670 A CN 114169670A CN 202111243458 A CN202111243458 A CN 202111243458A CN 114169670 A CN114169670 A CN 114169670A
- Authority
- CN
- China
- Prior art keywords
- consensus
- algorithm
- block
- nodes
- node
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 94
- 238000004422 calculation algorithm Methods 0.000 claims abstract description 249
- 230000000694 effects Effects 0.000 claims description 13
- 230000001360 synchronised effect Effects 0.000 claims description 10
- 238000012795 verification Methods 0.000 claims description 8
- 238000004590 computer program Methods 0.000 claims description 4
- 230000008569 process Effects 0.000 description 11
- 238000012216 screening Methods 0.000 description 6
- 238000012545 processing Methods 0.000 description 5
- 230000003044 adaptive effect Effects 0.000 description 4
- 238000004364 calculation method Methods 0.000 description 4
- 230000007246 mechanism Effects 0.000 description 4
- 230000006855 networking Effects 0.000 description 4
- 238000012856 packing Methods 0.000 description 4
- 238000010586 diagram Methods 0.000 description 3
- 238000004806 packaging method and process Methods 0.000 description 3
- 238000004891 communication Methods 0.000 description 2
- 230000000737 periodic effect Effects 0.000 description 2
- 230000010076 replication Effects 0.000 description 2
- 230000006978 adaptation Effects 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000007123 defense Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000010790 dilution Methods 0.000 description 1
- 239000012895 dilution Substances 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000012797 qualification Methods 0.000 description 1
- 238000010187 selection method Methods 0.000 description 1
- 230000001953 sensory effect Effects 0.000 description 1
- 238000004904 shortening Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q10/00—Administration; Management
- G06Q10/06—Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling
- G06Q10/063—Operations research, analysis or management
- G06Q10/0631—Resource planning, allocation, distributing or scheduling for enterprises or organisations
- G06Q10/06311—Scheduling, planning or task assignment for a person or group
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q10/00—Administration; Management
- G06Q10/06—Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling
- G06Q10/063—Operations research, analysis or management
- G06Q10/0639—Performance analysis of employees; Performance analysis of enterprise or organisation operations
- G06Q10/06393—Score-carding, benchmarking or key performance indicator [KPI] analysis
Landscapes
- Business, Economics & Management (AREA)
- Human Resources & Organizations (AREA)
- Engineering & Computer Science (AREA)
- Strategic Management (AREA)
- Economics (AREA)
- Entrepreneurship & Innovation (AREA)
- Development Economics (AREA)
- Educational Administration (AREA)
- Operations Research (AREA)
- Marketing (AREA)
- Game Theory and Decision Science (AREA)
- Quality & Reliability (AREA)
- Tourism & Hospitality (AREA)
- Physics & Mathematics (AREA)
- General Business, Economics & Management (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种区块链两阶段共识方法、装置、设备和介质,方法包括:将各场景参与方作为区块链节点,根据场景需求确定共识节点规模和共识节点的选取算法,利用选取算法从区块链节点中选取得到共识节点;根据区块链运行的网络环境选择共识算法,根据共识节点和共识算法进行区块共识。本发明第一阶段根据区块链网络的规模通过选取算法得到小部分共识节点,使得共识节点规模适配场景需求,同时提升共识节点选取的公平性;第二阶段中共识算法是根据区块链运行的网络环境来选择的,能够提升性能;两个阶段相互独立并可融合形成两阶段共识,即选取算法和共识算法可根据场景需求和运行的网络环境任意组合,从而适配不同场景。
Description
技术领域
本发明属于区块链技术领域,具体涉及一种区块链两阶段共识方法、装置、设备和介质。
背景技术
随着云服务和网络资源的相互推进,云网融合已成为一种必然趋势,面向云网场景的基础设施也逐渐增多。云网在不断的发展中同样伴随着一些问题,其中,利用区块链技术将有助于解决云网场景下集中式单点故障、多方互不信任等问题,然而,目前区块链的节点规模、共识方式和性能都无法最佳适配云网场景。其中,节点规模是指区块链节点部署方式和组网规模,共识方式是指是否固定共识节点进行区块竞争类共识或者协同类共识,性能是指业务处理效率。
区块链共识的实质是各节点通过竞选记账权获取打包区块的资格以及其他节点验证区块,最终多方达成一致性共识。目前,区块链共识各有利弊,基于BFT(拜占庭容错)类共识的区块链由于指定节点作为共识节点记账,因此处理性能相对高效,但是无法适用于大规模区块链网络,并且无法解决共识节点公平选取的问题;基于PoW(工作量证明)共识的区块链由于让所有节点均作为共识节点相互竞争记账权,因此适用于大规模区块链网络,并且解决了共识节点公平选取的问题,但是其处理性能过于低效;基于DPoS(权益委托证明)共识的区块链由于通过投票选取出的主节点和少部分共识节点进行出块和验证,其中,主节点进行出块,其他共识节点进行验证,因此也适用于大规模区块链网络,并且解决了性能问题,但是由于DPoS基于链上资产确定票数并且出块奖励只分配给打包出区块的节点,所以导致选取出的主节点和少部分共识节点拥有大量的资产,进而获得大量的投票权利,从而使这些节点成为固定共识节点,同时这些节点容易遭受长时间的攻击从而导致攻击成功率提高,因此无法避免固定节点的针对性攻击和垄断倾向以及共识节点公平选取等问题。
发明内容
发明目的:针对现有技术中存在的问题,本发明公开了一种区块链两阶段共识方法、装置、设备和介质,兼顾区块链的共识节点规模、共识节点选取公平性和性能,从而适用于大规模区块链网络和满足不同场景的实际业务需求和部署模式。
技术方案:为实现上述发明目的,本发明采用如下技术方案:
一种区块链两阶段共识方法,包括:
将各场景参与方作为区块链节点,根据场景需求确定共识节点规模和共识节点的选取算法;利用所述选取算法从所述区块链节点中选取得到共识节点;
根据区块链运行的网络环境选择共识算法,根据所述共识节点和共识算法进行区块共识。
进一步的,利用所述选取算法从所述区块链节点中选取得到共识节点,方法包括:
将区块链节点ID进行注册成为共识候选节点;
根据选取算法在共识候选节点中进行竞选得到共识节点;
在区块链中公示共识节点。
进一步的,根据所述共识节点和共识算法进行区块共识,方法包括:
若所述共识算法为竞争类共识算法,则根据所述共识算法在共识节点中进行区块共识;
若所述共识算法为协同类共识算法,则从所有共识节点中任意选出一个主节点,基于所述共识算法进行区块共识,若该主节点打包的区块验证合法,则得到共识后的区块,结束共识;否则,选出一个新的主节点进行区块共识,若所有共识节点作为主节点打包的区块均验证不合法,则从所述共识候选节点中选取共识节点进行区块共识直到得到共识后的区块。
进一步的,所述共识算法为同步共识算法、半同步共识算法或异步共识算法。
进一步的,还包括共识热升级步骤,用于将当前的选取算法与共识算法的组合升级为其他选取算法与共识算法的组合,并在预先设定的生效区块高度生效。
进一步的,所述共识热升级的步骤,包括:
初始化提案合约模板得到提案合约,所述提案合约模板包括提案参数和对提案合约的操作方法,所述提案参数除了包括选取算法的标识、共识算法的标识和生效区块高度,还包括签名阈值,对应的所述操作方法包括签名和验证方法,或者所述提案参数还包括投票通过率阈值,对应的所述操作方法包括投票和计票方法;
在区块链上部署提案合约,区块链所有节点对提案合约进行签名或者投票表决;
当签名数达到签名阈值或者投票通过率超过投票通过率阈值,则提案合约被表决通过,提案参数中选取算法的标识和共识算法的标识对应的选取算法和共识算法在预先设定的生效区块高度开始生效。
进一步的,满足预设条件后,重新选择选取算法选取共识节点,或者利用所述选取算法重新从所述区块链节点中选取共识节点。
进一步的,若所述选取算法为匿名投票,当成功进行区块共识后得到一个区块和对应的出块奖励,所有共识节点平分50%的出块奖励,为选取共识节点而进行匿名投票的区块链节点平分50%的出块奖励。
一种区块链两阶段共识装置,包括:
共识节点选择模块,用于将各场景参与方作为区块链节点,根据场景需求确定共识节点规模和共识节点的选取算法;利用所述选取算法从所述区块链节点中选取得到共识节点;
区块共识模块,用于根据区块链运行的网络环境选择共识算法,根据所述共识节点和共识算法进行区块共识。
进一步的,还包括共识热升级模块,共识热升级模块用于:将当前的选取算法与共识算法的组合升级为其他选取算法与共识算法的组合并在预先设定的生效区块高度生效。
一种电子设备,包括处理器、存储器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述区块链两阶段共识方法。
一种计算机可读存储介质,,存储有计算机可执行指令,所述计算机可执行指令用于执行上述区块链两阶段共识方法。
有益效果:与现有技术相比较,本发明具有如下有益效果:
本发明设计了一种区块链两阶段共识方法,第一阶段将各场景参与方作为区块链节点,根据场景需求确定共识节点规模和选取算法,使得共识节点规模适配场景需求,通过选取算法来选取共识节点,而非人为指定共识节点,可以提升共识节点选取的公平性;第二阶段根据共识节点和共识算法进行区块共识,其中共识算法是根据区块链运行的网络环境来选择的,适配于网络环境的共识算法则能够提升性能。两个阶段相互独立并可融合形成两阶段共识,即选取算法和共识算法可根据场景需求和运行的网络环境任意组合,从而适配不同场景。
附图说明
图1为本发明实施例中的区块链两阶段共识方法的流程图;
图2为本发明实施例中区块链两阶段共识方法的共识节点选取轮数的示意图;
图3为本发明实施例中选取共识节点的流程图;
图4为本发明实施例中区块共识的流程图;
图5为本发明实施例中共识热升级的示意图;
图6为本发明实施例中的区块链两阶段共识装置的示意图。
具体实施方式
下面结合附图对本发明作更进一步的说明。
实施例1:
本实施例公开了一种区块链两阶段共识方法,包括:
将各场景参与方作为区块链节点,根据场景需求确定共识节点规模和共识节点的选取算法;利用所述选取算法从所述区块链节点中选取得到共识节点;
根据区块链运行的网络环境选择共识算法,根据所述共识节点和共识算法进行区块共识。
第一阶段将各场景参与方作为区块链节点,根据场景需求确定共识节点规模和选取算法,使得共识节点规模适配场景需求,通过选取算法来选取共识节点,而非人为指定,可以提升共识节点选取的公平性;第二阶段根据共识节点和共识算法进行区块共识,其中共识算法是根据区块链运行的网络环境来选择的,适配于网络环境的共识算法则能够提升性能。两个阶段相互独立并可融合形成两阶段共识,即选取算法和共识算法可根据场景需求和运行的网络环境任意组合,从而适配不同场景。
进一步的,利用所述选取算法从所述区块链节点中选取得到共识节点,方法包括:
将区块链节点ID进行注册成为共识候选节点;
根据选取算法在共识候选节点中进行竞选得到共识节点;
在区块链中公示共识节点。
进一步的,根据所述共识节点和共识算法进行区块共识,方法包括:
若所述共识算法为竞争类共识算法,则根据所述共识算法在共识节点中进行区块共识;
若所述共识算法为协同类共识算法,则从所有共识节点中任意选出一个主节点,基于所述共识算法进行区块共识,若该主节点打包的区块验证合法,则得到共识后的区块,结束共识;否则,选出一个新的主节点进行区块共识,若所有共识节点作为主节点打包的区块均验证不合法,则从所述共识候选节点中选取共识节点进行区块共识直到得到共识后的区块。
进一步的,所述共识算法为同步共识算法、半同步共识算法或异步共识算法。
进一步的,还包括共识热升级步骤,用于将当前的选取算法与共识算法的组合升级为其他选取算法与共识算法的组合,并在预先设定的生效区块高度生效。通过采用共识热升级方法,可以适配同一场景下不同阶段的业务需求以及区块链运行的网络环境,保证每一阶段的共识节点规模、共识节点选取公平性和性能。
进一步的,所述共识热升级的步骤,包括:
初始化提案合约模板得到提案合约,所述提案合约模板包括提案参数和对提案合约的操作方法,所述提案参数除了包括选取算法的标识、共识算法的标识和生效区块高度,还包括签名阈值,对应的所述操作方法包括签名和验证方法,或者所述提案参数还包括投票通过率阈值,对应的所述操作方法包括投票和计票方法;
在区块链上部署提案合约,区块链所有节点对提案合约进行签名或者投票表决;
当签名数达到签名阈值或者投票通过率超过投票通过率阈值,则提案合约被表决通过,提案参数中选取算法的标识和共识算法的标识对应的选取算法和共识算法在预先设定的生效区块高度开始生效。
进一步的,满足预设条件后,重新选择选取算法选取共识节点,或者利用所述选取算法重新从所述区块链节点中选取共识节点,可以实现共识节点的定期替换,使得所有区块链节点都能享有记账的权利,避免垄断倾向,提升公平性,同时缩短了共识节点被针对性攻击的时间,降低了被攻击成功的风险。
进一步的,若所述选取算法为匿名投票,当成功进行区块共识后得到一个区块和对应的出块奖励,所有共识节点平分50%的出块奖励,为选取共识节点而进行匿名投票的区块链节点平分50%的出块奖励,可以防止出现寡头节点一直成为共识节点的情况,从而引发一些贿赂攻击等行为。
实施例2:
本实施例提出一种适配云网场景的区块链两阶段共识方法,具体可细分为以下:一是共识节点的选取算法,包括但不限于随机选取、计算能力竞选、网络能力竞选、存储能力竞选、匿名投票等方法,可根据场景需求制定选取算法进行共识节点的动态调整或者定期替换;二是区块共识的共识算法,包括但不限于同步共识、半同步共识、异步共识等,可根据真实网络环境选取相应类型的共识算法;还包括共识热升级,可通过提案机制进行选取算法和共识算法的链上切换,根据场景阶段性需求和区块链运行网络环境进行选取算法和共识算法的动态切换。
对云网场景业务进行需求分析,围绕使区块链的共识节点规模和性能能够最佳匹配云网场景,同时兼顾共识节点选取的公平性,本实施例设计了一种面向云网场景的区块链两阶段共识方法,第一阶段从海量节点中选取共识节点,可通过设置区块链共识轮数进行共识节点的动态调整和定期替换,如图2所示,第二阶段根据共识节点和共识算法进行区块共识,两阶段相互融合。总的来说,根据将各场景参与方作为区块链节点,根据场景需求确定共识节点规模以支持区块链网络和适配场景需求;根据选取算法得到共识节点,保证了区块链节点都公平享有参与记账的机会,可以提升共识节点选取的公平性;根据区块链运行的网络环境来选择共识算法,使得共识算法适配网络环境,能够提升性能。此外,选取算法和共识算法相互独立,可任意两两组合,同时两阶段共识通过热升级方式可进行灵活切换,从而满足场景业务的阶段性部署、安全和性能等方面需求。
第一阶段:共识节点选取过程
区块链将云网场景的每一参与方视为其节点,并且通过P2P网络进行节点连接,以满足云网场景的多方参与和大规模跨域组网的规模需求。区块链节点众多,为满足不同云网场景下的需求,两阶段共识的第一阶段需要从海量节点中选取小部分共识节点,共识节点规模根据场景需求确定,选取算法包括但不限于随机选取、计算能力竞选、网络能力竞选、存储能力竞选、匿名投票等方法,选取过程包括节点注册、节点竞选、结果公布。可根据场景需求制定共识节点的选取算法或者共识节点的选取轮数,以进行共识节点的动态调整或者定期替换,从而实现不同云网场景下共识节点的灵活和公平选取,同时缩短共识节点被针对性攻击的时间,降低被攻击成功的风险,例如云网场景的所有参与方都部署节点,考虑性能需求和公平性,每个节点都公平享有打包区块的权利,可设定轮流打包50个区块后重新采取一种选取算法或重新选取一次共识节点。
随机选取是指通过产生随机数的方式进行节点ID的随机选取,计算能力竞选则是基于难度值计算对节点进行算力资源筛选,网络能力竞选则是基于带宽和地理位置对节点进行网络资源筛选,存储能力竞选则是基于存储空间大小和读写能力对节点进行存储资源筛选;匿名投票则是基于零知识证明和权重投票对节点进行匿名权值打分。通过上述选取方式可从海量节点中选取出小部分的共识节点,例如,区块链总节点数为N,共识节点的门限值为M,基于上述选取算法则可选出相应的前M名节点作为共识节点进行第二阶段的区块共识。其中,共识节点的门限值M根据云网场景的部署模式和性能需求设置,例如共识节点的门限值M为云网场景的参与方的总数N乘以预设比例。
如图3所示,共识节点的选取过程如下:
节点注册:区块链节点需要通过节点ID进行注册成为共识候选节点,注册时需要保证该节点具备防范分布式拒绝攻击(DDoS攻击)等基本能力。需要说明的是,匿名投票等投票类选取方式需要进行共识候选节点提名并确定选票份额。
节点竞选:共识候选节点根据选取算法进行竞选从而成为共识节点。竞选方式包括但不限于:在规定时间内,针对共识候选节点ID进行M次随机选取、针对计算能力竞选筛出前M 名解决难度值计算的共识候选节点、根据网络能力竞选筛出前M名通信延时低的共识候选节点、根据存储能力竞选筛出前M名存储空间和读写能力强的共识候选节点、针对投票机制进行匿名票数统计选出前M名票数较高的共识候选节点,若超出规定时间,则重新竞选。
结果公布:竞选结束后,在区块链上公示竞选结果,最终确定小部分共识节点,进而准备进入第二阶段的区块共识。
此外,共识节点的选取可通过设置轮数进行灵活调整,即节点注册、节点竞选、结果公布的流程可视为一轮共识节点的选取过程,可根据场景需求设置预设条件,触发新一轮共识节点的选取过程。预设条件可以为打包完成设定数量的区块。
第二阶段:区块共识过程
通过第一阶段的共识节点选取过程,区块链选出了小部分共识节点进入第二阶段,在小部分共识节点内部执行共识算法,以满足高效处理云网场景业务的需求。由于共识算法的执行依赖于区块链底层网络模型的通信,所以区块共识的共识算法根据网络模型划分为同步共识、半同步共识和异步共识。
同步共识算法的前提假设是消息在网络中的传播延迟限制在已知的限定时间内,这是基于非常理想的网络模型假设,即任何情况下,消息在已知的限定时间内都能够到达区块链网络的所有共识节点,Sync HotStuff(Sync HotStuff:Simple and PracticalSynchronous State Machine Replication,即简单实用同步状态机复制算法)和PILI(PiLi:A Simple,Fast, and Robust Family of Blockchain Protocols,即简单快速健壮的区块链共识算法)便是基于该网络模型假设的同步共识算法。
半同步共识算法则进一步加强了网络模型的假设,要求网络中消息的传播延迟在一个能够预测的范围内,即在大部分情况下网络是稳定的,而在某些情况下网络会出现一段时间的波动但最终会恢复稳定,半同步共识算法包括PBFT(实用拜占庭容错算法)、HotStuff(HotStuf: BFT Consensus in the Lens of Blockchain,即基于主节点的拜占庭容错复制算法)、PoS (Proof of Stake,权益证明)、PoET(Proof of Elapsed Time,即所用时间证明共识算法) 和PoW等。
异步共识算法则涵盖了几乎所有网络情况,即对网络中消息的传播延迟没有限制,只需保证消息最终能够到达其他共识节点即可,异步共识算法包括HoneyBadger-BFT(The Honey Badger of BFT Protocols,即蜜罐BFT算法)、BEAT(BEAT:Asynchronous BFTmade practical,即实用异步BFT共识算法)、Dumbo(Dumbo:Faster Asynchronous BFTProtocols,即快速异步BFT共识算法,也被称为小飞象拜占庭容错算法)等。
基于上述网络模型,区块共识可根据真实网络环境选择相应类型的共识算法,例如专网适用同步共识算法,骨干网适用半同步共识算法,互联网适用异步共识算法。上述共识算法可进一步基于可信硬件进行优化,例如,基于可信执行环境TEE的半同步共识算法包括MinBFT (Efficient Byzantine Fault-Tolerance,即高效拜占庭容错算法)、CheapBFT(CheapBFT: Resource-efficient Byzantine Fault Tolerance,即资源高效的拜占庭容错算法)、FastBFT (Scalable Byzantine Consensus via Hardware-Assisted SecretSharing,即基于硬件辅助可扩展的拜占庭共识算法)等。
此外,共识算法根据共识节点间的竞合模式可划分为竞争类共识算法和协同类共识算法,其中竞争类共识算法包括PoW、PoS和PoET,协同类共识算法包括Sync HotStuff、PBFT、 HotStuff、HoneyBadger-BFT、BEAT、Dumbo、MinBFT、CheapBFT、FastBFT。
区块链系统启动时注册所有共识算法,之后通过共识引擎启动对应的共识算法,即实例化具体的共识算法。共识引擎用于实现共识算法的注册和启停的功能,作为共识的入口,封装了不同的共识算法;实例化一般是根据创世区块或者配置文件,确定当前区块链启用的是哪一种具体的共识算法,比如PBFT。
进行区块共识时,共识节点选择共识算法的类型并通过共识引擎启动对应的共识算法,然后根据启动的共识算法属于竞争类共识算法或者协同类共识算法来进行区块打包和验证,最终就区块达成一致性以更新区块链状态。如图4所示,假设共识节点对第w个区块进行区块共识,具体方法如下:
共识节点根据区块链底层网络模型选择采用同步共识算法、半同步共识算法或异步共识算法,并通过共识引擎启动一个对应的共识算法;
若启动的共识算法为竞争类共识算法,则所有共识节点根据共识算法分别打包区块,打包完成后向其他共识节点广播该区块(即每个共识节点处共收到若干个打包后的区块,其数量与共识节点数量相同,其中共识节点可认为在区块打包时即收到该区块,每个区块具有一个时间戳,该时间戳为共识节点打包出区块的时间点,同一个共识节点打包的区块在所有共识节点中的时间戳一致),每个共识节点首先验证其最先收到的区块是否合法,若半数以上共识节点均验证该区块合法,则所有共识节点向其他非共识节点广播该区块并结束当前区块共识;否则,所有共识节点顺序验证其收到的下一个区块是否合法。若所有共识节点收到的所有区块均验证不合法,则所有共识节点重新执行上述过程,即重新根据共识算法分别打包区块并同时向其他共识节点广播该区块,直到半数以上共识节点均验证某个区块合法,结束区块共识。
每个共识节点打包区块并向其他共识节点广播区块的时间根据采用的共识算法不同而存在先后顺序,例如PoW共识算法中,在区块链中设置一个难度值,每个共识节点对该难度值进行计算,首先计算出难度值结果的共识节点首先打包区块并向其他共识节点广播区块。
若启动的共识算法为协同类共识算法,则从所有共识节点中任意选出一个主节点,基于共识算法,主节点打包区块和向其他共识节点广播区块,其他共识节点验证打包的区块是否合法,若其他共识节点中超过设定比例的节点(例如设定比例为2/3)均验证该区块合法,则所有共识节点向非共识节点广播该区块并结束当前区块共识;否则,重新选取一个主节点执行上述过程。若所有共识节点作为主节点打包的区块均验证不合法,则回到第一阶段,重新从共识候选节点中选取共识节点再次进行区块共识。
结束当前区块共识后,区块链中所有节点同步区块共识得到的区块为区块链中的第w个区块。所有节点在同步该区块前,还需要验证该区块是否为恶意节点广播。
竞争类共识算法中,每个共识节点打包的区块轮流进行验证,以及协同类共识算法中,每个共识节点轮流作为主节点打包区块,保证了共识节点相互间都公平享有参与记账的机会,提高了公平性。
为满足不同云网场景的实际需求,两阶段共识方法支持共识节点的选取算法和区块共识的共识算法的任意组合,例如,匿名投票+PBFT、计算能力竞选+HotStuff等;而为适配同一场景下不同阶段的业务需求以及区块链运行的网络环境,可通过共识热升级进行解决。例如,在云网场景中,冷启动(即初始启动)时使用计算能力竞选+PoW更满足安全需求,运行稳定后通过共识热升级为“匿名投票+HotStuff”更符合业务性能需求,而网络环境长时间不稳定时通过共识热升级为“网络能力竞选+Dumbo”更能抵抗网络波动以保证共识算法的活性。
共识热升级通过提案机制进行实现,每个共识热升级的提案都通过智能合约进行部署和执行:
首先,在共识候选节点中使用提案合约模板进行提案合约初始化,其中提案合约模板预先设置,提案合约模板包括进行共识热升级所需要的提案参数和相关操作方法,提案参数除了包括新的两阶段共识中的选取算法的标识和共识算法的标识以及生效区块高度,还包括签名阈值或者投票通过率阈值,对应地操作方法包括对提案进行的验证和签名方法或者投票和计票方法操作方法,其中,选取算法的标识和共识算法的标识用于分别指定选取算法和共识算法;提案参数包括签名阈值时,操作方法为验证和签名方法;提案参数包括投票通过率阈值时,操作方法为投票和计票方法。通过设置相关提案参数和封装相关操作方法可以将提案合约模板初始化为提案合约,区块链节点使用该提案合约可以对提案进行相关操作;
然后,在区块链上部署提案合约,区块链所有节点对提案合约进行签名或者投票表决;
最终,提案合约的签名数达到签名阈值或者投票通过率超过投票通过率阈值,则表明该提案合约被表决通过,提案合约中的新两阶段共识所采用的共识节点的选取算法和共识算法用于在预先设定的生效区块高度开始生效,从而完成共识热升级,如图5所示。
实施例3:
本实施例以“匿名投票+HotStuff”为例解释如何实施两阶段共识方法,后期通过提案机制热升级为“网络能力竞选+Dumbo”两阶段共识方法。
第一阶段:通过匿名投票选取共识节点
1.1、区块链所有组网节点配置高防服务器,进行节点ID注册成为共识候选节点;
1.2、根据节点注册情况和云网场景业务需求,动态设置共识节点门限值为M,同时进行共识候选节点提名,确定选票份额、投票率、截止日期等;
1.3、所有节点根据自身持有选票数进行匿名投票(零知识证明+权重打分);
1.4、满足投票率或者到达投票截止日期,区块链进行链上自计票,公示票数高的前M名共识候选节点成为下一轮共识节点。
第二阶段:共识节点进行区块共识
2.1、第一阶段选举出的共识节点启动HotStuff共识算法服务;
2.2、从共识节点中选取一个主节点;
2.3、主节点基于HotStuff共识算法进行区块打包,然后向其他共识节点进行区块广播;
2.4、其他共识节点进行消息协作,并验证区块是否合法:若超过2/3的其他共识节点均验证区块合法,则向其他非共识节点广播该区块并结束当前区块共识;否则,从共识节点中重新选取一个主节点,重新执行步骤2.3-步骤2.4;
若所有共识节点作为主节点打包的区块均验证不合法,则回到步骤1.2,重新从共识候选节点中选取共识节点。
共识热升级:“匿名投票+HotStuff”共识热升级为“网络能力竞选+Dumbo”
3.1、在共识候选节点中通过提案合约模板初始化提案合约,采用投票表决方式,初始化的提案合约中设置热升级后的共识节点的选取算法和共识算法为“网络能力竞选+Dumbo”、投票通过率阈值为所有节点的70%、生效区块高度为2000、投票截止时间等;
3.2、在区块链上部署提案合约,区块链所有节点对提案合约进行投票表决;
3.3、达到投票截止时间,区块链进行链上自计票,当投票通过率大于或等于70%时,提案合约中的共识节点的选取算法和共识算法在区块2000生效,两阶段共识方法从“匿名投票 +HotStuff”切换为“网络能力竞选+Dumbo”。
实施例4:
本实施例以“匿名投票+HotStuff”为例进一步解释所述两阶段共识方法的安全性和公平性。
第一阶段通过匿名投票选取共识节点:具体匿名投票通过权重打分和零知识证明实现,权重打分用来分配具有投票能力的区块链节点(即投票节点)对共识候选节点的投票份额,零知识证明用来证明投票节点的合法性以及投票份额的合规性,最终投票仅对外公开零知识证明,在选取结果公示之前,任何区块链节点都不知道哪些节点是票数高的前M名共识候选节点,从而保证了投票过程的公平性、同时防范了该时间段内攻击者对前M名共识候选节点的针对性攻击。
第二阶段区块共识时,从共识节点中选取主节点,所有共识节点执行HotStuff共识算法进行区块共识:因为区块链的组网节点都配置了高防服务器,防止了DDoS攻击,保证了节点本身的安全性。区块共识时才会选取主节点,选取主节点之后直接进行HotStuff共识,每成功共识一个区块,重新选取主节点,大大缩短了当前轮次内的主节点被针对性攻击的时间,降低了主节点被攻击成功的风险。同时,HotStuff共识算法具备拜占庭容错,保证了选取的共识节点在区块共识时容忍1/3共识节点出错。
由于匿名投票是根据节点持有代币份额而确定的票数,所以区块共识成功后会对共识节点进行奖惩,防止出现寡头节点一直成为共识节点而引发一些贿赂攻击等行为。其中,区块的出块奖励采取投票者分红稀释的方式。例如,出块奖励100个代币,参与区块共识的共识节点平分其中的50%出块奖励,为选取这些共识节点而进行匿名投票的区块链节点平分另外的50%出块奖励;对于作恶的共识节点,则直接将其加入节点黑名单,不再让其成为共识候选节点,同时采用第一阶段共识节点的选取算法重新递补新的共识节点参与第二阶段的区块共识。同时,由于共识节点对外公开,随着时间的推移,主节点的被预测的可能性升高,所以应该不定期进行动态替换共识节点,预防攻击者对主节点发起针对性攻击,避免区块链节点的51%攻击等。
实施例5:
本实施例公开了一种区块链两阶段共识装置,如图6所示,包括共识节点选择模块和区块共识模块,
共识节点选择模块用于:将各场景参与方作为区块链节点,根据场景需求确定共识节点规模和共识节点的选取算法;利用所述选取算法从所述区块链节点中选取得到共识节点;;
区块共识模块用于:根据区块链运行的网络环境选择共识算法,根据所述共识节点和共识算法进行区块共识。
共识节点选择模块中,利用所述选取算法从所述区块链节点中选取得到共识节点,方法包括:
将区块链节点ID进行注册成为共识候选节点;
根据选取算法在共识候选节点中进行竞选得到共识节点;
在区块链中公示共识节点。
区块共识模块中,根据所述共识节点和共识算法进行区块共识,方法包括:
若所述共识算法为竞争类共识算法,则根据所述共识算法在共识节点中进行区块共识;
若所述共识算法为协同类共识算法,则从所有共识节点中任意选出一个主节点,基于所述共识算法进行区块共识,若该主节点打包的区块验证合法,则得到共识后的区块,结束共识;否则,选出一个新的主节点进行区块共识,若所有共识节点作为主节点打包的区块均验证不合法,则从所述共识候选节点中选取共识节点进行区块共识直到得到共识后的区块。
共识节点选择模块中,所述共识算法为同步共识算法、半同步共识算法或异步共识算法。
本实施例所述的区块链两阶段共识装置还包括共识热升级模块,共识热升级模块用于:将当前的选取算法与共识算法的组合升级为其他选取算法与共识算法的组合并在预先设定的生效区块高度生效。
共识热升级模块中,所述共识热升级的步骤,包括:
初始化提案合约模板得到提案合约,所述提案合约模板包括提案参数和对提案合约的操作方法,所述提案参数除了包括选取算法的标识、共识算法的标识和生效区块高度,还包括签名阈值,对应的所述操作方法包括签名和验证方法,或者所述提案参数还包括投票通过率阈值,对应的所述操作方法包括投票和计票方法;
在区块链上部署提案合约,区块链所有节点对提案合约进行签名或者投票表决;
当签名数达到签名阈值或者投票通过率超过投票通过率阈值,则提案合约被表决通过,提案参数中选取算法的标识和共识算法的标识对应的选取算法和共识算法在预先设定的生效区块高度开始生效。
共识节点选择模块中,满足预设条件后,重新选择选取算法选取共识节点,或者利用所述选取算法重新从所述区块链节点中选取共识节点。
共识节点选择模块中,若所述选取算法为匿名投票,当成功进行区块共识后得到一个区块和对应的出块奖励,则所有共识节点平分50%的出块奖励,为选取共识节点而进行匿名投票的区块链节点平分50%的出块奖励。
实施例6:
本实施例公开了一种电子设备,包括处理器、存储器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现前述的任意一项所述区块链阶段共识方法。存储器可为各种类型的存储器,可为随机存储器、只读存储器、闪存等。处理器可为各种类型的处理器,例如,中央处理器、微处理器、数字信号处理器或图像处理器等。
本实施例还公开了一种计算机可读存储介质,存储有计算机可执行指令,所述计算机可执行指令用于执行前述的任意一项所述区块链阶段共识方法。存储介质包括:U盘、移动硬盘、ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述仅是本发明的优选实施方式,应当指出:对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
Claims (12)
1.一种区块链两阶段共识方法,其特征在于,包括:
将各场景参与方作为区块链节点,根据场景需求确定共识节点规模和共识节点的选取算法;利用所述选取算法从所述区块链节点中选取得到共识节点;
根据区块链运行的网络环境选择共识算法,根据所述共识节点和共识算法进行区块共识。
2.根据权利要求1所述的一种区块链两阶段共识方法,其特征在于,利用所述选取算法从所述区块链节点中选取得到共识节点,方法包括:
将区块链节点ID进行注册成为共识候选节点;
根据选取算法在共识候选节点中进行竞选得到共识节点;
在区块链中公示共识节点。
3.根据权利要求2所述的一种区块链两阶段共识方法,其特征在于,根据所述共识节点和共识算法进行区块共识,方法包括:
若所述共识算法为竞争类共识算法,则根据所述共识算法在共识节点中进行区块共识;
若所述共识算法为协同类共识算法,则从所有共识节点中任意选出一个主节点,基于所述共识算法进行区块共识,若该主节点打包的区块验证合法,则得到共识后的区块,结束共识;否则,选出一个新的主节点进行区块共识,若所有共识节点作为主节点打包的区块均验证不合法,则从所述共识候选节点中选取共识节点进行区块共识直到得到共识后的区块。
4.根据权利要求1所述的一种区块链两阶段共识方法,其特征在于,所述共识算法为同步共识算法、半同步共识算法或异步共识算法。
5.根据权利要求1所述的一种区块链两阶段共识方法,其特征在于,还包括共识热升级步骤,用于将当前的选取算法与共识算法的组合升级为其他选取算法与共识算法的组合,并在预先设定的生效区块高度生效。
6.根据权利要求5所述的一种区块链两阶段共识方法,其特征在于,所述共识热升级的步骤,包括:
初始化提案合约模板得到提案合约,所述提案合约模板包括提案参数和对提案合约的操作方法,所述提案参数除了包括选取算法的标识、共识算法的标识和生效区块高度,还包括签名阈值,对应的所述操作方法包括签名和验证方法,或者所述提案参数还包括投票通过率阈值,对应的所述操作方法包括投票和计票方法;
在区块链上部署提案合约,区块链所有节点对提案合约进行签名或者投票表决;
当签名数达到签名阈值或者投票通过率超过投票通过率阈值,则提案合约被表决通过,提案参数中选取算法的标识和共识算法的标识对应的选取算法和共识算法在预先设定的生效区块高度开始生效。
7.根据权利要求1所述的一种区块链两阶段共识方法,其特征在于,满足预设条件后,重新选择选取算法选取共识节点,或者利用所述选取算法重新从所述区块链节点中选取共识节点。
8.根据权利要求1所述的一种区块链两阶段共识方法,其特征在于,若所述选取算法为匿名投票,当成功进行区块共识后得到一个区块和对应的出块奖励,所有共识节点平分50%的出块奖励,为选取共识节点而进行匿名投票的区块链节点平分50%的出块奖励。
9.一种区块链两阶段共识装置,其特征在于,包括:
共识节点选择模块,用于将各场景参与方作为区块链节点,根据场景需求确定共识节点规模和共识节点的选取算法;利用所述选取算法从所述区块链节点中选取得到共识节点;
区块共识模块,用于根据区块链运行的网络环境选择共识算法,根据所述共识节点和共识算法进行区块共识。
10.根据权利要求9所述的一种区块链两阶段共识装置,其特征在于,还包括共识热升级模块,共识热升级模块用于:将当前的选取算法与共识算法的组合升级为其他选取算法与共识算法的组合并在预先设定的生效区块高度生效。
11.一种电子设备,包括处理器、存储器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现权利要求1~8中任意一项所述区块链两阶段共识方法。
12.一种计算机可读存储介质,其特征在于,存储有计算机可执行指令,所述计算机可执行指令用于执行权利要求1~8中任意一项所述区块链两阶段共识方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111243458.6A CN114169670A (zh) | 2021-10-25 | 2021-10-25 | 一种区块链两阶段共识方法、装置、设备和介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111243458.6A CN114169670A (zh) | 2021-10-25 | 2021-10-25 | 一种区块链两阶段共识方法、装置、设备和介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114169670A true CN114169670A (zh) | 2022-03-11 |
Family
ID=80477309
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111243458.6A Pending CN114169670A (zh) | 2021-10-25 | 2021-10-25 | 一种区块链两阶段共识方法、装置、设备和介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114169670A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114466034A (zh) * | 2022-03-21 | 2022-05-10 | 北京航空航天大学 | 一种基于匿名主节点的区块链共识方法 |
CN114726879B (zh) * | 2022-03-29 | 2024-02-27 | 北京流通宝数据科技服务有限公司 | 一种基于区块链分流验证交易信息的方法 |
-
2021
- 2021-10-25 CN CN202111243458.6A patent/CN114169670A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114466034A (zh) * | 2022-03-21 | 2022-05-10 | 北京航空航天大学 | 一种基于匿名主节点的区块链共识方法 |
CN114726879B (zh) * | 2022-03-29 | 2024-02-27 | 北京流通宝数据科技服务有限公司 | 一种基于区块链分流验证交易信息的方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109767199B (zh) | 基于信誉的pbft共识系统及方法、区块链数据处理系统 | |
KR102230471B1 (ko) | 블록체인 네트워크 상에서 효율적인 트랜젝션을 수행하기 위한 그룹 증명 생성 방법 | |
Webb et al. | Cheating in networked computer games: a review | |
Conti et al. | Blockchain trilemma solver algorand has dilemma over undecidable messages | |
CN114169670A (zh) | 一种区块链两阶段共识方法、装置、设备和介质 | |
CN113452747B (zh) | 可扩展和安全的共识方法、系统、存储介质、智能终端 | |
CN109359978B (zh) | 基于区块链网络的智能合约交易方法和系统 | |
CN112163856A (zh) | 用于区块链与物联网融合场景的共识方法及系统 | |
CN112907252A (zh) | 一种基于多人链下通道的区块链交易方法及系统 | |
CN112651830B (zh) | 应用于电力资源共享网络的区块链共识方法 | |
WO2020182430A1 (en) | Methods of electing leader nodes in a blockchain network using a role-based consensus protocol | |
CN110855432A (zh) | 基于可验证随机函数分配验证者奖励的异步bft&dpos共识机制 | |
CN111371905A (zh) | 一种基于云计算的区块链分层共识证明体系结构与方法 | |
CN113660125B (zh) | 一种基于随机可信委员会的共识方法及装置 | |
CN113422805B (zh) | 一种基于可验证随机函数的分片共识方法 | |
KR20200081533A (ko) | 사물 인터넷 환경을 위한 동적 블라인드 투표기반의 블록체인 합의방법 | |
CN112020018B (zh) | 区块链记账组生成方法、共识方法及区块链系统 | |
CN114372589A (zh) | 一种联邦学习方法及相关装置 | |
KR102182142B1 (ko) | 신뢰성 향상을 위한 가중치 기반의 블록체인 네트워크 구성 방법 및 장치 | |
CN113660272A (zh) | 抗拜占庭排序的异步共识方法及装置 | |
Sallal et al. | Security and performance evaluation of master node protocol based reputation blockchain in the bitcoin network | |
CN114615281B (zh) | 基于小规模委员会的区块链出块方法及PoS协议确认方法 | |
Abbasihafshejani et al. | Detecting and Punishing Selfish Behavior During Gossiping in Algorand Blockchain | |
CN112907246B (zh) | 基于BFT协议和PoW机制的区块链共识协议实现方法和系统 | |
CN114422146A (zh) | 一种区块链主节点匿名排序方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |