CN113923093B - 一种基于可信执行环境的新型拜占庭容错共识方法 - Google Patents
一种基于可信执行环境的新型拜占庭容错共识方法 Download PDFInfo
- Publication number
- CN113923093B CN113923093B CN202111271026.6A CN202111271026A CN113923093B CN 113923093 B CN113923093 B CN 113923093B CN 202111271026 A CN202111271026 A CN 202111271026A CN 113923093 B CN113923093 B CN 113923093B
- Authority
- CN
- China
- Prior art keywords
- message
- tee
- nodes
- master node
- view
- 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 52
- 230000007246 mechanism Effects 0.000 claims abstract description 29
- 238000013461 design Methods 0.000 claims abstract description 6
- 230000000977 initiatory effect Effects 0.000 claims abstract description 4
- 230000009467 reduction Effects 0.000 claims abstract description 4
- 238000005242 forging Methods 0.000 claims description 7
- 230000000694 effects Effects 0.000 claims description 5
- 230000008569 process Effects 0.000 claims description 3
- 238000012545 processing Methods 0.000 claims description 3
- 230000002194 synthesizing effect Effects 0.000 claims description 3
- 230000001960 triggered effect Effects 0.000 claims description 3
- 238000004131 Bayer process Methods 0.000 claims 4
- 230000006399 behavior Effects 0.000 abstract description 9
- 238000013459 approach Methods 0.000 abstract description 2
- 230000001360 synchronised effect Effects 0.000 description 3
- 238000012795 verification Methods 0.000 description 3
- 238000011161 development Methods 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/30—Decision processes by autonomous network management units using voting and bidding
-
- 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/08—Network architectures or network communication protocols for network security for authentication of entities
- H04L63/0823—Network architectures or network communication protocols for network security for authentication of entities using certificates
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/104—Peer-to-peer [P2P] networks
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Hardware Redundancy (AREA)
Abstract
本发明提供一种基于可信执行环境的新型拜占庭容错共识方法,涉及分布式共识技术领域。该方法利用可信执行环境,提供可信原语,以限制拜占庭宿主的恶意行为;用TEE辅助的秘密分享代替多重签名,使用流水线机制,完成对提议消息种类的缩减与对投票消息的利用。包括正常执行情况下的共识和视图切换情况下的共识,以处理分布式系统中可能发生的所有情况;在正常执行情况下,采用传统拜占庭共识领域通用的设计模式,由主节点发送提议消息,其他节点为提议发送投票;在视图切换情况下,由各个发起视图切换的节点提供消息日志,由下一个视图主节点将消息日志合并以获得系统在上个视图中的消息历史。该方法为区块链等系统中日益增长的需求提供有力支撑。
Description
技术领域
本发明涉及分布式共识技术领域,尤其涉及一种基于可信执行环境的新型拜占庭容错共识方法。
背景技术
随着区块链等分布式系统的迅猛发展,拜占庭容错(Byzantine FaultTolerance)共识机制正在面临新的性能挑战。受限于其强大的安全假设,传统拜占庭容错共识机制需要多余的节点数、冗余的计算复杂度和消息复杂度以保障安全性(safety)与活性(liveness)。这导致传统拜占庭容错共识机制成为区块链等分布式系统的性能瓶颈。
随着以Intel SGX为代表的可信执行环境(TrustedExecution Environment,即TEE)的快速发展与广泛应用,基于可信执行环境的拜占庭容错共识机制带来了新的机会。TEE提供一个隔离的执行环境,以保护代码与数据的机密性(confidentiality)与完整性(integrity)。通过硬件层面的辅助,TEE可以阻止宿主(host)、操作系统等高权限账户访问敏感数据和代码,并保证代码执行的正确性。通过远程证明(RemoteAttestation,即RA),TEE可以向第三方证明本地执行环境是诚实的(genuine),运行代码与结果等未经宿主等恶意篡改。在拜占庭容错共识方法中,通过每个节点配备一个TEE,可以有效限制节点的拜占庭行为,简化共识的达成。
利用可信执行环境提供的安全保证,拜占庭容错共识机制可以得到大幅优化。例如,通过引入可信单调计数器(TrustedMonotonic Counter),可以将容忍f个错误节点所需的总节点数由3f+1降低至2f+1。目前,已有一些基于可信执行环境的拜占庭容错共识机制,如MinBFT,FastBFT,然而,总节点数等关键安全性指标的削减使得传统协议中的部分安全保证失效,需要引入其他机制对其进行保证,使得已有协议的性能与效率依旧不尽如人意。在正常执行或视图切换阶段,这些机制依然拥有O(n2)消息复杂度,对于性能与可扩展性有严重影响。同时,这些机制中每轮投票只能被作用于一个提议,造成巨大的性能浪费。因此,需要设计更加高效的基于可信执行环境的拜占庭容错共识机制。
发明内容
本发明要解决的技术问题是针对上述现有技术的不足,提供一种基于可信执行环境的新型拜占庭容错共识方法,基于部分同步的网络模型与静态拜占庭的敌手模型,在分布式节点中拜占庭节点占总节点数不足一半的前提下,在分布式系统中达成共识,保证系统的安全性与活性。
为解决上述技术问题,本发明所采取的技术方案是:一种基于可信执行环境的新型拜占庭容错共识方法,利用可信执行环境,提供可信原语,以限制拜占庭宿主的恶意行为;用TEE辅助的秘密分享代替多重签名,以降低计算开销,同时,使用流水线机制,完成对提议消息种类的缩减与对投票消息的利用。
进一步地,所述共识方法包括正常执行情况下的共识和视图切换情况下的共识,以处理分布式系统中可能发生的所有情况;
在正常执行情况下,采用传统拜占庭共识领域通用的设计模式,由主节点发送提议消息,其他节点为提议发送投票;主节点在收集到2f+1个节点的投票后为提议消息合成合法证书,其中f为分布式系统中拜占庭节点数,并将该合法证书广播给所有节点,以证明提议已被足够多的节点接受;同时,主节点在收集投票消息以生成合法证书时,适用轻量级的秘密分享方案;具体地,主节点使用TEE生成一个秘密,并由TEE将其分解成n个份额并加密,主节点把各个加密后的份额连同秘密的哈希值分别发送给其他节点,需要投票的节点用TEE将自己的秘密份额解密并发送给主节点,完成投票;在主节点收集到f个合法的秘密份额之后,还原出秘密;
在视图切换情况下,由各个发起视图切换的节点提供消息日志,并由下一个视图主节点将消息日志合并以获得系统在上个视图中的消息历史;在切换到下个视图前,所有正确节点均将按照视图切换协议产生的消息历史,执行本地未执行的客户端请求,更新本地状态,以与其他节点达成一致状态;为保证分布式系统安全性与活性,利用TEE避免其他节点伪造消息日志与主节点伪造消息历史。
进一步地,在正常执行情况下,分布式系统中每个节点都使用TEE中的可信单调计数器并维护一个可信序号序列,每个主节点发出的提议消息均绑定到唯一一个序号;在同一视图内,每次主节点通过调用TEE为提议消息分配序号,主节点TEE维护的可信单调计数器增加1,除主节点外的其他节点每次受到TEE提供的提议消息,均调用TEE对消息的序号进行验证,TEE将会首先比较提议消息中附带的计数器与本地计数器是否相等,如果相等,将会接受该提议消息,并将本地维护的计数器加1,否则,TEE将会拒绝接受该提议消息;同时,在正常执行阶段,采用流水线机制,压缩系统中消息类型,系统中的一个消息同时包含各提议在不同阶段的处理信息,以提高系统吞吐。
进一步地,所述正常执行情况的共识需要Prepare与Commit两阶段完成共识;具体地,每轮共识包括以下步骤:
步骤1、在新的一轮共识开始时,分布式系统中的主节点选取一笔客户端发送的交易请求作为提议,调用TEE为交易分配序号,并生成秘密份额以发起投票;然后,主节点将会将交易、序号与秘密份额组装成Prepare消息,并广播给其他节点;
步骤2、分布式系统中的其他节点收到Prepare消息后,通过TEE验证Prepare消息的合法性,如果合法,则其他节点将会向主节点发送其秘密份额以投票,否则,其他节点将请求视图切换;
步骤3、主节点在收集到f+1个节点投票后,主节点将成功恢复秘密并将其作为Commit-QC,并在本地执行客户端交易请求,将执行结果、秘密、新一轮投票所需的秘密份额组装成Commit消息,广播给其他节点;其中,f为分布式系统中拜占庭节点数;如果主节点未能收集到f+1个节点投票,将请求视图切换;
步骤4、其他节点收到Commit消息后,通过TEE验证该Commit消息与其所附带的秘密的合法性,如果合法,则将会在节点本地执行客户端请求,并将投票发送给主节点;否则,其他节点将请求视图切换;
步骤5、在主节点收到f+1个投票后,将恢复出秘密并将其作为Decide-QC,并向客户端发送Reply消息,证明至少f+1个节点已经执行该客户端的请求;本轮共识将结束,主节点将选取新的客户端交易进行下一轮共识。
进一步地,在视图切换情况下,基于序号的证明机制利用TEE避免恶意节点伪造消息日志,以此保证节点正确地给出其在上一视图中的消息日志;
一、利用TEE避免其他节点伪造消息日志;在其他节点生成消息日志时,首先以消息日志中的最高序号提议为输入调用TEE,TEE将检查该消息的合法性,并对该消息进行签名;在生成消息日志之后,节点将把该消息证明连同消息日志一并发送给下一视图主节点;下一视图主节点在收到消息日志后,首先检验该日志的最大序号消息是否与其证明相符,如果相符,则通过判断该消息日志的消息序号是否连续,即可判断该消息日志的合法性;如果不符,则说明该消息序列不合法;同时,TEE引入锁机制,保证在一个视图内,一个节点仅能通过TEE获取一次最高序号提议签名,且一旦获取该签名,TEE将拒绝再为该视图内的任何消息投票,节点将只能等待切换到下一视图,即保证一个节点在一个视图内仅能生成一个合法的消息日志;
二、利用TEE保证下个视图主节点正确地生成消息历史;每个合法的消息日志都附带一个TEE对消息日志中最高序号提议的合法签名作为证明;在收到f+1个合法消息日志后,下个视图主节点将会将f+1个消息日志所附带的最高序号提议及其合法签名输入到TEE中,TEE将会选取其中带有最高序号的消息进行签名,并保证选取的正确性;下个视图主节点生成的消息历史只有以TEE选取的该消息作为最高序号提议才能成为合法消息历史;
进一步地,所述视图切换情况下的共识具体包括以下步骤:
步骤S1、分布式系统中的主节点或其他节点发现系统中存在潜在的拜占庭行为,无法继续正常执行,触发视图切换;
该节点首先以本地消息日志中的最高序号提议为输入调用TEE,TEE检查该提议的合法性,如果合法,将对该消息进行签名,如果不合法,将拒绝为该提议签名;作为消息日志证明;在生成消息日志证明之后,节点将把该消息日志证明连同消息日志一并发送给下一视图的主节点;
步骤S2、在下一视图的主节点收到至少f+1个合法消息日志后,调用TEE将所有消息日志合成为唯一的合法消息历史;如果在超时时间到来前,下一视图主节点没有成功收到f+1个合法投票,将请求新一轮视图切换;下一视图的主节点将把该消息历史广播给分布式系统中的所有节点并发起一轮投票
步骤S3、下一视图的所有节点将通过验证的消息日志证明与消息日志消息历史的TEE签名,验证消息历史的合法性,如果不合法,将请求新一轮视图切换;如果合法,将执行消息历史中节点本地尚未执行的请求,为该消息历史投票,将投票发送给下一视图的主节点;
步骤S4、下一视图主节点收到至少f+1个合法投票后,将合成合法证书并广播给分布式系统中的所有节点,切换到下一个视图;如果在超时时间到来前,下一视图主节点没有成功收到f+1个合法投票或没有给出合法证书,将请求新一轮视图切换;
步骤S5、下一视图的其他节点收到合法证书后,切换到下一个视图,开始下一个视图下共识的正常执行,视图切换完成;如果没有收到合法证书,其他节点将请求一轮新的视图切换。
采用上述技术方案所产生的有益效果在于:本发明提供的一种基于可信执行环境的新型拜占庭容错共识方法,采用部分同步网络下的静态拜占庭敌手模型,仅需2f+1个节点数以容忍f个错误节点。在不引入冗余节点数与阶段的数前提下,该方法首次在正常执行与视图切换阶段均实现O(n)消息复杂度。同时,该方法引入流水线机制、基于可信执行环境的秘密分享机制显著提高分布式系统的性能、可扩展性与安全性,为区块链等系统中日益增长的需求提供有力支撑。
附图说明
图1为本发明实施例提供的正常执行情况下共识的流程图;
图2为本发明实施例提供的视图切换情况下共识的流程图;
图3为本发明实施例提供的流水线共识机制的示意图。
具体实施方式
下面结合附图和实施例,对本发明的具体实施方式作进一步详细描述。以下实施例用于说明本发明,但不用来限制本发明的范围。
本实施例中,一种基于可信执行环境的新型拜占庭容错共识方法,利用可信执行环境,提供可信原语,以限制拜占庭宿主的恶意行为;用TEE辅助的秘密分享代替多重签名,以降低计算开销,同时,使用流水线机制,完成对提议消息种类的缩减与对投票消息的高效利用。
该共识方法包括正常执行情况下的共识和视图切换情况下的共识,以处理分布式系统中可能发生的所有情况;
在正常执行情况下,本方法采用传统拜占庭共识领域通用的设计模式,由主节点发送提议消息,其他节点为提议发送投票,在收集到足够投票后(在传统总节点数为3f+1的部分同步网络下的拜占庭容错共识方法中,通常需收集2f+1个节点的投票,其中f为系统中拜占庭节点数),将合成合法证书,主节点把该证书广播给所有节点,以证明提议已被足够多的节点接受。在本方法中,系统总节点数仅为2f+1,因此仅需收集f+1个节点的投票以生成合法证书。同时,传统拜占庭共识方法通常通过昂贵的门限签名等密码学原语,引入额外的计算开销。在本方法中,在主节点需要聚合投票消息以生成证书时,将使用TEE生成一个秘密(secret),并由TEE将其分解成n个份额(share)并加密,主节点将把各个加密后的份额连同秘密的哈希值分别发送给各个节点,需要投票的节点仅需要用TEE将自己的秘密份额解密并发送给主节点,即可完成投票。在主节点收集到f个合法的秘密份额之后,即可还原出秘密。本方法用上述可信执行环境辅助的秘密共享方法代替门限签名,以降低计算开销。
在正常执行情况下,本方法中的每个系统节点都将使用可信单调计数器并维护一个可信序号序列,每个主节点发出的提议消息均需绑定到唯一一个序号。在同一视图内,每次主节点通过调用TEE为消息分配序号,其TEE维护的计数器将增加1,除主节点外的其他节点每次受到TEE提供的提议消息,均将调用TEE对消息的序号进行验证,TEE将会首先比较消息中附带的计数器与本地计数器是否相等,如果相等,将会接受该消息,并将本地维护的技术器加1,否则,TEE将会拒绝接受该消息。通过上述TEE内的序号分发与验证可信原语,可以防止所有的二义行为,即:主节点不能为不同消息分配同一个序号,其他节点不能同时接受两个具有同样序号的冲突消息。
在正确执行阶段,每个节点将在本地维护一个TEE,并依赖TEE中的可信单调计数器维护一个可信序号序列,用于下述流程为交易分配序号。同时TEE内部需实现轻量级秘密共享,用于下述流程中的投票环节。
具体地,所述正常执行情况的共识需要Prepare与Commit两阶段完成共识,每轮共识包括以下步骤:
步骤1、在新的一轮共识开始时,分布式系统中的主节点选取一笔客户端发送的交易请求作为提议,调用TEE为交易分配序号,并生成秘密份额以发起投票;然后,主节点将会将交易、序号与秘密份额组装成Prepare消息,并广播给其他节点;
步骤2、分布式系统中的其他节点收到Prepare消息后,通过TEE验证Prepare消息的合法性,如果合法,则其他节点将会向主节点发送其秘密份额以投票,否则,其他节点将请求视图切换;
步骤3、主节点在收集到f+1个节点投票后,主节点将成功恢复秘密并将其作为Commit-QC,并在本地执行客户端交易请求,将执行结果、秘密、新一轮投票所需的秘密份额组装成Commit消息,广播给其他节点;其中,f为分布式系统中拜占庭节点数;
步骤4、其他节点收到Commit消息后,通过TEE验证该Commit消息与其所附带的秘密的合法性,如果合法,则将会在节点本地执行客户端请求,并将投票发送给主节点;否则,其他节点将请求视图切换;
步骤5、在主节点收到f+1个投票后,将恢复出秘密并将其作为Decide-QC,并向客户端发送Reply消息,证明至少f+1个节点已经执行该客户端的请求;本轮共识将结束,主节点将选取新的客户端交易进行下一轮共识。
本实施例中,正常执行情况下的共识如图1所示,图中,Sp为主节点,S1、S2均为其他节点。
在一个视图中,由于异步网络调度与拜占庭行为的存在,系统中部分节点间将处在不同的状态,当节点发现到这些潜在情况导致系统不能正常运行时,将请求视图切换,视图切换的期望行为为使所有正确的节点间就过去一个视图内系统中状态的改变达成一致,并切换到下一个视图。由于拜占庭协议通常由提议与证书驱动共识达成,因此,常见共识协议通过节点间就上一视图中出现的所有证书或提议达成共识以完成视图切换。
在视图切换情况下,本方法将由各个发起视图切换的节点提供消息日志,并由下一个视图主节点将消息日志合并以获得系统在上个视图中的消息历史。在切换到下个视图前,所有正确节点均将按照视图切换协议产生的消息历史,执行本地未执行的客户端请求,更新本地状态,以与其他节点达成一致状态。在本方法中,为保证系统安全性与活性,需利用TEE避免其他节点伪造消息日志与主节点伪造消息历史。具体地,本方法设计了精细的基于序号的证明机制避免恶意节点伪造消息日志,以此保证节点将诚实地给出其在上一视图中的消息日志。即:在视图v中,如果节点S为提议p投票,则节点S产生的合法消息日志L必须包括p(或S不产生任何消息日志)。
在本方法正常执行情况下,由于前述序号分发与验证机制的存在,TEE将会拒绝为任何带有不连续序号的提议投票,因此,只要TEE为某一提议投票,则其一定已经为所有拥有更小序号的提议投票。同时,由于主节点的TEE保证不会为不同的提议分配同一个序号,可以确定该提议之前的所有提议一定拥有唯一且不可伪造的顺序与内容。本方法中,TEE不会处理所有的消息日志,仅会对消息日志中具有最大序号的消息进行检查与签名,TEE中的代码规则要求,宿主传入的最高序号投票必须为TEE最近一次投票的消息,否则,TEE将不会为其进行签名。
本方法利用TEE避免其他节点伪造消息日志。在其他节点生成消息日志时,需要首先以消息日志中的最高序号提议为输入调用TEE,TEE将检查该消息的合法性,并对该消息进行签名。在生成消息日志之后,节点将把该消息证明连同消息日志L一并发送给下一视图主节点。下一视图主节点在收到消息日志后,将首先检验该日志的最大序号消息是否与其证明相符,如果相符,则通过判断该消息日志的消息序号是否连续,即可判断该消息日志的合法性。如果不符,则说明该消息序列不合法。同时,本方法中的TEE引入锁机制,保证在一个视图内,一个节点仅能通过TEE获取一次最高序号提议签名,且一旦获取该签名,TEE将拒绝再为该视图内的任何消息投票,节点将只能等待切换到下一视图,即保证一个节点在一个视图内仅能生成一个合法的消息日志。
本方法利用TEE保证下各视图主节点诚实地生成消息历史。在本方法中,下个视图主节点负责将收集到的f+1个消息日志合成一个正确的消息历史。在稻草人方法中,恶意的下个视图主节点将可以生成错误的消息历史,以打破系统的安全性与活性。本方法通过TEE限制下个视图主节点的恶意行为。在本方法中,每个合法的消息日志都需要附带一个TEE对日志中最高序号提议的合法签名作为证明。在收到f+1个合法消息日志后,下个视图主节点将会将f+1个日志所附带的最高序号提议及其合法签名输入到TEE中,TEE将会选取其中带有最高序号的消息进行签名,并保证选取的正确性。下个视图主节点生成的消息历史只有以TEE选取的该消息作为最高序号提议才能成为合法消息历史。在不引入多余节点数与阶段数前提下,本方法首次实现了基于TEE的BFT中O(n)消息复杂度的视图切换。
因此,在所述视图切换情况下,每个节点中的TEE将实现生成消息日志证明与消息历史功能,以用于下述流程中其他节点生成消息日志证明与下个视图主节点生成消息历史。具体地,所述视图切换情况下的共识包括以下步骤:
步骤S1、分布式系统中的主节点或其他节点发现系统中存在潜在的拜占庭行为(包括系统中节点超时或所发消息无法通过验证),无法继续正常执行,触发视图切换;
该节点首先以消息日志中的最高序号提议为输入调用TEE,TEE检查该提议的合法性,并对该消息进行签名,作为消息日志证明;在生成消息日志证明之后,节点将把该消息日志证明连同消息日志一并发送给下一视图的主节点;
步骤S2、在下一视图的主节点收到至少f+1个合法消息日志后,调用TEE将所有消息日志合成为唯一的合法消息历史;下一视图的主节点将把该消息历史广播给分布式系统中的所有节点并发起一轮投票;下一视图的所有节点将通过验证的消息日志证明与消息日志消息历史的TEE签名,验证消息历史的合法性,并执行消息历史中节点本地尚未执行的请求,为该消息历史投票,将投票发送给下一视图的主节点;如果在超时时间到来前,下一视图主节点没有成功收到f+1个合法投票,将请求新一轮视图切换;
步骤S3、下一视图主节点收到至少f+1个合法投票后,将合成合法证书广播给分布式系统中的所有节点,并切换到下一个视图;如果在超时时间到来前,下一视图主节点没有成功收到f+1个合法投票,将请求新一轮视图切换;
步骤S4、下一视图的其他节点收到合法证书后,切换到下一个视图,开始下一个视图下共识的正常执行,视图切换完成;如果证书没有通过合法性验证,其他节点将请求新一轮视图切换。
本实施例中,视图切换情况下的共识如图2所示,图中,S′p为下一视图主节点。
在本方法的正常执行情况下,每个客户端请求需要经过Prepare与Commit两阶段以完成处理。每一阶段均需要进行一轮投票。尽管本方法已经使用轻量级的秘密共享代替多重签名,每轮投票带来的计算与通信开销依然对系统性能有很大影响。因此,本方法引入流水线机制,以充分利用每轮投票,提高系统吞吐。
通过引入如图3所示的流水线机制,本方法中的一轮提议-投票将拥有多重含义。例如,当前请求的Commit消息将连同前一请求的Decide消息一并发出,同时,为当前请求的Prepare消息进行的投票将同时为前一请求的Commit消息投票,所形成的当前请求的Commit-QC将同时作为前一请求的Decide-QC。通过流水线机制的引入,系统的吞吐得到大幅提升。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明权利要求所限定的范围。
Claims (5)
1.一种基于可信执行环境的新型拜占庭容错共识方法,其特征在于:利用可信执行环境,提供可信原语,以限制拜占庭宿主的恶意行为;用TEE辅助的秘密分享代替多重签名,以降低计算开销,同时,使用流水线机制,完成对提议消息种类的缩减与对投票消息的利用;
所述共识方法包括正常执行情况下的共识和视图切换情况下的共识,以处理分布式系统中可能发生的所有情况;
在正常执行情况下,采用传统拜占庭共识领域通用的设计模式,由主节点发送提议消息,其他节点为提议发送投票;主节点在收集到2f+1个节点的投票后为提议消息合成合法证书,其中f为分布式系统中拜占庭节点数,并将该合法证书广播给所有节点;同时,主节点在收集投票消息以生成合法证书时,适用轻量级的秘密分享方案;具体地,主节点使用TEE生成一个秘密,并由TEE将其分解成n个份额并加密,主节点把各个加密后的份额连同秘密的哈希值分别发送给其他节点,需要投票的节点用TEE将自己的秘密份额解密并发送给主节点,完成投票;在主节点收集到f个合法的秘密份额之后,还原出秘密;
在视图切换情况下,由各个发起视图切换的节点提供消息日志,并由下一个视图主节点将消息日志合并以获得系统在上个视图中的消息历史;在切换到下个视图前,所有正确节点均将按照视图切换协议产生的消息历史,执行本地未执行的客户端请求,更新本地状态,以与其他节点达成一致状态;为保证分布式系统安全性与活性,利用TEE避免其他节点伪造消息日志与主节点伪造消息历史。
2.根据权利要求1所述的一种基于可信执行环境的新型拜占庭容错共识方法,其特征在于:在正常执行情况下,分布式系统中每个节点都使用TEE中的可信单调计数器并维护一个可信序号序列,每个主节点发出的提议消息均绑定到唯一一个序号;在同一视图内,每次主节点通过调用TEE为提议消息分配序号,主节点TEE维护的可信单调计数器增加1,除主节点外的其他节点每次受到TEE提供的提议消息,均调用TEE对消息的序号进行验证,TEE将会首先比较提议消息中附带的计数器与本地计数器是否相等,如果相等,将会接受该提议消息,并将本地维护的计数器加1,否则,TEE将会拒绝接受该提议消息;同时,在正常执行阶段,采用流水线机制,压缩系统中消息类型,系统中的一个消息同时包含各提议在不同阶段的处理信息,以提高系统吞吐。
3.根据权利要求2所述的一种基于可信执行环境的新型拜占庭容错共识方法,其特征在于:所述正常执行情况的共识需要Prepare与Commit两阶段完成共识;具体地,每轮共识包括以下步骤:
步骤1、在新的一轮共识开始时,分布式系统中的主节点选取一笔客户端发送的交易请求作为提议,调用TEE为交易分配序号,并生成秘密份额以发起投票;然后,主节点将会将交易、序号与秘密份额组装成Prepare消息,并广播给其他节点;
步骤2、分布式系统中的其他节点收到Prepare消息后,通过TEE验证Prepare消息的合法性,如果合法,则其他节点将会向主节点发送其秘密份额以投票,否则,其他节点将请求视图切换;
步骤3、主节点在收集到f+1个节点投票后,主节点将成功恢复秘密并将其作为Commit-QC,并在本地执行客户端交易请求,将执行结果、秘密、新一轮投票所需的秘密份额组装成Commit消息,广播给其他节点;其中,f为分布式系统中拜占庭节点数;如果主节点未能收集到f+1个节点投票,将请求视图切换;
步骤4、其他节点收到Commit消息后,通过TEE验证该Commit消息与其所附带的秘密的合法性,如果合法,则将会在节点本地执行客户端请求,并将投票发送给主节点;否则,其他节点将请求视图切换;
步骤5、在主节点收到f+1个投票后,将恢复出秘密并将其作为Decide-QC,并向客户端发送Reply消息,证明至少f+1个节点已经执行该客户端的请求;本轮共识将结束,主节点将选取新的客户端交易进行下一轮共识。
4.根据权利要求1所述的一种基于可信执行环境的新型拜占庭容错共识方法,其特征在于:所述方法在视图切换情况下,基于序号的证明机制利用TEE避免恶意节点伪造消息日志,以此保证节点正确地给出其在上一视图中的消息日志;
一、利用TEE避免其他节点伪造消息日志;在其他节点生成消息日志时,首先以消息日志中的最高序号提议为输入调用TEE,TEE将检查该消息的合法性,并对该消息进行签名;在生成消息日志之后,节点将把该消息证明连同消息日志一并发送给下一视图主节点;下一视图主节点在收到消息日志后,首先检验该日志的最大序号消息是否与其证明相符,如果相符,则通过判断该消息日志的消息序号是否连续,即可判断该消息日志的合法性;如果不符,则说明该消息序列不合法;同时,TEE引入锁机制,保证在一个视图内,一个节点仅能通过TEE获取一次最高序号提议签名,且一旦获取该签名,TEE将拒绝再为该视图内的任何消息投票,节点将只能等待切换到下一视图,即保证一个节点在一个视图内仅能生成一个合法的消息日志;
二、利用TEE保证下个视图主节点正确地生成消息历史;每个合法的消息日志都附带一个TEE对消息日志中最高序号提议的合法签名作为证明;在收到f+1个合法消息日志后,下个视图主节点将会将f+1个消息日志所附带的最高序号提议及其合法签名输入到TEE中,TEE将会选取其中带有最高序号的消息进行签名,并保证选取的正确性;下个视图主节点生成的消息历史只有以TEE选取的该消息作为最高序号提议才能成为合法消息历史。
5.根据权利要求4所述的一种基于可信执行环境的新型拜占庭容错共识方法,其特征在于:所述视图切换情况下的共识具体包括以下步骤:
步骤S1、分布式系统中的主节点或其他节点发现系统中存在潜在的拜占庭行为,无法继续正常执行,触发视图切换;
该节点首先以本地消息日志中的最高序号提议为输入调用TEE,TEE检查该提议的合法性,如果合法,将对该消息进行签名,如果不合法,将拒绝为该提议签名;作为消息日志证明;在生成消息日志证明之后,节点将把该消息日志证明连同消息日志一并发送给下一视图的主节点;
步骤S2、在下一视图的主节点收到至少f+1个合法消息日志后,调用TEE将所有消息日志合成为唯一的合法消息历史;如果在超时时间到来前,下一视图主节点没有成功收到f+1个合法投票,将请求新一轮视图切换;下一视图的主节点将把该消息历史广播给分布式系统中的所有节点并发起一轮投票
步骤S3、下一视图的所有节点将通过验证的消息日志证明与消息日志消息历史的TEE签名,验证消息历史的合法性,如果不合法,将请求新一轮视图切换;如果合法,将执行消息历史中节点本地尚未执行的请求,为该消息历史投票,将投票发送给下一视图的主节点;
步骤S4、下一视图主节点收到至少f+1个合法投票后,将合成合法证书并广播给分布式系统中的所有节点,切换到下一个视图;如果在超时时间到来前,下一视图主节点没有成功收到f+1个合法投票或没有给出合法证书,将请求新一轮视图切换;
步骤S5、下一视图的其他节点收到合法证书后,切换到下一个视图,开始下一个视图下共识的正常执行,视图切换完成;如果没有收到合法证书,其他节点将请求一轮新的视图切换。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111271026.6A CN113923093B (zh) | 2021-10-29 | 2021-10-29 | 一种基于可信执行环境的新型拜占庭容错共识方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111271026.6A CN113923093B (zh) | 2021-10-29 | 2021-10-29 | 一种基于可信执行环境的新型拜占庭容错共识方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113923093A CN113923093A (zh) | 2022-01-11 |
CN113923093B true CN113923093B (zh) | 2024-02-06 |
Family
ID=79243599
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111271026.6A Active CN113923093B (zh) | 2021-10-29 | 2021-10-29 | 一种基于可信执行环境的新型拜占庭容错共识方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113923093B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115134145B (zh) * | 2022-06-28 | 2023-10-20 | 蚂蚁区块链科技(上海)有限公司 | 区块链系统中的共识方法、装置、计算设备和计算机可读存储介质 |
CN117278326A (zh) * | 2023-11-21 | 2023-12-22 | 四川易利数字城市科技有限公司 | 一种基于信用分层的区块链数据安全性提升方法 |
Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2018095540A1 (en) * | 2016-11-25 | 2018-05-31 | NEC Laboratories Europe GmbH | Method and system for byzantine fault - tolerance replicating of data |
CN108111604A (zh) * | 2017-12-21 | 2018-06-01 | 广州广电运通金融电子股份有限公司 | 区块链共识方法、装置和系统、标识信息处理方法和装置 |
EP3461059A1 (en) * | 2017-09-22 | 2019-03-27 | NEC Laboratories Europe GmbH | Scalable byzantine fault-tolerant protocol with partial tee support |
CN110808838A (zh) * | 2019-10-24 | 2020-02-18 | 华东师范大学 | 一种面向联盟链的分片方法 |
CN111683043A (zh) * | 2020-04-26 | 2020-09-18 | 华东师范大学 | 面向联盟链的基于可信执行环境的智能合约并发执行方法 |
CN112395113A (zh) * | 2020-12-02 | 2021-02-23 | 国网浙江省电力有限公司物资分公司 | 实用拜占庭容错共识方法及装置、可读存储介质 |
CN112468302A (zh) * | 2020-10-23 | 2021-03-09 | 湖南天河国云科技有限公司 | 基于可验证多方秘密分享的可编辑区块链 |
CN112769580A (zh) * | 2020-12-31 | 2021-05-07 | 阳江市链点创新科技发展有限公司 | 一种区块链分层激励共识算法 |
CN112865959A (zh) * | 2020-12-30 | 2021-05-28 | 杭州趣链科技有限公司 | 分布式节点设备的共识方法、节点设备及分布式网络 |
WO2021103794A1 (zh) * | 2019-11-29 | 2021-06-03 | 支付宝(杭州)信息技术有限公司 | 在区块链中实现隐私保护的高效交易方法及装置 |
CN113271204A (zh) * | 2021-05-06 | 2021-08-17 | 西安电子科技大学 | 一种基于量子密钥分发的拜占庭容错共识方法 |
-
2021
- 2021-10-29 CN CN202111271026.6A patent/CN113923093B/zh active Active
Patent Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2018095540A1 (en) * | 2016-11-25 | 2018-05-31 | NEC Laboratories Europe GmbH | Method and system for byzantine fault - tolerance replicating of data |
EP3461059A1 (en) * | 2017-09-22 | 2019-03-27 | NEC Laboratories Europe GmbH | Scalable byzantine fault-tolerant protocol with partial tee support |
CN108111604A (zh) * | 2017-12-21 | 2018-06-01 | 广州广电运通金融电子股份有限公司 | 区块链共识方法、装置和系统、标识信息处理方法和装置 |
CN110808838A (zh) * | 2019-10-24 | 2020-02-18 | 华东师范大学 | 一种面向联盟链的分片方法 |
WO2021103794A1 (zh) * | 2019-11-29 | 2021-06-03 | 支付宝(杭州)信息技术有限公司 | 在区块链中实现隐私保护的高效交易方法及装置 |
CN111683043A (zh) * | 2020-04-26 | 2020-09-18 | 华东师范大学 | 面向联盟链的基于可信执行环境的智能合约并发执行方法 |
CN112468302A (zh) * | 2020-10-23 | 2021-03-09 | 湖南天河国云科技有限公司 | 基于可验证多方秘密分享的可编辑区块链 |
CN112395113A (zh) * | 2020-12-02 | 2021-02-23 | 国网浙江省电力有限公司物资分公司 | 实用拜占庭容错共识方法及装置、可读存储介质 |
CN112865959A (zh) * | 2020-12-30 | 2021-05-28 | 杭州趣链科技有限公司 | 分布式节点设备的共识方法、节点设备及分布式网络 |
CN112769580A (zh) * | 2020-12-31 | 2021-05-07 | 阳江市链点创新科技发展有限公司 | 一种区块链分层激励共识算法 |
CN113271204A (zh) * | 2021-05-06 | 2021-08-17 | 西安电子科技大学 | 一种基于量子密钥分发的拜占庭容错共识方法 |
Non-Patent Citations (3)
Title |
---|
"Scalable byzantine consensus via hardware-assisted secret sharing";J Liu等;《IEEE》;全文 * |
区块链理论研究进展;单进勇;高胜;;密码学报(第05期);全文 * |
单进勇 ; 高胜 ; .区块链理论研究进展.密码学报.2018,(第05期),全文. * |
Also Published As
Publication number | Publication date |
---|---|
CN113923093A (zh) | 2022-01-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Li et al. | A blockchain based new secure multi-layer network model for internet of things | |
CN113923093B (zh) | 一种基于可信执行环境的新型拜占庭容错共识方法 | |
CN111131209B (zh) | 一种改进的高效共识方法、系统、计算机设备及存储介质 | |
US10944624B2 (en) | Changing a master node in a blockchain system | |
US8464091B2 (en) | Byzantine fault tolerant dynamic quorum using a trusted platform module | |
Gong | Increasing availability and security of an authentication service | |
CN100586058C (zh) | 基于j2ee中间件规范的容忍入侵应用服务器及容忍入侵方法 | |
Buttyán et al. | A simple logic for authentication protocol design | |
CN113328997B (zh) | 联盟链跨链系统及方法 | |
WO2023045972A1 (zh) | 一种区块链系统的共识方法及装置 | |
CA2995772A1 (en) | A method of block building based on byzantine consensus via four rounds of communication | |
CN114338242B (zh) | 一种基于区块链技术的跨域单点登录访问方法及系统 | |
EP3908932B1 (en) | Topology-driven byzantine fault-tolerant consensus protocol with vote aggregation | |
EP1042882A4 (en) | METHOD FOR STRONG AUTHENTICATION OF ANOTHER PROCESS IN A DIFFERENT ADDRESS ROOM | |
CN112347428A (zh) | 一种分布式软件产品离线授权方法 | |
CN112118231B (zh) | 一种基于区块链技术的可信身份管理方法 | |
CN113630445B (zh) | 一种基于区块链网络的数据存储方法及装置 | |
CN113378240B (zh) | 一种基于区块链的同步调用用户身份认证方法 | |
CN112926983A (zh) | 一种基于区块链的存证交易加密系统及方法 | |
CN110569649A (zh) | 基于异步处理的数据接入服务接口鉴权方法及装置 | |
CN112529707B (zh) | 基于实例选举共识的交易上链防错方法、装置和电子设备 | |
LUČIĆ | Byzantine fault tolerant raft algorithm with round robin leader election | |
Thorvaldsson et al. | Dynamic Evolution in a Survivable Application Infrastructure | |
CN114466034B (zh) | 一种基于匿名主节点的区块链共识方法 | |
Xie et al. | A Raft Algorithm with Byzantine Fault-Tolerant Performance |
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 |