CN114338040A - 一种区块链节点的分组多链三次共识方法 - Google Patents
一种区块链节点的分组多链三次共识方法 Download PDFInfo
- Publication number
- CN114338040A CN114338040A CN202111633266.6A CN202111633266A CN114338040A CN 114338040 A CN114338040 A CN 114338040A CN 202111633266 A CN202111633266 A CN 202111633266A CN 114338040 A CN114338040 A CN 114338040A
- Authority
- CN
- China
- Prior art keywords
- consensus
- node
- nodes
- grouping
- global
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 53
- 238000000926 separation method Methods 0.000 claims abstract description 3
- 238000012795 verification Methods 0.000 claims description 38
- 230000008569 process Effects 0.000 claims description 17
- 239000012634 fragment Substances 0.000 claims description 8
- 238000010276 construction Methods 0.000 claims description 3
- 230000010354 integration Effects 0.000 claims description 3
- 230000007246 mechanism Effects 0.000 abstract description 8
- 230000001360 synchronised effect Effects 0.000 description 9
- 238000004891 communication Methods 0.000 description 8
- 238000005516 engineering process Methods 0.000 description 8
- 230000008901 benefit Effects 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 2
- 230000007423 decrease Effects 0.000 description 2
- 238000013467 fragmentation Methods 0.000 description 2
- 238000006062 fragmentation reaction Methods 0.000 description 2
- 238000007726 management method Methods 0.000 description 2
- 238000012163 sequencing technique Methods 0.000 description 2
- 241000926403 Zyzzyva Species 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
- 230000010076 replication Effects 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
- 230000007480 spreading Effects 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
Images
Classifications
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明涉及区块链共识机制技术领域,解决大规模网络多节点的共识问题。该方法在分组分层的节点设计架构下,通过三次共识,实现多节点网络下的共识。具体的,在各分组中通过硬件设备筛选出分组节点和全局节点,进行第一次共识取得共识值。在全局节点中进行第二次共识,通过纠删码进行传值,在输出相同时,实现了比直接传值的共识协议更低的带宽。第二次共识结束后,全局节点得到各分组第一次共识取得的共识值。接着在分组中进行第三次共识,通过第二次共识获得的共识凭证,实现广播方式得到别组的共识值。本发明包括:节点分离,共识节点选举,第一次共识,第二次共识,第三次共识五个步骤。
Description
技术领域
本发明涉及区块链共识技术领域,尤其涉及一种区块链节点的分组多链三次共识方法。
背景技术
随着比特币,以太币等加密货币的兴起,其底层区块链技术得到了越来越多的关注。区块链技术是运用加密算法、共识机制等技术的分布式存储账本。区块链是一个共享数据库,存储于其中的数据或信息,具有“不可伪造”“全程留痕”“可以追溯”“公开透明”“集体维护”等特征。区块链以其去中心化,不可篡改,多方共享以及可回溯特性为解决数据可信存储问题提供了新的可能。区块链技术是当今世界各国所关注的新兴技术,其核心思想是构建一个分散化的网络与应用环境,突破中心化网络格局的一系列制约。然而完全的去中心化与完全的中心化在实际应用中都是不可取的。只有结合我国国情,在完全去中心化与中心化之间进行取舍,才能设计出真正适用于中国的区块链新基建,构建一个公开透明,安全可控的网络资源环境。
区块链共识机制是确保分布式环境中数据一致性的关键技术,也是制约区块链效率的瓶颈,共识机制的执行效率和安全性决定了区块链系统的可用性。在面向大规模网络中的计算存储资源分布式治理中,网络节点数量庞大,合理设计一套高效安全的共识机制,是确保治理有效性和安全性的关键。
分组共识,是应对节点数量众多情况下提升共识效率的一种常用共识策略,然而现有的分组共识方法很难在取得效率的同时确保共识安全性,大多数分组共识方法面临着分组作恶问题,降低了系统的安全性。
发明内容
针对以上问题,本发明提供了一种区块链节点的分组多链三次共识方法,包括:
步骤一:节点分离,根据区块链网络节点功能特性,将其划分为以下四种,验证节点,是设定上属于外部可信节点;全局节点,是各分组的代表节点;分组节点,是从分组中抽取参与共识的节点;普通节点,是分组中未被抽取的节点,网络构建初期,普通节点加入网络后,按地理位置进行分组。
步骤二:共识节点选举,各分组内的区块链网络节点均安装通过可靠硬件设备,设备汇报自身设备软硬件资源状态信息;通过资源的状态信息,获取质押证明积分;当质押证明积分到达所设定的阈值时,将被抽取成为分组节点,进行第一次共识,其中质押证明积分最高的将成为全局节点,作为该分组代表等待参与第二次共识。
步骤三:第一次共识,由所有所述分组节点参与,在各自的分组中进行第一次共识;各分组并行进行修改后的PBFT(Practical Byzantine Fault Tolerance) 共识,得到本组第一次共识值。
步骤四:第二次共识,所述全局节点之间进行第二次共识,提交本分组在第一次共识得到的共识值,将第二次共识分为两个阶段,即可靠广播阶段 (Reliable Broadcast,以下简称RBC)、广播阶段;在第二次共识阶段取得共识值后,所述验证节点将共识值取哈希值生成第二次共识的共识凭证向量,并广播至所有分组节点和全局节点。
步骤五:第三次共识,所述全局节点将第二次共识获得的共识值,广播至本分组的分组节点;所述分组节点回复完成信息,最终全部所述分组节点完成全部分组信息的共识。
进一步的,所述步骤二中的质押证明积分指的是,各区块链网络节点通过汇报自身的资源状态信息而取得的分数。
进一步的,所述软硬件资源状态信息为存储,CPU,内存,带宽等信息。
进一步的,所述步骤三中随时修改后的PBFT算法,随时修改为主节点轮换方法,本发明采取固定每轮进行一次主节点轮替。
进一步的,所述步骤四还包括二值共识阶段(Binary Argeement,以下简称 BA),在所述RBC阶段之后,广播阶段之前。
进一步的,所述三次共识过程是异步进行的。
进一步的,所述步骤四中,所述第二次共识过程包括三步:
第一步:RBC阶段,所述全局节点取出在第一次共识中得到的共识值,作为此阶段的输入,采取纠删码算法,将交易分割成N份交易块,分别发送给其余全局节点,其中N为参与第二次共识节点总数;本阶段流程结束后,对应的所述全局节点会得到其他全局节点提交的共识值。
第二步:BA阶段,完成RBC环节的所述全局节点,对共识值取哈希值,并通过自身的门限私钥片段进行加密。向所述验证节点发送加密信息;所述验证节点得到足够的所述加密片段,合成出门限私钥并对所述全局节点进行广播;所述全局节点接收到所述门限私钥的信息后,进行门限解密;门限解密无误后,纳入全局共识;结束时,所述全局节点完成全局共识,所述验证节点获得共识凭证。
第三步:广播阶段,所述验证节点将获取的所述共识凭证组合为共识凭证向量,广播给所有的分组节点和全局节点。
进一步的,所述步骤五,即第三次共识过程步骤如下,分为两步:
第一步:由所述全局节点在原分组中,广播第二次共识获得的共识值;
第二步:所述分组节点将共识值取哈希值后,与所述验证节点发送的共识凭证向量进行对比,一致后纳入第三次共识。
本发明的有益效果是:
1.本发明主要公开了立足于解决多个区块链网络节点存在的共识效率低下问题,采取分片分层共识的思路,扩大区块链网络共识的规模,提高共识效率。在本发明采取的三次共识中,使用异步共识作为桥梁,联系了两次弱同步共识。最终实现多节点的高效率共识。
2.本发明针对异步共识流程,采取纠删码作为输入降低通信带宽,单节点作为中间节点,降低通信的复杂度。
附图说明
为了更好地表达本发明的技术方案,下面将对本发明的进行附图说明:
图1是本发明方法流程图;
图2是本发明提供的共识机制整体流程示意图;
图3是本发明提供的共识机制的第二次共识算法流程示意图;
具体实施方式
下面参照附图来描述本发明的优选实施方式。本领域技术人员应当理解的是,这些实施方式仅仅用于解释本发明的技术原理,并非在限制本发明的保护范围。
需要说明的是,在本发明的描述中,术语“上”、“下”、“左”、“右”、“内”、“外”等指示的方向或位置关系的术语是基于附图所示的方向或位置关系,这仅仅是为了便于描述,而不是指示或暗示所述装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。
此外,还需要说明的是,在本发明的描述中,除非另有明确的规定和限定,术语“安装”、“相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域技术人员而言,可根据具体情况理解上述术语在本发明中的具体含义。
下面结合附图和实施例,对本发明的具体实施方式作进一步详细描述。以下实施例用于说明本发明,但不用来限制本发明的范围。
在以下详细描述之前,需要解释使用的术语。
数字签名:数字签名可以简单理解为互联网通信中,确保发送的消息不会被伪造的技术手段,其底层使用的是非对称加密技术。发送方通过对信息进行数字签名后发送,接收者则可以通过解密验证确保该信息为发送方发送以及消息在传播的过程中没有被破坏。在区块链网络中发送的每一条消息,默认都是经过数字签名的。
门限签名:门限签名也属于数字签名的形式,一个(t,n)的门限签名允许n 个节点中,任意t个私钥片段组合出门限私钥。
默克尔树、哈希值:哈希值是对原文经过哈希变换的值,其特征在单向性和无碰撞性,即一个原文只对应一个哈希值,且无法通过哈希值逆推出原文。哈希值常用来复杂原文的校验。默克尔树是一种树结构,与传统的完全二叉树的不同在于所有节点数据均为哈希值。普遍被使用在区块链中检验区块交易。
纠删码算法:Reed-Solomon Code,简称RS code。该算法可以将给定的数据块和正整数m,将为数据块生成n个数据块,其中只需要m+1个就可以解码恢复出原数据块。
门限加解密:分为门限加密和门限解密。其中,门限加密是节点使用门限私钥片段进行签名。门限解密是节点收集到足够数量的正确的门限加密片段后,通过门限公钥和消息的原文最终合成出门限私钥。通过完整的门限私钥加密后的信息,才能被门限公钥解密。
PBFT共识:Practical Byzantine Fault Tolerance,拜占庭容错共识,1999年提出的第一个实用性的弱同步共识。
HBBFT共识:Honey Badger Byzantine Fault Tolerance,2016年提出的第一个实用性的异步共识。与PBFT的区别主要在于异步性,使用HBBFT没有时间假设,消息可以随时到达,这提高了快速和慢速网络的效率;其次在于HBBFT 共识机制无主节点提出事务,每个节点都是提议者,这消除了潜在的攻击。
诚实节点和拜占庭节点:在一个多节点的系统共识过程中,因为各种因素 (可能为软件进程崩溃、硬件损坏和安全问题),没有按照约定的协议格式进行通信的节点称为拜占庭节点。与之对应的,完全遵循协议的节点,称为诚实节点。即使存在拜占庭节点的前提下,通过多节点的通信,最终使得诚实节点达成共识的算法,称为拜占庭容错算法。目前,拜占庭容错算法的容错上限是n3-1 (即占全体总数的1/3),n为参与共识的节点总数。
异步共识和同步共识:网络通常被区分为异步网络和同步网络,其区别在于通信时消息传递的时间延时。在同步网络中这个延时通常是确定的数值,而在异步网络中,这个时间延时是无限的。我们所处的现实中的网络环境是异步网络,而根据FLP不可能定理,异步网络中不存在确定性的共识算法。因此基于现实的网络环境通常采取两个方向去制定共识算法。一是弱同步共识,即弱同步网络假设,假设网络在大部分时候处于异步状态,但在某一时刻消息的延时是存在上限的。针对此假设,在算法流程中,各节点需要依赖节点本地的时钟计数。节点会在使用本地的时钟进行计时,在经过t时间后,若没有接收到节点的信息,则认为节点永远不会发送信息。这个方向的算法是最多的,如PBFT 共识,zyzzyva,SBFT,HotStuff协议等。二是异步共识,此类型的共识,节点在算法流程中不进行任何时钟计数,通过多节点的数据冗余实现信息传播。在算法无法取得进展时,节点会集体决策进行随机性的取值。在有限轮算法之后,节点间不能取得一致的概率趋近于0。此类的实用性协议诞生的很晚,如HBBFT 共识和DumboBFT共识。无论是弱同步共识还是异步共识,节点间都要经过多轮共识通信,高额的消息复杂度使得节点规模有限,这是无法避免的。如PBFT算法的节点数在超过100时,共识花费的时间缓慢到失去了实用性。为了扩大节点规模,一个有效的措施是采取分片技术。大致的思路是:对大规模节点的网络分割成很多分片,在各个分片中并行的进行小规模共识,最后再达成整体共识。但采取分片思路后,如何组织各层的共识,是个大问题。本专利采取了三层架构的共识,在第一次和第三次共识中采取弱同步共识,而处于中间的第二次共识则采用异步共识。
异步共识由于不采用时钟进行假设,难度是远远大于弱同步共识。但是相对于弱同步共识,存在很多好处。第一,不需要主节点,在弱同步共识中,会采取状态机复制的措施,进一步降低系统的复杂性。具体的,在一个共识周期中,往往存在一个主节点提交共识的内容,领导进行共识过程。一旦主节点发生问题,就要更换主节点。但异步共识中,则是不需要主节点的,每个节点均提交自己的共识内容,通过多次的节点通信,最终每个节点完成共识过程。第二,更适用于现实网络环境。如同前段所述,现实网络本来就是异步的,早期的拜占庭共识的应用环境在分布式服务器中,服务器节点的高软硬件素质使得节点间的时钟同步,相对于区块链节点是简单的。而在拜占庭共识应用于区块链的今天,参与共识的节点的软硬件素质层次不齐,时钟同步的难度就变得不容忽视。因此异步共识在区块链中更加的适用。在HBBFT共识中,主要环节分为两个大阶段,即RBC阶段和ABA阶段(ABA阶段与本发明使用的BA阶段都属于二值共识阶段,但本发明的BA阶段实现的思路与其不一致)。在后面改进的异步算法DumboBFT(小飞象拜占庭容错算法)中分析到,影响HBBFT共识的共识效率在于ABA阶段,大量存在的如前段所述的随机性共识,使得这个异步共识效率下降。因而本专利在第二次共识中考虑到如下方面,(1)不设置主节点而进行共识,是异步共识的大优点,应当保留;(2)由于异步网络的特点,节点往往要进行大量的消息冗余通信,以及在ABA环节的耗时的随机性协议使得整体效率低下。应当结合弱同步网络协议的措施进行优化。基于此,本专利的第二次共识分为三个阶段。第一个阶段进行了RBC,不设置主节点且使用异步共识,但是使用单独节点进行中转减少消息冗余;在第二个阶段引入了一个同步节点,舍弃了随机性共识,由可信的同步节点负责消息的转发和取值;第三阶段是广播阶段。
本发明实施例提供的一种区块链节点的分组三次共识方法,如图1-3,包括:
步骤一:节点分离。根据区块链网络节点功能特性划分为以下四种:验证节点,是设定上属于外部可信节点;全局节点,是各分组的代表节点;分组节点,是从分组中抽取参与共识的节点;普通节点,是分组中未被抽取的节点,网络构建初期,普通节点加入网络后,按地理位置进行分组。
步骤二:共识节点选举。各分组内区块链网络节点均安装通过可靠硬件设备,设备汇报自身设备的存储,CPU,内存,带宽等软硬件资源状态信息。各区块链网络节点通过汇报自身的资源状态信息,获取的分数称为质押证明积分。当质押证明分数到达所设定的阈值时,将被抽取成为分组节点,进行分组共识,其中质押证明积分最高的将成为全局节点,作为该分组代表等待参与第二次共识。所述阈值可调,需要依据具体区块链网络情况确定数值。
各区块链网络节点均需要安装可信的硬件装置,用于汇报状态信息。状态信息包括节点设备的存储、计算、内存、带宽等软硬件资源信息,其反映了各区块链网络节点的真实存储和计算能力。每隔20s,普通节点都会通过外部装置的信息汇报程序获取自身状态,并向其他节点汇报状态信息,包括但不限于时间戳、内存使用率、cpu使用率、网络带宽和存储情况。外部装置会根据接收到的状态信息,进行累计评分。评分标准包括,时间戳的连续性、内存使用率、 cpu使用率、存储情况。具体的,时间戳不连续证明网络存在问题,扣除分数;内存、cpu、存储长时间处于高占用情况,证明节点的硬件情况不佳,扣除分数。分数可累加可扣除,看作是质押证明积分。
最后,各分组内根据设定的阈值,选取质押证明积分高的部分节点成为分组节点,参与分组共识。同时,各分组内质押证明分数最高的节点成为全局节点,等待参与全局共识。
步骤三:第一次共识。各分组中并行进行修改后的PBFT共识,得到本组第一次共识值。分组节点在全局节点进行第二次共识期间,继续进行下一次共识。
第一次共识采取PBFT共识,原PBFT算法基于视图更换进行共识,在每一个视图中,主节点选举措施为:p=view%n(其中view为当前视图序号,n为参与共识的全体区块链网络节点数)。只有发生view-change(主节点更换)时才会发生视图更改,使view数目加一,选择新的主节点,消息复杂度为n3。而本发明中使用每次固定轮换主节点,即在某一分组节点担任主节点完成PBFT后,无论共识是否完成均进行视图更改。去除了复杂的view-change时节点间的通信。改变后的第一次共识算法依然为弱同步网络假设的协议,节点时钟开始时刻遵循原PBFT协议。
步骤四:第二次共识,全局节点之间进行第二次共识。第二次共识分为三个阶段,即可靠广播阶段(Reliable Broadcast,以下简称RBC)、二值共识阶段 (BinaryArgeement,以下简称BA)、广播阶段。广播阶段是在RBC阶段和ABA 阶段都完成时广播的;RBC阶段完成时,由于异步网络,获得的共识值是乱序的、不定的,必须通过BA阶段保证算法的一致性。
假定全局节点经过选拨后,拜占庭节点总数为F,全局节点总数为N,满足有N≥3F+1。第二次共识为异步网络的共识。第二次共识为本专利的一个重点。本阶段当前的状况是:每组有1个节点提供第一次共识值作为输入。为降低节点带宽压力,使用纠删码进行分割共识值。与直接传值相比,每个全局节点只需要传原本信息的1/n。
本阶段引入验证节点作为同步节点进行时间假设,将原HBBFT算法的 READY传值的通信复杂度由n2降低到n,且实现了快速模式。在实际工程环境中,往往采取N≥3F+1进行拜占庭节点数量的假设,但是实际可能并没有这些数量的拜占庭节点。本步骤可以引入快速模式,可跳过BA阶段,直接完成第二次共识,有效的加快了共识效率。判断依据为,验证节点在时限内是否接收到全部的全局节点的READY值,如果接收到了,可以跳过BA阶段,验证节点直接广播;如果时限内没有接收到全部全局节点的READY值 (大于等于n-f个),则继续进行BA阶段和广播阶段。第二次共识的共识过程分为三步:
第一步:RBC阶段。为解释具体过程,假设两个全局节点Pj、Pk和验证节点Pc,RBC阶段又可以分为3个小阶段。
阶段1:Pk取出共识值vk,采取纠删码算法(F,N),将其分割成N份共识块,生成N个数据块。将这N个数据块分别取哈希值,作为默克尔树的叶子节点,计算出树根值h。为Pj生成消息<VAL,h,bj,sj,r,k>δk,其中bj是第j 个叶子节点的哈希分支,sj是纠删码生成的数据块,δk为Pk的私钥签名,r 为当前轮数,k为ID值。
阶段2,全局节点Pj收到VAL信息后,向其他全局节点发送接收到的纠删码片段信息<ECHO,h,bj,sj,r,j>δj,并等待来着其他全局节点的ECHO信息。所述纠删码片段信息<ECHO,h,bj,sj,r,j>δj需要进行二次的广播。当全局节点 Pj收到来自全局节点Pk的ECHO信息后,需要通过bi,检查si是否为h下同一批交易。保留有效的交易,无效则直接丢弃。当Pj节点接收到N-F个有效ECHO信息后,挑选任意F+1个数据块中的s值,计算出原交易数据默克尔树根h’,并进一步验证h’=h。验证无误后,向验证节点发送<READY, (h,k)δλ,r,j>δj值,并等待其他全局节点的ECHO信息。
阶段3:为加快速度,验证节点在接收到F+1个信息后,向全局节点进行一次广播,此时还未发出READY值的全局节点向验证节点发送READY 值。在验证节点接收到2F+1信息后,开启时钟计数,如果在等待时间到达之前一共接收到N个READY信息,则向所有全局节点广播门限私钥信息 <FULL,(h,k)δ,r>δc,其中,δ为合成的门限私钥,δc为验证节点私钥。合成的门限私钥是指验证节点接收到了足够的加密的门限私钥片段信息,只有在接收到大于2F+1个门限私钥片段信息才能合成出门限私钥。全局节点接收到门限私钥,从而解密门限信息。无误后,在接收到N-F个ECHO信息后,恢复原信息vk,直接加入共识,vk的第二次共识直接结束。若验证节点未在等待时间内接收到N个信息,则向所有全局节点广播门限私钥信息 <KEY,(h,k)δ,r>δc。全局节点接收到门限私钥信息,解密门限信息。无误后,在接收到N-F个ECHO信息后,恢复原信息vk,进入BA阶段。
第二步:BA阶段。本阶段在全局节点恢复出vk且未接收到验证节点的等待时间内收到全部N个信息全提交通知时触发,进行一次二值共识。分为 2个阶段:
阶段1:全局节点Pj发送<BA,(h,k)δλ,r,j>δj给验证节点,其中,r为轮数,k为全局节点Pk的ID值,h为vk的哈希值,δλ为门限私钥片段,j为全局节点Pj的的ID值,δj为全局节点Pj的门限私钥。此时门限签名的阈值为2F+1。
阶段2:验证节点接收到2F+1个BA信息时,将门限私钥片段合成生成为门限私钥信息,向所有全局节点广播门限私钥信息<KEY,(h,k)δ>δc。全局节点接收到门限私钥信息,解密门限信息,无误后加入共识。
第三步:广播阶段。验证节点产生共识凭证向量的方法就是对共识值取哈希值。验证节点在发送N-F个KEY信息后,开始进行时钟计数,在等待时间内继续接收BA信息,发送KEY值。等待时间结束,整合全部的KEY 信息,剔除重复信息并按节点ID值排序,生成<Final,(h1,k)δλ,(h2,j)δλ,…, (ht,p)δλ>δc(其中,h1…ht为不同共识信息的哈希值,k、j、p为对应全局节点ID值),发送给所有分组节点和全局节点。分组节点接收到Final信息后,解密保存,在第三次共识时使用,开始时钟计时。全局节点在接收到Final 信息后,开始第三次共识。
共识协议需要满足一致性,包括:1)诚实节点接受了某个共识信息,则其余的诚实节点最终会接收该信息。2)诚实节点提交了某个信息,则这个信息最终会达成共识。
本协议满足一致性。1)在RBC阶段,诚实节点在接收到超过2f+1个READY值后,接受共识。假设诚实节点a接收到了2f+1个READY值,则必然至少有f+1个来自诚实节点,因此这f+1个诚实节点的信息,必然会发送到所有全局节点。诚实的全局节点在接收到f+1个READY值后,会直接发送READY值,最终n-f个诚实节点都会接收到2f+1个信息,将信息纳入共识。2)重点问题在第二点这里,在第二次共识中,可能发生分组的全局节点发生拜占庭错误,最终未达成共识。造成了分组中的诚实节点提交了共识信息,最终共识失败。因此,为了达成一致性,在全局共识失败后,节点的质押证明积分会大额减少,在下一轮共识中新的全局节点将上一轮未成功共识的信息和本轮的信息,一起作为输入,进行第二次共识。
步骤五:第三次共识。完成第二次共识的全局节点在本分组中进行第三次共识,广播至本分组的分组节点;分组节点回复完成信息,最终全部所述分组节点完成全部分组信息的共识。由于异步网络的因素,验证节点发送给各节点的Final信息是不同时间到达的。如果分组节点在计时结束还未接收到全局节点的共识信息,则需要进行view-change(主节点更换)环节;如果分组节点接收到全局节点信息时还未接收到Final信息,则需要向验证节点通信获取信息。第三次共识分为两步:
第一步:由全局节点在原分组中,按第二次共识信息的定序广播第二次共识的共识值,即别的分组的共识值<THIRD,r,k,v>,其中,r为当前轮数,k为ID 值,v为不同组的共识值。
第二步:分组节点将共识值取哈希值后,与验证节点发送的共识凭证向量进行对比,一致后纳入共识。并向全局节点发送<REPLY,r,k>信息,全局节点接收到2f+1个信息后,完成第三次共识。通过对相同的共识值取哈希值后得到的结果,从而限制拜占庭节点的行为。
额外的,本阶段属于单节点主导的共识,由于主节点随时可能发生拜占庭错误,必须要有view-change(主节点更换)环节,也即当前全局节点发生问题时,需要进行主节点更换的环节。主节点更换策略分为两步:
第一步:分组节点Pi在组内向所有节点广播发送<view-change,r,i>(其中, r为当前共识轮数),并等待其他分组节点的信息。
第二步:若接收到2f个view-change信息,则更换下一个主节点。
本专利采取了三次共识策略,看上去与单次共识的协议相比,有效率下降。但是这其实并不是问题,下面是分析过程:
共识协议满足CAP原则,即一致性、可用性和分组容忍性。本协议实现了一致性。在网络分区更大时,可用性的下降是必然的。但是本协议是流程异步的协议,在第一次共识与第二次共识间是异步的,第一次协议可以持续进行。而信息一旦在第一次共识中达到了共识,最终一定会在所有节点中达成共识。因此本文的共识效率只取决于第一次共识过程。
以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。
Claims (9)
1.一种区块链节点的分组多链三次共识方法,其特征在于:该方法包括以下步骤:
步骤一:节点分离,根据区块链网络节点功能特性,将其划分为以下四种,验证节点,是设定上属于外部可信节点;全局节点,是各分组的代表节点;分组节点,是从分组中抽取参与共识的节点;普通节点,是分组中未被抽取的节点,网络构建初期,普通节点加入网络后,按地理位置进行分组;
步骤二:共识节点选举,各分组内的区块链网络节点均安装通过可靠硬件设备,设备汇报自身设备软硬件资源状态信息;通过资源的状态信息,获取质押证明积分;当质押证明积分到达所设定的阈值时,将被抽取成为分组节点,进行分组共识,其中质押证明积分最高的将成为全局节点,作为该分组代表等待参与第二次共识;
步骤三:第一次共识,由所有所述分组节点参与,在各自的分组中进行第一次共识;各分组并行进行修改后的PBFT共识,得到本组第一次共识值;
步骤四:第二次共识,所述全局节点之间进行第二次共识,提交本分组在第一次共识得到的共识值,将第二次共识分为两个阶段,即可靠广播阶段(以下简称RBC)、广播阶段;在第二次共识阶段取得共识值后,所述验证节点将共识值取哈希值生成第二次共识的共识凭证向量,并广播至所有分组节点和全局节点;
步骤五:第三次共识,所述全局节点将第二次共识获得的共识值,广播至本分组的分组节点;所述分组节点回复完成信息,最终全部所述分组节点完成全部分组信息的共识。
2.根据权利要求1所述的一种区块链节点的分组多链三次共识方法,其特征在于:所述步骤二中的质押证明积分为,各区块链网络节点通过汇报自身的资源状态信息而取得的分数。
3.根据权利要求1所述的一种区块链节点的分组多链三次共识方法,其特征在于:所述软硬件资源状态信息为存储,CPU,内存,带宽信息。
4.根据权利要求1所述的一种区块链节点的分组多链三次共识方法,其特征在于:所述步骤三中随时修改后的PBFT算法,随时修改采取主节点轮换方法。
5.根据权利要求4所述的一种区块链节点的分组多链三次共识方法,其特征在于:所述主节点轮换方法,采取固定每轮进行一次主节点轮替方法。
6.根据权利要求1所述的一种区块链节点的分组多链三次共识方法,其特征在于:所述步骤四还包括二值共识阶段(Binary Argeement,以下简称BA),在所述RBC阶段之后,广播阶段之前。
7.根据权利要求1所述的一种区块链节点的分组多链三次共识方法,其特征在于:所述三次共识过程是异步进行的。
8.根据权利要求6所述的一种区块链节点的分组多链三次共识方法,其特征在于步骤四中,所述第二次共识过程包括三步:
第一步:RBC阶段,所述全局节点取出在第一次共识中得到的共识值,作为此阶段的输入,采取纠删码算法,将交易分割成N份交易块,分别发送给其余全局节点,其中N为参与第二次共识节点总数;本阶段流程结束后,对应的所述全局节点会得到其他全局节点提交的共识值;
第二步:BA阶段,完成RBC环节的所述全局节点,对共识值取哈希值,并通过自身的门限私钥片段进行加密。向所述验证节点发送加密信息;所述验证节点得到足够的所述加密片段,合成出门限私钥并对所述全局节点进行广播;所述全局节点接收到所述门限私钥的信息后,进行门限解密;门限解密无误后,纳入全局共识;结束时,所述全局节点完成全局共识,所述验证节点获得共识凭证;
第三步:广播阶段,所述验证节点将获取的所述共识凭证组合为共识凭证向量,广播给所有的分组节点和全局节点。
9.根据权利要求1所述的一种区块链节点的分组多链三次共识方法,其特征在于:所述步骤五,即第三次共识过程步骤如下,分为两步:
第一步:由所述全局节点在原分组中,广播第二次共识获得的共识值;
第二步:所述分组节点将共识值取哈希值后,与所述验证节点发送的共识凭证向量进行对比,一致后纳入第三次共识。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111633266.6A CN114338040B (zh) | 2021-12-29 | 2021-12-29 | 一种区块链节点的分组多链三次共识方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111633266.6A CN114338040B (zh) | 2021-12-29 | 2021-12-29 | 一种区块链节点的分组多链三次共识方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114338040A true CN114338040A (zh) | 2022-04-12 |
CN114338040B CN114338040B (zh) | 2024-03-08 |
Family
ID=81014775
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111633266.6A Active CN114338040B (zh) | 2021-12-29 | 2021-12-29 | 一种区块链节点的分组多链三次共识方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114338040B (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115378788A (zh) * | 2022-08-22 | 2022-11-22 | 天津大学 | 基于分层共识和强化学习的区块链性能自适应优化方法 |
CN116233145A (zh) * | 2023-05-05 | 2023-06-06 | 北京邮电大学 | 一种基于分片策略的区块链异步共识方法及装置 |
CN116455904A (zh) * | 2023-06-12 | 2023-07-18 | 湖南天河国云科技有限公司 | 基于异步网络去中心化的区块链共识方法及系统 |
CN117955635A (zh) * | 2024-03-22 | 2024-04-30 | 南京信息工程大学 | 基于联盟链验证节点分组的交易验证方法 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2021032138A1 (zh) * | 2019-08-20 | 2021-02-25 | 深圳前海微众银行股份有限公司 | 一种基于区块链系统的共识方法、装置及系统 |
CN113141414A (zh) * | 2021-05-07 | 2021-07-20 | 大连理工大学 | 一种cnfs协议中区块链节点的分组多链异步共识方法 |
CN113347174A (zh) * | 2021-05-31 | 2021-09-03 | 矩阵元技术(深圳)有限公司 | 区块链中的共识方法、装置和电子设备 |
CN113630258A (zh) * | 2021-10-09 | 2021-11-09 | 支付宝(杭州)信息技术有限公司 | 一种共识方法、区块链系统和共识节点 |
CN113781218A (zh) * | 2021-09-03 | 2021-12-10 | 桂林电子科技大学 | 基于特征信任的分组pbft共识算法 |
-
2021
- 2021-12-29 CN CN202111633266.6A patent/CN114338040B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2021032138A1 (zh) * | 2019-08-20 | 2021-02-25 | 深圳前海微众银行股份有限公司 | 一种基于区块链系统的共识方法、装置及系统 |
CN113141414A (zh) * | 2021-05-07 | 2021-07-20 | 大连理工大学 | 一种cnfs协议中区块链节点的分组多链异步共识方法 |
CN113347174A (zh) * | 2021-05-31 | 2021-09-03 | 矩阵元技术(深圳)有限公司 | 区块链中的共识方法、装置和电子设备 |
CN113781218A (zh) * | 2021-09-03 | 2021-12-10 | 桂林电子科技大学 | 基于特征信任的分组pbft共识算法 |
CN113630258A (zh) * | 2021-10-09 | 2021-11-09 | 支付宝(杭州)信息技术有限公司 | 一种共识方法、区块链系统和共识节点 |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115378788A (zh) * | 2022-08-22 | 2022-11-22 | 天津大学 | 基于分层共识和强化学习的区块链性能自适应优化方法 |
CN115378788B (zh) * | 2022-08-22 | 2023-11-10 | 天津大学 | 基于分层共识和强化学习的区块链性能自适应优化方法 |
CN116233145A (zh) * | 2023-05-05 | 2023-06-06 | 北京邮电大学 | 一种基于分片策略的区块链异步共识方法及装置 |
CN116233145B (zh) * | 2023-05-05 | 2023-08-01 | 北京邮电大学 | 一种基于分片策略的区块链异步共识方法及装置 |
CN116455904A (zh) * | 2023-06-12 | 2023-07-18 | 湖南天河国云科技有限公司 | 基于异步网络去中心化的区块链共识方法及系统 |
CN116455904B (zh) * | 2023-06-12 | 2023-09-05 | 湖南天河国云科技有限公司 | 基于异步网络去中心化的区块链共识方法及系统 |
CN117955635A (zh) * | 2024-03-22 | 2024-04-30 | 南京信息工程大学 | 基于联盟链验证节点分组的交易验证方法 |
CN117955635B (zh) * | 2024-03-22 | 2024-06-07 | 南京信息工程大学 | 基于联盟链验证节点分组的交易验证方法 |
Also Published As
Publication number | Publication date |
---|---|
CN114338040B (zh) | 2024-03-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN114338040B (zh) | 一种区块链节点的分组多链三次共识方法 | |
Miller et al. | The honey badger of BFT protocols | |
US20220385460A1 (en) | Systems and methods for selecting and utilizing a committee of validator nodes in a distributed system | |
CN108737375B (zh) | 一种区块链共识方法及系统 | |
CN114079660B (zh) | 一种高性能分布式存储区块数据、时间戳、跨链通信与数据协同方法 | |
CN111131209B (zh) | 一种改进的高效共识方法、系统、计算机设备及存储介质 | |
CN110796547A (zh) | 一种基于联盟区块链的改进的实用拜占庭容错系统 | |
CN113271204B (zh) | 一种基于量子密钥分发的拜占庭容错共识方法 | |
CN113141414B (zh) | 一种cnfs协议中区块链节点的分组多链异步共识方法 | |
Feng et al. | System architecture for high-performance permissioned blockchains | |
CN114050904B (zh) | 一种基于两层级领导节点分片结构的共识系统及方法 | |
CN112468255B (zh) | 基于网络共识结合vrf算法的区块链节点时间同步方法 | |
Buchnik et al. | Fireledger: A high throughput blockchain consensus protocol | |
CN109919760A (zh) | 基于投票机制的拜占庭容错共识算法 | |
He et al. | An improvement of consensus fault tolerant algorithm applied to alliance chain | |
CN114745140B (zh) | 基于聚合加密的城市规划领域区块链共识验证方法及系统 | |
Wang et al. | An optimization strategy for PBFT consensus mechanism based on consortium blockchain | |
CN111970370B (zh) | 基于面向通信设备体系的多层区块链协议拓展系统及方法 | |
CN114499874B (zh) | 一种应用于工业互联网的拜占庭容错共识优化方法 | |
CN116455685A (zh) | 一种在广播网络下的pbft改进共识方法 | |
CN114928446A (zh) | 一种大规模节点高效共识方法 | |
Liu et al. | A secure and decentralized reconfiguration protocol for sharding blockchains | |
Du et al. | An Advanced PBFT-based Consensus Algorithm for a Bidding Consortium Blockchain | |
Zhang et al. | FortunChain: EC-VRF-based scalable blockchain system for realizing state sharding | |
Hao et al. | Doppel: A bft consensus algorithm for cyber-physical systems with low latency |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |