Efficient Byzantine Reliable Broadcast
in the Failure Case
Abstract
Reliable broadcast is a fundamental primitive in distributed computing that is widely used in various applications. Several new reliable broadcast algorithms have been presented in recent years, primarily focusing on reducing the communication complexity, which is the total number of exchanged bits in the worst case. While significant progress has been achieved, all proposed algorithms share a common weakness. Executions may fail, i.e., no message is ever delivered, while incurring a communication complexity equal or nearly equal to the communication complexity of executions where a message is delivered. In fact, a single Byzantine node, acting as the dedicated sender, is sufficient to trigger such executions, causing all nodes to consume bandwidth in vain.
This paper introduces the novel concept of a reliable broadcast detector, a distributed algorithm that can be coupled with a reliable broadcast algorithm to minimize the communication complexity of failed executions. Two concrete detectors are presented with different requirements and properties. Additionally, reliable broadcast algorithms that utilize detectors are introduced, the main algorithm guaranteeing an overhead factor, compared to an ideal failure-free execution, that tends to as the network size increases. Furthermore, a lower bound is proven that an overhead factor of is inevitable when the sender initially broadcasts the message, as is the case for the proposed algorithm. Therefore, it achieves a bound that is close to optimal for any algorithm with this property.
Keywords and phrases:
asynchronous networks, reliable broadcast, communication complexity2012 ACM Subject Classification:
Computer systems organization Fault-tolerant network topologies ; Theory of computation Distributed algorithmsEditors:
Andrei Arusoaie, Emanuel Onica, Michael Spear, and Sara Tucci-PiergiovanniSeries and Publisher:
Leibniz International Proceedings in Informatics, Schloss Dagstuhl – Leibniz-Zentrum für Informatik
1 Introduction
Numerous applications require the dissemination of certain messages to all nodes in a distributed system. In contrast to a regular broadcast, where all nodes are only guaranteed to receive the message if the sender does not fail, a reliable broadcast provides stronger guarantees. In particular, only one message may be broadcast and either no honest (i.e., non-faulty) node receives it or all of them eventually do, despite the presence of Byzantine nodes, which may behave in arbitrary ways to interfere with the protocol execution. Applications of reliable broadcast include asynchronous atomic broadcast [14, 17, 19, 24, 28, 29, 31], distributed key generation [2, 11, 20], secure data replication [7], and secret sharing [30]. Reliable broadcast can further be used to improve throughput in Byzantine fault-tolerant consensus protocols that treat message dissemination and ordering separately [9].
In his seminal paper, Bracha showed that the reliable broadcast problem can be solved in an asynchronous network comprising nodes, out of which at most nodes may be Byzantine [6]. The communication complexity, i.e., the number of bits that need to be exchanged in the worst case, of the proposed algorithm is , where denotes the size of the broadcast message. Nearly two decades later, Cachin and Tessaro [8] presented the first reliable broadcast algorithm with an improved communication complexity of bits using erasure coding, where is the output size of a collision-resistant hash function, which is asymptotically optimal for large messages as every node must receive at least bits. Subsequently, several studies have focused on narrowing the gap to the lower bound of [1, 3, 10, 26, 27].
While reliable broadcast algorithms with nearly optimal communication complexity are known, all proposed algorithms effectively exhibit the same complexity whether or not the broadcast is successful. In other words, the nodes may not receive any message as the outcome of the broadcast and yet send almost as many bits as in the worst-case execution where a message is delivered. As shown in §4, a Byzantine sender can cause such wasteful executions, even if all other nodes are honest. In any system where each node has an equal chance of becoming the next sender or where a simple round-robin scheme determines the next sender, up to a third of all consumed bandwidth can be wasted.
This problem is addressed in this paper. In §3, reliable broadcast detectors are introduced, which are distributed algorithms that serve to inform a reliable broadcast algorithm whether or not it is safe to start executing the main routine, with the guarantee that all honest nodes will eventually obtain one and the same message. Apart from specifying the requirements that such a detector must meet, two concrete detectors are presented. The second detector has the advantage that the condition to trigger the main reliable broadcast algorithm is reached faster when the sender is honest but requires a more complex setup due to its use of threshold cryptography. The communication complexity of both detectors is , where is a security parameter of constant size, and thus independent of the message size.
Reliable broadcast algorithms that make use of detectors are provided in §4. The first algorithm showcases the simplicity of defining a reliable broadcast algorithm when given a detector, which demonstrates the power of this abstraction. The second and main algorithm aims to minimize the communication complexity when a message is delivered, while keeping the communication complexity independent of the message size when no message is delivered. In the former case, the overhead factor is only , i.e., roughly bits are sent in total for large and . This bound is slightly worse than the best known bound of , but the algorithm is significantly more efficient in the failure case. We argue that it is quite natural for any algorithm optimizing for the failure case to first have the sender broadcast the message. For any such algorithm, at least bits must be exchanged in total as shown in Appendix A.2, which implies that the proposed algorithm is nearly optimal. Related work on reliable broadcast is summarized in §5 and §6 concludes the paper.
2 Model
We consider a network comprising nodes, where denotes the maximum number of Byzantine nodes, which may exhibit arbitrary faulty behavior, ranging from simple crash failures to malicious behavior including collusion. By contrast, the other nodes, which we call honest, always execute any given protocol correctly and never fail. The set of all nodes is denoted by . Any pair of nodes can communicate directly by exchanging messages over an authenticated channel. Throughout this paper, we consider the asynchronous communication model, where all messages are guaranteed to be received but after an unbounded delay, i.e., nodes cannot expect that a sent message will arrive, nor can they expect to receive a certain message, after a certain amount of time. When a node sends a message to all nodes, including itself, we say that node broadcasts message . If is honest, all nodes will eventually receive the broadcast message. However, a Byzantine node may send a message that is to be broadcast only to a subset of the nodes, possibly not sending the message at all.
A reliable broadcast protocol ensures that either all honest nodes eventually deliver the sender’s message, i.e., accept the message as the outcome of the reliable broadcast, or no honest node delivers it. Formally, reliable broadcast is defined as follows.
Definition 1 (Reliable broadcast).
A reliable broadcast protocol is a distributed protocol to send a message from a specific node called the sender to all nodes with the following properties.
-
Validity: If the sender is honest and broadcasts , then every honest node eventually delivers .
-
Agreement: If two honest node deliver and , then .
-
Integrity: Every honest node delivers at most one message.
-
Totality: If an honest node delivers a message, then all honest nodes eventually deliver a message.
Naturally, there can be multiple instances of reliable broadcast executions running in parallel, each with a specific sender that is known a priori to all nodes. We assume that every message carries information that identifies a particular instance but do not explicitly specify such unique identifiers as we focus on a single execution.
The sender has a message that it aims to disseminate to all nodes. The size of in bits is denoted by . In addition to the message itself, nodes can send other pieces of data such as hashes, signatures, and the aforementioned identifiers. The used hash functions and signature schemes are assumed to be cryptographically strong in that it is infeasible to find hash collisions or spoof signatures, except with negligible probability. Since hashes and signatures are considered secure for a certain minimum length, we introduce the security parameter , upper bounding the size of hashes and signatures by .
State-of-the-art reliable broadcast algorithms make extensive use of erasure codes, which can handle missing data, or error-correcting codes, which can correct erroneous data. The novel algorithm introduced in §4.2 employs -erasure codes with parameters defined in that section.
An execution of a reliable broadcast algorithm is characterized by the send and receive events occurring at all nodes. If the execution results in a message being delivered, we call the execution successful. On the contrary, an execution where no message is delivered is called a failed execution. The validity property implies that all executions where the sender is honest must be successful. In other words, an execution may only fail if the sender is Byzantine. A Byzantine sender, together with other Byzantine nodes, may also prevent the delivery of a message for some time and then transmit more messages which will cause the honest nodes to deliver a message after all. Formally, we can define the point of guaranteed eventual delivery as the inflection point for which it holds that there must eventually be an honest node that delivers a message at some time but delivery is not guaranteed at any time . If there is such a point in time , the agreement and totality property together imply that all honest nodes will eventually deliver the same message. Thus, a successful (failed) execution is an execution for which it holds that (). As argued before, the validity property implies that for any execution with an honest sender starting at time it must hold that .
The primary complexity measure for reliable broadcast algorithms is their communication complexity, which is the maximum number of bits exchanged by all honest nodes together over all possible executions. When defining as the communication complexity in a network of nodes, disseminating a message of size in execution when running algorithm , the communication complexity of algorithm is , where denotes the set of all possible executions. If a Byzantine sender happens to send messages with different sizes – or parts of messages with different sizes – in some execution, we define as the maximum size of all sent messages.
Since all nodes must receive the sender’s message in a successful execution, at least bits must be transmitted overall.111Technically, bits suffice, not counting the sender itself, but the relative difference tends to zero as . The overhead factor of a reliable broadcast algorithm is defined as . The goal is to get as close as possible to . However, we distinguish between successful and failed executions: While is the best possible result for any successful execution , it should hold that for any failed execution because no message is delivered at all. Rather than specifying with respect to an execution that may be successful or failed, we slightly abuse our notation and simply state the goal as minimizing for successful executions while ensuring that for all failed executions. Note that for any reliable broadcast algorithm that meets these requirements it holds that at any time for any execution .
The second relevant complexity measure is an algorithm’s time complexity, defined as the maximum duration of any execution, i.e., the time between the start of the execution and the time when the last honest node delivers the message, normalizing the maximum message delay to and defining that all local computation takes time. As an execution may never terminate given a Byzantine sender, we specify the time complexity for the good case with an honest sender. It is easy to see that honest nodes also engage in only a few rounds of communication for successful executions with a Byzantine sender for all considered algorithms.
3 Detectors
3.1 Definition
Ensuring that at any time in any execution requires a mechanism to detect whether the point has been reached, in which case the nodes can start disseminating the message (or parts thereof). We introduce the notion of a reliable broadcast detector , which is itself a distributed algorithm. A detector offers the following functionality:
-
.ready() returns if the point of guaranteed eventual delivery has been reached for a unique message .
-
.validators() returns the set of all nodes that claim to have successfully validated message .
Any detector only signals readiness for a message from the designated sender. If .ready() returns , we say that signals readiness for message to the reliable broadcast algorithm. Note that may signal readiness even if only a unique identifier of message is locally available. The constructions of detectors in the subsequent sections show that it is possible to deduce locally that the point of guaranteed eventual delivery has been reached for message when receiving sufficiently many confirmations that a certain number of nodes have validated . As shown in §4, the set .validators() of nodes that claim to have validated the sender’s message is useful to reduce the communication complexity because it is not necessary to send any parts of the message to nodes in this set.
The following properties must hold in the asynchronous communication model with Byzantine nodes as defined in §2. The first property ensures that honest nodes eventually agree that the point of guaranteed eventual delivery has been reached.
Property 1.
If signals readiness at honest node , then eventually signals readiness at any honest node .
It is further important that there is agreement as to which message may be broadcast in order to avoid wasteful transmissions.
Property 2.
If signals readiness at honest nodes and for messages and , respectively, then .
We say that a detector is correct if it satisfies both properties. Given the lower bound of on the communication complexity of reliable broadcast [13], it is desirable to guarantee an asymptotically tight upper bound on the communication complexity of detectors.
Property 3.
Given the security parameter , the communication complexity of an efficient detector is .
Note that the communication complexity of an efficient detector is independent of the message size . Naturally, a detector can only operate meaningfully in conjunction with a reliable broadcast algorithm with certain properties. The following two properties specify the required interplay between the two components.
Property 4.
If the honest sender executes algorithm , then detector will eventually signal readiness at some honest node.
Property 4 and Property 1 together imply that all honest nodes will eventually reach the same state. Since the honest sender first broadcasts when executing the algorithms in §4, the following property implies Property 4 for the considered algorithms and detectors.
Property 5.
If the honest sender executes algorithm , broadcasting in the first step, then detector will eventually signal readiness for message at some honest node.
The last property ties the actions of to the output of in the sense that readiness implies delivery and vice versa.
Property 6.
Any honest node executing algorithm eventually delivers if and only if detector signals readiness for message .
Under the assumption that these properties hold for algorithm and detector , we get the following result.
Theorem 2.
Proof.
Each property of reliable broadcast is proved separately.
- Validity:
- Agreement:
- Integrity:
- Totality:
Thus, it suffices to show that algorithms and detectors have these properties to ensure that they implement reliable broadcast. Let a detector-triggered algorithm be an algorithm that only sends messages when the detector signals readiness, apart from the sender, which may send some data to other nodes to initiate the execution. The following result holds for such algorithms when paired with an efficient detector.
Lemma 3.
For any detector-triggered algorithm using an efficient detector it holds that for failed executions.
Proof.
In any failed execution, the sender must be Byzantine and therefore its messages do not contribute to the communication complexity. By definition, no messages are sent when executing algorithm as the detectors never signal readiness. Since the communication complexity of an efficient detector is due to Property 3, the result follows.
3.2 Basic Construction
There is a straightforward construction of a basic detector, denoted by , that shares similarities with Bracha’s reliable broadcast algorithm itself [6]. The designated sender is supposed to broadcast message . When receiving the first message from the sender, the detector verifies the validity of the message and then broadcasts an attest message containing , a hash value of size derived using a hash function H. The reliable broadcast algorithm determines the concrete hash function to be used.
The first attest() message received from is processed by adding to the map , which stores the set of nodes from which attest messages have been received for a certain hash. The set denotes the set of all possible hashes. Once at least attest messages for a certain hash have been obtained, confirm() is broadcast, confirming that sufficiently many attest messages have been received. Information about such confirmations are collected in the map , storing the set of nodes from which confirm messages have been received for a certain hash. Again, only the first such message is processed from any node in order to bound the space complexity. A node also broadcasts confirm() after receiving at least confirm messages for , i.e., broadcasts a confirmation when assured that at least one honest node must have broadcast a confirm message.
Let denote the hash for which the most confirmations have been obtained, i.e., , breaking ties arbitrarily. The detector signals readiness when it has received at least attest messages and at least confirm messages for . The set of validators returned when calling .validators() is simply the set . The entire algorithm of detector is given in Algorithm 1. We now proceed to show the correctness of .
Lemma 4.
All confirm messages from honest nodes contain the same hash .
Proof.
Let be the first honest node to broadcast a confirm message for some hash . Since it is the first such message, must have received attest messages containing . Let be the first honest node to broadcast a confirm message for some hash . As is the first such node, it cannot have sent it because it received confirm messages containing . Hence it follows that it must have received attest messages containing . However, this implies that an honest node must have sent two (conflicting) attest messages, a contradiction.
Note that the lemma implies that any honest node sends at most one confirm message. The following result states that detector is both correct and efficient.
Lemma 5.
Detector is a correct and efficient detector.
Proof.
The two correctness properties and the efficiency property are proved separately.
- Property 1:
-
Assume that signals readiness at node for some message with hash . Let be the first honest node to send a confirm message containing . As it is the first such message, must have received attest() messages. At least of these messages must have come from honest nodes having broadcast attest(). Thus, will eventually hold at all honest nodes. Node received at least confirm messages, which implies that all honest nodes will eventually receive at least confirm messages from honest nodes. Since honest nodes only send one confirm message, all containing due to Lemma 4, it must eventually hold that . Hence it follows that all honest nodes broadcast confirm() and it eventually holds that at all honest nodes.
- Property 2:
-
If readiness is signaled at node and for messages and , respectively, it must hold that at node and at node . However, these inequalities imply that there must be an honest node that has sent two different confirm messages, a contradiction to Lemma 4.
- Property 3:
-
Each honest node broadcasts at most one attest message by definition and at most one confirm message due to Lemma 4, each of size , i.e., bits are sent in total.
The next lemma states that detector eventually signals readiness given an honest sender that initially broadcasts the message.
Lemma 6.
Detector satisfies Property 5.
Proof.
Since the honest sender broadcasts , all honest nodes will eventually broadcast attest() for . Consequently, all honest nodes will eventually receive at least attest() messages and broadcast confirm(). When confirm() messages have been received, the readiness condition is reached.
As far as time complexity is concerned, if the honest sender broadcasts the message at the start, it takes rounds of communication until readiness is signaled at all honest nodes.
Theorem 7.
If the honest sender broadcasts , the time complexity until signals readiness for message is .
Proof.
All honest nodes receive after at most time unit, causing them to broadcast the corresponding attest message. After at most time units, holds at all honest nodes, triggering the transmission of confirm messages. Thus, after at most time units, holds at all honest nodes and signals readiness.
3.3 Construction with Threshold Signatures
In this section, an alternative construction based on threshold cryptography is presented. Every node must be equipped with a private key share that enables it to threshold-sign a message, i.e., it can generate a signature share that can be combined with sufficiently many other signature shares to obtain a signature that is valid under some globally known public key. Specifically, our setup requires signature shares to construct a signature using the function compute_signature. It is possible for the nodes to verify the validity of both signatures and signature shares. The key idea is for each node to attach a signature share to its attest message. If a node receives a signature, derived from valid signature shares, the signature acts as proof that at least honest nodes have validated the message. As a result, there is no need for confirm messages, which effectively serve to convince the nodes that at least one honest node attests to the validity of the message.
The detector based on threshold signatures, denoted by , is given in Algorithm 2. Every node locally stores the map , where is the set of all possible signatures, plus a signature and a hash , both uninitialized (i.e., set to ) at first.
After validating the sender’s message , node computes , which it then threshold-signs to produce a signature share . The hash is broadcast together with the threshold signature in the attest message. When receiving an attest() message, the threshold signature is validated and then added to the set . Given signature shares for some hash , and are set to the computed signature and the corresponding hash, respectively. The signature , once set, is broadcast in a sig message, which contains as well. Alternatively, can be set when a sig message with a valid signature is received.
The function ready() is adapted to return if and only if and a signature has been set, i.e., . It is important to note that cannot be used because an honest node may receive more assert messages for a hash when the Byzantine sender and other Byzantine nodes equivocate. For the same reason, the function validators() returns the set , guaranteeing that the validators are returned from which assert messages containing have been received.
It remains to prove that detector has the necessary properties as well. Lemma 8 is useful in those proofs, stating that the hash for which a signature is derived is unique.
Lemma 8.
All broadcast sig messages contain a signature for the same hash.
Proof.
Every honest node only broadcasts a signature share for one message from the sender. Since signature shares are required to generate a signature, there cannot be enough signature shares for two distinct signatures as any two sets of signature shares intersect in at least nodes.
The lemma is used to prove the following result.
Lemma 9.
Detector is a correct and efficient detector.
Proof.
As before, each property is proved separately.
- Property 1:
-
Assume that signals readiness at honest node , i.e., and . Since broadcasts , it eventually holds at all nodes that . Due to Lemma 8, there can only be one such signature. Moreover, implies that some node must have received valid signature shares to compute . Since at least of these signature shares must have come from honest nodes, which all broadcast attest messages, it eventually holds that at all honest nodes.
- Property 2:
-
The property follows from Lemma 8.
- Property 3:
-
Each honest node broadcasts at most one attest and sig message of size for a total of bits.
If the honest sender starts the execution by broadcasting the message, detector signals readiness eventually.
Lemma 10.
Detector satisfies Property 5.
Proof.
All honest nodes broadcast an attest message and thus eventually receive at least signature shares. Subsequently, they compute the signature unless it is received in a sig message. In either case, the readiness condition is reached.
Lastly, if we assume again that the honest sender initiates the execution by broadcasting the message, then rounds of communication suffice for all honest nodes to signal readiness.
Theorem 11.
If the honest sender broadcasts , the time complexity until signals readiness for message is .
Proof.
Every honest node receives after time unit. Subsequently, every honest node broadcasts its attest message, which is received after time units. Since all honest nodes have at least signature shares, they compute a signature , unless they received a signature earlier, which must be a signature for the same hash due to Lemma 8. Thus, after time units, and holds at all honest nodes.
The primary advantage of compared to is its lower time complexity at the expense of a more complex setup with private key shares securely deployed on all nodes.
4 Algorithms
4.1 Simple Algorithm
In Bracha’s reliable broadcast algorithm [6], every node broadcasts the message (at most) twice in a successful execution. Including the sender’s initial broadcast to all other nodes, the communication complexity is .
There are failed executions where the communication complexity is nearly as large, even if only the sender is Byzantine: Consider the scenario where the Byzantine sender sends message to nodes and message to the remaining nodes. The honest nodes broadcast an echo message containing the message received from the sender. However, the Byzantine sender merely sends an echo message containing to other nodes, i.e., there are nodes that receive echo messages for and hence broadcast ready messages containing . Since honest nodes solely receive ready messages, none of them delivers and the execution does not terminate. Assuming that , the communication complexity of this execution is .
Armed with a detector such as and introduced in §3, a simple reliable broadcast algorithm, denoted by , can be constructed easily, illustrating the effectiveness of the detector abstraction. In this algorithm, the sender first broadcasts . If signals readiness for and is locally available, is forwarded to the nodes not in .validators() before delivering . The nodes cache received messages until the execution terminates. The space complexity can be bounded by only caching at most one message per node.222In practice, a message may only be cached if it carries the dedicated sender’s signature. In this case, equivocation can be detected and penalized. The detector can use any cryptographically strong hash function H. Algorithm , given in Algorithm 3, is a correct reliable broadcast algorithm with the desired properties.
Theorem 12.
Algorithm using detector or implements reliable broadcast in the asynchronous communication model with Byzantine nodes.
Proof.
Since an honest sender broadcasts as the first step, Property 5 holds when pairing with either detector. Clearly, is only delivered when readiness is signaled. On the other hand, readiness implies that some honest nodes have message , which they transmit to all nodes not in .validators() when ready, leading to the eventual delivery of at all nodes. Thus, Property 6 holds as well. In comparison to Bracha’s algorithm, the communication complexity of is lower by a factor of . Moreover, is clearly superior in the case of failed executions.
Theorem 13 (Communication complexity).
It holds for algorithm using detector or that for successful executions and for failed executions.
Proof.
If the execution is successful, an honest sender’s initial broadcast of contributes bits. Every honest node sends to all nodes not in the set .validators() of cardinality at least , resulting in a communication complexity of
and thus .
Since algorithm is a detector-triggered algorithm and both or are efficient, holds for failed executions due to Lemma 3. Lastly, paired with achieves a lower time complexity than Bracha’s algorithm.
Theorem 14 (Time complexity).
If the sender is honest, then the time complexity of corresponds to the time complexity of the used detector or .
Proof.
All honest nodes receive after at most time unit if the sender is honest. Since the time complexity of both detectors is greater than and delivers when is available and readiness is signaled without waiting for any further messages, the claim follows.
4.2 Coding-Based Algorithm
Algorithm has a communication complexity that grows quadratically with the number of nodes, which is far from optimal. The goal is to devise a reliable broadcast algorithm that has a communication complexity in the order of for successful executions but wastes little bandwidth in the case of failed executions.
All known reliable broadcast algorithms with a communication complexity of make use of erasure (or error-correcting) codes, disseminating fragments of of size inversely proportional to . While these algorithms are more efficient, it is usually trivial for a Byzantine sender to trigger executions that are bound to fail but cause as many bits to be sent as in successful executions. The problem is that, given a fragment alone, it cannot be determined if it is part of a valid encoding. Merkle proofs can be used, e.g., to efficiently check if a received fragment is consistent with some root hash but that does not guarantee that the fragments themselves have been constructed using an erasure (or error-correcting) code. A Byzantine sender can exploit this fact, creating a valid Merkle tree over random pieces of data instead of using a coding procedure and trigger the execution. Every node that receives enough fragments can then deduce that the fragments have not been constructed correctly and abort the execution. However, this check typically happens at the end of the algorithm, i.e., as many bits as in a successful execution have already been transmitted.
Detectors can remedy this situation as the following sketch of an algorithm using an -erasure code illustrates: When readiness is signaled at a node that has received from the sender, it constructs all fragments and broadcasts its own fragment. As readiness implies that there must be at least honest nodes that have received from the sender when using either or , each node receives at least valid fragments and is thus able to reconstruct . Given , each node can then derive and broadcast its own fragment before delivering . Since , the communication complexity of this algorithm is
In the following, a more complex algorithm, denoted by , is introduced that achieves a lower communication complexity. Algorithm uses an -erasure code, encoding fragments of the message in such a way that any out of fragments can be used to recover the message . The size of a fragment is
| (1) |
where the stems from the fact that erasure codes work with a field of cardinality at least . Additionally, algorithm uses an -erasure code, encoding fragments of the fragments, called mini-fragments [23]. A fragment can be recovered using any out of mini-fragments of size
| (2) |
As algorithm works with (mini-)fragments, the hash function H used by the detector is evaluated over the (mini-)fragments instead of the message itself. For any , let and denote the (integrity) proof of fragment and the mini-fragment of , respectively. Merkle proofs are commonly used to prove the integrity of (mini-)fragments, with a size of . In this case, the hash function H returns the Merkle root hash. An alternative would be to use a commitment scheme such as KZG [18], reducing the size to for an improved communication complexity. The disadvantage is that it requires a trusted setup and introduces an additional cryptographic assumption [4]. Since is also a detector-triggered algorithm, there is only one valid hash for a specific message that must be considered. Thus, we assume that received fragments and mini-fragments for any other hash are silently discarded. Each node stores any received fragment together with in the set . Similarly, received mini-fragments of its own fragment are stored in the set alongside and .
Algorithm utilizes several functions: Given message and index , the function get_fragment returns the fragment-proof pair . In a similar manner, given and indices and , the function get_mini_fragment returns the tuple . Once at least fragments are collected in the set , the message is derived from the fragments using the function recover_message, whereas node ’s fragment can be recovered using the function recover_fragment after collecting at least mini-fragments in the set .
The sender starts the execution by broadcasting . Once readiness is signaled, the following actions may occur. An honest node sends messages in two situations: First, if is available locally, sends mini-fragment() to for all where .validators(). Second, if is available, it sends fragment() to all nodes not in the set .validators() as well. Node can obtain fragment by invoking the function get_fragment when is available. Alternatively, can be recovered from mini-fragments in the set using the function recover_fragment. The message itself can be recovered after collecting fragments in . Lastly, once is available and the fragment and mini-fragments are sent as stated before, is delivered. Algorithm , given in Algorithm 4, is a correct reliable broadcast algorithm.
Theorem 15.
Algorithm using detector or implements reliable broadcast in the asynchronous communication model with Byzantine nodes.
Proof.
Property 5 holds when using either detector because an honest sender initially broadcasts the message. It follows from the specification of the algorithm that a message is only delivered when readiness was signaled beforehand. Thus, it remains to show that readiness implies delivery to show that Property 6 holds.
Assume that readiness is signaled at some node. Due to Property 1, the detectors at all honest nodes eventually signal readiness. Since there must be an honest node that received at least attest messages if either or is used, there are honest nodes that have received . As soon as these honest nodes receive and reach the readiness condition, they will send mini-fragments as defined in Algorithm 4. For any honest node that did not receive , it holds that is not in the validators() set of any honest node because it never broadcasts an attest message. Hence it follows that every honest node receives at least mini-fragments and is able to recover and send its fragment. As a result, every honest node that did not get will eventually obtain at least fragments and reconstruct the message. Thus, holds at all honest nodes eventually, which leads to the delivery of after sending the fragments and mini-fragments.
Algorithm indeed achieves a lower communication complexity than the coding-based algorithm sketched before.
Theorem 16 (Communication complexity).
It holds for algorithm that for successful executions and for failed executions.
Proof.
In addition to the sender’s initial broadcast, each honest node sends one fragment message and mini-fragment message each to every node in the set of cardinality at most for a communication complexity of
which implies that .
The result for failed executions follows from the fact that and are efficient and is a detector-triggered algorithm. Regarding the time complexity of , the same result as for algorithm holds.
Theorem 17 (Time complexity).
If the sender is honest, then the time complexity of corresponds to the time complexity of the used detector or .
Proof.
If the sender is honest, all nodes obtain after time unit. The time complexity of both detectors is greater than . As soon as readiness is signaled, every honest node can compute and send its fragment and mini-fragments before delivering without delay.
5 Related Work
As discussed in §1, Bracha presented the first reliable broadcast algorithm with a communication complexity of [6]. While the communication complexity is high, the algorithm is error-free, i.e., it does not depend on any cryptographic assumptions. The algorithm based on erasure coding by Cachin and Tessaro improved the communication complexity to , which is asymptotically optimal for [8]. However, it is not error-free as it uses cryptographically strong hash functions.
With respect to error-free reliable broadcast, the time complexity has been reduced successively from [27] to [26] and then to [3]. It has further been shown how to achieve the bound using a probabilistic algorithm, guaranteeing validity but agreement and totality only hold with probability [1].
As far as algorithms are concerned that make use of cryptographic primitives, an algorithm has been presented with a communication complexity of using only collision-resistant hash functions [10], improving upon the algorithm by Cachin and Tessaro. The downside of this algorithm is that it has a higher computational cost and is not balanced. As stated in §4.2, when using a commitment scheme such as KZG [18] instead of Merkle proofs in the algorithm by Cachin and Tessaro, the same communication complexity can be attained without sacrificing the balanced nature of the algorithm and without inducing a higher computational cost. The downside is that a trusted setup and an additional cryptographic assumption is required. Alternatively, the same bound can be achieved using a public key infrastructure and cryptographic accumulators [26]. Threshold signatures can be used to obtain an improved bound on the communication complexity of [3].
The constant in the term is at least in all of these algorithms. In an effort to improve efficiency for large messages, algorithms have been proposed to bring this constant down, first to [21] and then to [22, 23], which is conjectured to be optimal. Thus, the best known algorithms come close to the lower bound of [13].
The reliable broadcast problem has been studied in a variety of models. It has been shown how stochastic sampling can be used to obtain a probabilistic algorithm violating each property with a fixed probability [16]. Moreover, reliable broadcast has also been considered in a model with dynamic membership [15]. The efficacy when combining Bracha’s algorithm with Dolev’s reliable communication protocol [12] to broadcast messages reliably in partially connected networks has been analyzed using simulations [5]. Lastly, the problem that composing parallel reliable broadcast instances can lead to non-termination has also been addressed, proposing quit-resistant reliable broadcast enabling parties to quit early [25].
6 Conclusion
Existing reliable broadcast algorithms are not efficient in failed executions in the worst case. In this paper, the concept of detectors is introduced, supporting reliable broadcast algorithms in keeping the communication complexity low in the failure case. Detectors further have powerful properties that facilitate the design of reliable broadcast algorithms. Moreover, they can reduce or even eliminate redundant transmissions in the absence of faults, which may prove to be relevant in practice. A reliable broadcast algorithm has been presented that makes use of a detector, achieving an overhead factor of , which is nearly optimal when considering algorithms where the sender broadcasts the message first. However, there is still a gap between the achieved bound and the lower bound of that can be explored. Another open question is whether a lower overhead factor can be obtained when the sender disperses the message to a strict subset of the nodes. Since fewer nodes obtain the message in this step, this modification increases the onus on the honest nodes to ensure that every node obtains the message eventually. These questions may be addressed in future research.
References
- [1] Ittai Abraham and Gilad Asharov. Gradecast in Synchrony and Reliable Broadcast in Asynchrony with Optimal Resilience, Efficiency, and Unconditional Security. In Proc. 43rd ACM Symposium on Principles of Distributed Computing (PODC), pages 392–398, 2022. doi:10.1145/3519270.3538451.
- [2] Ittai Abraham, Philipp Jovanovic, Mary Maller, Sarah Meiklejohn, Gilad Stern, and Alin Tomescu. Reaching Consensus for Asynchronous Key Generation. In Proc. 42nd ACM Symposium on Principles of Distributed Computing (PODC), pages 363–373, 2021.
- [3] 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 Proc. 43rd ACM Symposium on Principles of Distributed Computing (PODC), pages 399–417, 2022. doi:10.1145/3519270.3538475.
- [4] Dan Boneh and Xavier Boyen. Short Signatures Without Random Oracles. In Proc. 23rd Annual International Conference on the Theory and Applications of Cryptographic Techniques (Eurocrypt), pages 56–73, 2004. doi:10.1007/978-3-540-24676-3_4.
- [5] Silvia Bonomi, Jérémie Decouchant, Giovanni Farina, Vincent Rahli, and Sébastien Tixeuil. Practical Byzantine Reliable Broadcast on Partially Connected Networks. In Proc. 41st International Conference on Distributed Computing Systems (ICDCS), pages 506–516, 2021. doi:10.1109/ICDCS51616.2021.00055.
- [6] Gabriel Bracha. Asynchronous Byzantine Agreement Protocols. Information and Computation, 75(2):130–143, 1987. doi:10.1016/0890-5401(87)90054-X.
- [7] Christian Cachin and Jonathan A Poritz. Secure Intrusion-tolerant Replication on the Internet. In Proc. International Conference on Dependable Systems and Networks (DSN), pages 167–176, 2002. doi:10.1109/DSN.2002.1028897.
- [8] Christian Cachin and Stefano Tessaro. Asynchronous Verifiable Information Dispersal. In Proc. 24th IEEE Symposium on Reliable Distributed Systems (SRDS), pages 191–201, 2005. doi:10.1109/RELDIS.2005.9.
- [9] George Danezis, Lefteris Kokoris-Kogias, Alberto Sonnino, and Alexander Spiegelman. Narwhal and Tusk: A DAG-based Mempool and Efficient BFT Consensus. In Proc. 17th European Conference on Computer Systems (EuroSys), pages 34–50, 2022. doi:10.1145/3492321.3519594.
- [10] Sourav Das, Zhuolun Xiang, and Ling Ren. Asynchronous Data Dissemination and its Applications. In Proc. 28th ACM Conference on Computer and Communications Security (CCS), pages 2705–2721, 2021. doi:10.1145/3460120.3484808.
- [11] Sourav Das, Thomas Yurek, Zhuolun Xiang, Andrew Miller, Lefteris Kokoris-Kogias, and Ling Ren. Practical Asynchronous Distributed Key Generation. In Proc. IEEE Symposium on Security and Privacy (S&P), pages 2518–2534, 2022. doi:10.1109/SP46214.2022.9833584.
- [12] Danny Dolev. Unanimity in an Unknown and Unreliable Environment. In Proc. 22nd Annual Symposium on Foundations of Computer Science (FOCS), pages 159–168, 1981. doi:10.1109/SFCS.1981.53.
- [13] Danny Dolev and Rüdiger Reischuk. Bounds on Information Exchange for Byzantine Agreement. Journal of the ACM (JACM), 32(1):191–204, 1985. doi:10.1145/2455.214112.
- [14] Sisi Duan, Michael K. Reiter, and Haibin Zhang. BEAT: Asynchronous BFT Made Practical. In Proc. 25th ACM Conference on Computer and Communications Security (CCS), pages 2028–2041, 2018. doi:10.1145/3243734.3243812.
- [15] Rachid Guerraoui, Jovan Komatovic, Petr Kuznetsov, Yvonne-Anne Pignolet, Dragos-Adrian Seredinschi, and Andrei Tonkikh. Dynamic Byzantine Reliable Broadcast. In Proc. 24th International Conference on Principles of Distributed Systems (OPODIS), pages 23:1–23:18, 2020. doi:10.4230/LIPICS.OPODIS.2020.23.
- [16] Rachid Guerraoui, Petr Kuznetsov, Matteo Monti, Matej Pavlovic, Dragos-Adrian Seredinschi, and Yann Vonlanthen. Scalable Byzantine Reliable Broadcast. In Proc. 33rd International Symposium on Distributed Computing (DISC), 2019.
- [17] Bingyong Guo, Zhenliang Lu, Qiang Tang, Jing Xu, and Zhenfeng Zhang. Dumbo: Faster Asynchronous BFT Protocols. In Proc. 27th ACM Conference on Computer and Communications Security (CCS), pages 803–818, 2020. doi:10.1145/3372297.3417262.
- [18] Aniket Kate, Gregory M Zaverucha, and Ian Goldberg. Constant-Size Commitments to Polynomials and Their Applications. In Proc. 16th International Conference on the Theory and Application of Cryptology and Information Security (Asiacrypt), pages 177–194, 2010. doi:10.1007/978-3-642-17373-8_11.
- [19] Idit Keidar, Eleftherios Kokoris-Kogias, Oded Naor, and Alexander Spiegelman. All You Need is DAG. In Proc. 42nd ACM Symposium on Principles of Distributed Computing (PODC), pages 165–175, 2021. doi:10.1145/3465084.3467905.
- [20] Eleftherios Kokoris-Kogias, Dahlia Malkhi, and Alexander Spiegelman. Asynchronous Distributed Key Generation for Computationally-Secure Randomness, Consensus, and Threshold Signatures. In Proc. 27th ACM Conference on Computer and Communications Security (CCS), pages 1751–1767, 2020. doi:10.1145/3372297.3423364.
- [21] Thomas Locher. Byzantine Reliable Broadcast with Low Communication and Time Complexity. In Proc. 28th International Conference on Principles of Distributed Systems (OPODIS), volume 324, pages 16:1–16:17, 2024. doi:10.4230/LIPICS.OPODIS.2024.16.
- [22] Thomas Locher and Victor Shoup. Improving the Round Complexity of MiniCast. Cryptology ePrint Archive, Paper 2025/779, 2025. URL: https://eprint.iacr.org/2025/779.
- [23] Thomas Locher and Victor Shoup. MiniCast: Minimizing the Communication Complexity of Reliable Broadcast. In Proc. 44th Annual International Conference on the Theory and Applications of Cryptographic Techniques (Eurocrypt), 2025.
- [24] Andrew Miller, Yu Xia, Kyle Croman, Elaine Shi, and Dawn Song. The Honey Badger of BFT Protocols. In Proc. 23rd ACM Conference on Computer and Communications Security (CCS), pages 31–42, 2016. doi:10.1145/2976749.2978399.
- [25] Mose Mizrahi Erbes and Roger Wattenhofer. Quit-Resistant Reliable Broadcast and Efficient Terminating Gather. In Proc. 28th International Conference on Principles of Distributed Systems (OPODIS), volume 324, pages 15:1–15:22, 2024. doi:10.4230/LIPICS.OPODIS.2024.15.
- [26] Kartik Nayak, Ling Ren, Elaine Shi, Nitin H Vaidya, and Zhuolun Xiang. Improved Extension Protocols for Byzantine Broadcast and Agreement. In Proc. 34th International Symposium on Distributed Computing (DISC), 2020.
- [27] Arpita Patra. Error-free Multi-valued Broadcast and Byzantine Agreement with Optimal Communication Complexity. In Proc. 15th International Conference on Principles of Distributed Systems (OPODIS), pages 34–49, 2011. doi:10.1007/978-3-642-25873-2_4.
- [28] Victor Shoup. Sing a song of Simplex. In Proc. 38th International Symposium on Distributed Computing (DISC), pages 37:1–37:22, 2024. doi:10.4230/LIPICS.DISC.2024.37.
- [29] Alexander Spiegelman, Neil Giridharan, Alberto Sonnino, and Lefteris Kokoris-Kogias. Bullshark: DAG BFT Protocols Made Practical. In Proc. 29th ACM Conference on Computer and Communications Security (CCS), pages 2705–2718, 2022. doi:10.1145/3548606.3559361.
- [30] Thomas Yurek, Licheng Luo, Jaiden Fairoze, Aniket Kate, and Andrew Miller. hbACSS: How to Robustly Share Many Secrets. In Proc. 29th Annual Network and Distributed System Security Symposium (NDSS), 2022.
- [31] Haibin Zhang and Sisi Duan. PACE: Fully Parallelizable BFT from Reproposable Byzantine Agreement. In Proc. 29th ACM Conference on Computer and Communications Security (CCS), pages 3151–3164, 2022. doi:10.1145/3548606.3559348.
Appendix A Appendix
A.1 Discussion and Practical Considerations
It is worth noting that the presented algorithms are not only of theoretical interest. Under benign network conditions, the delay until the detector signals readiness can be sufficient for all nodes to report that they received the sender’s message in a fault-free execution. As an example, Figure 1 depicts an execution of detector where every node receives not only but also all assert messages (marked with a white circle) before receiving confirm messages (marked with a black circle). In this execution, holds at every node, and thus neither nor sends any additional messages, implying that , i.e., there is no overhead with respect to the message distribution itself.
If each node sends the same amount of data up to a constant factor, the algorithm is called balanced [3]. Formally, let and denote the minimum and maximum number of bits sent by honest nodes in any (successful or failed) execution. If for some constant , then the algorithm is called balanced. The analysis of algorithm in §4.2 shows that the sender effectively sends as many bits as all other nodes combined, i.e., is not balanced, as opposed to algorithm . The lack of balance may not be an issue in practice, in particular when all nodes frequently initiate instances of reliable broadcast at nearly the same time. Naturally, having a balanced algorithm is preferable when there are only a few instances at any time and the latency must be kept small when broadcasting large messages. An obvious question is whether a balanced algorithm exists that guarantees that for failed executions. Unfortunately, this is only possible if every node sends many bits as the following argument shows. Assuming that the entire message must be known in order to determine its validity, an honest node will only send or parts of it if is available locally or it received sufficient assurance that is a valid message. Obviously, Byzantine nodes may erroneously report that is valid, which implies that an honest node must receive an assurance from at least nodes in the absence of . Hence, an honest sender must send to at least honest nodes, i.e., the sender must send at least bits. A consequence of this result is that any algorithm that guarantees that for failed executions where some nodes send bits cannot be balanced. It further implies that algorithms that guarantee that cannot be balanced or they cannot guarantee that for failed executions.
A.2 Lower Bound
In this section, we consider the class of algorithms where the sender sends to all other nodes in the first step and prove the following result in the asynchronous communication model.
Theorem 18.
If communication is asynchronous and there are Byzantine nodes, it holds that for every reliable broadcast algorithm .
Proof.
We consider the following three scenarios, each having a specific set , , excluding the sender denoted by :
-
1.
The sender is honest but the nodes in are Byzantine.
-
2.
The sender is Byzantine and sends to the nodes in . All nodes other than the sender are honest.
-
3.
The sender is Byzantine and sends to the honest nodes in . There are Byzantine nodes in .
The nodes in may send messages indicating that they did not receive from the sender to all other nodes except the sender but any other message from these nodes is scheduled to arrive after the delivery of . Note that a message must be delivered in Scenario (1) due to the validity condition.
Let denote the complement of excluding the sender, i.e., . Scenario (1) and Scenario (2) are indistinguishable for any node because it is impossible to differentiate between the sender or the nodes in being dishonest.
Moreover, Scenario (2) and Scenario (3) are indistinguishable for any node that is honest in both executions if the Byzantine nodes behave correctly toward the honest nodes in . indistinguishability holds even if the Byzantine nodes exhibit faulty behavior toward the nodes in because no such information is received from nodes in . Consequently, Scenario (1) and Scenario (3) are also indistinguishable for nodes in that are honest in both executions.
Since the nodes in deliver in Scenario (1) and Scenario (2) is indistinguishable for these nodes, they deliver in Scenario (2) as well. However, the totality condition implies that the nodes in must also deliver . Let denote the number of bits that sends to nodes in before delivering , excluding the sender’s initial message, in Scenario (1).
Assume that there is a subset , and , such that . In this case, we define that the nodes in are the Byzantine nodes in Scenario (3). Since Scenario (1) and Scenario (3) are indistinguishable for the honest nodes in , they send the same messages to nodes in as in Scenario (1). However, the nodes in receive fewer than bits if the Byzantine nodes refuse to send any bits. Thus, there must be an honest node in that does not deliver , violating the totality condition. It follows that we must have that
and therefore the average number of bits sent must be at least
| (3) |
Thus, for , it must hold that
Since Scenario (3) is indistinguishable from Scenario (1) irrespective of how the Byzantine nodes are chosen among the nodes in , at least bits are sent in Scenario (1) as well. As the honest sender broadcasts first, the total communication complexity must be at least .
This theorem shows that algorithm is nearly optimal for algorithms in class . Moreover, the result is interesting in that the lower bound exceeds the upper bound of of the best known balanced algorithm that does not aim to minimize the communication complexity for failed executions. It is an open question whether any algorithm where the sender sends bits, for some , can achieve a better communication complexity. We conjecture that little can be gained by choosing if must hold for all failed executions.