Quit-Resistant Reliable Broadcast and Efficient Terminating Gather
Abstract
Termination is a central property in distributed computing. A party terminates a protocol once it stops accepting and sending messages. We discover that byzantine reliable broadcast is sometimes used in a manner which leads to non-terminating protocols. We consider an asynchronous network of parties up to of which are byzantine, and show that if each party is to broadcast its value and terminate upon obtaining values, then composing parallel reliable broadcast instances leads to non-termination. The issue is that a party must quit broadcast instances early in order to terminate, a behaviour not supported by ordinary reliable broadcast. So, we modify Brachaβs protocol into a quit-resistant reliable broadcast (QBRB) protocol which lets the parties quit early. This protocol retains its termination guarantees as long as no party quits before some party terminates.
Then, we turn our attention to Gather, an all-to-all broadcast primitive which guarantees that the parties obtain common values. Existing error-free deterministic Gather protocols either run forever, or fail to terminate since the parties quit reliable broadcast instances. We design an error-free, deterministic, terminating (and binding) Gather protocol for -bit inputs with the communication complexity . This matches the state-of-the-art for non-terminating Gather.
Finally, inspired by our QBRB protocol, we design a reliable broadcast protocol which retains its termination guarantees no matter when any party quits. To achieve this, we give each party the option to output if more than parties quit before some party terminates. The protocol requires , which is optimal, and it lets parties quit after they have suffered transient crash failures so that they can help the remaining parties terminate.
Keywords and phrases:
Asynchronous networks, byzantine fault tolerance, protocol termination, reliable broadcast, all-to-all broadcast, gatherCopyright and License:
![[Uncaptioned image]](x1.png)
2012 ACM Subject Classification:
Theory of computation Distributed algorithmsEditors:
Silvia Bonomi, Letterio Galletta, Etienne Rivière, and Valerio SchiavoniSeries and Publisher:

