CN115549931B - 一种基于拟态防御的拜占庭容错实现方法及系统 - Google Patents
一种基于拟态防御的拜占庭容错实现方法及系统 Download PDFInfo
- Publication number
- CN115549931B CN115549931B CN202211533575.0A CN202211533575A CN115549931B CN 115549931 B CN115549931 B CN 115549931B CN 202211533575 A CN202211533575 A CN 202211533575A CN 115549931 B CN115549931 B CN 115549931B
- Authority
- CN
- China
- Prior art keywords
- nodes
- node
- fragment
- voting
- leader
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 51
- 230000007123 defense Effects 0.000 title claims description 19
- 239000012634 fragment Substances 0.000 claims abstract description 101
- 238000013467 fragmentation Methods 0.000 claims abstract description 27
- 238000006062 fragmentation reaction Methods 0.000 claims abstract description 27
- 238000003860 storage Methods 0.000 claims abstract description 9
- 238000012856 packing Methods 0.000 claims abstract description 5
- 238000004422 calculation algorithm Methods 0.000 claims description 38
- 230000008569 process Effects 0.000 claims description 19
- 230000006870 function Effects 0.000 claims description 7
- 238000004806 packaging method and process Methods 0.000 claims description 7
- 238000001514 detection method Methods 0.000 claims description 6
- 238000012795 verification Methods 0.000 claims description 4
- 230000001960 triggered effect Effects 0.000 claims description 3
- 238000005192 partition Methods 0.000 abstract description 2
- 230000007246 mechanism Effects 0.000 description 16
- 238000005457 optimization Methods 0.000 description 8
- 230000006872 improvement Effects 0.000 description 7
- 238000011161 development Methods 0.000 description 6
- 230000008901 benefit Effects 0.000 description 4
- 238000013461 design Methods 0.000 description 4
- 238000010586 diagram Methods 0.000 description 4
- 230000000694 effects Effects 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 4
- 238000005215 recombination Methods 0.000 description 4
- 230000006798 recombination Effects 0.000 description 4
- 238000013507 mapping Methods 0.000 description 3
- 238000011160 research Methods 0.000 description 3
- 230000003068 static effect Effects 0.000 description 3
- 230000008859 change Effects 0.000 description 2
- 239000003795 chemical substances by application Substances 0.000 description 2
- 238000012790 confirmation Methods 0.000 description 2
- 238000005065 mining Methods 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 238000000638 solvent extraction Methods 0.000 description 2
- 241000538662 Tangaroa Species 0.000 description 1
- 241000700605 Viruses Species 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000010411 cooking Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000003628 erosive effect Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000012804 iterative process Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000013316 zoning Methods 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3247—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/14—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
- H04L63/1441—Countermeasures against malicious traffic
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3236—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
- H04L9/3239—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions involving non-keyed hash functions, e.g. modification detection codes [MDCs], MD5, SHA or RIPEMD
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Hardware Redundancy (AREA)
Abstract
本发明提供一种基于拟态防御的拜占庭容错实现方法及系统,包括:步骤S1,对普通节点进行分片操作,并生成节点的公私钥信息;步骤S2,通过密码抽签为分片内的节点划分节点角色;步骤S3,先通过不同分片中具有记账权的节点对相同的交易进行打包,再由具有表决权的节点进行投票;步骤S4,先通过各分片的领导节点共同组成多模裁决组,然后通过多模裁决组对投票结果进行动态分布式多模裁决;步骤S5,各分片的领导节点广播裁决结果,所有节点进行存储区块组和更新内存变量。本发明能够在保证拜占庭容错能力的同时,还通过引入动态异构冗余的元素,进而保证了高效的共识效率,并提升了整体的分区容忍性、结果的可靠性以及系统的稳健性。
Description
技术领域
本发明涉及一种拜占庭容错的实现方法,尤其涉及一种基于拟态防御的拜占庭容错实现方法,还进一步设计采用了该基于拟态防御的拜占庭容错实现方法的拜占庭容错实现系统。
背景技术
在拜占庭容错类共识算法中,拜占庭容错指的是Byzantine fault tolerant,简称BFT,是经典分布式容错算法在区块链场景中的优化, 目标是提高其性能与可扩展性,主要表现为节点之间通过多次投票来达成共识的方式。在1999年被提出的实用拜占庭容错算法 (Practical Byzantine Fault Tolerance, PBFT) ,首次将传统拜占庭容错共识算法消息复杂度由指数级降低为多项式级, 成为了首个适用于实际生产生活的 BFT 算法, 同时也启发了未来BFT共识算法的研究思路。通过在 PBFT 的基础上衍生出了一系列优化算法,并针对区块链的应用场景进行了优化,例如Copeland 等人结合 Raft 和 PBFT提出了Tangaroa算法, 该算法继承了Raft 简单易懂的优点, 并且直接促使了性能更优的ScalableBFT算法的提出。
并行投票共识指的是Parallel Proof of Vote,简称PPoV,作为一种高效的BFT类算法也被提出并运用到实际联盟链系统中。PPoV融合了权益证明(Proof of Stake, PoS)的“证明”和PBFT的“投票”两大共识特性,提出了区块组的数据组织结构,支持在单一共识轮中处理多个区块。在负载均衡的情况下,PPoV在共识过程中采用并行化方法,实现对带宽资源、计算资源和存储资源最大效率利用,从而提高系统整体的吞吐量性能。
另一方面,拟态防御指的是Mimic Defense,简称MD,是国内研究团队首创的主动防御理论,主要实现的是一种基于网络空间内生安全机理的动态异构冗余构造,网络空间内生安全指的是Cyberspace Endogenous Safety and Security,简称CESS;动态异构冗余构造指的是Dynamic Heterogeneous Redundancy,简称DHR,为应对网络空间中基于未知漏洞、后门或病毒木马等的未知威胁,提供了具有创新意义的防御理论和方法。
DHR是通过动态化技术增强系统的不确定性,以更有效解决其所面临的静态风险问题。但是DHR中的各执行体的功能是等价的,但是同时也必须具有很高的差异,来动态地去构建系统架构、网络拓扑、数据存储等多样化拟态环境。防御者可以适时从当前环境主动跳变迁移到另一个环境,这种打破静态、确定性的变化会给攻击者对系统的观察和预测产生极大的难度,从而降低安全风险。
虽然PBFT 已经有了指数级的性能提升, 但平方级的时空复杂度和较低的容错率还是使得其可扩展性较低,其中一种现有的优化策略即是通过选举精简参与共识的节点数量。举例来说,委托拜占庭容错,简称dBFT, 即Delegated Byzantine Fault Tolerance,就是采取这种优化策略的PBFT改进算法,其结合了 PoS 与PBFT 机制提出的算法,过在去中心化程度与效率之间找寻了一个平衡点,通过弱中心化实现效率的大幅提升。节点根据自己的股权进行投票, 选出记账进行共识,普通节点不参与共识, 但是可以看到整个流程。选举的机制让 dBFT 具有良好的性能和可扩展性,算法也引入了数字身份, 这意味着参与共识的节点可以是个体或者某些机构。dBFT具有上链即确认的特性, 避免了PoW和PoS的确认时间和隐患, 能在金融场景的应用中提供更好的安全性。如果在一定时间内还未达成一致的提案,或者发现有非法交易的话,可以由其他记账节点重新发起提案,形成最终确定的区块。
对于BFT类算法,虽然这种现有技术能够通过减少了共识成本的优化思路带来了性能的提升, 但是也削弱了区块链去中心化的优点, 从而引入了不安全因素,甚至某些算法的选举流程是静态的, 例如dBFT,其选举方案和结果完全由项目方决定, 同时也只能容忍部分被选举出的记账节点是恶意节点。
另一种现有技术中,虽然也将拟态防御思想结合到区块链系统中的研究,例如借鉴拟态防御的思想,提出了动态异构共识机制和动态异构冗余签名机制的设计,来搭建拟态化的区块链系统架构。但是目前结合拟态防御的区块链动态异构共识机制还属于动态异构阶段,并没有进一步考虑冗余的成分,无法增强系统的安全性。而且其设计的动态异构冗余签名机制还存在量子密码算法公钥量大以及算法速度慢等问题。
发明内容
本发明所要解决的技术问题是需要提供一种基于拟态防御的拜占庭容错实现方法,旨在保证拜占庭容错能力的同时,还通过引入动态异构冗余的元素,提升整体的安全性能。在此基础上,还进一步提供采用了该基于拟态防御的拜占庭容错实现方法的拜占庭容错实现系统。
对此,本发明提供一种基于拟态防御的拜占庭容错实现方法,包括以下步骤:
步骤S1,对普通节点进行分片操作,并生成节点的公私钥信息;
步骤S2,通过密码抽签为分片内的节点划分节点角色;
步骤S3,先通过不同分片中具有记账权的节点对相同的交易进行打包,再由具有表决权的节点进行投票;
步骤S4,先通过各分片的领导节点共同组成多模裁决组,然后通过多模裁决组对投票结果进行动态分布式多模裁决以形成裁决结果;
步骤S5,各分片的领导节点广播所述裁决结果,所有节点进行存储区块组和更新内存变量。
本发明的进一步改进在于,所述步骤S1包括以下子步骤:
步骤S102,进行哈希运算之后取余,根据取余结果在所述查找表中获得对应的分片号;
本发明的进一步改进在于,所述步骤S2包括以下子步骤:
步骤S202,在预设的时间周期T内,节点收集分片内来自其他节点的抽签凭证;
本发明的进一步改进在于,所述步骤S2中,如果超过预设的时间周期T没有收集到个抽签结果,则进行重新抽签,表示编号为i的分片中的有效节点的个数;如果在轮抽签中一直没有收到特定普通节点的抽签信息,则向其他普通节点提出屏蔽该特定普通节点的申请,指的是预设的抽签循环次数。
本发明的进一步改进在于,所述步骤S3包括以下子步骤:
本发明的进一步改进在于,所述步骤S5包括以下子步骤:
步骤S501,各个分片内的节点在接收到区块组头后,把区块组头与之前收到的合法区块集合和区块签名信息重组成完整的区块组;
步骤S502,检查是否满足广播执行条件,直到是,则存储区块组和更新内存变量,并在执行完之后进入下一轮共识,其中,所述广播执行条件包括:接收到与当前轮共识度达到预设要求的区块组头、对区块组头的信息验证通过以及接收到所有通过投票的区块。
本发明的进一步改进在于,所述步骤S1中,当新节点加入或拜占庭节点超过预设比例时,触发重新进行分片;
当新节点加入时,新节点向全网发送探测消息,在收到新节点的探测消息后,各个分片会向新节点发送各分片的有效节点状态表,新节点进入普通节点个数最小的分片;如果多个分片的普通节点个数相同,则执行Maglev算法随机进入到其中的一个分片中;
在每个分片设立一个拜占庭区记录拜占庭节点,当某一分片的拜占庭区的节点数目大于该分片内记账节点数的1/3时,判断该分片故障,且所有节点不再参与到组内共识与全局共识当中;故障分片内非拜占庭节点向区块链网络其他分片节点广播故障消息,其余节点根据监测到的故障消息将故障分片的组员添加至拜占庭区,当拜占庭区的分片数大于分片数的1/3时,则判定为拜占庭节点超过预设比例,触发重新进行分片。
本发明的进一步改进在于,所述步骤S4包括以下子步骤:
本发明的进一步改进在于,在进行迭代过程中,设置一个可动态变化的门限;对于第一次迭代,通过公式设置第一门限值,其中,表示当前分片内领导节点在第一次迭代的投票结果,表示其他领导节点在第一次迭代的投票结果;对于第k(k≥2)次迭代,通过公式对门限值 进行更新,其中,表示其他领导节点在第k-1次迭代的投票结果,表示其他领导节点在第k次迭代的投票结果,表示在第k-1次迭代的门限值。
本发明还提供一种基于拟态防御的拜占庭容错实现系统,采用了如上所述的基于拟态防御的拜占庭容错实现方法,并包括:
分片模块,对普通节点进行分片操作,并生成节点的公私钥信息;
节点角色划分模块,通过密码抽签为分片内的节点划分节点角色;
打包模块,先通过不同分片中具有记账权的节点对相同的交易进行打包,再由具有表决权的节点进行投票;
多模裁决模块,先通过各分片的领导节点共同组成多模裁决组,然后通过多模裁决组对投票结果进行动态分布式多模裁决以形成裁决结果;
广播模块,各分片的领导节点广播所述裁决结果,所有节点进行存储区块组和更新内存变量。
与现有技术相比,本发明的有益效果在于:提出基于拟态防御的基础上实现拜占庭容错的技术方案,旨在保证拜占庭容错能力的同时,还通过引入动态异构冗余的元素,能够在保证高效的共识效率的基础上,对日蚀攻击和自私挖矿等攻击手段都具有极强的抵御能力,进而提升了整体的分区容忍性以及结果的可靠性,提高了由部分节点的共识代替全局共识时损失的部分拜占庭容错能力。此外,还进一步通过对节点的分片优化设计,保证了节点的分片尽可能随机均衡,且在新节点加入或拜占庭节点超过预设比例时通过分片重组来平衡共识效率和系统安全。加之,再进一步基于多模裁决组的动态分布式多模裁决,即使在存在恶意领导节点作恶和网络分区的情况下,也能够很好地保证达成全局一致的共识结果,全面保证系统的稳健性能。
附图说明
图1是本发明一种实施例的工作流程示意图;
图2是本发明一种实施例基于拟态安全的改进PPoV的共识流程示意图;
图3是本发明一种实施例通过查找表查找节点分片结果的示意图;
图4是本发明一种实施例多个分片领导节点组成的裁决组的示意图。
具体实施方式
下面结合附图,对本发明的较优的实施例作进一步的详细说明。
动态异构冗余构造,简称DHR,主要包括输入代理、可重构异构执行体集、多模裁决器等部件。DHR基本思想是首先从异构元素池选取多个异构元素, 组合生成 m 个具有相同功能的异构构件。然后,通过动态选择算法, 选择出 n 个异构构件作为执行体,这里的生成方式可以是重构、重组或者重定义,同时可能考虑干扰环境和架构性能等因素。最终,多模裁决器对 n 个执行体的输出结果进行差异性判决,屏蔽漏洞威胁, 使攻击场景在时空维度上难以再现。
考虑到现有的单个共识机制或者多个共识机制的串行模式都会受到某些攻击威胁,动态异构共识机制存在3种不同的共识算法,即PoW、Casper 的PoS以及PBFT三种共识算法。同时,动态异构共识机制借用了密码抽签技术,在每一共识轮中,每个共识参与者需要根据上一个区块的哈希值以及目前的区块序号形成的哈希值的签名值做一个密码抽签凭证,这里的密码抽签凭证有两个功能:一是密码抽签凭证最小的用户在某些胜选的共识算法中具有重要地位,比如 PBFT 的领导节点,领导节点也称leader;另外一个功能是根据密码抽签凭证确定每个节点在此共识轮中需要采用的共识算法。
动态异构冗余签名机制主要考虑的是采用不同密码体制的异构冗余,即3种签名算法代替之前的单一的签名算法,采用先执行后表决的 DHR 模型,进行交易的输入脚本中只有一个签名和该签名对应的公钥哈希,输出脚本中包含3个签名对应的公钥哈希,使得每个消息的大小与现有消息的大小基本相同。
为改善实用拜占庭容错PBFT的可扩展性问题,常见的拜占庭容错改进方案采用选举的策略,通过降低全局共识的节点数量来减低消息交互的次数。并行投票共识PPoV也是采用的通过投票选举过程用部分节点共识来代替全网共识的方式来提升共识速度,这种技术虽然能够提升效率,但是采用的是部分共识节点之间的共识代替全网共识,削弱了区块链去中心化的优点, 引入了不安全因素,从而无法提供与实用拜占庭容错PBFT同等的拜占庭容错能力。而现有的基于拟态的区块链方案,虽然采用了密码抽签机制,结合多种共识算法,使在共识层面达到动态异构的效果,但是,这种动态异构共识机制缺少必要的冗余成分,无法保证其安全性能。
针对上述问题,本实施例提供一种基于拟态防御的拜占庭容错实现方法及系统,以PPoV为例,旨在保证拜占庭容错能力的同时,还通过引入动态异构冗余的元素,提升整体的安全性能。
对此,如图1所示,本实施例提供一种基于拟态防御的拜占庭容错实现方法,包括以下步骤:
步骤S1,对普通节点进行分片操作,并生成节点的公私钥信息;
步骤S2,通过密码抽签为分片内的节点划分节点角色;
步骤S3,先通过不同分片中具有记账权的节点对相同的交易进行打包,再由具有表决权的节点进行投票;
步骤S4,先通过各分片的领导节点共同组成多模裁决组,然后通过多模裁决组对投票结果进行动态分布式多模裁决以形成裁决结果;
步骤S5,各分片的领导节点广播所述裁决结果,所有节点进行存储区块组和更新内存变量。
本实施例所述的基于拟态防御的拜占庭容错实现方法,指的是一种结合多种密码学算法的基于拟态防御思想的BFT类共识改进技术方案,描述的共识流程包括步骤S1的Setup阶段、步骤S2的Prepare阶段、步骤S3的Vote阶段、步骤S4的Adjudge阶段和步骤S5的Commit 阶段共五个阶段,在实际应用中可以依据具体的共识需求进行一定差异性的设计。
其中,如图1和图2所示,在本实施例所述步骤S1中,Setup Phase指的是Setup阶段,即通过节点分片的技术方案对普通节点进行分片操作,同时还包括生成一些必要的信息,如节点公私钥,即公钥和私钥。所述步骤S2中,Prepare Phase指的是Prepare阶段,即通过密码抽签技术为各分片内的节点划分角色,通过BFT类算法实现选举。所述步骤S3中,Vote Phase指的是Vote阶段,描述的是先由不同分片中具有记账权的节点对相同的交易进行打包,再由具有表决权的节点进行投票的过程。所述步骤S4中,Adjudge Phase指的是Adjudge阶段,包括由各分片的领导节点共同组成的多模裁决组对投票结果进行动态分布式多模裁决方案并形成一致结果的过程,领导节点也称Leader。所述步骤S5中,CommitPhase指的是Commit阶段,即通过各分片领导节点广播裁决结果,所有节点进行存储区块组和更新内存变量的操作。
开始共识前,必须先对所有普通节点进行分片,在PPoV中此类普通节点称为Candidate。考虑到节点遭到攻击或者主动退出会导致分片结构变化,本实施例采用Maglev算法作为节点分片算法。本实施例所述步骤S1包括以下子步骤:
步骤S102,进行哈希运算之后取余,根据取余结果在所述查找表中获得对应的分片号;
本实施例所述步骤S1分片完后,每个普通节点Candidate都独立地生成一对公私钥。对于不进行分片的 个具有投票表决权的节点,在PPoV中此类具有投票表决权的节点称为Voter,即投票节点也称Voter,每个Voter也独立地生成一对公私钥。
本实施例所述步骤S2包括以下子步骤:
步骤S201,各分片开始独立地进行共识,编号为i的分片内的第j个普通节点Candidate以私钥和和随机种子seed作为可验证随机函数的输入,通过可验证随机函数计算在当前第r个共识周期的抽签结果和抽签证明,共同作为抽签凭证,并发送给分片内其他节点;
步骤S202,在预设的时间周期T内,节点收集分片内来自其他节点的抽签凭证;预设的时间周期T可以根据实际情况和需求进行自定义设置和调整;
步骤S203,选取抽签结果中最小的个普通节点作为当前分片本轮的记账节点参与记账,且其中抽签结果最小的抽签者作为本轮的领导节点,领导节点也称主节点,在PPoV中称为Leader;其中,表示每个分片选出的具有记账权的节点的个数,该类节点在PPoV中称为Bookkeeper,即记账节点也称Bookkeeper或轮值记账节点。
本实施例所述步骤S2中,如果超过预设的时间周期T没有收集到个抽签结果,则进行重新抽签,表示编号为i的分片中的有效节点的个数;如果在轮抽签中一直没有收到特定普通节点的抽签信息,则向其他普通节点提出屏蔽该特定普通节点的申请,以便使得分片内对于Bookkeeper的选举结果能够达成一致;指的是预设的抽签循环次数,可以根据实际情况和需求进行自定义设置与调整。
在步骤S2中,各分片已经确定分片内的节点角色。值得注意的是,对于同个共识周期,每个分片打包进区块的交易均相同,这一点由输入代理保证,对于分片间包含相同交易的区块,本实施例称为分片冗余区块。
本实施例所述步骤S3包括以下子步骤:
步骤S301,通过表示在第r个共识周期内,编号为i的分片中的编号为j的记账节点从本地交易池打包预设数量的交易生成的区块,预设数量可以根据实际情况和需求进行自定义设置与调整;记账节点广播自己产生的区块到分片内的其他节点以及分片外的投票节点;
步骤S302,投票节点(Voter)对收集到全部的区块后进行校验表决,先验证抽签证明是否能计算出抽签结果,并接着验证抽签证明是否是通过随机种子生成,直到是则将对区块的投票结果用私钥签名后,发送给相应分片的领导节点。
在步骤S3中,对于某一个区块,轮值记账节点只需接收到超过2Nv/3投票即可开始统计,统计完所有区块的投票情况,具体表现为对某个区块内交易的表决,最后将投票情况发送给其他分片的领导节点。
本实施例所述步骤S4中,各个分片的领导节点共同组成裁决组,领导节点收到其他分片对具有相同交易的区块投票结果后,结合自己的投票结果,通过多次迭代实现所有领导节点达成一致,组成完整的区块组头信息并广播给分片内的其他节点。
本实施例所述步骤S5包括以下子步骤:
步骤S501,各个分片内的节点在接收到区块组头后,把区块组头与之前收到的合法区块集合和区块签名信息重组成完整的区块组,重组的过程可以采用现有PPoV组装区块组头的过程;
步骤S502,检查是否满足广播执行条件,直到是,则存储区块组和更新内存变量,并在执行完之后进入下一轮共识,其中,所述广播执行条件包括:接收到与当前轮共识度达到预设要求的区块组头、对区块组头的信息验证通过以及接收到所有通过投票的区块。所述共识度达到预设要求指的是根据实际情况预先设置的共识度阈值,用于判断与当前轮共识度是否相同,即,本实施例检查是否满足广播执行条件包括:接收到与当前轮共识高度相同的区块组头且对区块组头的信息验证通过;接收到所有通过投票的区块。如果存在等待直至超时的情况,超时分片采用现有的PPoV超时处理机制即可。
共识开始前,本实施例通过步骤S1对所有普通节点Candidate进行分片的设计,本实施例的节点分片技术方案中采用了Maglev算法,其优势在于映射均匀,并在重新分片来进行系统恢复时,能尽可能把分片重组时的映射变化降到最小。首先,根据算法建立个分片的查找表, 再对输入的普通节点Candidate的身份标识 做哈希运算然后取余,最后根据取余结果,在查找表中获得对应的分片号。
通过举例来说明,如图3所示,Lookup Table 表示查找表,里面记录了一个根据Maglev算法生成的包含三个分片号的随机序列,查找表的长度为 。当输入节点k的身份标识 时,则通过公式将节点映射到编号为 的分片。重复以上过程,直到将所有普通节点Candidates均匀地分配到这分片中,正常情况下不需重新分片;但是,当新节点加入或拜占庭节点超过预设比例时,触发重新进行分片。
当新节点加入时,新节点向全网发送探测消息,在收到新节点的探测消息后,各个分片会向新节点发送各分片的有效节点状态表,新节点进入普通节点个数最小的分片;如果多个分片的普通节点个数相同,则执行Maglev算法随机进入到其中的一个分片中。
在多模裁决组在迭代过程中,本实施例优选通过动态门限的设定,以快速发现作恶的拜占庭领导节点。在每个分片设立一个拜占庭区记录拜占庭节点,当某一分片的拜占庭区的节点数目大于该分片内记账节点数的1/3时,记为,则判断该分片故障,且所有节点不再参与到组内共识与全局共识当中。故障分片内非拜占庭节点向区块链网络其他分片节点广播故障消息,其余节点根据监测到的故障消息将故障分片的组员添加至拜占庭区,当拜占庭区的分片数大于分片数的1/3时,记为,则判定为拜占庭节点超过预设比例,触发重新进行分片。本实施例所述的大于指的是不小于,即包括大于等于。
本实施例所述步骤S4包括以下子步骤:
步骤S401,当接收到的包括自己在内的,对于任意一个分片,判断分片冗余区块的赞成票情况是否满足条件:,若是,则完成裁决,不必进行迭代,若否,则跳转至步骤S402,其中,表示所在分片内对于分片冗余区块的投票;表示具有投票表决权的节点数,即投票节点的数量;
步骤S402,进行迭代以实现所有领导节点达成一致,在第k次迭代时,领导节点的所在分片的投票结果通过公式进行更新,其中,,指的是预设的分片数;指的是第k-1次迭代的投票结果;和指的是预设的迭代权重,所述迭代权重值可以根据实际情况和需求进行自定义设置于调整,在迭代过程中可以保持不变,并满足, i和l均用于表示分片编号,对于任意一个满足;指的是的迭代权重值;
步骤S403,所有领导节点都与其他分片的领导节点交换各自分片的投票结果,并更新自己分片的投票结果,经过多次迭代直到各个领导节点的投票结果达成一致,,此时,即可代表各个领导节点达到一致时,各个分片的一致投票裁决结果,也就是裁决组的最终裁决结果;对于该区块而言,进一步判断是否满足,直到是则表示为合法区块,完成裁决。最后,每个领导节点根据裁决结果组成完整的区块组头信息并广播给分片内的其他节点。
在所述步骤S401中,满足条件:,明显比“所有节点在一个分片内执行BFT类算法,对于f个恶意节点,至少有2f+1个节点的“接受提议”消息,则正式裁定此提议生效”这种优化之前的条件更为严格,因此,本实施例的安全性能更高。
值得说明的是,本实施例在进行迭代过程中,优选设置一个可动态变化的门限;对于第一次迭代,通过公式设置第一门限值,其中,表示当前分片内领导节点在第一次迭代的投票结果,表示其他领导节点在第一次迭代的投票结果;对于第k(k≥2)次迭代,通过公式对门限值 进行更新,其中,表示其他领导节点在第k-1次迭代的投票结果,表示其他领导节点在第k次迭代的投票结果,表示在第k-1次迭代的门限值。
正常情况下,随着迭代次数的增加,各个领导节点的投票结果趋于一致,那么每一次的迭代中门限值的变化幅度不断减小,最终趋于0。
在计算的过程中,通过其计算结果与比较,如果差值超过预设设置的差值阈值,则认为分片l的节点是恶意节点把他加入到本分片的拜占庭列表中,且在之后的迭代过程中不再使用节点j的投票数据去更新自己的本地数据。所述差值阈值指的是预设设置的用于判断与之间的差值是否过大的预设阈值,可以根据实际情况和需求进行自定义设置与调整。
本实施例还提供一种基于拟态防御的拜占庭容错实现系统,采用了如上所述的基于拟态防御的拜占庭容错实现方法,并包括:
分片模块,对普通节点进行分片操作,并生成节点的公私钥信息;
节点角色划分模块,通过密码抽签为分片内的节点划分节点角色;
打包模块,先通过不同分片中具有记账权的节点对相同的交易进行打包,再由具有表决权的节点进行投票;
多模裁决模块,先通过各分片的领导节点共同组成多模裁决组,然后通过多模裁决组对投票结果进行动态分布式多模裁决以形成裁决结果;
广播模块,各分片的领导节点广播所述裁决结果,所有节点进行存储区块组和更新内存变量。
综上所述,本实施例提出基于拟态防御的基础上实现拜占庭容错的技术方案,旨在保证拜占庭容错能力的同时,还通过引入动态异构冗余的元素,能够在保证高效的共识效率的基础上,对日蚀攻击和自私挖矿等攻击手段都具有极强的抵御能力,进而提升了整体的分区容忍性以及结果的可靠性,提高了由部分节点的共识代替全局共识时损失的部分拜占庭容错能力。此外,还进一步通过对节点的分片优化设计,保证了节点的分片尽可能随机均衡,且在新节点加入或拜占庭节点超过预设比例时通过分片重组来平衡共识效率和系统安全。加之,再进一步基于多模裁决组的动态分布式多模裁决,即使在存在恶意领导节点作恶和网络分区的情况下,也能够很好地保证达成全局一致的共识结果,全面保证系统的稳健性能。
以上内容是结合具体的优选实施方式对本发明所作的进一步详细说明,不能认定本发明的具体实施只局限于这些说明。对于本发明所属技术领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干简单推演或替换,都应当视为属于本发明的保护范围。
Claims (9)
1.一种基于拟态防御的拜占庭容错实现方法,其特征在于,包括以下步骤:
步骤S1,对普通节点进行分片操作,并生成节点的公私钥信息;
步骤S2,通过密码抽签为分片内的节点划分节点角色;
步骤S3,先通过不同分片中具有记账权的节点对相同的交易进行打包,再由具有表决权的节点进行投票;
步骤S4,先通过各分片的领导节点共同组成多模裁决组,然后通过多模裁决组对投票结果进行动态分布式多模裁决以形成裁决结果;
步骤S5,各分片的领导节点广播所述裁决结果,所有节点进行存储区块组和更新内存变量;
所述步骤S4包括以下子步骤:
步骤S402,进行迭代以实现所有领导节点达成一致,在第k次迭代时,领导节点的所在分片的投票结果通过公式进行更新,其中,,指的是预设的分片数;指的是第k-1次迭代的投票结果;和指的是预设的迭代权重,,为查找表的长度;
6.根据权利要求1所述的基于拟态防御的拜占庭容错实现方法,其特征在于,所述步骤S5包括以下子步骤:
步骤S501,各个分片内的节点在接收到区块组头后,把区块组头与之前收到的合法区块集合和区块签名信息重组成完整的区块组;
步骤S502,检查是否满足广播执行条件,直到是,则存储区块组和更新内存变量,并在执行完之后进入下一轮共识,其中,所述广播执行条件包括:接收到与当前轮共识度达到预设要求的区块组头、对区块组头的信息验证通过以及接收到所有通过投票的区块。
7.根据权利要求1至6任意一项所述的基于拟态防御的拜占庭容错实现方法,其特征在于,所述步骤S1中,当新节点加入或拜占庭节点超过预设比例时,触发重新进行分片;
当新节点加入时,新节点向全网发送探测消息,在收到新节点的探测消息后,各个分片会向新节点发送各分片的有效节点状态表,新节点进入普通节点个数最小的分片;如果多个分片的普通节点个数相同,则执行Maglev算法随机进入到其中的一个分片中;
9.一种基于拟态防御的拜占庭容错实现系统,其特征在于,采用了如权利要求1至8任意一项所述的基于拟态防御的拜占庭容错实现方法,并包括:
分片模块,对普通节点进行分片操作,并生成节点的公私钥信息;
节点角色划分模块,通过密码抽签为分片内的节点划分节点角色;
打包模块,先通过不同分片中具有记账权的节点对相同的交易进行打包,再由具有表决权的节点进行投票;
多模裁决模块,先通过各分片的领导节点共同组成多模裁决组,然后通过多模裁决组对投票结果进行动态分布式多模裁决以形成裁决结果;
广播模块,各分片的领导节点广播所述裁决结果,所有节点进行存储区块组和更新内存变量。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211533575.0A CN115549931B (zh) | 2022-12-02 | 2022-12-02 | 一种基于拟态防御的拜占庭容错实现方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211533575.0A CN115549931B (zh) | 2022-12-02 | 2022-12-02 | 一种基于拟态防御的拜占庭容错实现方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115549931A CN115549931A (zh) | 2022-12-30 |
CN115549931B true CN115549931B (zh) | 2023-04-14 |
Family
ID=84722441
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211533575.0A Active CN115549931B (zh) | 2022-12-02 | 2022-12-02 | 一种基于拟态防御的拜占庭容错实现方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115549931B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117221332B (zh) * | 2023-06-08 | 2024-04-12 | 天津大学 | 基于多领导者拜占庭容错共识的高鲁棒性交易打包方法 |
CN116488946B (zh) * | 2023-06-21 | 2023-09-15 | 积至网络(北京)有限公司 | 基于持续多模表决的恶意节点检测方法 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115412263A (zh) * | 2022-09-06 | 2022-11-29 | 西南交通大学 | 一种基于双重盲化的拜占庭容错共识方法 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2019232789A1 (zh) * | 2018-06-08 | 2019-12-12 | 北京大学深圳研究生院 | 一种基于投票的共识方法 |
WO2020000011A1 (en) * | 2018-06-25 | 2020-01-02 | Commonwealth Scientific And Industrial Research Organisation | Blockchain system and method |
CN109919760B (zh) * | 2019-01-11 | 2022-08-30 | 南京邮电大学 | 基于投票机制的拜占庭容错共识算法的优化方法 |
CN114124410B (zh) * | 2021-11-30 | 2022-11-04 | 上海华能电子商务有限公司 | 一种适用于供应链场景下多方验证的改进型poa共识方法 |
-
2022
- 2022-12-02 CN CN202211533575.0A patent/CN115549931B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115412263A (zh) * | 2022-09-06 | 2022-11-29 | 西南交通大学 | 一种基于双重盲化的拜占庭容错共识方法 |
Also Published As
Publication number | Publication date |
---|---|
CN115549931A (zh) | 2022-12-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Zamani et al. | Rapidchain: Scaling blockchain via full sharding | |
Fu et al. | A survey of Blockchain consensus algorithms: mechanism, design and applications | |
Bano et al. | SoK: Consensus in the age of blockchains | |
Wahab et al. | Survey of consensus protocols | |
Bano et al. | Consensus in the age of blockchains | |
CN110832825B (zh) | 通过防篡改数据提高验证速度的网络的方法和节点 | |
Sheng et al. | BFT protocol forensics | |
CN115549931B (zh) | 一种基于拟态防御的拜占庭容错实现方法及系统 | |
Li et al. | Gosig: A scalable and high-performance byzantine consensus for consortium blockchains | |
CN113271204B (zh) | 一种基于量子密钥分发的拜占庭容错共识方法 | |
CN111131209A (zh) | 一种改进的高效共识方法、系统、计算机设备及存储介质 | |
Li et al. | A survey of state-of-the-art sharding blockchains: Models, components, and attack surfaces | |
Wan et al. | AnonymousFox: An efficient and scalable blockchain consensus algorithm | |
Li et al. | Gosig: Scalable byzantine consensus on adversarial wide area network for blockchains | |
Santiago et al. | Concordia: a streamlined consensus protocol for blockchain networks | |
Li et al. | ISCP: An Improved Blockchain Consensus Protocol. | |
Asayag et al. | Helix: A scalable and fair consensus algorithm resistant to ordering manipulation | |
CN114140233B (zh) | 分片区块链安全跨片视图转换方法及装置 | |
Wu et al. | Reinforced practical Byzantine fault tolerance consensus protocol for cyber physical systems | |
CN115022326A (zh) | 基于协同过滤推荐的区块链拜占庭容错共识方法 | |
CN115941680A (zh) | 基于跨分片拜占庭容错算法的灵活分片区块链方法及装置 | |
Sony et al. | Slim-ABC: An Optimized Atomic Broadcast Protocol | |
Cao et al. | A high efficiency network using DAG and consensus in blockchain | |
Tian et al. | SLChain: A secure and low‐storage pressure sharding blockchain | |
Chen et al. | An Efficient Byzantine Fault-Tolerant Consensus Mechanism Based on Aggregate Threshold Ring Signature |
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 |