CN114785799A - 区块链共识方法及区块链副本装置 - Google Patents
区块链共识方法及区块链副本装置 Download PDFInfo
- Publication number
- CN114785799A CN114785799A CN202210366175.9A CN202210366175A CN114785799A CN 114785799 A CN114785799 A CN 114785799A CN 202210366175 A CN202210366175 A CN 202210366175A CN 114785799 A CN114785799 A CN 114785799A
- Authority
- CN
- China
- Prior art keywords
- block
- voting
- consensus
- new
- blocks
- 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 37
- 238000004891 communication Methods 0.000 claims abstract description 20
- 238000004590 computer program Methods 0.000 claims description 29
- 238000012545 processing Methods 0.000 claims description 8
- 238000003860 storage Methods 0.000 claims description 7
- 230000004044 response Effects 0.000 claims description 6
- 230000009191 jumping Effects 0.000 claims 1
- 230000035945 sensitivity Effects 0.000 abstract description 4
- 238000010586 diagram Methods 0.000 description 21
- 238000005516 engineering process Methods 0.000 description 6
- 238000012856 packing Methods 0.000 description 6
- 238000005192 partition Methods 0.000 description 5
- 238000013461 design Methods 0.000 description 4
- 230000006870 function Effects 0.000 description 4
- 230000008569 process Effects 0.000 description 4
- 238000011160 research Methods 0.000 description 3
- 230000000903 blocking effect Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 238000005457 optimization Methods 0.000 description 2
- 230000010076 replication Effects 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 230000002159 abnormal effect Effects 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000002068 genetic effect Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000007246 mechanism 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
- 230000002035 prolonged effect Effects 0.000 description 1
- 230000005477 standard model Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Images
Classifications
-
- 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
- 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
-
- 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
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer And Data Communications (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种区块链共识方法及区块链副本装置,涉及区块链技术领域,该方法包括:接收领导人广播的区块消息;当确定新区块有效时,向领导人发送第二投票,根据区块消息更新本地变量;根据共识协议类型及第一投票结果确定共识规则,追溯新区块的指定数量的父块的投票结果,如果指定数量的父块的投票结果满足共识规则,则确定指定数量的父块中最早提出的父块达成共识,执行区块提交协议将最早提出的父块,及与最早提出的父块在同一条支链上且早于该最早提出的父块提出的区块加入区块链中。本发明提供了多个不同投票门限的cBFT协议,可以降低协议通信复杂度,减少共识达成时间,提升共识系统的吞吐量,并同时降低协议对计时器的敏感度。
Description
技术领域
本发明涉及区块链技术领域,尤其涉及一种区块链共识方法及区块链副本装置。
背景技术
本部分旨在为权利要求书中陈述的本发明实施例提供背景或上下文。此处的描述不因为包括在本部分中就承认是现有技术。
共识问题是容错分布式计算中最基本的问题之一。共识的实现使得分布式系统中的全部进程可以就某一共同的值达成一致。拜占庭容错(Byzantine Fault Tolerance,BFT)共识问题是在拜占庭错误的背景下正式提出的,经过学界和工业界的数十年的研究,被广泛应用于分布式系统中。
经典的BFT状态机复制(State Machine Replication,SMR)协议依赖于一个稳定的领导者来实现驱动协议,直到视图发生更改。每个视图中,领导人都要收集用户指令并打包,提出区块并进行广播。当接收到领导人广播的区块后,每个副本判断区块的有效性后,进行投票。
近几年随着区块链技术的兴起,BFT协议被认为是由准入要求的区块链的标准模型。许多BFT方向的研究学者在探索一种替代方法,称为链式BFT或者cBFT,结合数十年来对BTF的研究和最先进的区块链研究,这被认为是适用于区块链的新一代BFT。
cBFT协议的运行时分为多个视图,每个视图中通过提前制定的领导人选举协议指定其领导人。与经典的BFT协议(如PBFT)不同,cBFT协议使用链式结构,区块用密码技术(hash算法)连接在一起,支持单阶段提议投票,对一个区块的投票也会对同一分支中前一个区块进行投票。cBFT具有很强的可扩展性和可部署性。
假设系统中共包含n个副本,其中f个发生拜占庭错误,且n=3f+1。现有的全部cBFT协议中,无论需要几轮投票来达成共识,针对某个区块,领导人都需要收集2f+1个来自不同副本的投票,来形成针对该区块的证明(certificate)。当网络状况良好时,领导人能很快的收集到多于2f+1个副本的投票,甚至收集到全部副本的投票,仅使用其中的2f+1个副本的投票结果会导致共识达成的复杂度提升,还会产生较长的时间延迟;而在网络状况较差或系统中计时器设置不当时,领导人可能很难收集到2f+1个副本的投票,导致共识时间延长,共识系统吞吐量低。
发明内容
本发明实施例提供一种区块链共识方法,提供了多个不同投票门限的cBFT协议,降低协议通信复杂度,减少共识达成时间,提升共识系统的吞吐量,该方法包括:
接收领导人广播的区块消息,所述区块消息由领导人在接收到用户指令后按照预设消息结构进行打包,其中包含领导人响应于用户指令提出的新区块及该新区块的父块的第一投票结果,该新区块由领导人按照预设区块结构进行打包,其中包含所述新区块的父块投票结果类型,所述投票结果类型包括f+1、2f+1和3f+1;
根据当前保存的本地变量及预设投票规则确定所述新区块的有效性,当确定所述新区块有效时,向所述领导人发送新区块的第二投票,同时根据所述区块消息更新本地变量,所述本地变量包括区块最新投票块、最新投票证据和最新弱投票证据,所述区块最新投票块更新为区块消息中包含的新区块;当所述第一投票结果包含2f+1或3f+1个副本的投票时,将最新投票证据更新为第一投票结果;当所述第一投票结果包含f+1个副本的投票时,将最新弱投票证据更新为第一投票结果;所述领导人收集各个副本发送的新区块的第二投票,将收集得到的所有第二投票作为以当前新区块为父块的下一个新区块的区块消息中携带的第一投票结果;
根据预先指定的共识协议类型及第一投票结果确定共识规则;
根据所述共识规则,追溯新区块的指定数量的父块的投票结果,如果指定数量的父块的投票结果满足共识规则,则确定指定数量的父块中最早提出的父块达成共识,执行区块提交协议,将所述最早提出的父块,及与所述最早提出的父块在同一条支链上且早于该最早提出的父块提出的区块加入区块链中。
本发明实施例还提供一种区块链副本装置,提供了多个不同投票门限的cBFT协议,降低协议通信复杂度,减少共识达成时间,提升共识系统的吞吐量,该装置包括:
通信模块,用于接收领导人广播的区块消息,所述区块消息由领导人在接收到用户指令后按照预设消息结构进行打包,其中包含领导人响应于用户指令提出的新区块及该新区块的父块的第一投票结果,该新区块由领导人按照预设区块结构进行打包,其中包含所述新区块的父块投票结果类型,所述投票结果类型包括f+1、2f+1和3f+1;
处理模块,用于根据当前保存的本地变量及预设投票规则确定所述新区块的有效性,当确定所述新区块有效时,向所述领导人发送新区块的第二投票,同时根据所述区块消息更新本地变量,所述本地变量包括区块最新投票块、最新投票证据和最新弱投票证据,所述区块最新投票块更新为区块消息中包含的新区块;当所述第一投票结果包含2f+1或3f+1个副本的投票时,将最新投票证据更新为第一投票结果;当所述第一投票结果包含f+1个副本的投票时,将最新弱投票证据更新为第一投票结果;所述领导人收集各个副本发送的新区块的第二投票,将收集得到的所有第二投票作为以当前新区块为父块的下一个新区块的区块消息中携带的第一投票结果;
确定模块,用于根据预先指定的共识协议类型及第一投票结果确定共识规则;
共识模块,用于根据所述共识规则,追溯新区块的指定数量的父块的投票结果,如果指定数量的父块的投票结果满足共识规则,则确定指定数量的父块中最早提出的父块达成共识,执行区块提交协议,将所述最早提出的父块,及与所述最早提出的父块在同一条支链上且早于该最早提出的父块提出的区块加入区块链中。
本发明实施例还提供一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述区块链共识方法。
本发明实施例还提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述区块链共识方法。
本发明实施例还提供一种计算机程序产品,所述计算机程序产品包括计算机程序,所述计算机程序被处理器执行时实现上述区块链共识方法。
本发明实施例中,当接收到用户指令时,领导人按照预设区块结构及预设消息结构打包新区块和区块消息,向全网广播;当副本接收到区块消息后,根据当前保存本地变量及预设投票规则确定新区块的有效性,当确定新区块有效时,向领导人发送第二投票,以供领导人在打包下一个新区块的区块消息时,将收集的所有第二投票作为第一投票结果写入下一个新区块的区块消息中;并且,副本从区块消息中可以得到新区块的父块的第一投票结果,该第一投票结果可以为f+1个副本的投票结果、2f+1个副本的投票结果或3f+1个副本的投票结果。之后,按照预先指定的共识协议类型及第一投票结果确定共识规则;按照不同的共识规则,追溯不同指定数量的新区块的父块的投票结果,当指定数量的父块的投票结果满足共识规则时,确定指定数量的父块中最早提出的父块达成共识,可以执行区块提交协议,将最早提出的父块,及与最早提出的父块在同一条支链上且早于该最早提出的父块提出的区块加入区块链中。由上可见,与现有cBFT共识技术中仅支持2f+1个投票结果相比,本发明实施例中扩展了支持的投票结果的类型,领导人在接收到针对新区块的父块的f+1、2f+1和3f+1个副本投票结果时,均可以提出新区块。在网络环境较差、新消息较多导致区块打包频率过高,或者系统计时器设置不当导致领导人很难在计时时间内收集到2f+1的投票的情况下,父块只要是收到f+1个副本投票领导人就能够提出新区块,确保了共识的不断进行,提升了共识系统的吞吐量,并同时降低协议对计时器的敏感度;在网络条件较好时,可以收集到针对父块的3f+1个副本投票结果后提出新的区块,由于区块链中总共包括3f+1个副本,当接收到3f+1个副本投票时,表明父块已得到全部副本的有效性认可,已达成共识,无需再进行其他轮次的共识认证,缩短了共识时间,大大降低了共识达成的通信复杂度和时间延迟,同时也提高了共识系统的吞吐量。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。在附图中:
图1为本发明实施例中一种区块链共识方法的流程图;
图2为本发明实施例中一种f+1协议采用第一共识规则进行共识的示意图;
图3为本发明实施例中一种3f+1协议采用第一共识规则和第二共识规则进行共识的示意图;
图4为本发明实施例中一种f+1/3f+1协议采用第二共识规则进行共识的示意图;
图5为本发明实施例中一种f+1/3f+1协议采用第三共识规则进行共识的示意图;
图6为本发明实施例中一种视图切换的示意图;
图7为本发明实施例中一种区块链副本装置的结构示意图;
图8为本发明实施例中一种计算机设备的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚明白,下面结合附图对本发明实施例做进一步详细说明。在此,本发明的示意性实施例及其说明用于解释本发明,但并不作为对本发明的限定。
BFT网络模型可分为:同步网络、半异步网络、异步网络。半异步网络存在一个未知全局稳定时间(GST),在GST之后,两个正确副本之间发送的消息将在固定的延迟内到达。半异步BFT协议既确保了不同网络情况下系统一致性又兼顾了效率。我们考虑的是半异步网络环境下的拜占庭容错协议(partial synchronous cBFT)的协议设计与优化。
BFT网络模型可分为:同步网络、半异步网络、异步网络。半异步网络存在一个未知全局稳定时间(Global Stabilization Time,GST),在GST之后,两个正确副本之间发送的消息将在固定的延迟内到达。半异步BFT协议既确保了不同网络情况下系统一致性又兼顾了效率。本发明实施例中考虑的是半异步网络环境下的拜占庭容错协议(partialsynchronous cBFT)的协议设计与优化。
区块链结构上,本发明实施例中采用链式数据结构,即每个区块都带有其父块的hash,指向其父块,且区块提出时需要携带其父块的投票证明(投票结果)。假设系统中共包含n个副本,其中f个发生拜占庭错误,且n=3f+1,投票证明包括f+1个副本的投票、2f+1个副本的投票和3f+1个副本的投票。
本发明实施例基于当前最广为人知的cBFT协议的Hotstuff进行优化,并提出了新的协议模块,在Hotstuff的基础上叠加了可变门限协议,并对原协议进行了修改,获得了一个新的支持可变门限的链式BFT协议。该新的BFT协议使用了数字签名(digitalsignature),也可基于门限或聚合签名来降低通信复杂度。
总体来说,本发明实施例将现有技术中使用的作为共识门限的2f+1个副本投票结果进行了改进,提出了当收集到的投票数为f+1或者3f+1情况下的共识协议。
基于上述总体构思,本发明实施例提供了一种区块链共识方法,应用于区块链中的副本,区块链中的副本也即区块链节点。如图1所示,该方法包括:
步骤101、接收领导人广播的区块消息。
其中,区块消息由领导人在接收到用户指令后按照预设消息结构进行打包,其中包含领导人响应于用户指令提出的新区块及该新区块的父块的第一投票结果,该新区块由领导人按照预设区块结构进行打包,其中包含区块的父块投票结果类型,投票结果类型包括f+1、2f+1和3f+1。
具体的,预设区块结构包括5个元素,分别为:区块类型、用户请求req、父块链接pl(即该区块的父块的hash)、区块高度height及区块辅助数据aux。其中,区块类型包括四种类型,分别为f+1、2f+1、3f+1和视图切换后新领导人提出的第一个区块。
其中,f+1区块类型、2f+1区块类型、3f+1区块类型分别为区块消息中携带f+1个副本的投票结果、2f+1个副本的投票结果、3f+1个副本的投票结果的区块。
预设消息结构包括用于存储消息类型的type域、用于存放区块的区块域、用于存放区块的父块投票结果的justify域,以及用于存放特定类型区块的辅助数据的aux域。其中,消息类型包括generic消息。当发生视图切换后,新视图的领导人发送的第一条消息为一种特殊的generic消息,可以称为view change消息,在其他情况下,区块消息的消息类型为均为普通的generic消息。justify域中存放的是区块的父块的投票结果,该投票结果为收到的哪些副本的投票。
特定类型区块为f+1区块类型的区块,aux域用于存储f+1区块类型的区块的辅助块的第一投票结果;当区块为除f+1区块类型外的其他类型区块时,将aux域置为空。
需要说明的是,区块的辅助块为按照区块以父块链接形式形成的链上的先后顺序,早于区块上链的前一个获得至少2f+1个(可以为2f+1或3f+1个)副本投票的区块。以f+1协议中区块为例,A、B、C、D、E由先至后以父块链接的形式形成区块链,分别获得了2f+1个副本投票、f+1个副本投票、2f+1个副本投票、f+1个副本投票、f+1个副本投票,E为副本本次收到的新区块,则E区块的辅助块为C区块(C区块的2f+1个投票结果记录在D区块的区块消息中)。
步骤102、根据当前保存的本地变量及预设投票规则确定新区块的有效性,当确定新区块有效时,向领导人发送新区块的第二投票,同时根据区块消息更新本地变量。
该第二投票将被写入下一个新区块中,举例说明,副本收到的新区块为B区块,B区块的父块为A区块,B区块为C区块的父块,那么,B区块中携带了A区块的投票结果;当确定B区块有效后,副本向领导人发送针对B区块的第二投票。当领导人在提出C区块时,将收集的所有副本的第二投票作为写入C区块的区块消息中的第一投票结果。
其中,本地变量包括区块最新投票块、最新投票证据和最新弱投票证据,区块最新投票块更新为区块消息中包含的新区块;当第一投票结果包含2f+1或3f+1个副本的投票时,将最新投票证据更新为第一投票结果;当第一投票结果包含f+1个副本的投票时,将最新弱投票证据更新为第一投票结果。
由于f+1个投票的投票副本数量较少,共识的效力较低,因此,不将f+1个副本的投票作为共识证据,将其更新在最新弱投票证据中;而2f+1个投票和3f+1个投票的投票副本数量较多,具有共识效力,因此将其作为共识证据,更新在最新投票证据中。
在另一种情况下,当不能确定新区块有效时,将不向领导人发送第二投票,并且,也不根据区块消息更新本地变量。
步骤103、根据预先指定的共识协议类型及第一投票结果确定共识规则。
该共识协议类型为预先指定的,当指定共识协议类型后,该共识协议类型不可变更。
共识协议类型包括三种,分别为f+1协议、3f+1协议和f+1/3f+1协议。不同的共识协议类型所支持的投票结果不同,当投票结果不同时,共识规则也不同。
具体的,当预先指定的共识协议类型为f+1协议时,f+1协议支持的投票结果包括f+1个副本的投票结果及2f+1个副本的投票结果,也就是说,当采用f+1协议时,领导人可以在收集到f+1个副本针对父块有效性的投票时,就提出新区块,也可以在收集到2f+1个副本针对父块有效性的投票时,提出新的区块。当第一投票结果为f+1个副本的投票结果时,由于f+1个投票结果数量较少不能作为共识证据,因此,如果新区块的区块消息中携带了f+1个副本的投票结果,则不进行共识,继续等待下一个区块,根据下一个区块消息中携带的投票结果确定能不能进行共识;而当第一投票结果为2f+1个副本的投票结果时,采用第一共识规则。
当预先指定的共识协议类型为3f+1协议时,3f+1协议支持的投票结果包括2f+1个副本的投票结果及3f+1个副本的投票结果,也即当领导人收集到针对父块有效性的2f+1或3f+1个副本投票结果时,可以提出新区块;当第一投票结果为2f+1个副本的投票结果时,采用第一共识规则;当第一投票结果为3f+1个副本的投票结果时,采用第二共识规则;
当预先指定的共识协议类型为f+1/3f+1协议时,f+1/3f+1协议支持的投票结果包括f+1个副本的投票结果、2f+1个副本的投票结果及3f+1个副本的投票结果;当第一投票结果为f+1个副本的投票结果时,不进行共识;当第一投票结果为2f+1个副本的投票结果时,采用第三共识规则;当第一投票结果为3f+1个副本的投票结果时,采用第二共识规则。
由上可见,与f+1协议和3f+1协议相比,f+1/3f+1协议可以支持全部三种投票门限,充分结合了f+1协议和3f+1协议的优势,可以适应不同网速的网络,并同时具备提高共识系统吞吐量、降低共识延迟和通信复杂度的优点。
需要说明的是,可以参照本地变量中更新的值确定当前新区块的区块消息中携带的第一投票结果,并根据第一投票结果及预先指定的共识协议确定共识规则。
步骤104、根据共识规则,追溯新区块的指定数量的父块的投票结果,如果指定数量的父块的投票结果满足共识规则,则确定指定数量的父块中最早提出的父块达成共识,执行区块提交协议,将最早提出的父块,及与最早提出的父块在同一条支链上且早于该最早提出的父块提出的区块加入区块链中。
下面将对不同的共识规则进行具体介绍。
①、第一共识规则
按照区块以父块链接形式形成的链上的先后顺序,追溯与新区块连续,且早于新区块提出的三个区块的投票结果;如果早于新区块提出的三个区块的投票结果均为2f+1个副本的投票结果,则确定早于新区块提出的三个区块中,最早提出的区块达成共识。
其中,父块链接形式即为,后一个区块指向前一个区块,前一个区块作为后一个区块的父块,以此链接形成一条区块链。
参见图2所示,为f+1协议采用第一共识规则进行共识的示意图。如图2所示,该条区块链上存在b0、b1、b2、b3和b4这5个区块。以QCⅠ、QCⅡ、QCⅢ分别表示f+1个副本投票、2f+1个副本投票、3f+1个副本投票,QCⅠ(b0)则表示b1区块消息中携带了b0区块的第一投票结果,b0区块的第一投票结果为f+1个副本的投票结果。
当新区块为b1时,其携带的第一投票结果为f+1个副本的投票结果,因此在b1区块时不进行共识。
当新区块为b4时,追溯与b4区块连续,且早于b4区块提出的三个区块的投票结果,也即追溯b1、b2、b3三个区块的投票结果。如图2所示,由于b1、b2、b3三个区块的投票结果均为2f+1个副本的投票结果,则确定b1、b2、b3三个区块中最早上链的b1区块达成共识,执行区块提交(Commit)协议,将最早提出的父块b1,及早于b1上链的区块b0加入区块链中。
②、第二共识规则
当第一投票结果为3f+1个副本的投票结果,则确定新区块的父块达成共识。
参见图3所示,为3f+1协议采用第一共识规则和第二共识规则进行共识的示意图。如图3所示,当新区块为b1时,其区块消息中携带了b0区块的第一投票结果为3f+1个副本的投票结果,则达成共识,Commit b0区块,将b0区块加入区块链中。
当新区块为b4区块时,按照第一共识规则进行共识,向前追溯b1、b2、b3三个区块的投票结果,均为2f+1个副本的投票结果,因此达成共识,Commit b1区块(b0区块已加入区块链中)。
参见图4所示,为f+1/3f+1协议采用第二共识规则进行共识的示意图。如图4所示,新区块为b3区块,其父块b2区块的投票结果为3f+1个副本的投票,则达成共识,Commit b0、b1、b2区块。
③、第三共识规则
按照区块以父块链接形式形成的链上的先后顺序,追溯与新区块连续,且早于新区块提出的两个区块的投票结果;如果早于新区块提出的两个区块的投票结果均为2f+1个副本的投票结果,则确定早于新区块提出的两个区块中,最早提出的区块达成共识。
如图5所示,为f+1/3f+1协议采用第三共识规则进行共识的示意图。参见图5,新区块为b3区块,早于b3区块提出的两个区块b1、b2区块的投票结果均为2f+1个副本的投票结果,则确定达成共识,Commit b0、b1区块。
在每一视图中,领导人不断的提出新区块并进行共识,当满足预设的视图切换条件时,发生视图切换。示例性的,视图切换条件可以包括以下几种:
①、如果副本从接收到领导人发送的最后一条消息开始计时,达到预设的超时时间后仍未收到领导人的任何消息,则认为领导人异常,满足视图切换条件;
②、副本在当前视图最后一次达成共识的时间开始计时,当达到预设时间后仍未有新共识完成,则认为满足视图切换条件;
③、预设设置每一视图中领导人提出的最大区块数量k,在当前视图的领导人提出了k个区块后,认为满足视图切换条件;
④、预先设置视图切换时间间隔t,当从进入每一视图开始计时,当到达视图切换时间间隔t时,认为满足视图切换条件;
当满足视图切换条件后,向按照领导人选举协议指定的新领导人(也即下一视图的领导人)发送new-view消息。
当预先指定的共识协议类型为3f+1协议或f+1/3f+1协议时,当新领导人接收到2f+1个副本的new-view消息后,达成视图切换共识,接收新领导人广播的区块消息,其中,新领导人广播的第一个区块消息中携带的区块类型为视图切换后新领导人提出的第一个区块。
如图6所示,为一种进行视图切换的示意图,在视图1中,领导人为p1副本,p1副本在区块提出阶段提出新区块后,向全网广播。当p2副本、p3副本和p4副本接收到新区块的区块消息后,进入区块投票阶段,按照投票规则(voting rule)对新区块的有效性进行投票,同时按照状态更新协议更新本地变量,也同时按照共识协议进行共识,共识达成后按照区块提交协议提交区块;当视图未变更时,领导人p1副本不断提出区块并按照上述流程进行区块共识等操作;当满足预设的视图切换条件后,其他副本向视图2的领导人p2副本发送new-view消息,以进行视图切换。
通过视图切换,可以及时变更领导人,避免当旧领导人出现问题,出现长时间等待无法处理用户指令提出新的区块的情况,保证了共识的稳定进行。
总体来说,本发明实施例具有如下特点与优势:
(1)数据类型方面
针对区块得到的不同投票数,提供了三种证明门限的规则(f+1,2f+1,3f+1),并相应地提出了四种不同的区块类型。同时,创新地设计了相应的区块、消息的数据结构。
(2)协议细节方面
1.在区块提出阶段,设计了领导人针对收集到的消息提出不同类型区块的协议。
2.在区块投票阶段,对不同区块分别设计了验证不同区块有效性的处理协议。
3.设计了新的副本内部状态变更协议。
4.针对得到不同投票的区块,给出了不同的共识规则并确定了当达成不同共识规则时,提交哪几个区块(也即新的区块commit协议)。
5.在稳定领导人状态下保障共识协议快速运行,并显著降低协议通信复杂度,减少共识达成时间。在领导人不稳定,且存在错误节点的情况下,能够及时根据视图切换条件进行视图切换,由新领导人继续提出区块,保证共识的继续进行,能够令共识系统保持与现有技术相同的稳定性。
(3)协议整体方面
本发明实施例在基于Hotstuff技术的基础上设计了可变门限协议(即不同共识协议类型可支持至少两种的投票门限),并设计了全新的共识机制,获得了一个支持可变门限的链式BFT协议。
(4)模块化方面
针对不同可变门限的共识协议类型设计为一个模块,针对现有任意BFT协议的链式版本,插拔本发明实施例的协议模块后,仅需要对原协议进行简单的修改,就可以获得新的更高效、网络适应性更高的协议。
本发明实施例中,当接收到用户指令时,领导人按照预设区块结构及预设消息结构打包新区块和区块消息,向全网广播;当副本接收到区块消息后,根据当前保存本地变量及预设投票规则确定新区块的有效性,当确定新区块有效时,向领导人发送第二投票,以供领导人在打包下一个新区块的区块消息时,将收集的所有第二投票作为第一投票结果写入下一个新区块的区块消息中;并且,副本从区块消息中可以得到新区块的父块的第一投票结果,该第一投票结果可以为f+1个副本的投票结果、2f+1个副本的投票结果或3f+1个副本的投票结果。之后,按照预先指定的共识协议类型及第一投票结果确定共识规则;按照不同的共识规则,追溯不同指定数量的新区块的父块的投票结果,当指定数量的父块的投票结果满足共识规则时,确定指定数量的父块中最早提出的父块达成共识,可以执行区块提交协议,将所述最早提出的父块,及与所述最早提出的父块在同一条支链上且早于该最早提出的父块提出的区块加入区块链中。由上可见,与现有cBFT共识技术中仅支持2f+1个投票结果相比,本发明实施例中扩展了支持的投票结果的类型,领导人在接收到针对新区块的父块的f+1、2f+1和3f+1个副本投票结果时,均可以提出新区块。在网络环境较差、新消息较多导致区块打包频率过高,或者系统计时器设置不当导致领导人很难在计时时间内收集到2f+1的投票的情况下,父块只要是收到f+1个副本投票领导人就能够提出新区块,确保了共识的不断进行,提升了共识系统的吞吐量,并同时降低协议对计时器的敏感度;在网络条件较好时,可以收集到针对父块的3f+1个副本投票结果后提出新的区块,由于区块链中总共包括3f+1个副本,当接收到3f+1个副本投票时,表明父块已得到全部副本的有效性认可,已达成共识,无需再进行其他轮次的共识认证,缩短了共识时间,大大降低了共识达成的通信复杂度和时间延迟,同时也提高了共识系统的吞吐量。
本发明实施例中还提供了一种区块链副本装置,如下面的实施例所述。由于该装置解决问题的原理与区块链共识方法相似,因此该装置的实施可以参见区块链共识方法的实施,重复之处不再赘述。
如图7所示,该区块链副本装置700包括:
通信模块701,用于接收领导人广播的区块消息,区块消息由领导人在接收到用户指令后按照预设消息结构进行打包,其中包含领导人响应于用户指令提出的新区块及该新区块的父块的第一投票结果,该新区块由领导人按照预设区块结构进行打包,其中包含新区块的父块投票结果类型,投票结果类型包括f+1、2f+1和3f+1;
处理模块702,用于根据当前保存的本地变量及预设投票规则确定新区块的有效性,当确定新区块有效时,向领导人发送新区块的第二投票,同时根据区块消息更新本地变量,本地变量包括区块最新投票块、最新投票证据和最新弱投票证据,区块最新投票块更新为区块消息中包含的新区块;当第一投票结果包含2f+1或3f+1个副本的投票时,将最新投票证据更新为第一投票结果;当第一投票结果包含f+1个副本的投票时,将最新弱投票证据更新为第一投票结果;领导人收集各个副本发送的新区块的第二投票,将收集得到的所有第二投票作为以当前新区块为父块的下一个新区块的区块消息中携带的第一投票结果;
确定模块703,用于根据预先指定的共识协议类型及第一投票结果确定共识规则;
共识模块704,用于根据共识规则,追溯新区块的指定数量的父块的投票结果,如果指定数量的父块的投票结果满足共识规则,则确定指定数量的父块中最早提出的父块达成共识,执行区块提交协议,将最早提出的父块,及与最早提出的父块在同一条支链上且早于该最早提出的父块提出的区块加入区块链中。
在本发明实施例的一种实现方式中,预设区块结构包括区块类型、用户请求、父块链接、区块高度及区块辅助数据,区块类型包括f+1区块类型、2f+1区块类型、3f+1区块类型及视图切换后新领导人提出的第一个区块,区块辅助数据用于存储区块的辅助块;预设消息结构包括用于存储消息类型的type域、用于存放区块的区块域、用于存放区块的父块投票结果的justify域,以及用于存放特定类型区块的辅助数据的aux域,消息类型包括generic消息,特定类型区块为f+1区块类型的区块,aux域用于存储特定类型区块的辅助块的第一投票结果;当区块为除f+1区块类型外的其他类型区块时,将aux域置为空。
在本发明实施例的一种实现方式中,确定模块,用于:
当预先指定的共识协议类型为f+1协议时,f+1协议支持的投票结果包括f+1个副本的投票结果及2f+1个副本的投票结果,当第一投票结果为f+1个副本的投票结果时,不进行共识;当第一投票结果为2f+1个副本的投票结果时,共识规则为第一共识规则;
当预先指定的共识协议类型为3f+1协议时,3f+1协议支持的投票结果包括2f+1个副本的投票结果及3f+1个副本的投票结果;当第一投票结果为2f+1个副本的投票结果时,共识规则为第一共识规则;当第一投票结果为3f+1个副本的投票结果时,共识规则为第二共识规则;
当预先指定的共识协议类型为f+1/3f+1协议时,f+1/3f+1协议支持的投票结果包括f+1个副本的投票结果、2f+1个副本的投票结果及3f+1个副本的投票结果;当第一投票结果为f+1个副本的投票结果时,不进行共识;当第一投票结果为2f+1个副本的投票结果时,共识规则为第三共识规则;当第一投票结果为3f+1个副本的投票结果时,共识规则为第二共识规则。
在本发明实施例的一种实现方式中,当共识规则为第一共识规则时,共识模块,用于:
按照区块以父块链接形式形成的链上的先后顺序,追溯与新区块连续,且早于新区块提出的三个区块的投票结果;
如果早于新区块提出的三个区块的投票结果均为2f+1个副本的投票结果,则确定早于新区块提出的三个区块中,最早提出的区块达成共识。
在本发明实施例的一种实现方式中,当共识规则为第二共识规则时,共识模块,用于:
当第一投票结果为3f+1个副本的投票结果,则确定新区块的父块达成共识。
在本发明实施例的一种实现方式中,当共识规则为第三共识规则时,共识模块,用于:
按照区块以父块链接形式形成的链上的先后顺序,追溯与新区块连续,且早于新区块提出的两个区块的投票结果;
如果早于新区块提出的两个区块的投票结果均为2f+1个副本的投票结果,则确定早于新区块提出的两个区块中,最早提出的区块达成共识。
在本发明实施例的一种实现方式中,当预先指定的共识协议类型为3f+1协议或f+1/3f+1协议时,区块链副本装置还包括:
视图跳转模块,用于当满足预设的视图切换条件时,跳转至下一个视图,并向按照领导人选举协议指定的新领导人发送new-view消息;
通信模块,还用于当新领导人接收到2f+1个副本的new-view消息后,达成视图切换共识,接收新领导人广播的区块消息,其中,新领导人广播的第一个区块消息中携带的区块类型为视图切换后新领导人提出的第一个区块。
本发明实施例中,当接收到用户指令时,领导人按照预设区块结构及预设消息结构打包新区块和区块消息,向全网广播;当副本接收到区块消息后,根据当前保存本地变量及预设投票规则确定新区块的有效性,当确定新区块有效时,向领导人发送第二投票,以供领导人在打包下一个新区块的区块消息时,将收集的所有第二投票作为第一投票结果写入下一个新区块的区块消息中;并且,副本从区块消息中可以得到新区块的父块的第一投票结果,该第一投票结果可以为f+1个副本的投票结果、2f+1个副本的投票结果或3f+1个副本的投票结果。之后,按照预先指定的共识协议类型及第一投票结果确定共识规则;按照不同的共识规则,追溯不同指定数量的新区块的父块的投票结果,当指定数量的父块的投票结果满足共识规则时,确定指定数量的父块中最早提出的父块达成共识,可以执行区块提交协议,将所述最早提出的父块,及与所述最早提出的父块在同一条支链上且早于该最早提出的父块提出的区块加入区块链中。由上可见,与现有cBFT共识技术中仅支持2f+1个投票结果相比,本发明实施例中扩展了支持的投票结果的类型,领导人在接收到针对新区块的父块的f+1、2f+1和3f+1个副本投票结果时,均可以提出新区块。在网络环境较差、新消息较多导致区块打包频率过高,或者系统计时器设置不当导致领导人很难在计时时间内收集到2f+1的投票的情况下,父块只要是收到f+1个副本投票领导人就能够提出新区块,确保了共识的不断进行,提升了共识系统的吞吐量,并同时降低协议对计时器的敏感度;在网络条件较好时,可以收集到针对父块的3f+1个副本投票结果后提出新的区块,由于区块链中总共包括3f+1个副本,当接收到3f+1个副本投票时,表明父块已得到全部副本的有效性认可,已达成共识,无需再进行其他轮次的共识认证,缩短了共识时间,大大降低了共识达成的通信复杂度和时间延迟,同时也提高了共识系统的吞吐量。
本发明实施例还提供一种计算机设备,图8为本发明实施例中计算机设备的示意图,该计算机设备能够实现上述实施例中的区块链共识方法中全部步骤,该计算机设备具体包括如下内容:
处理器(processor)801、存储器(memory)802、通信接口(CommunicationsInterface)803和通信总线804;
其中,所述处理器801、存储器802、通信接口803通过所述通信总线804完成相互间的通信;所述通信接口803用于实现相关设备之间的信息传输;
所述处理器801用于调用所述存储器802中的计算机程序,所述处理器执行所述计算机程序时实现上述实施例中的区块链共识方法。
本发明实施例还提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述区块链共识方法。
本发明实施例还提供一种计算机程序产品,所述计算机程序产品包括计算机程序,所述计算机程序被处理器执行时实现上述区块链共识方法。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
以上所述的具体实施例,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施例而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (11)
1.一种区块链共识方法,其特征在于,应用于区块链中的副本,所述方法包括:
接收领导人广播的区块消息,所述区块消息由领导人在接收到用户指令后按照预设消息结构进行打包,其中包含领导人响应于用户指令提出的新区块及该新区块的父块的第一投票结果,该新区块由领导人按照预设区块结构进行打包,其中包含所述新区块的父块投票结果类型,所述投票结果类型包括f+1、2f+1和3f+1;
根据当前保存的本地变量及预设投票规则确定所述新区块的有效性,当确定所述新区块有效时,向所述领导人发送新区块的第二投票,同时根据所述区块消息更新本地变量,所述本地变量包括区块最新投票块、最新投票证据和最新弱投票证据,所述区块最新投票块更新为区块消息中包含的新区块;当所述第一投票结果包含2f+1或3f+1个副本的投票时,将最新投票证据更新为第一投票结果;当所述第一投票结果包含f+1个副本的投票时,将最新弱投票证据更新为第一投票结果;所述领导人收集各个副本发送的新区块的第二投票,将收集得到的所有第二投票作为以当前新区块为父块的下一个新区块的区块消息中携带的第一投票结果;
根据预先指定的共识协议类型及第一投票结果确定共识规则;
根据所述共识规则,追溯新区块的指定数量的父块的投票结果,如果指定数量的父块的投票结果满足共识规则,则确定指定数量的父块中最早提出的父块达成共识,执行区块提交协议,将所述最早提出的父块,及与所述最早提出的父块在同一条支链上且早于该最早提出的父块提出的区块加入区块链中。
2.根据权利要求1所述的方法,其特征在于,预设区块结构包括区块类型、用户请求、父块链接、区块高度及区块辅助数据,所述区块类型包括f+1区块类型、2f+1区块类型、3f+1区块类型及视图切换后新领导人提出的第一个区块,所述区块辅助数据用于存储区块的辅助块;预设消息结构包括用于存储消息类型的type域、用于存放区块的区块域、用于存放区块的父块投票结果的justify域,以及用于存放特定类型区块的辅助数据的aux域,所述消息类型包括generic消息,所述特定类型区块为f+1区块类型的区块,所述aux域用于存储特定类型区块的辅助块的第一投票结果;当区块为除f+1区块类型外的其他类型区块时,将aux域置为空。
3.根据权利要求1所述的方法,其特征在于,根据预先指定的共识协议类型及第一投票结果确定共识规则,包括:
当预先指定的共识协议类型为f+1协议时,f+1协议支持的投票结果包括f+1个副本的投票结果及2f+1个副本的投票结果,当第一投票结果为f+1个副本的投票结果时,不进行共识;当第一投票结果为2f+1个副本的投票结果时,所述共识规则为第一共识规则;
当预先指定的共识协议类型为3f+1协议时,3f+1协议支持的投票结果包括2f+1个副本的投票结果及3f+1个副本的投票结果;当第一投票结果为2f+1个副本的投票结果时,所述共识规则为第一共识规则;当第一投票结果为3f+1个副本的投票结果时,所述共识规则为第二共识规则;
当预先指定的共识协议类型为f+1/3f+1协议时,f+1/3f+1协议支持的投票结果包括f+1个副本的投票结果、2f+1个副本的投票结果及3f+1个副本的投票结果;当第一投票结果为f+1个副本的投票结果时,不进行共识;当第一投票结果为2f+1个副本的投票结果时,所述共识规则为第三共识规则;当第一投票结果为3f+1个副本的投票结果时,所述共识规则为第二共识规则。
4.根据权利要求3所述的方法,其特征在于,当所述共识规则为第一共识规则时,根据所述共识规则,追溯新区块的指定数量的父块的投票结果,如果指定数量的父块的投票结果满足共识规则,则确定指定数量的父块中最早提出的父块达成共识,包括:
按照区块以父块链接形式形成的链上的先后顺序,追溯与新区块连续,且早于新区块提出的三个区块的投票结果;
如果早于新区块提出的三个区块的投票结果均为2f+1个副本的投票结果,则确定早于新区块提出的三个区块中,最早提出的区块达成共识。
5.根据权利要求3所述的方法,其特征在于,当所述共识规则为第二共识规则时,根据所述共识规则,追溯新区块的指定数量的父块的投票结果,如果指定数量的父块的投票结果满足共识规则,则确定指定数量的父块中最早提出的父块达成共识,包括:
当所述第一投票结果为3f+1个副本的投票结果,则确定所述新区块的父块达成共识。
6.根据权利要求3所述的方法,其特征在于,当所述共识规则为第三共识规则时,根据所述共识规则,追溯新区块的指定数量的父块的投票结果,如果指定数量的父块的投票结果满足共识规则,则确定指定数量的父块中最早提出的父块达成共识,包括:
按照区块以父块链接形式形成的链上的先后顺序,追溯与新区块连续,且早于新区块提出的两个区块的投票结果;
如果早于新区块提出的两个区块的投票结果均为2f+1个副本的投票结果,则确定早于新区块提出的两个区块中,最早提出的区块达成共识。
7.根据权利要求2所述的方法,其特征在于,当预先指定的共识协议类型为3f+1协议或f+1/3f+1协议时,所述方法还包括:
当满足预设的视图切换条件时,跳转至下一个视图,并向按照领导人选举协议指定的新领导人发送new-view消息;
当所述新领导人接收到2f+1个副本的new-view消息后,达成视图切换共识,接收新领导人广播的区块消息,其中,新领导人广播的第一个区块消息中携带的区块类型为视图切换后新领导人提出的第一个区块。
8.一种区块链副本装置,其特征在于,所述区块链副本装置包括:
通信模块,用于接收领导人广播的区块消息,所述区块消息由领导人在接收到用户指令后按照预设消息结构进行打包,其中包含领导人响应于用户指令提出的新区块及该新区块的父块的第一投票结果,该新区块由领导人按照预设区块结构进行打包,其中包含所述新区块的父块投票结果类型,所述投票结果类型包括f+1、2f+1和3f+1;
处理模块,用于根据当前保存的本地变量及预设投票规则确定所述新区块的有效性,当确定所述新区块有效时,向所述领导人发送新区块的第二投票,同时根据所述区块消息更新本地变量,所述本地变量包括区块最新投票块、最新投票证据和最新弱投票证据,所述区块最新投票块更新为区块消息中包含的新区块;当所述第一投票结果包含2f+1或3f+1个副本的投票时,将最新投票证据更新为第一投票结果;当所述第一投票结果包含f+1个副本的投票时,将最新弱投票证据更新为第一投票结果;所述领导人收集各个副本发送的新区块的第二投票,将收集得到的所有第二投票作为以当前新区块为父块的下一个新区块的区块消息中携带的第一投票结果;
确定模块,用于根据预先指定的共识协议类型及第一投票结果确定共识规则;
共识模块,用于根据所述共识规则,追溯新区块的指定数量的父块的投票结果,如果指定数量的父块的投票结果满足共识规则,则确定指定数量的父块中最早提出的父块达成共识,执行区块提交协议,将所述最早提出的父块,及与所述最早提出的父块在同一条支链上且早于该最早提出的父块提出的区块加入区块链中。
9.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至7任一所述方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现权利要求1至7任一所述方法。
11.一种计算机程序产品,其特征在于,所述计算机程序产品包括计算机程序,所述计算机程序被处理器执行时实现权利要求1至7任一所述方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210366175.9A CN114785799B (zh) | 2022-04-08 | 2022-04-08 | 区块链共识方法、区块链副本装置、计算机设备及存储介质 |
PCT/CN2023/086807 WO2023193783A1 (zh) | 2022-04-08 | 2023-04-07 | 区块链共识方法及区块链副本装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210366175.9A CN114785799B (zh) | 2022-04-08 | 2022-04-08 | 区块链共识方法、区块链副本装置、计算机设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114785799A true CN114785799A (zh) | 2022-07-22 |
CN114785799B CN114785799B (zh) | 2023-06-02 |
Family
ID=82427923
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210366175.9A Active CN114785799B (zh) | 2022-04-08 | 2022-04-08 | 区块链共识方法、区块链副本装置、计算机设备及存储介质 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN114785799B (zh) |
WO (1) | WO2023193783A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2023193783A1 (zh) * | 2022-04-08 | 2023-10-12 | 清华大学 | 区块链共识方法及区块链副本装置 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106445711A (zh) * | 2016-08-28 | 2017-02-22 | 杭州云象网络技术有限公司 | 一种应用于区块链的拜占庭容错共识方法 |
CN111726370A (zh) * | 2020-08-21 | 2020-09-29 | 支付宝(杭州)信息技术有限公司 | 一种自动切换区块链共识协议的方法、系统和装置 |
US20210334177A1 (en) * | 2020-04-22 | 2021-10-28 | Vmware, Inc. | Flexible byzantine fault tolerance |
WO2021244208A1 (zh) * | 2020-06-01 | 2021-12-09 | 腾讯科技(深圳)有限公司 | 区块链的提案消息处理方法、装置、设备以及存储介质 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111522800B (zh) * | 2020-07-03 | 2020-10-30 | 支付宝(杭州)信息技术有限公司 | 蜜獾拜占庭容错共识机制的区块链共识方法、节点及系统 |
CN114785799B (zh) * | 2022-04-08 | 2023-06-02 | 清华大学 | 区块链共识方法、区块链副本装置、计算机设备及存储介质 |
-
2022
- 2022-04-08 CN CN202210366175.9A patent/CN114785799B/zh active Active
-
2023
- 2023-04-07 WO PCT/CN2023/086807 patent/WO2023193783A1/zh unknown
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106445711A (zh) * | 2016-08-28 | 2017-02-22 | 杭州云象网络技术有限公司 | 一种应用于区块链的拜占庭容错共识方法 |
US20210334177A1 (en) * | 2020-04-22 | 2021-10-28 | Vmware, Inc. | Flexible byzantine fault tolerance |
WO2021244208A1 (zh) * | 2020-06-01 | 2021-12-09 | 腾讯科技(深圳)有限公司 | 区块链的提案消息处理方法、装置、设备以及存储介质 |
CN111726370A (zh) * | 2020-08-21 | 2020-09-29 | 支付宝(杭州)信息技术有限公司 | 一种自动切换区块链共识协议的方法、系统和装置 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2023193783A1 (zh) * | 2022-04-08 | 2023-10-12 | 清华大学 | 区块链共识方法及区块链副本装置 |
Also Published As
Publication number | Publication date |
---|---|
WO2023193783A1 (zh) | 2023-10-12 |
CN114785799B (zh) | 2023-06-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111522800B (zh) | 蜜獾拜占庭容错共识机制的区块链共识方法、节点及系统 | |
CA1223372A (en) | Fault-tolerant atomic broadcast methods | |
Dolev et al. | Dynamic fault-tolerant clock synchronization | |
US20210256007A1 (en) | Blockchain system and blockchain transaction data processing method based on ethereum | |
Schmid et al. | Impossibility results and lower bounds for consensus under link failures | |
CN110298754B (zh) | 一种应用于区块链的共识方法 | |
CN111147261B (zh) | 在区块链中使用HotStuff共识算法的方法及系统 | |
CN111556133B (zh) | 区块链共识方法、系统及计算机存储介质、电子设备 | |
CN114584312B (zh) | 一种共识方法、区块链系统和共识节点 | |
CN113609515B (zh) | 一种共识方法、区块链系统 | |
CN114785799A (zh) | 区块链共识方法及区块链副本装置 | |
Stolz et al. | Byzantine agreement with median validity | |
CN112232619A (zh) | 联盟链的区块出块和定序方法、节点及区块链网络系统 | |
Abraham et al. | Optimal good-case latency for rotating leader synchronous bft | |
CN116723200B (zh) | 集群变更方法、装置、电子设备及计算机可读存储介质 | |
CN112069259A (zh) | 一种基于区块链的多云环境数据存储系统及方法 | |
WO2023054888A1 (ko) | 블록체인 네트워크를 위한 효율적인 듀얼모드 합의 프로토콜 | |
CN115174090A (zh) | 区块链共识方法及装置 | |
Adly et al. | A hierarchical asynchronous replication protocol for large scale systems | |
Zhai et al. | Efficient-hotstuff: A bft blockchain consensus with higher efficiency and stronger robustness | |
CN111917826A (zh) | 一种基于区块链知识产权保护的pbft共识算法 | |
CN116846916B (zh) | 数据同步方法、装置、电子设备及计算机可读存储介质 | |
Blin et al. | A superstabilizing log (n)-approximation algorithm for dynamic steiner trees | |
Chen et al. | PGS-BFT: A Pipeline-Based Graph Structure Byzantine Fault Tolerance Consensus Algorithm | |
Kamei et al. | An asynchronous self-stabilizing approximation for the minimum CDS with safe convergence in UDGs |
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 |