1 Introduction
Byzantine reliable broadcast (BRB) is a fundamental asynchronous communication primitive. Traditionally, a BRB protocol is run by parties , where up to of the parties may deviate arbitrarily from the protocol while the rest remain honest. Given a fixed sender party who eventually acquires an input , a BRB protocol ensures the following:
-
Validity: If is honest, and an honest outputs , then has acquired .
-
Consistency: If honest parties and output and , then .
-
Local Termination: If is honest, then some honest party terminates.
-
Global Termination: If some honest party terminates, then all honest parties terminate.
Notice that we split the output correctness properties from the termination properties. Since we focus on termination in this work, the breakdown above will be useful.
When we say that a protocol terminates, what do we mean? In their seminal work on asynchronous byzantine agreement [12], Canetti and Rabin say that a protocol terminates if all the honest parties βcomplete the protocol (i.e.Β terminate locally).β The way we understand this is that they do not let parties keep sending messages after they locally terminate, and thus define termination as we will. In [4], Abraham et al.Β define termination as Canetti and Rabin do, but they also separately define βtermination of outputβ to be the property that every honest party eventually outputs.
Following the definitions in [9], we distinguish between liveness and termination. A live protocol guarantees that if the honest parties all eventually acquire inputs and run forever, then they all output. Liveness is the property called βtermination of outputβ in [4]. Termination is stronger. A terminating protocol guarantees that if the honest parties all eventually acquire inputs and run until they terminate, then they all terminate. A party can terminate once it has output, and after terminating it can no longer accept or send messages.
Termination as opposed to liveness is useful in that it allows the parties to go offline and forget about a protocol once they terminate. When the parties run an asynchronous protocol that is live but not terminating, they must forever remain alert for further messages, even if the network happens to be fast and they decide on their outputs almost instantly. In contrast, if the parties run a terminating asynchronous protocol, then they can go offline once they terminate. Even in networks where the parties are always active, termination lets a party free the resources it has allocated for a protocol, while liveness does not.
It is common in distributed computing to compose (or more) instances of BRB to implement all-to-all broadcast. In all-to-all broadcast, each party has an input which it broadcasts to the other parties, and each party outputs a set of value-sender pairs with at most one value per sender. Typically, one requires at least the following:
-
For some constant , the honest output sets contain at least value-sender pairs.
-
If there exists some for any honest and , then .
-
If there exist some and for any honest and , then .
One simple all-to-all broadcast protocol which we name achieves precisely the guarantees above, with maximally set to . It consists of parallel BRB instances, one for each party to broadcast its input. The idea is that since there exist honest parties, every honest party eventually terminates instances of BRB and thus terminates . In the wild, and its variants are commonly used in agreement protocols. For instance, Canetti and Rabin [12] use (with ) for secret sharing/reconstruction in their seminal work on byzantine agreement [12], and Abraham, Amit and Dolev use a strengthened variant of as a core primitive in their seminal work on approximate agreement [2].
The problem the literature sometimes overlooks is that achieves liveness, but not termination. Observe that if a party terminates upon terminating instances of BRB and obtaining , then it stops running the instances of BRB it has not yet terminated. However, unless the BRB protocol lets honest parties quit before they terminate, honest parties quitting BRB instances early leads to losing its liveness. We show this in Section 3 with an attack when uses Brachaβs reliable broadcast protocol [10].
One consequence of this issue is that the byzantine agreement protocol in [12] by Canetti and Rabin, whose termination mechanism is an variant which a party terminates after terminating broadcasts with identical outputs, does not achieve termination. The protocol does achieve liveness, but it would also do so if one were to remove its termination mechanism entirely. The approximate agreement protocol against corruptions in [2] by Abraham et al.Β is similarly impacted. Contrary to how their protocol is written, a party can never halt. More recent approximate agreement protocols such as [15, 20, 21, 24, 27] based on the witness technique of [2] are impacted as well.
The question we thus ask is if we can redefine reliable broadcast to ensure the termination of protocols like where a party has to quit reliable broadcast instances to terminate. We answer this affirmatively in Section 4 with quit-resistant reliable broadcast (QBRB), our new BRB variant where the parties can quit (and inform the other parties of their quitting) before they terminate, with precisely the guarantees to prevent attacks of the sort against . A QBRB protocol retains validity and consistency no matter when any honest party quits, and retains global termination as long as no honest party quits before some honest party terminates. It turns out that one can easily modify into a QBRB protocol resilient against corruptions. This is fortunate, as the aforementioned protocols which do not terminate due to BRB not supporting quits become terminating if one replaces the standard BRB invocations in them with QBRB invocations.
Note that a party informing the others when it quits (or wishes to quit) a protocol and this playing a role in termination is an idea that has appeared in the literature before. InΒ [5], the authors design a protocol for byzantine agreement in partial synchrony where upon running a view (i.e.Β a tagged protocol instance) for too long, a party sends everyone an abort message, and these abort messages play a role in the parties switching to the next view.
We would also be remiss not to mention some of the techniques the literature uses to terminate live agreement protocols. One can upgrade a live byzantine agreement protocol into a terminating one with reliable consensus [13], a constant-round termination procedure based on Brachaβs protocol with messages carrying protocol outputs. More generally, one can upgrade a live agreement protocol where the parties obtain at most distinct outputs (e.g.Β for approximate agreement in a graph [24]) into a terminating one with the constant-round termination procedure in [22] that builds on reliable consensus, if .
However, for approximate agreement in , we do not know of any prior termination procedure. So, we offer two approaches to terminate approximate agreement in . One of them is QBRB, our general solution which by itself suffices to upgrade the protocols in [21, 27] into terminating ones. Our second solution that allows the efficient bundling of many approximate agreement instances (as in [18]) is a terminating Gather protocol. Gather is an variant which requires . It is especially useful for approximate agreement111For approximate agreement, the typical requirement is that for all honest and , which is implied by the stronger . [2, 15, 19, 20, 21, 24, 27], though its variants (with additional properties such as binding and verifiability, which we will discuss later) have been used for distributed key generation [4], common coin tossing [14, 18] and asynchronous core set agreement [3, 16].
In Section 5, we design , an error-free deterministic Gather protocol optimally secure against corruptions, usable as a termination procedure for any approximate agreement protocol based on Gather iterations since it guarantees that if some honest party terminates, then all of them do. As far as we are aware, no other error-free222We call a protocol error-free if it achieves the properties required of it in every possible execution. deterministic333Gather is weakening of asynchronous core set agreement (ACS) [8], which requires for any honest and . Though there exist terminating ACS protocols [8], ACS implies byzantine agreement, and error-free deterministic asynchronous byzantine agreement is impossible against one crash fault [17]. Gather protocol in the literature achieves termination. The communication complexity of for -bit inputs is bits. This is the complexity of the most efficient live Gather protocol () we are aware of [15], when it is instantiated with a state-of-the-art standard BRB protocol with the complexity [6]. Our protocol additionaly lets one extract a core set of parties whose values are obtained by every honest party from the view of any honest party who outputs; hence, it is binding. Binding Gather was developed in [4], and there are cases involving secret shares which require the binding property [18].
In section 6, we return to QBRB, and design a QBRB variant which retains local and global termination even if any honest party quits whenever it wishes. The standard output guarantees of reliable broadcast cannot be achieved with such lax participation, and for this reason we introduce the extra outputs and . If at most honest parties quit before some honest party terminates, then is just a QBRB protocol, albeit one with an extra output to indicate that the sender quit before it acquired an input. If more than honest parties quit before some honest party terminates, then we give each party the individual option to output . The protocol optimally requires for this.
From a practical view, is of interest in that it lets parties quit after they recover from transient crashes to help the remaining parties terminate. For example, a party can quit when it reconnects after a network disconnection, or when it restarts after a power loss. This ensures that as long as the honest parties that transiently crash (no matter how many) eventually come back online, all parties terminate . We remark that reliable broadcast with recoverable transient crashes has been studied before. In [7], one can find a live BRB protocol against a polynomially bounded adversary for when and at most honest parties suffer transient crashes for a polynomially bounded number of times.
2 Model
We consider an asynchronous network of message-sending parties who are connected pairwise via reliable authenticated channels. The party set is publicly known. The parties do not have access to synchronized clocks.
Our basic adversary, which we name the -adversary, corrupts up to parties. The corrupt parties are byzantine; they deviate arbitrarily from the protocol. The rest of the parties are honest. The adversary schedules messages as it wishes, and it is only required to eventually deliver all messages from honest senders. The adversary can also adaptively corrupt parties during the execution of a protocol depending on the sent messages and the partiesβ internal states, and drop messages from parties by corrupting them. So, we call a party honest if it is never corrupted. Unless stated otherwise, our protocols are designed against the -adversary.
By default, a party must run a protocol until it is instructed to terminate. However, a QBRB protocol lets each party quit whenever it wishes by invoking the procedure , in which the party might send some final messages to help the remaining parties terminate. The adversary can influence if and when a party invokes . The invocation of is an event which a party handles like any other. A QBRB protocol keeps validity and consistency no matter when any honest party invokes , but potentially loses global termination if an honest party invokes before some honest party terminates.
In Section 6, we design the broadcast protocol against an adversary which can cause a single transient crash for any honest party. This adversary can arbitrarily choose when any crash occurs and how long it lasts. At the end of a crash, the recovering party immediately invokes , having retained the information that needs (the kinds of messages the party has sent in ). We define the -adversary to be the -adversary with the power to cause transient crashes as described above. Against the -adversary, achieves local and global termination no matter when any honest party quits, though with weaker output guarantees if more than honest parties quit before some honest termination.
When a party βmulticastsβ a message , it sends to all parties. To keep things simple, we assume that the honest parties do not transiently crash while multicasting, though note that we could remove this assumption by requiring any party that crashes while multicasting any to remember so that it can multicast again when it recovers from the crash.
For composability, the parties do not begin protocols βhavingβ inputs. Instead, they βacquireβ inputs while they are running. This matters since we consider protocols where some parties might quit before they acquire inputs, or terminate despite never acquiring inputs.
3 Insufficiency of Standard BRB for Terminating All-to-All Broadcast
Below, we present the classical BRB protocol [10]. Note that a party only accepts a single ECHO message and a single READY message from any party . We do not require a party to multicast upon receiving messages; this rule is absent in modern renditions of the protocol [1, 11]. The protocol is proven secure in [1, 10, 11].
And now, we present a version of which fails to terminate because it uses .
Let us informally argue that terminates against the -adversary when . Since there exist at least honest parties and since guarantees termination for all honest parties when the sender is honest, eventually, some first honest terminates instances of and thus terminates . Then, since guarantees termination for all honest parties when some honest party terminates, every honest party can eventually terminate by terminating the instances of terminated by .
As Theorem 1 below indicates, this argument fails. The intuitive reason why is that an honest party must stop participating in every instance to terminate , which means that the party must prematurely quit instances of before terminating them. Though some honest party eventually terminates instances, these instances lose global termination if other honest parties quit them before terminating them.
Theorem 1.
When , the -adversary can prevent a particular party from terminating by making two parties omit sending messages to the party.
Proof.
The adversary corrupts and . The party will be precluded from terminating.
The adversary lets every honest acquire its input , and assigns arbitrary inputs to the corrupt parties and . These corrupt parties do not send any messages, but otherwise they behave honestly. The adversary begins with the following message scheduling:
-
The communication between and the rest of the parties is indefinitely blocked.
-
For , the communication for is indefinitely blocked for the party , where if and .
-
Initially, all ECHO and READY messages are blocked.
First, each party sends the INIT messages of its broadcast instance . The INIT messages in are received by only . The INIT messages in and are received by all parties except . For all , the INIT messages in are received by all parties except and .
Then, the adversary unblocks the ECHO messages. The ECHO messages in are sent and received by only . The ECHO messages in and are sent and received by all parties except ; so, all parties except send READY messages in and . For all , the ECHO messages in are sent and received by all parties except and ; so, all parties except and send READY messages in .
Afterwards, the adversary unblocks the READY messages. No party sends READY messages in . The READY messages in and are sent and received by all parties except . For all , the READY messages in are sent and received by all parties except and . So, for all , the party terminates by receiving at least READY messages in all instances except and . Since is a permutation of , we get that the parties all terminate .
Finally, the adversary unblocks all communication. No party sends READY messages in , and so does not terminate . In any broadcast instance where , the party receives READY messages from the parties in . This suffices for to send itself a READY message in . Even then, only receives READY messages in , which is insufficient for termination. Since cannot terminate any instance except and , it cannot terminate .
4 Quit-Resistant BRB
One could thwart the attack with a termination procedure based on reliable consensus [13] by exploiting the fact that if an honest party terminates a instance, then every party learns the instanceβs output by receiving READY messages on the output. However, it is hard to come up with a termination procedure that works with any BRB protocol instead of just , and our view is not that is lacking a termination procedure but that the termination properties of standard BRB are lacking for protocols like where a party must quit remaining BRB instances to terminate. Hence, we define quit-resistant BRB (QBRB). A QBRB protocol lets any party quit by invoking . Given a fixed sender party who might (or might not) eventually acquire an input , a QBRB protocol ensures the following:
-
Validity: If is honest, and an honest outputs , then has acquired .
-
Consistency: If honest parties and output and , then .
-
Local Termination: If is honest, and it acquires an input, then either some honest party terminates, or some honest party quits.
-
Global Termination: If some honest party terminates before any honest party quits, then every honest party either terminates or quits.
We keep the definitions of validity and consistency from standard BRB. However, while a standard BRB protocol requires the parties to run until instructed to terminate, a QBRB protocol lets each party quit whenever it wishes by invoking , and retains a meaningful global termination guarantee if no honest party quits before some honest party terminates.
QBRB is what needs to terminate. If in one replaces with any QBRB protocol, then the QBRB instances terminated by the first honest party who terminates retain global termination, and thus terminates.
Below, we modify into a QBRB protocol , optimally secure when . We do so with the QUIT message which a party multicasts when it invokes , making it easier for the remaining parties to terminate. The QUIT messages do not compromise the safety guarantees since READY messages are required to obtain output, and global termination relies on the fact that if the honest parties do not multicast QUIT before some honest party terminates, then the first honest termination occurs after honest parties multicast for some , which means that every honest party will multicast or QUIT.
Theorem 2.
is a secure QBRB protocol when .
Proof.
Consistency and Validity.
For any , let be the first honest party who multicasts . The party cannot have done this after having received from parties, because then there would need to exist a prior honest party who multicast . Therefore, must have received from parties.
For contradiction, suppose that for some distinct and , some honest parties multicast and some honest parties multicast . Let and be the first honest parties who respectively multicast and . Then, must have received from parties, and must have received from parties. These quorums have an intersection of at least parties, and hence we get the contradiction that an honest party must have sent to and to .
Suppose some honest outputs . Then, must have received from at least parties, at least one of which is honest. Since honest parties cannot multicast for any , no honest party outputs any . That is, we have consistency.
Furthermore, if is honest, then the only message on which a party may receive ECHO messages from parties is the input of , after has acquired and multicast . This implies validity since an honest party can output any only after some honest party receives from parties and multicasts .
Local Termination.
For contradiction, consider a counterexample execution of where is honest, and it acquires an input, but no honest party terminates or quits. Then, the honest parties participate forever in the execution. Every honest party receives from and thus multicasts . Then, every honest party receives from parties and thus multicasts if it has not multicast a READY message (which would have to be ) already. Finally, since all honest parties multicast , some honest party terminates after receiving the message QUIT from byzantine parties (where ) and receiving from parties. This contradicts the assumption that no honest party terminates.
Global Termination.
Suppose some honest terminates with the output , with no honest parties terminating or quitting earlier. Then, must have received from parties, where is the number of QUIT messages received. These messages must have corrupt senders because honest parties do not quit before terminates. Since does not accept both a QUIT message and a READY message from the same party, at least of the parties from whom accepted the message must be honest. So, every honest party either multicasts QUIT, or receives from parties, which makes it set its output to and multicast if it has not multicast a READY message (which would have to be ) already. Finally, every honest party either quits, or terminates after receiving from parties the messages QUIT or . Β
We remark that we purposefully defined global termination so that it guarantees nothing if some honest party quits before any honest party terminates. In [23], the authors construct a signature-based reliable broadcast protocol which a party terminates upon receiving/constructing a certificate (that consists of the output and signatures on from parties), after multicasting the certificate so that everyone can terminate by receiving it. This protocol is (with the addition of an empty procedure) a QBRB protocol which guarantees that if some honest party terminates, then every honest party who does not quit eventually terminates, no matter when any honest party quits. Our does not achieve this stronger global termination property, and we do not know whether any error-free QBRB protocol can.
5 Efficient Terminating Gather
In Gather, each party may eventually acquire an -bit input (where is publicly known), and each party outputs a set of value-sender pairs (with at most one value per sender). Against the -adversary, a Gather protocol must achieve the following correctness properties:
-
Common Core: There exists a common core set of size at least such that every honest output set contains some for all .
-
Validity: If there exists some for any honest and , then .
-
Consistency: If there exist some and for any honest and , then .
If the protocol is binding, then the following stronger version of common core must hold:
-
Binding Common Core: At the moment when some honest party outputs for the first time, one can extract a common core set from the views of the honest parties.
Finally, the protocol should have one of the following termination-related properties:
-
Liveness: Suppose the honest parties all eventually acquire inputs. If the honest parties all run the protocol forever, then they all obtain outputs from it.
-
Termination: Suppose the honest parties all eventually acquire inputs. If the honest parties all run the protocol until they terminate it, then they all terminate the protocol.
-
Strong Termination: If all honest parties eventually acquire inputs, then some honest party terminates; and if some honest party terminates, all honest parties terminate.
Strong termination is typically the termination property a termination procedure (e.g.Β reliable consensus [13]) achieves. To see why it matters, let and be Gather protocols, the former with liveness only. Let the parties run on their inputs, transform their outputs into inputs, obtain final outputs from , and terminate when they output. When a party terminates the composed protocol, it necessarily stops running . Hence, the remaining parties might not output from , and thus not acquire inputs. Now, if strongly terminates, then the composed protocol does so as well since no party quits before some party terminates . However, if is just terminating, then the composed protocol might not terminate since some honest parties might never obtain inputs. Approximate agreement protocols often consist of Gather iterations composed like this, and the strong termination of the last iteration suffices for the composed protocol to (strongly) terminate.
With we denote the most efficient live Gather protocol we know of [15]. Instantiated with a state-of-the-art standard BRB protocol which requires bits of communication [6], it achieves the bit complexity . The protocol is presented in [15], though for completeness we restate it and its security proof in the appendix. Note that is not binding, but our strongly terminating Gather protocol will be.
The protocol involves standard BRB broadcasts of -bit inputs, standard BRB broadcasts of -bit inputs and multicasts of -bit inputs. To make (strongly) terminate, it suffices to replace its standard BRB broadcasts and multicasts with QBRB broadcasts. The issue is that against corruptions we do not know of a more efficient error-free QBRB protocol than , and replacing all standard BRB broadcasts and multicasts in with instances results in the bit complexity . Our protocol instead achieves strong termination while preserving the complexity .
5.1 k-slot Consensus
To construct , we need a 5-slot consensus444In the literature 5-slot consensus is better known as (binary) graded consensus, with the possible outputs . We use the mapping . We define k-slot consensus so that we can compare k-slot consensus outputs with numbers.protocol with strong termination. In a k-slot consensus protocol, each party may eventually acquire an input and obtain an output . The following output correctness properties must hold:
-
Validity: If for some every honest input is , then every honest output is .
-
k-Consistency: There exists some such that every honest output is in .
Of course, a k-slot consensus protocol must also have some termination guarantee. This may be liveness, termination or strong termination, which are defined as they were for Gather.
In [22], the authors present a constant-round quorum-based termination procedure which when turns any live protocol where the honest parties obtain at most distinct outputs into a strongly terminating555In [22], the authors do not consider strong termination, and only prove that their procedure upgrades live protocols into terminating ones. However, upon inspection one can observe that their procedure results in strong termination. This is also the case for the reliable consensus termination procedure [13]. protocol where each honest party runs with its input and terminates with the output of some honest party. The procedure has an overhead of additional rounds and additional messages carrying outputs.
Since from k-slot consensus the honest parties obtain at most 2 distinct outputs and since k-slot consensus remains secure if the honest parties exchange their outputs, the procedure is perfectly suited to upgrade a live k-slot consensus protocol into a strongly terminating one when . In the appendix, we present the strongly terminating k-slot consensus protocol where we use the procedure on a live k-slot consensus protocol , alongside a proof since strong termination is not formally considered in [22].
In the rest of this section, we denote by the protocol instantiated with the constant-round error-free deterministic live 5-slot consensus protocol in [9] which we call . Against corruptions, achieves 5-slot consensus with bits/messages. The 5-slot consensus protocol has the same corruption tolerance and the same asymptotic complexity as , and it is error-free and deterministic like .
5.2 Online Error Correction
We use online error correction [8] based on Reed-Solomon error correcting codes [25] in order to obtain a communication complexity of the form for . For some , we use the following two functions:
-
: This function takes a message of length , and outputs a codeword of symbols in the Galois Field , each of which are bits long.
-
: This function takes as input symbols . With respect to a message with ; we call a symbol correct if , missing if , and incorrect otherwise. When used with at most missing symbols and at most incorrect symbols with respect to some , outputs if at least of the symbols are correct with respect to , and otherwise.
To use error correction on messages of any arbitrary length , we pad the messages to the length for some . This gives us the symbol bit length . For readability, we omit explicit padding/unpadding operations.
Online error correction is useful when there is a message with such that each honest multicasts . Then, each honest can keep track of the symbols it receives, and upon receiving symbols for each run in an attempt to obtain . The output will be or in each trial as in each trial there will be at most missing symbols and at most incorrect symbols with respect to . Furthermore, since can eventually receive the symbol from each honest , in some trial there will be correct symbols and will be the output.
The most efficient standard BRB protocol we are aware of [6] uses the online error correction approach above to achieve the bit complexity . The approach falters for QBRB because an honest party may quit a QBRB instance without ever sending any message related to the senderβs input. This prevents us from designing a QBRB protocol against corruptions (and not just for a positive constant ) with the bit complexity . Nevertheless, we are able to use online error correction in .
5.3 The Gather Protocol
The Gather protocol is similar to in that the parties broadcast their inputs with standard BRB instances, and each honest inserts a value-sender pair to its output set when it terminates a BRB instance. In we use , but with external access to the output set which each honest builds in . Hence, we denote the output of each honest with . The set is a snapshot of made when outputs from .
Inspired by the classical ACS protocol in [8] which involves one byzantine agreement instance per party to decide whether the partyβs input gets into the core set, we run instances of , named . Upon obtaining from , the party provides an input to each instance; the input is if there exists a pair .
We call an honest happy if it has terminated every instance, and has inserted some to whenever . Note that indicates by the validity of that some honest has . So, unless some honest party stops running , eventually can terminate the standard BRB terminated by and insert to . Upon becoming happy, the party lets if , and lets otherwise. Then, sends each the message .
Suppose that a party terminates with , and that there are at least happy parties. Then, by the 5-consistency of , every happy party has , and thus the happy parties send YOURS vectors to with a common non- symbol. So, every party can (and must, before it terminates ) eventually multicast , where for all , if then , and otherwise is the common non- symbol in YOURS vectors which receives. Note that if , then is the symbol of , where is the unique message such that some honest has .
Finally, a party could terminate with . Then, to ensure the binding common core property, must insert some to its output set . By the 5-consistency of , every honest has , which means that multicasts a MINE vector whose symbol is the symbol of , where is the unique message such that some honest has . So, can obtain via online error correction.
In , we use READY quorums of size and in the manner of Brachaβs protocol to ensure without impacting liveness that no honest party terminates before parties become happy. Since a party must terminate every instance to become happy, the strong termination of ensures that every honest party terminates every instance. Furthermore, the YOURS vectors multicast by at least happy parties ensure that the parties all multicast MINE vectors, and thus that they all construct the messages they need.
When a party terminates , one can use its view to compute the binding common core . The common core property of and the validity of ensure that where is any common core of , and therefore that . Moreover, is a common core since the 5-consistency of ensures that for all , every honest obtains , and therefore inserts some to .
In , the parties send bits/ messages in , bits/ messages in the instances of (the factor is from -bit message tags which are necessary to distinguish the instances), bits/messages for the READY notifications, and finally bits/ messages for the YOURS and MINE vectors. Hence, the complexity of is bits and messages.
Theorem 3.
is a secure binding Gather protocol with strong termination when .
Due to a lack of space, we formally prove Theorem 3 in the appendix.
Some Gather variants also achieve the property verifiability [3, 4, 26]. Essentially (as defined in [26]), each honest has a function which outputs a bit given βs current view and any party set . outputs if does not contain the binding common core, and eventually outputs if is the set of the senders in for some honest . Also, if at any time, then at any later time. To achieve verifiability, we can replace 5-slot consensus in with 6-slot consensus, and require each to include some in its output set when . Then, from we can extract the binding common core , and for each let output after terminates iff . However, this is insufficient for the βagreement on verificationβ in [3, 4], which requires for all that if outputs for some , then eventually outputs for all . We do not see a way to achieve termination and βagreement on verificationβ together without switching from Gather to asynchronous core set agreement.
6 QBRB Against Arbitrary Quits
The QBRB protocol in Section 4 loses its termination guarantees if any honest party quits before some honest party terminates. Now, we design an error-free deterministic QBRB variant which keeps its termination guarantees no matter when any honest party quits.
Of course, such lax participation from the honest parties makes the standard output guarantees impossible. Hence, we introduce the extra outputs and . For some publicly known , if at most honest parties quit before some honest party terminates, then is just a QBRB protocol, albeit one with an extra output to indicate that the sender quit before it acquired an input. If more than honest parties quit before some honest party terminates, then we relax the output guarantees and give each party the individual option to output . The protocol optimally requires for this, which means that if , then almost every honest party can quit without the output becoming permitted.
Formally, let be the input domain of , with . The protocol has the output domain , and given a fixed sender party who may eventually acquire an input , it guarantees the following against the -adversary:
-
Validity: Suppose is honest. If an honest outputs , then has acquired , and if an honest outputs , then has quit before acquiring an input.
-
Consistency: If honest parties and output and , then .
-
Robustness: If at most honest parties quit before some honest party terminates, then no honest party outputs .
-
Local Termination: If is honest, and it either acquires an input or quits before doing so, then either some honest party terminates, or all honest parties quit.
-
Global Termination: If some honest party terminates, then every honest party either terminates or quits.
As per the definition of the -adversary in Section 2, the protocol achieves security even if the reason a party quits is that it has suffered a transient crash. This makes of practical interest when the parties are prone to such crashes. For example, a party could get disconnected from the network or run out of battery while running . Then, upon recovering, the party would invoke to help the remaining parties terminate.
In , transient crash tolerance follows from quit tolerance. If a party invokes upon recovering from a crash, then the protocol proceeds almost as if the party never crashed, but just invoked while running normally. From before crashing a party must retain only the information that needs. In , a party must remember the kinds of messages (among INIT, ECHO, READY) that it multicast before crashing.
Theorem 4.
is secure when .
Due to a lack of space, we formally prove Theorem 4 in the appendix. Note that is optimal (by Theorem 5) even if the honest parties cannot transiently crash.
The main innovation in is the flexible ECHO quorum threshold, which allows the honest parties to form ECHO quorums on the INIT value of an honest sender (the input of , or if quits before acquiring an input) as long as at most honest parties quit. If is honest, it multicasts , and at most honest parties quit, then for some there exist at least honest parties who multicast and at least honest parties who multicast . Since , this suffices for the honest parties to be able to form quorums on .
As usual, conflicting ECHO quorums do not occur because each honest party multicasts at most one ECHO message. Intuitively, if the adversary can create conflicting quorums on and with messages, then it can also do so with just and messages. So, consider the case where the corrupt parties never send . If honest parties multicast , then a party must receive from more than parties to form an ECHO quorum on . Conflicting quorums on do not occur since at most parties send either or . Lastly, an invalid quorum on (formed without sending ) is prevented by a quorum on requiring at least messages.
If an honest party quits, then it multicasts both QUIT and some READY message. If honest parties quit, then the QUIT messages they multicast suffice for every honest party to multicast a READY message. Hence, every honest party can receive READY messages from parties and terminate. On the other hand, if at most honest parties quit, then we get local termination by the fact that after the honest sender multicasts , every honest party receives sufficiently many ECHO messages to multicast .
If some honest party terminates, then there are at least honest parties who multicast READY messages. Since for some every honest READY message is either or , either there are at least honest parties who multicast , or there are at least honest parties who multicast . Either way, every honest party multicasts a READY message, and so every honest party can terminate.
Finally, if at most honest parties quit before some honest terminates, then terminates with at most honest copies of . Hence, terminates with at least honest copies of for some . The senders of these copies do not send READY messages on any ; so, any honest who terminates (including ) does so after receiving honest copies of and setting its output to .
Theorem 5.
If , , and , then no broadcast protocol achieves against the -adversary the properties validity, consistency, robustness, local termination and global termination (all as defined for ).
Proof.
Suppose for some , , and . We partition into five sets , where , and . Let us consider a broadcast instance where .
In the five scenarios below, the parties in are honest, and they quit immediately. The parties in also quit immediately, but they may be corrupt parties only pretending to quit. Note that the senderβs input does not influence the behavior of a non-sender who immediately quits. Finally, the parties in , and never quit or pretend to quit. In the first two scenarios, the parties in and are honest, and has the input .
-
Scenario 1: In this scenario, is the set of corrupt parties, and the parties in immediately crash. The parties in must terminate despite never hearing from .
-
Scenario 2: In this scenario, is the set of corrupt parties, and the messages from are delayed. The parties in cannot afford to wait for messages from , because for them this scenario is indistinguishable from Scenario 1. Hence, they must all terminate. Furthermore, they must output because at most honest parties quit before some honest party terminates and because the honest sender never quits.
In the next two scenarios, the parties in and are honest, and has the input .
-
Scenario 3: In this scenario, is the set of corrupt parties, and the parties in immediately crash. The parties in must terminate despite never hearing from .
-
Scenario 4: In this scenario, is the set of corrupt parties, and the messages from are delayed. Being in the same predicament as the parties in in Scenario 2, the parties in must all terminate with the output without waiting for messages from .
Finally, consider Scenario 5, where the adversary successfully executes a split-brain attack.
-
Scenario 5: In this scenario, is the set of corrupt parties. The parties in act towards as if has the input and the messages from are delayed, and act towards as if has the input and the messages from are delayed. Moreover, the communication between and is indefinitely delayed. The parties in output as they cannot distinguish this scenario from Scenario 2. Likewise, the parties in output as they cannot distinguish this scenario from Scenario 4. This violates consistency.
References
- [1] Ittai Abraham. Living with asynchrony: Brachaβs reliable broadcast. Decentralized Thoughts, 2020. URL: https://decentralizedthoughts.github.io/2020-09-19-living-with-asynchrony-brachas-reliable-broadcast/.
- [2] Ittai Abraham, Yonatan Amit, and Danny Dolev. Optimal resilience asynchronous approximate agreement. In Proceedings of the 8th International Conference on Principles of Distributed Systems, OPODIS β04, pages 229β239, Berlin, Heidelberg, 2004. Springer-Verlag. doi:10.1007/11516798_17.
- [3] Ittai Abraham, Gilad Asharov, Arpita Patra, and Gilad Stern. Perfectly secure asynchronous agreement on a core set in constant expected time. Cryptology ePrint Archive, Paper 2023/1130, 2023. URL: https://eprint.iacr.org/2023/1130.
- [4] Ittai Abraham, Philipp Jovanovic, Mary Maller, Sarah Meiklejohn, Gilad Stern, and Alin Tomescu. Reaching consensus for asynchronous distributed key generation. In Proceedings of the 2021 ACM Symposium on Principles of Distributed Computing, PODC β21, pages 363β373, New York, NY, USA, 2021. Association for Computing Machinery. doi:10.1145/3465084.3467914.
- [5] Ittai Abraham and Gilad Stern. Information Theoretic HotStuff. In Quentin Bramas, Rotem Oshman, and Paolo Romano, editors, 24th International Conference on Principles of Distributed Systems (OPODIS 2020), volume 184 of Leibniz International Proceedings in Informatics (LIPIcs), pages 11:1β11:16, Dagstuhl, Germany, 2021. Schloss Dagstuhl β Leibniz-Zentrum fΓΌr Informatik. doi:10.4230/LIPIcs.OPODIS.2020.11.
- [6] Nicolas Alhaddad, Sourav Das, Sisi Duan, Ling Ren, Mayank Varia, Zhuolun Xiang, and Haibin Zhang. Balanced byzantine reliable broadcast with near-optimal communication and improved computation. In Proceedings of the 2022 ACM Symposium on Principles of Distributed Computing, PODC β22, pages 399β417, New York, NY, USA, 2022. Association for Computing Machinery. doi:10.1145/3519270.3538475.
- [7] Michael Backes and Christian Cachin. Reliable broadcast in a computational hybrid model with byzantine faults, crashes, and recoveries. In 2003 International Conference on Dependable Systems and Networks, 2003. Proceedings., pages 37β46, 2003. doi:10.1109/DSN.2003.1209914.
- [8] Michael Ben-Or, Ran Canetti, and Oded Goldreich. Asynchronous secure computation. In Proceedings of the Twenty-Fifth Annual ACM Symposium on Theory of Computing, STOC β93, pages 52β61, New York, NY, USA, 1993. Association for Computing Machinery. doi:10.1145/167088.167109.
- [9] Erica Blum, Jonathan Katz, and Julian Loss. Synchronous consensus with optimal asynchronous fallback guarantees. In Theory of Cryptography, pages 131β150, Cham, Switzerland, 2019. Springer International Publishing. doi:10.1007/978-3-030-36030-6_6.
- [10] Gabriel Bracha. Asynchronous byzantine agreement protocols. Information and Computation, 75(2):130β143, 1987. doi:10.1016/0890-5401(87)90054-X.
- [11] Christian Cachin. Secure distributed computing. Γcole Polytechnique FΓ©dΓ©rale de Lausanne, 2009. URL: https://dcl.epfl.ch/site/_media/education/sdc_byzconsensus.pdf.
- [12] Ran Canetti and Tal Rabin. Fast asynchronous byzantine agreement with optimal resilience. In Proceedings of the Twenty-Fifth Annual ACM Symposium on Theory of Computing, STOC β93, pages 42β51, New York, NY, USA, 1993. Association for Computing Machinery. doi:10.1145/167088.167105.
- [13] Annick Chopard, Martin Hirt, and Chen-Da Liu-Zhang. On communication-efficient asynchronous mpc with adaptive security. In Theory of Cryptography: 19th International Conference, TCCβ21, pages 35β65, Berlin, Heidelberg, 2021. Springer-Verlag. doi:10.1007/978-3-030-90453-1_2.
- [14] Ran Cohen, Pouyan Forghani, Juan Garay, Rutvik Patel, and Vassilis Zikas. Concurrent asynchronous byzantine agreement inΒ expected-constant rounds, revisited. In Theory of Cryptography, pages 422β451, Cham, Switzerland, 2023. Springer Nature Switzerland. doi:10.1007/978-3-031-48624-1_16.
- [15] Andrei Constantinescu, Diana Ghinea, Roger Wattenhofer, and Floris Westermann. Convex Consensus with Asynchronous Fallback. In Dan Alistarh, editor, 38th International Symposium on Distributed Computing (DISC 2024), volume 319 of Leibniz International Proceedings in Informatics (LIPIcs), pages 15:1β15:23, Dagstuhl, Germany, 2024. Schloss Dagstuhl β Leibniz-Zentrum fΓΌr Informatik. doi:10.4230/LIPIcs.DISC.2024.15.
- [16] Sourav Das, Sisi Duan, Shengqi Liu, Atsuki Momose, Ling Ren, and Victor Shoup. Asynchronous consensus without trusted setup or public-key cryptography. Cryptology ePrint Archive, Paper 2024/677, 2024. Appeared in ACM CCS β24. doi:10.1145/3658644.3670327.
- [17] MichaelΒ J. Fischer, NancyΒ A. Lynch, and MichaelΒ S. Paterson. Impossibility of distributed consensus with one faulty process. In Proceedings of the 2nd ACM SIGACT-SIGMOD Symposium on Principles of Database Systems, PODS β83, pages 1β7, New York, NY, USA, 1983. Association for Computing Machinery. doi:10.1145/588058.588060.
- [18] Luciano Freitas, Petr Kuznetsov, and Andrei Tonkikh. Distributed Randomness from Approximate Agreement. In Christian Scheideler, editor, 36th International Symposium on Distributed Computing (DISC 2022), volume 246 of Leibniz International Proceedings in Informatics (LIPIcs), pages 24:1β24:21, Dagstuhl, Germany, 2022. Schloss Dagstuhl β Leibniz-Zentrum fΓΌr Informatik. doi:10.4230/LIPIcs.DISC.2022.24.
- [19] Diana Ghinea, Chen-Da Liu-Zhang, and Roger Wattenhofer. Optimal synchronous approximate agreement with asynchronous fallback. In Proceedings of the 2022 ACM Symposium on Principles of Distributed Computing, PODC β22, pages 70β80, New York, NY, USA, 2022. Association for Computing Machinery. doi:10.1145/3519270.3538442.
- [20] Diana Ghinea, Chen-Da Liu-Zhang, and Roger Wattenhofer. Multidimensional approximate agreement with asynchronous fallback. In Proceedings of the 35th ACM Symposium on Parallelism in Algorithms and Architectures, SPAA β23, pages 141β151, New York, NY, USA, 2023. Association for Computing Machinery. doi:10.1145/3558481.3591105.
- [21] Hammurabi Mendes and Maurice Herlihy. Multidimensional approximate agreement in byzantine asynchronous systems. In Proceedings of the Forty-Fifth Annual ACM Symposium on Theory of Computing, STOC β13, pages 391β400, New York, NY, USA, 2013. Association for Computing Machinery. doi:10.1145/2488608.2488657.
- [22] Mose MizrahiΒ Erbes and Roger Wattenhofer. Asynchronous approximate agreement with quadratic communication, 2024. arXiv:2408.05495, doi:10.48550/arXiv.2408.05495.
- [23] Atsuki Momose and Ling Ren. Multi-threshold byzantine fault tolerance. In Proceedings of the 2021 ACM SIGSAC Conference on Computer and Communications Security, CCS β21, pages 1686β1699, New York, NY, USA, 2021. Association for Computing Machinery. doi:10.1145/3460120.3484554.
- [24] Thomas Nowak and Joel Rybicki. Byzantine Approximate Agreement on Graphs. In Jukka Suomela, editor, 33rd International Symposium on Distributed Computing (DISC 2019), volume 146 of Leibniz International Proceedings in Informatics (LIPIcs), pages 29:1β29:17, Dagstuhl, Germany, 2019. Schloss Dagstuhl β Leibniz-Zentrum fΓΌr Informatik. doi:10.4230/LIPIcs.DISC.2019.29.
- [25] I.Β S. Reed and G.Β Solomon. Polynomial codes over certain finite fields. Journal of the Society for Industrial and Applied Mathematics, 8(2):300β304, 1960. doi:10.1137/0108018.
- [26] Gilad Stern and Ittai Abraham. Gather with binding and verifiability. Decentralized Thoughts, 2024. URL: https://decentralizedthoughts.github.io/2024-01-09-gather-with-binding-and-verifiability/.
- [27] NitinΒ H. Vaidya and VijayΒ K. Garg. Byzantine vector consensus in complete graphs. In Proceedings of the 2013 ACM Symposium on Principles of Distributed Computing, PODC β13, pages 65β73, New York, NY, USA, 2013. Association for Computing Machinery. doi:10.1145/2484239.2484256.
Appendix A Strongly Terminating k-slot Consensus
In the protocol below, we use the termination procedure from [22] to upgrade any live k-slot consensus protocol into a strongly terminating one. Strong termination is the combination of local termination (some honest party terminates) and global termination (if some honest party terminates, every honest party terminates), and ensures global termination with READY quorums. If some honest party terminates, then it has received READY messages, at least of which are honest, and so every honest party receives honest READY messages, multicasts READY, and receives READY messages. Furthermore, the first honest party who multicasts READY does so upon receiving some output from parties, which means that every honest party can set as its output upon receiving from honest parties.
Theorem 6.
Suppose achieves validity, k-consistency and liveness when . Then, achieves validity, k-consistency and strong termination when .
Proof.
k-Consistency and Validity.
An honest party must receive from parties (at least one of which is honest) to output , and for any , the first honest party who multicasts must have output from . Hence, every honest output is the output of some honest party. The -consistency and validity of thus follow from the -consistency and validity of .
Strong Termination.
To prove strong termination, we prove local termination and global termination. Local termination guarantees that if the honest parties all eventually acquire inputs, then some honest party terminates. Global termination guarantees that if some honest party terminates, then all honest parties terminate.
For the sake of contradiction, consider an execution of where local termination fails. Every honest party provides an input to , and hence every honest party obtains a output. By the -consistency of there exists some such that every honest output is either or . By the pigeonhole principle there exists some such that at least honest parties output from . At least honest parties multicast , and this suffices for every honest to receive from parties, set if and multicast . Since all honest parties multicast , all honest parties can receive from parties and thus multicast READY. Finally, since all honest parties multicast READY, all honest parties can receive READY from parties and thus terminate.
Now, let us show global termination. If some honest party terminates, then it must have received READY from parties, at least of which are honest. Hence, every honest party multicasts READY, at the latest upon receiving READY from parties, and so any honest who sets becomes able to terminate by receiving READY from parties. Furthermore, the first honest party who multicasts READY does so when it has received some from parties, at least of which are honest. Since honest parties multicast , every honest can receive from parties and set .
Appendix B The Live Gather Protocol
Below, we present , the most efficient live Gather protocol we are aware of [15]. It achieves the bit complexity when instantiated with the state-of-the-art standard BRB protocol with the bit complexity [6].
Theorem 7.
is a secure Gather protocol with liveness when .
Proof.
Consistency and Validity.
The consistency and validity of follow from the consistency and validity of .
Liveness.
Since all honest parties broadcast their inputs, every honest terminates input broadcasts, and thus broadcasts . All honest parties terminate all honest set broadcasts, and if some honest broadcasts , then, by the global termination of , every honest terminates all input broadcasts terminated by , obtains , and adds to . This means that every honest adds every honest to , and therefore that eventually holds and multicasts . Afterwards, every honest adds to after receiving from because eventually holds, due to the fact that whenever adds any to , eventually adds to as well since eventually holds and since terminates βs set broadcast with the same set as . So, since every honest party adds every honest party to its set, eventually holds for every honest . Finally, we conclude that every honest obtains , and , which leads to outputting .
Common Core.
Let be the set of the first honest parties who obtain . For each , the set which multicasts contains parties, at least of which are in . Hence, .
There exists some included in the multicast sets of at least parties in . For contradiction, suppose otherwise. Then, for each , less than parties in have sets which include . This implies , which contradicts .
Suppose some honest outputs from . Consider the set at the instant when broadcasts it. Since at least honest parties include in the sets which they multicast, must have added some honest to from whom received some . This implies , and implies . So, is a common core.
Appendix C Skipped Proofs
Theorem 3.
is a secure binding Gather protocol with strong termination when .
Proof.
As we did for , we split strong termination into local and global termination.
Consistency and Validity.
Suppose some honest includes some in its output set . This requires ; hence, by the validity of , there exists some (unique, by the consistency of ) such that some honest parties have in their output sets. We show below that . Note that this gives us consistency because if some has some , then we have . We also get validity: If is honest, then must be the input of by the validity of .
Let . The party obtains via , where is either , or the non- symbol in the MINE vector sends to . Assume now that if the latter is the case and is honest, then . This implies that in any attempt the vector contains with respect to at most incorrect symbols (from corrupt parties) and at most missing symbols. Thus, the correctness of ensures that always holds.
It remains to prove the assumption that if and is honest, then . If and is honest, then is a non- symbol repeated at least times in the column of the matrix of . Hence, some honest must have sent a message with . The party must have had and computed . Therefore, we conclude that .
Global Termination.
If some honest party terminates, then it has received READY from parties. We show below that for all honest parties to terminate, it suffices for some honest party to receive READY from parties.
If an honest party has received READY from parties, then at least honest parties have multicast READY. Every honest party becomes able to multicast READY by receiving READY from parties, and so every honest party receives READY from parties.
The first honest party who multicasts READY must have done so because it has received YOURS vectors from parties. Hence, there must exist at least happy parties such that has terminated all instances and there exists some whenever . Furthermore, because the happy parties have terminated all instances, the strong termination of implies that every honest party terminates every instance.
Suppose some honest has for some . Then, every happy has and thus has some . This is the same for all happy parties by the consistency of standard BRB. Hence, every happy computes and sends a YOURS vector with the symbol . The party can thus find to be the non- symbol repeated at least times in the column of its matrix . This happens eventually for any where ; hence, every honest party eventually multicasts some MINE vector.
Finally, suppose some honest has for some . Then, every honest has , which means that the symbol of the MINE vector which multicasts is the non- symbol , which (as we showed while proving consistency) is such that for some that is consistent for all honest parties. Since can eventually store as , eventually βs vector contains correct symbols with respect to , outputs , and inserts to .
In the end, every honest terminates after terminating every instance, multicasting READY and receiving READY from parties, multicasting some MINE vector and inserting some to whenever . This gives us global termination.
Local Termination.
For contradiction, suppose no honest party terminates. Then, every honest eventually outputs some from and thus provides inputs to all instances. Hence, the honest parties terminate all instances. For any honest , if for some it is the case that , then by the validity of some honest party must have terminated the standard BRB instance in with which broadcasts its input, and hence terminates this BRB instance and inserts some to as well. So, every honest eventually becomes happy and sends out YOURS vectors. Consequently, every honest party receives YOURS vectors from parties and multicasts READY, and then every honest party receives READY from parties. As we showed to prove global termination, for all honest parties to terminate it suffices for some honest party to receive READY from parties. So, we reach the contradictory conclusion that all honest parties terminate.
Theorem 4.
is secure when .
Proof.
Consistency.
We show that there exist no distinct and such that some honest parties multicast while others multicast . As in and , the first honest party who multicasts for any particular must have done so upon receiving enough ECHO messages to form an ECHO quorum on . For the sake of contradiction, let and be the first honest parties who respectively multicast and for some distinct and , let be a set of honest parties, and let be the number of parties in who multicast . For each , let
-
be the number of messages from parties in counted in βs quorum,
-
be the number of messages from parties outside counted in βs quorum,
-
be the number of messages from parties in counted in βs quorum,
-
be the number of messages from parties outside counted in βs quorum.
For each , we have and . For the quorum of to be of sufficient size, we must have , which implies . However, consists of honest parties who multicast and thus contribute to neither nor , and honest parties who contribute to at most one of and since an honest party cannot send to and to . This gives us , which contradicts . Finally, consistency follows because in order to output , an honest party must receive from parties, at least one of which is honest.
Validity.
For some honest party to output , there must exist a first honest who multicasts . To do so, must receive from at least parties, at least one of which is honest. This can happen only after the sender sends to some honest party. Now suppose is honest. If acquires an input , then it multicasts , and this makes the unique possible non- output. If quits before acquiring an input, then it multicasts , and thus becomes the unique possible non- output.
Local Termination.
For contradiction, suppose that the sender is honest, that it either acquires an input or quits before doing so, that not all honest parties quit, and that despite all the preceding no honest party terminates. We separately consider the case where at least honest parties quit, and the case where at most honest parties quit. Note that an honest party does not quit without multicasting a READY message.
-
Suppose at least honest parties quit. Because an honest party multicasts QUIT when it quits, every honest party either quits, or eventually receives QUIT from parties and thus becomes able to multicast a READY message.
-
Suppose honest parties quit. The sender eventually multicasts , where is either its input or . Then, at least honest parties multicast . Since we have , every honest party either quits, or eventually receives from sufficiently many parties to multicast a READY message.
In both cases, every honest party multicasts a READY message, which means that every honest party either quits, or terminates after receiving READY messages from parties.
Global Termination.
If an honest party terminates, then it has received READY messages from parties, at least of which are honest. Since there is some such that every honest READY message is on either or , either there are at least honest parties who multicast , or there are at least honest parties who multicast . In either case, every honest party can multicast a READY message either before quitting, or after receiving sufficiently many honest READY messages. So, every honest party either quits, or terminates after receiving READY messages from parties.
Robustness.
Suppose at most honest parties have quit when some honest terminates for the first time. Then, an honest can multicast before terminates only if it quits, as cannot receive QUIT or from parties before terminates. So, terminates with at most corrupt READY messages, at most honest messages, and at least honest READY messages not on . Since for some every honest READY message is on either or , there are at least honest parties who multicast for some . Hence, any honest (including ) can terminate only after receiving at least honest messages and setting .