CN112884580A - 一种公众联盟链共识方法及系统 - Google Patents
一种公众联盟链共识方法及系统 Download PDFInfo
- Publication number
- CN112884580A CN112884580A CN202110189819.7A CN202110189819A CN112884580A CN 112884580 A CN112884580 A CN 112884580A CN 202110189819 A CN202110189819 A CN 202110189819A CN 112884580 A CN112884580 A CN 112884580A
- Authority
- CN
- China
- Prior art keywords
- block
- difficulty
- node
- consensus
- value
- 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 148
- 238000012545 processing Methods 0.000 claims abstract description 30
- 238000005065 mining Methods 0.000 claims abstract description 6
- 238000003860 storage Methods 0.000 claims description 9
- 230000009467 reduction Effects 0.000 claims description 4
- 230000007246 mechanism Effects 0.000 abstract description 24
- 230000000694 effects Effects 0.000 abstract description 5
- 238000011156 evaluation Methods 0.000 abstract description 4
- 238000004364 calculation method Methods 0.000 description 41
- 230000008569 process Effects 0.000 description 32
- 230000006870 function Effects 0.000 description 22
- 238000004458 analytical method Methods 0.000 description 14
- 230000006266 hibernation Effects 0.000 description 13
- 238000004891 communication Methods 0.000 description 9
- 238000013461 design Methods 0.000 description 7
- 238000010586 diagram Methods 0.000 description 6
- 238000009826 distribution Methods 0.000 description 6
- 238000012795 verification Methods 0.000 description 6
- 238000012790 confirmation Methods 0.000 description 4
- 238000011160 research Methods 0.000 description 4
- 230000006399 behavior Effects 0.000 description 3
- 230000008859 change Effects 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 238000009440 infrastructure construction Methods 0.000 description 3
- RTZKZFJDLAIYFH-UHFFFAOYSA-N Diethyl ether Chemical compound CCOCC RTZKZFJDLAIYFH-UHFFFAOYSA-N 0.000 description 2
- 241000282344 Mellivora capensis Species 0.000 description 1
- 238000004220 aggregation Methods 0.000 description 1
- 230000000903 blocking effect Effects 0.000 description 1
- 230000002860 competitive effect Effects 0.000 description 1
- 239000002131 composite material Substances 0.000 description 1
- 230000007423 decrease Effects 0.000 description 1
- 230000004069 differentiation Effects 0.000 description 1
- 238000005304 joining Methods 0.000 description 1
- 238000004519 manufacturing process Methods 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
- 230000008447 perception Effects 0.000 description 1
- 238000010200 validation analysis 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
- G06Q40/00—Finance; Insurance; Tax strategies; Processing of corporate or income taxes
- G06Q40/04—Trading; Exchange, e.g. stocks, commodities, derivatives or currency exchange
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/30—Authentication, i.e. establishing the identity or authorisation of security principals
- G06F21/31—User authentication
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Business, Economics & Management (AREA)
- Finance (AREA)
- Databases & Information Systems (AREA)
- Accounting & Taxation (AREA)
- General Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- Computer Hardware Design (AREA)
- Data Mining & Analysis (AREA)
- Computing Systems (AREA)
- Development Economics (AREA)
- Economics (AREA)
- Marketing (AREA)
- Strategic Management (AREA)
- Technology Law (AREA)
- General Business, Economics & Management (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明提出一种公众联盟链共识方法,包括:当公众联盟链的一共识节点产生一个区块后,将该共识节点在后续多个出块周期内的出块难度调整为第一值,该第一值高于全网基础出块难度;若该共识节点在该多个出块周期内未产生新的区块,则将该共识节点进行区块挖掘的出块难度调整为第二值,该第二值的低于该第一值。本发明还提出一种公众联盟链共识系统以及一种数据处理装置。本发明的公众联盟链共识方法,从共识节点出块难度动态调节机制入手,独立动态地调整各共识节点出块难度,能够在显著提升算法公平性、降低共识节点计算开销与交易处理延迟的同时,保证公众联盟链其他指标评价效果基本持平。
Description
技术领域
本发明属于计算机网络研究技术领域,具体涉及一种公众联盟链共识方法和系统。
背景技术
区块链技术自2008年问世以来,其共识方法一直是学术界与产业界的热门研究方向。随着区块链技术应用领域不断扩展,将其作为“价值互联网”底层基础设施的呼声也愈发强烈。为了将区块链应用于基础设施建设,并且满足不同场景下的事务处理需求,国内外研究团队提出了一系列共识方法。根据区块数据是否满足最终一致性,现有共识方法可以分为概率性共识与确定性共识两类。
概率性共识中区块数据以一定概率达成一致,随着时间推移概率逐渐提高,但不能保证区块数据将来不可更改,属于弱一致性共识,代表共识方法有工作量证明(Proof-of-Work,PoW)、权益证明(Proof-of-Stack,PoS)。概率性共识大多应用在公有链系统当中,参与共识的节点通过求解难题、质押权益等方式竞争获得出块权(产生合法区块),并依据最长链、GHOST等规则基于节点本地数据确定主链,完成区块共识过程。运行概率性共识的系统共识节点可以自由进出,且允许大规模节点参与共识过程;共识过程通信复杂度为线性,开销较小;出块权的归属随机且不可预测;能够在特定假设下避免双花、共谋等攻击行为,保证共识过程安全、稳定进行。但是,概率性共识往往交易处理性能较低、系统计算开销较大。为此,Eyal I等人提出Bitcoin-NG,通过“关键区块+微区块”的方式,将出块权与交易排序过程分开,提升共识方法性能;Larimer D提出委托权益证明(Delegated Proof-of-Stake,DPoS),通过投票机制缩小共识节点范围,提升交易处理性能。
确定性共识中区块数据一旦达成一致便不可更改,属于强一致性共识,代表共识方法有实用拜占庭容错协议(Practical Byzantine Fault Tolerance,PBFT)、HoneyBadgerBFT与Algorand。确定性共识大多应用在包含身份认证机制的许可链系统(联盟链、私有链)当中,其每轮共识过程开始后,共识节点集合便不可更新,集合内节点基于固定规则获取出块权,并通过“节点通信+数字签名”的方式确定当轮共识结果,完成区块共识过程。运行确定性共识的系统交易处理性能较高,计算开销较小;通过身份认证、数字签名,能够在特定假设下避免一系列拜占庭攻击行为。但是,共识过程通信复杂度很高且往往需要在网络同步的环境下,严重限制参与共识节点规模扩大与应用场景扩展。为此,Miller A等人提出HoneyBadgerBFT,实现网络异步环境下的BFT共识;GiladY等人提出Algorand,基于BA*方法,结合“可验证随机函数+权益证明”,扩大共识参与节点数量,并保证共识确定性。
现有概率性共识方法,共识通信开销低且节点自由进出共识集合,从而具有较高可扩展性;出块权的归属随机能够一定程度保证出块节点不可预测,从而提升对于拒绝服务攻击、日食攻击的抵抗能力。但是,概率类共识普遍计算开销较大,吞吐量、延迟等性能无法满足公众联盟链设计需求。与此同时,出块权的归属通过竞争证明的方式获取,将增加中心化风险,降低共识方法公平性;还将使得出块间隔方差较大,降低共识方法稳定性。
现有确定性共识方法,大多基于PBFT共识改进完善,“节点通信+数字签名”机制能够大幅提升交易处理吞吐量、降低共识过程计算开销;引入超时投票等机制,保证出块间隔稳定;基于随机函数确定出块权的归属,保证每轮共识开始前出块节点不可预测且具有较高公平性。但是,确定性共识普遍可扩展性差,共识节点数量往往只有几十~几百;随机函数基于链上信息,仍然无法避免在每轮共识开始后,节点向拥有出块权的节点发起恶意攻击。Algorand等方案虽能够扩大共识参与节点数量,但会降低共识方法公平性、稳定性,依旧无法满足公众联盟链需求。
综上所述,需研究新型共识方法,以满足公众联盟链系统设计与实现需求。
发明内容
本发明以不同的区块出块周期采用不同的出块难度,提出一种公众联盟链共识方法,包括:当公众联盟链的一共识节点产生一个区块后,将该共识节点在后续多个出块周期的出块难度调整为第一值,该第一值高于全网基础出块难度;若该共识节点在该多个出块周期内未产生新的区块,则将该共识节点的出块难度调整为第二值,该第二值的低于该第一值。
本发明所述的公众联盟链共识方法,其中共识节点ni产生区块后,将共识节点ni挖掘新的区块Bnext的出块难度diffi(bnext)调整为第一值d1;若共识节点ni在D个出块周期内未产生区块Bnext,则将diffi(bnext)调整为第二值d2;D>H,H为区块的确认周期,bnext分别为区块Bnext的出块高度,
第一值d1为:d1=max(d1′,diffbase(bnext)),第二值d2为:d2=max(d2′,diffbase(bnext));d1′=fw(mi(bnext),C,p)*d2′,fw(·)、fc(·)为出块难度函数,diffbase(bnext)为挖掘区块Bnext的全网基础出块难度,mi(bnext)为区块Bnext到区块的出块高度差,C为难度调整系数,p为难度下降系数,为共识节点ni产生区块时的出块难度相对于当时的全网基础出块难度的倍数,N为参与挖掘区块Bnext的共识节点的个数。
出块难度函数fw(·)为:
出块难度函数fc(·)为:
bi1为共识节点ni产生的第一个区块Bi1的出块高度,Mi为共识节点ni产生的区块个数。
本发明还提出一种公众联盟链共识系统,包括:第一难度调整模块,用于调整公众联盟链的一共识节点的出块难度为第一值,该第一值高于全网基础出块难度;第二难度调整模块,用于调整该共识节点的出块难度为第二值,该第二值的低于该第一值;调度模块,用于在共识节点产生区块后的多个出块周期内,调用执行该第一难度调整模块;并在该共识节点在该多个出块周期内未产生新的区块时,则调用执行该第二难度调整模块;该调度模块具体包括:共识节点ni产生区块后,调用执行该第一难度调整模块将共识节点ni挖掘新的区块Bnext的出块难度diffi(bnext)调整为第一值d1;若共识节点ni在D个出块周期内未产生区块Bnext,则调用执行该第二难度调整模块将diffi(bnext)调整为第二值d2;其中,D>H,H为区块的确认周期,bnext分别为区块Bnext的出块高度,
第一值d1为:d1=max(d1′,diffbase(bnext)),第二值d2为:d2=max(d2′,diffbase(bnext));其中,d1′=fw(mi(bnext),C,p)*d2′,fw(·)、fc(·)为出块难度函数,diffbase(bnext)为挖掘区块Bnext的全网基础出块难度,mi(bnext)为区块Bnext到区块的出块高度差,C为难度调整系数,p为难度下降系数,为共识节点ni产生区块时的出块难度相对于当时的全网基础出块难度的倍数,N为参与挖掘区块Bnext的共识节点的个数。
出块难度函数fw(·)为:
出块难度函数fc(·)为:
其中,bi1为共识节点ni产生的第一个区块Bi1的出块高度,Mi为共识节点ni产生的区块个数。
本发明还提出一种计算机可读存储介质,存储有计算机可执行指令,其特征在于,当该计算机可执行指令被执行时,实现如前所述的公众联盟链共识方法。
本发明还提出一种数据处理装置,包括如前所述的计算机可读存储介质,当该数据处理装置的处理器调取并执行该计算机可读存储介质中的计算机可执行指令时,该数据处理装置作为共识节点执行公众联盟链共识方法。
附图说明
图1是本发明的共识节点ni竞争区块bnext的出块流程图。
图2是本发明的共识节点ni接收到共识节点nj产生的区块之后的本地验证流程图。
图3是本发明的共识节点ni接收到区块有效窗口外的区块后的处理流程图。
图4是本发明的数据处理装置示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图,对本发明进一步详细说明。应当理解,此处所描述的具体实施方法仅仅用以解释本发明,并不用于限定本发明。
区块链技术若要应用于全国性信息基础设施建设当中,需要满足以下需求:
·身份认证:参与或使用本系统的用户需要进行身份认证;
·可扩展性:支持大量(几千~上万)共识节点参与共识过程;
·公平性:单位周期(例如:10N个区块,其中,N代表共识节点数量),共识节点间出块数量方差越小,越公平;
·稳定性:区块出块间隔稳定,系统出块间隔方差越小,越稳定;
·随机性:同一高度出块权的归属不可预测,共识节点出块概率方差越小,越随机;
·运行开销:相较现有信息化系统,计算与通信开销无明显增长;
·性能:满足吞吐量、延迟等性能需求;
·安全性:能够避免或解决拒绝服务、日食等节点攻击,以及共谋、双花等系统攻击;
本发明认为联盟链将是区块链应用于基础设施建设的主要形式。但是,传统联盟链因其共识方法限制,共识节点数量普遍较少(几十~几百),不满足以上需求。为做区分,本发明将满足以上需求的区块链系统称为“公众联盟链”,而公众联盟链系统设计与实现的关键便是其共识方法。
发明人在进行公众联盟链共识方法研究时,发现现有共识方法无法同时满足公众联盟链对于身份认证、可扩展性、公平性、稳定性、随机性、运行开销、性能与安全性八方面的需求。发明人通过对比现有概率性共识与确定性共识方法,将身份认证机制与PoW共识方法相结合,提出公众联盟链共识方法(Public Consortium Blockchain Consensus,PCBC),在实现身份认证与高可扩展的同时,满足公众联盟链的其他设计需求。
具体而言:PCBC方法提出了共识节点出块难度动态调节机制,该机制在现有PoW共识方法全网出块难度动态调节的基础上,基于共识节点历史出块分布等信息,独立动态地调整共识节点相较全网基础出块难度的倍数,在保证随机性与一定稳定性的同时,相较现有PoW方法,能够有效提升方法公平性。与此同时,该机制结合节点身份认证假设,能够在保证系统安全的前提下,降低独立节点参与共识过程所需的计算开销,并且缩短交易确认所需区块数(即降低交易处理延迟),进而满足公众联盟链对于运行开销、性能与安全性的需求。
本发明所提出的公众联盟链共识方法的核心是共识节点出块难度动态调节机制,本机制的设计与公众联盟链共识方法分析是本发明欲保护的关键点。
首先,定义本发明的公众联盟链共识方法的相关基础变量,如表1所示:
表1
(一)共识节点出块难度动态调节机制设计
共识节点出块难度动态调节机制,在现有PoW方法全网出块难度动态调节的基础上,基于共识节点历史出块分布等信息,独立动态地调整共识节点相较全网基础出块难度的倍数。具体而言,本机制将共识节点竞争出块过程划分为“冬眠期”与“竞争期”,冬眠期与竞争期的共识节点采用不同的出块难度计算方式,以达到提升共识方法公平性、降低节点计算开销与交易处理延迟的目的。各阶段定义如下:
·冬眠期:共识节点在产生一个合法区块后进入冬眠期,冬眠期持续D个区块,其出块难度远高于竞争期:
[功能]现有PoW方法存在分叉的可能性,区块产生后需要等待一段时间(H个区块)后才能最终确认,设置冬眠期(长度D,D>H)使得节点独立或共谋作恶成本大幅上升,能够保证方法安全性且有助于提升方法公平性;
·竞争期:共识节点在最近D个区块内没有产生合法区块,则进入竞争期。处于竞争期的共识节点,其出块难度基于该节点历史出块分布、该节点上次出块难度、该节点暂停时间、全网基础出块难度与全网期望出块间隔确定。
[功能]通过竞争期共识节点出块难度地动态调节,降低节点间出块间隔方差,提升方法公平性。结合身份认证机制,降低共识节点参与共识过程的计算开销并保证方法安全性;
1.共识节点出块难度
由于本机制中共识节点出块难度基于全网基础出块难度调整。因此,首先定义全网基础出块难度调整公式,本机制全网基础出块难度diffbase(bi)沿用PoW方法调整方式,定义如下:
下面给出共识节点ni竞争期与冬眠期出块难度定义:
·Mi=0时,共识节点ni尚未成功出块,其出块难度为:
diffi(bnext)=diffbase(bnext)
在共识节点ni竞争区块bnext成功后,依次更新以下信息
1.timesi(bnext)=1
2.Blocksi={bi1},其中,bi1=bnext
3.Mi=1
·Mi>0时,共识节点ni成功出过区块,则竞争区块bnext时,共识节点ni可能处于竞争期,也可能处于冬眠期:
在共识节点ni竞争区块bnext成功后,依次更新以下信息
1.timesi(bnext)=diffi(bnext)/diffbase(bnext)
3.Mi=Mi+1
综上所述,共识节点ni竞争区块bnext的出块难度计算公式为:
其中,为保证共识节点出块难度不低于全网基础出块难度,在依据上式计算得到diffi(bnext)后,还需与diffbase(bnext)比较,即
diffi(bnext)=max(diffi(bnext),diffbase(bnext))
函数fw与函数fc可根据实际应用需求(公平性、稳定性、随机性、运行开销、安全性等),构造不同函数,计算共识节点出块难度。
此外,还可以通过预设出块难度(表)/出块难度系数(表)的方式来调整竞争期与冬眠期的出块难度。例如,设置出块难度系数Kd和K′d,在竞争期设置diffi(bnext)=Kd*diffbase(bnext),在冬眠期设置diffi(bnext)=Kd*K′d*diffbase(bnext),其中Kd>1,K′d>1。
2.区块有效窗口
本方法沿用现有PoW、PoS等方法区块有效窗口设计,对于有效窗口(例如:H个区块)之外的区块不予接收及验证,从而避免攻击节点尝试计算许久之前的区块而造成区块链分叉的问题,提升方法安全性。区块有效窗口还有助于降低区块确认所需后继区块数(H),进而在保证方法安全性的前提下,降低交易处理延迟。
对于产生区块有效窗口之外区块的共识节点,共识节点集合中其他节点可以采用投票或本地标记等方式以威胁系统安全性为由,将该节点移出共识节点集合,进一步避免节点尝试计算许久之前的区块链。
3.共识节点加入与退出
公众联盟链共识节点均通过统一的身份认证机制认证,经过身份认证后的节点才可加入到公众联盟链共识过程当中。在共识过程中,若节点进行威胁系统安全性的操作,该节点将被其他共识节点以投票或本地标记的方式从共识节点集合中移除。
与此同时,共识节点的加入与退出将改变全网共识节点数量(亦改变算力),因此全网基础出块难度需要根据全网共识节点集合中节点数量变化而调整。假设变化前共识节点集合中节点数量为N、全网基础出块难度为diffbase(bnext),变化后节点数量为N′,则变化后全网基础出块难度为:
本发明相关的机制与特点在共识节点集合动态变化的条件下依旧适用。因此,在本发明撰写过程中,统一使用N表示共识节点集合中节点数量;diffbase(bnext)表示区块bnext的全网基础出块难度,不再重复强调全网基础出块难度随共识节点集合变化的调整。
(二)公众联盟链共识方法分析
以下从公平性、随机性、安全性、运行开销、交易处理延迟与其他性质的角度,分析本发明提出的公众联盟链共识方法,并阐述其优越性。为便于直观感受本方法效果与开展不同方面特征的分析,下面给出函数fw与函数fc的两种情况下的定义,实际应用中并不局限于以下定义。
情况1:
此时,共识节点ni竞争区块bnext的出块难度计算公式为:
其中,为保证共识节点出块难度不低于全网基础出块难度,在依据上式计算得到diffi(bnext)后,还需与diffbase(bnext)比较,即
diffi(bnext)=max(diffi(bnext),diffbase(bnext))
情况2:
此时,共识节点ni竞争区块bnext的出块难度计算公式为:
其中,为保证共识节点出块难度不低于全网基础出块难度,在依据上式计算得到diffi(bnext)后,还需与diffbase(bnext)比较,即
diffi(bnext)=max(diffi(bnext),diffbase(bnext))
为便于说明,本发明以下分析均采用“情况1”中的定义。
1.公平性分析
本方法共识节点出块难度动态调节机制的节点出块难度调整函数fw与函数fc,能够保证共识节点在成功产生一个区块之后,难度骤升(冬眠期),且D个区块后(竞争期)难度逐渐降低,直至(当时)为全网基础出块难度。本方法的特点保证共识节点集合中节点,每隔约一个周期(N个区块)其出块难度的期望为全网基础出块难度,即此时该节点较大概率成功竞争出块,进而使得本方法相较现有PoW方法,能够有效降低节点出块数量方差。
与此同时,共识节点下一次成功出块的难度基于上一次出块难度计算。即使共识节点增加大量算力短期增加出块权,但经过几轮出块后,其等效算力将远低于其他共识节点,使其长时间无法获得出块权,即本方法能够一定程度缓解现有PoW方法通过增加节点算力获取更多出块权,而造成系统高开销与低公平性的问题。
综上所述,相较现有PoW方法,本方法能够显著提升方法公平性。
2.随机性分析
基于本方法公平性分析,本方法中共识节点出块难度自成功出块后逐渐降低,直至等于全网基础出块难度。当共识节点集合中节点算力均相同时,本方法同一区块高度各共识节点出块概率(节点等效算力/全网等效算力之和)方差大于现有PoW方法。但是,由于D<<N,本方法中绝大部分节点处于竞争期,且等效算力差异大都在一个数量级左右,故依旧能够保证同一高度出块权的归属不可预测。
在系统实际运行过程中,现有PoW方法算力大都集中在少数(几十~几百)个矿池中,基于等效算力,出块权往往仅在这些矿池中随机。基于以上分析,本方法能够一定程度缓解现有PoW方法通过增加节点算力获取更多出块权的问题,从而一定程度降低节点间等效算力差异,在更大集合中(几千~上万)随机出块权,提升方法随机性。
3.安全性分析
基于上文定义的函数fw与函数fc实例,下面分析几种情况下本方法的安全性:
·单攻击节点(即一个共识节点),分叉区块链所需算力估计
由于引入PoW过程,区块产生后需经过H(H<D-1)个区块才能得到确认。攻击节点需要本地连续计算H+1个区块才能够成功分叉区块链。假设攻击节点发起攻击时算力是单一诚实共识节点的μ倍,下面分为两种攻击方式讨论分叉区块链所需算力:
攻击方式1:攻击节点算力稳定,且不本地连续出块
基于本方法公平性分析,攻击节点算力稳定发起攻击,则其出块难度为诚实共识节点的μ倍,几乎无法连续出块,更无法完成分叉。因此,攻击节点需要基于链上已共识区块,本地连续计算该区块之后H+1个(该节点在本地计算的第一个区块中包含“双花”等分叉交易,分叉区块链所需的算力最低,而该区块确认共需要本地计算H+1个区块)区块的方式分叉区块链。
攻击方式2:攻击节点本地计算H+1个区块,分叉区块链
假设攻击节点ni从区块bh开始连续产生H+1个区块,则本地产生这些区块难度相对于全网基础出块难度的倍数为:
当攻击节点ni之前未成功出块时,即Mi=0,攻击节点ni产生区块bh所需算力为全网基础算力的1倍(timesi(bh)=1)。将N=1000、D=10、H=2、C=DD-1、p=-1、Mi=0、timesi(bh)=1带入上式得:
timesi(bh)=1
timesi(bh+1)=1012
timesi(bh+2)=1024
攻击节点ni若要本地连续产生H+1区块,且保证出块间隔与其他节点相同,则其算力投入至少为诚实共识节点的1024倍,在攻击者算力有限的情况下,可认为其此时无法成功分叉。当然,攻击节点ni也可通过长期本地计算区块的方式,分叉许久之前的区块链(概率依旧很低,出块间隔15s的区块链,产生1024个区块至少需要4.75×1017年)。虽然,此类攻击发生的概率依旧极低,但为了避免此类情况发生,本方法增加区块有效窗口,对于距离最新区块高度H块之前的区块便不再接收。
·共谋攻击:攻击节点联合其他节点发起分叉攻击
攻击方式:攻击节点联合α个节点本地进行“自私挖矿”,当本地早于主链产生H+1个区块时,将本地链广播出去,造成区块链分叉。
当攻击节点个数α≤H时,攻击节点集合本地产生的区块中至少有1个在冬眠期产生。当α=H时,攻击节点集合产生第H+1个区块所需算力最小,该算力相对于诚实共识节点算力的倍数至少为(将单攻击者参数代入):
结合本共识方法的区块有效窗口,可认为在攻击者算力有限的情况下,无法成功分叉。
当攻击节点个数α>H时,攻击节点集合选出H+1个节点出块用于分叉区块链,并且在本地早于主链产生H+1个区块。假设攻击节点集合算力是诚实共识节点平均算力的μ倍,则攻击者集合本地产生H+1个区块所需的时间最短为(每个攻击节点出块难度为全网基础出块难度):
其余,N-D-α个处于竞争期的诚实共识节点产生H+1个区块所需时间为:
若要完成分叉攻击,攻击节点集合出块时间需短于诚实节点,即
当α=0.33N时,μ>0.67N-D,攻击节点集合仍需增加算力才能完成分叉;
当α=(N-D)/2时,μ>(N-D)/2,攻击节点仅需增加部分(少于一个诚实节点算力)便可完成分叉。
结合本方法的区块有效窗口,可认为本方法能够容忍攻击节点集合算力占全网算力的比例最大为:
即,本方法可容忍不超过全网竞争期节点50%算力的攻击节点集合联合作恶。当D<<N时,由于冬眠期节点出块概率极低,可认为本方法能够容忍不超过全网50%算力的攻击节点集合联合作恶,基本与现有PoW方法相同。
4.运行开销分析
计算开销方面,本方法能够一定程度缓解现有PoW方法通过增加节点算力获取更多出块权的问题,从而一定程度减少节点间等效算力差异。因此,在公众联盟链的大规模(几千~上万)节点的场景下,本方法能够通过降低独立共识节点参与共识过程所需最低算力要求,来降低系统整体计算开销。与此同时,虽然独立共识节点的算力降低,但在公众联盟链的大规模网络中,攻击节点集合算力若想超过50%依旧非常困难,从而保证在降低独立节点算力需求、降低系统计算开销的情况下,保证系统安全性。
通信开销方面,本方法共识过程开销相较现有PoW方法无增长,方法运行过程仅增加身份认证、节点管理等少量公众联盟链必须通信开销。
5.交易处理延迟分析
基于以上分析,即便本方法的区块确认所需后继区块数H=1时,依旧能够保证系统安全性,远低于目前采用PoW方法的比特币、以太坊等区块链系统。因此,应用本方法的公众联盟链系统,相比同类型其他方法,能够大幅降低交易处理延迟。
6.其他性质分析
·身份认证
参与或使用本系统的用户需要进行身份认证,便于分析、定位与处理不同节点行为。
·可扩展性
由于本方法能够一定程度减少节点间等效算力差异、降低共识节点参与共识过程所需的计算开销,且通信开销基本持平,相较现有PoW方法具有更好的可扩展性。
·稳定性
本方法在任意高度区块产生过程中,全网竞争期共识节点的等效算力分布基本相同,相较现有PoW方法能够有效降低系统出块间隔方差,提升方法稳定性。
·性能
交易处理延迟方面,本方法能够通过降低区块确认所需后继区块数,大幅降低交易处理延迟;吞吐量方面,由于公众联盟链规模很大,应用本方法的公众联盟链吞吐量与现有Algorand、以太坊等公链相当。
(三)总的技术效果
本发明提出的公众联盟链共识方法(Public Consortium BlockchainConsensus,PCBC)将身份认证机制与PoW方法相结合,从共识节点出块难度动态调节机制入手,基于共识节点历史出块分布等信息,独立动态地调整各共识节点出块难度。相较现有PoW方法,该方法能够在显著提升方法公平性、降低共识节点计算开销与交易处理延迟的同时,保证公众联盟链其他指标评价效果基本持平。
(四)具体实施方案
下面结合具体实施例对本发明的公众联盟链共识方法进行进一步说明。
本部分将以共识节点ni竞争区块bnext的出块流程、共识节点ni接收到共识节点nj产生的区块之后的本地验证流程以及共识节点ni接收到区块有效窗口外的区块后的处理流程为例,结合附图和实施例对本发明作进一步的详细说明。本方法的区块确认、区块链分叉校验以及全网基础出块难度调整流程与现有PoW方法相同,故不再阐述。
图1是本发明的共识节点ni竞争区块bnext的出块流程图。首先,共识节点ni通过访问公众联盟链与节点ni本地数据,获取计算其竞争区块bnext的难度diffi(bnext)所需的参数;随后,共识节点ni基于本发明提出的共识节点出块难度动态调节机制,判断节点ni是否成功出过块以及所处共识阶段,并计算得出diffi(bnext);最后,共识节点ni将diffi(bnext)带入PoW难题求解过程,不断尝试计算有效的bnext(i)(bnext(i)表示高度为bnext的区块由共识节点i产生),若共识节点ni在其他节点之前计算出bnext(i),则向其他共识节点广播区块bnext(i)并更新本地状态;若共识节点nj在共识节点ni之前计算出有效bnext(j),共识节点向其他共识节点广播区块bnext(j)并更新本地状态。本轮竞争出块过程结束。
图2是本发明的共识节点ni接收到共识节点nj产生的区块之后的本地验证流程图。共识节点ni在接收到共识节点nj产生的新区块bnext(j)之后,首先,通过访问公众联盟链与节点ni本地数据,获取计算区块bnext处节点nj的出块难度diffj(bnext)所需的参数;随后,共识节点ni基于本发明提出的共识节点出块难度动态调节机制,计算得出diffj(bnext);最后,共识节点ni将diffj(bnext)带入PoW难题验证过程,若区块bnext(j)有效则向其他共识节点广播区块bnext(j)并更新本地状态;若区块bnext(j)无效,则丢弃。本轮区块本地验证流程结束。
图3是本发明的共识节点ni接收到区块有效窗口外的区块后的处理流程图。该流程属于图2对应流程的一种特殊情况,该流程中节点ni接收到的区块在区块有效窗口之外。由于此类区块将威胁系统安全性,故共识节点ni在接收到此类区块后,首先,本地将共识节点nj列入共识节点黑名单,不接收节点nj发来的信息也不主动向节点nj发送信息;随后,共识节点ni本地构造交易txcharge,并发送至区块链网络中,该交易中包含原始共识节点集合中节点数量N、移除节点nj后集合中节点数量N′、节点nj产生的区块bnext(j);最后,交易txcharge确认后,公众联盟链所有诚实节点均会将节点nj从共识节点集合中移除,并更新全网基础出块难度以及共识节点黑名单信息。
图4是本发明的数据处理装置示意图。如图4所示,本发明实施例还提供一种计算机可读存储介质,以及一种数据处理装置。本发明的计算机可读存储介质存储有计算机可执行指令,计算机可执行指令被数据处理装置的处理器执行时,处于区块链和安全多方计算网络中的数据处理装置作为共享节点,实现上述执行公众联盟链共识方法。本领域普通技术人员可以理解上述方法中的全部或部分步骤可通过程序来指令相关硬件(例如处理器、FPGA、ASIC等)完成,所述程序可以存储于可读存储介质中,如只读存储器、磁盘或光盘等。上述实施例的全部或部分步骤也可以使用一个或多个集成电路来实现。相应地,上述实施例中的各模块可以采用硬件的形式实现,例如通过集成电路来实现其相应功能,也可以采用软件功能模块的形式实现,例如通过处理器执行存储于存储器中的程序/指令来实现其相应功能。本发明实施例不限制于任何特定形式的硬件和软件的结合。
本发明提出的公众联盟链共识方法,从共识节点出块难度动态调节机制入手,将身份认证机制与PoW共识方法相结合,基于共识节点历史出块分布等信息,独立动态地调整各共识节点出块难度。相较现有PoW共识方法,本发明的共识方法能够在显著提升算法公平性、降低共识节点计算开销与交易处理延迟的同时,保证公众联盟链其他指标评价效果基本持平,更加适用于公众联盟链系统身份认证、高可扩展性、高公平性、高稳定性、高随机性、低运行开销、低交易处理延迟与高安全性的场景。
以上实施方式仅用于说明本发明,而并非对本发明的限制,有关技术领域的普通技术人员,在不脱离本发明的精神和范围的情况下,还可以做出各种变化和变形,因此所有等同的技术方案也属于本发明的范畴,本发明的专利保护范围应由权利要求限定。
Claims (10)
1.一种公众联盟链共识方法,其特征在于,包括:
当公众联盟链的一共识节点产生一个区块后,将该共识节点在后续多个出块周期的出块难度调整为第一值,该第一值高于全网基础出块难度;
若该共识节点在该多个出块周期内未产生新的区块,则将该共识节点的出块难度调整为第二值,该第二值的低于该第一值。
5.一种公众联盟链共识系统,其特征在于,包括:
第一难度调整模块,用于调整公众联盟链的一共识节点的出块难度为第一值,该第一值高于全网基础出块难度;
第二难度调整模块,用于调整该共识节点的出块难度为第二值,该第二值的低于该第一值;
调度模块,用于在共识节点产生区块后的多个出块周期内,调用执行该第一难度调整模块;并在该共识节点在该多个出块周期内未产生新的区块时,则调用执行该第二难度调整模块。
9.一种计算机可读存储介质,存储有计算机可执行指令,其特征在于,当该计算机可执行指令被执行时,实现如权利要求1~4任一项所述的公众联盟链共识方法。
10.一种数据处理装置,包括如权利要求9所述的计算机可读存储介质,当该数据处理装置的处理器调取并执行该计算机可读存储介质中的计算机可执行指令时,该数据处理装置作为共识节点执行公众联盟链共识方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110189819.7A CN112884580B (zh) | 2021-02-18 | 2021-02-18 | 一种公众联盟链共识方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110189819.7A CN112884580B (zh) | 2021-02-18 | 2021-02-18 | 一种公众联盟链共识方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112884580A true CN112884580A (zh) | 2021-06-01 |
CN112884580B CN112884580B (zh) | 2023-09-26 |
Family
ID=76056503
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110189819.7A Active CN112884580B (zh) | 2021-02-18 | 2021-02-18 | 一种公众联盟链共识方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112884580B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113259186A (zh) * | 2021-07-07 | 2021-08-13 | 发明之家(北京)科技有限公司 | 一种区块链的新区块监控方法和系统 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109934710A (zh) * | 2018-11-08 | 2019-06-25 | 杭州基尔区块链科技有限公司 | 基于双通证的适用于知识产权联盟链的智能共识机制 |
CN110113172A (zh) * | 2019-04-29 | 2019-08-09 | 深圳市元征科技股份有限公司 | 一种难度调整的方法及相关设备 |
CN110445778A (zh) * | 2019-08-01 | 2019-11-12 | 中盾云链(广州)信息科技有限公司 | 一种应用于联盟链的共识算法 |
US20200026699A1 (en) * | 2018-07-20 | 2020-01-23 | True Blockchain Technology Ltd. | Highly Performant Decentralized Public Ledger with Hybrid Consensus |
-
2021
- 2021-02-18 CN CN202110189819.7A patent/CN112884580B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20200026699A1 (en) * | 2018-07-20 | 2020-01-23 | True Blockchain Technology Ltd. | Highly Performant Decentralized Public Ledger with Hybrid Consensus |
CN109934710A (zh) * | 2018-11-08 | 2019-06-25 | 杭州基尔区块链科技有限公司 | 基于双通证的适用于知识产权联盟链的智能共识机制 |
CN110113172A (zh) * | 2019-04-29 | 2019-08-09 | 深圳市元征科技股份有限公司 | 一种难度调整的方法及相关设备 |
CN110445778A (zh) * | 2019-08-01 | 2019-11-12 | 中盾云链(广州)信息科技有限公司 | 一种应用于联盟链的共识算法 |
Non-Patent Citations (1)
Title |
---|
戴安博;陈恭亮;: "POW区块链共识算法分析与展望", 通信技术, no. 12 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113259186A (zh) * | 2021-07-07 | 2021-08-13 | 发明之家(北京)科技有限公司 | 一种区块链的新区块监控方法和系统 |
CN113259186B (zh) * | 2021-07-07 | 2021-10-08 | 发明之家(北京)科技有限公司 | 一种区块链的新区块监控方法和系统 |
Also Published As
Publication number | Publication date |
---|---|
CN112884580B (zh) | 2023-09-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109767199B (zh) | 基于信誉的pbft共识系统及方法、区块链数据处理系统 | |
CN107864198B (zh) | 一种基于深度学习训练任务的区块链共识方法 | |
US11121880B2 (en) | Method for reaching consensus on public distributed ledgers and system using the same | |
CN113853578A (zh) | 用于在区块链智能合约中生成随机数的方法 | |
CN112907252B (zh) | 一种基于多人链下通道的区块链交易方法及系统 | |
US11157899B1 (en) | System and method for bootstrapping a separate proof of work chain | |
CN113132401B (zh) | 基于区块链的数据处理方法和装置 | |
CN110445603A (zh) | 一种去中心化随机数生成方法 | |
CN113452747B (zh) | 可扩展和安全的共识方法、系统、存储介质、智能终端 | |
CN110855432A (zh) | 基于可验证随机函数分配验证者奖励的异步bft&dpos共识机制 | |
CN115065468B (zh) | 一种基于分组信誉值的pbft共识优化方法 | |
CN109347877B (zh) | 区块链结构化存储控制方法 | |
CN114372589A (zh) | 一种联邦学习方法及相关装置 | |
CN112118138B (zh) | 区块链共识机制实现系统和方法 | |
CN112862607A (zh) | 区块链共识机制实现方法、装置、设备及存储介质 | |
CN112884580A (zh) | 一种公众联盟链共识方法及系统 | |
CN114615281B (zh) | 基于小规模委员会的区块链出块方法及PoS协议确认方法 | |
CN114422146B (zh) | 一种区块链主节点匿名排序方法 | |
CN114169670A (zh) | 一种区块链两阶段共识方法、装置、设备和介质 | |
US11354629B1 (en) | Controlling initiation of a blockchain election using a burn quota | |
CN114143021B (zh) | 一种基于区块链的新闻信息信用积分系统 | |
Bankhamer et al. | Population Protocols for Exact Plurality Consensus: How a small chance of failure helps to eliminate insignificant opinions | |
US11290280B1 (en) | Cryptocurrency mining using a single-leader election algorithm | |
CN110535629B (zh) | 一种异步网络条件下的出块共识方法 | |
CN114297680B (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |