---
title: Simultaneous Byzantine Agreement
url: https://www.emergentmind.com/topics/simultaneous-byzantine-agreement
type: topic
---

# Simultaneous Byzantine Agreement

Simultaneous Byzantine Agreement denotes a family of agreement tasks in which correct, or more generally non-Byzantine, processes must not only satisfy the usual agreement and validity conditions, but must do so in a synchronized decision pattern: in the classical synchronous setting this means deciding in the same protocol horizon, and in formal treatments it can mean deciding in the same round for a designated indexical set of processes. In the oral-messages synchronous model, the classical transmitter-based Byzantine agreement problem is solvable iff \(n>3b\), where \(b\) is the number of fully Byzantine processes; “Beyond One Third Byzantine Failures” generalizes this to mixed full and partial Byzantine behavior and gives an exact solvability condition together with a simultaneous \(b+3\)-round protocol [1511.08232].

## 1. Classical specification and the meaning of simultaneity

In the classical synchronous message-passing model, there are \(n\) processes connected by authenticated point-to-point channels, a distinguished transmitter \(p_0\), and a value \(v \in \mathcal{V}\) that should be agreed upon despite up to \(b\) Byzantine processes. Deterministic oral-messages Byzantine agreement is solvable iff \(n>3b\) (equivalently \(n\ge 3b+1\), depending on convention). The standard properties are termination, agreement, and validity; in the formulation used in [1511.08232], agreement is explicitly the “simultaneous consensus condition,” namely that any two correct processes decide the same value.

The same paper makes the simultaneity implicit in full-information synchronous executions. A \(k\)-round algorithm is a function on process views, \(F:\mathcal{U}^k \rightarrow \mathcal{V}\), and for every admissible scenario \(\sigma\) each non-Byzantine process \(p\) outputs \(F(\sigma_p)\). Agreement is therefore a property of the whole round-\(k\) execution prefix, not of independent local stopping times. In this sense, simultaneous Byzantine agreement is the requirement that all relevant processes derive the same decision from their views of the same bounded synchronous execution.

A later epistemic treatment makes this explicit by defining SBA(\(S\)) for an indexical set \(S\) of agents. Its specification consists of Unique-Decision, Simultaneous-Agreement(\(S\))—if \(i\in S\) decides \(v\) at time \(m\), then every \(j\in S\) decides \(v\) at time \(m\)—and Validity(\(S\)). The same work distinguishes sharply between the set \(N\) of processes that are nonfaulty in the entire run and the set \(A\) of processes that are active, or not yet failed, up to a given time [2508.03418].

## 2. Partial Byzantine failures and the exact resilience frontier

The most direct technical generalization of simultaneous Byzantine agreement is the \((n,m,d,b)\)-system of [1511.08232], which augments up to \(b\) fully Byzantine processes with up to \(m\) partially faulty processes, each able in every round to corrupt at most \(d\) outgoing links. A partially faulty process computes correctly, but the adversary may choose a changing subset of at most \(d\) recipients and send them arbitrary values.

| Parameter | Meaning |
|---|---|
| \(n\) | total number of processes |
| \(b\) | maximum number of fully Byzantine processes |
| \(m\) | maximum number of partially faulty processes |
| \(d\) | per partially faulty process, maximum corrupted outgoing links per round |

The crucial distinction is that a fully Byzantine process may corrupt all outgoing messages in every round, whereas a \(d\)-faulty process must behave correctly on at least \(n-1-d\) links per round. This asymmetry is the source of the improved resilience bound.

The exact theorem is
\[
\text{BA solvable} \iff n > \max\{2m+d,\;2d+m,\;b\}+2b.
\]
When \(m=d=0\), this collapses to the classical \(n>3b\). The same result is accompanied by matching impossibility bounds: no algorithm exists if \(n \le 2m+d+2b\) or \(n \le 2d+m+2b\). The formulation therefore gives a tight characterization of how much partial link corruption can be absorbed in addition to fully Byzantine behavior.

The quantitative interpretation is noteworthy. With \(b=0\) and \(d=1\), the model tolerates almost half the processes being partially faulty. If one keeps nearly the classical fully Byzantine threshold \(b \approx n/3\), one can still tolerate a positive fraction of additional partial faults; the paper states that the system could tolerate a \(1/6\) fraction of \(1\)-faulty processes in addition to \((1/3-\varepsilon)\) Byzantine processes. This suggests that the classical one-third bound is a property of unrestricted per-node equivocation, not of arbitrary mixtures of weaker misbehavior.

## 3. BA++ and the repair of partial faults into a classical scenario

The algorithmic contribution of [1511.08232] is BA++, a modular synchronous protocol that restores the classical setting from partially corrupted views and then invokes Lamport’s oral-messages algorithm. Its structure has three layers: \(b+3\) rounds of full-information flooding, a local View-Transform, and a classical \((b+1)\)-round BA algorithm on the transformed view.

The core repair primitive is the three-round Local-Majority operator \(LM_3\). For a path prefix \(p_0p_1\ldots p_i\), a process examines, for each intermediate \(p_{i+1}\), the multiset of values reported one level deeper. If at least \(n-m-b-1\) of these coincide on a value \(v\), that \(v\) is inserted into a multiset \(S\); if more than half of \(S\) agree on some \(v'\), \(LM_3\) outputs \(v'\), otherwise \(\bot\). Under the resilience condition
\[
n > \max\{2m+d,\;2d+m,\;b\}+2b,
\]
\(LM_3\) reconstructs the correct prefix value whenever the last process in the prefix is non-Byzantine.

The View-Transform \(VT^p\) applies \(LM_3\) bottom-up through process \(p\)’s \(k\)-round view. It iterates from depth \(k-3\) to \(0\), replacing higher-level entries by locally repaired values and then discarding the two lowest levels that were consumed by the repair. The associated Scenario-Transform \(ST\) is the proof device showing that all non-Byzantine local transforms are coherent: after transformation, there exists a single \((n,0,0,b)\)-scenario whose views are exactly the transformed views of the non-Byzantine processes.

BA++ then simply computes \(\sigma'_p = VT^p(\sigma_p)\) and runs Lamport’s \(OM\) on \(\sigma'_p\). Because \(ST(\sigma)\) is a classical scenario with only the original Byzantine set \(B(\sigma)\), the classical correctness proof applies unchanged. The result is a \((b+3)\)-round synchronous protocol in which every non-Byzantine process decides at the end of the same fixed round bound. In this model, “simultaneous Byzantine agreement” is therefore realized by a repair transformation: partial faults are filtered out locally until the remaining execution is indistinguishable from a standard synchronous Byzantine agreement instance [1511.08232].

## 4. Optimality, time bounds, and extensions of the partial-failure model

The resilience condition above is tight not only combinatorially but also algorithmically. The base construction uses \(b+3\) rounds because the View-Transform consumes three levels of full-information history. When \(n \ge \max\{2m+2d,\;b+1\}+2b\), the paper replaces \(LM_3\) by a two-round local-majority operator \(LM_2\), reducing the total to \(b+2\) rounds. This yields an explicit time-versus-redundancy trade-off: larger \(n\) relative to \(m\) and \(d\) makes faster repair possible [1511.08232].

The matching lower bounds are also parameter-sensitive. If \(m,d>0\), Byzantine agreement requires at least \(b+2\) rounds. In some regimes \(b+3\) rounds are necessary; for example, when \(b=0\) but partial faults are present and
\[
\max\{2m+d,\;2d+m\} < n < 2m+2d,
\]
there is no two-round BA algorithm for an \((n,m,d,0)\)-system. BA++ is therefore time-optimal up to the one-round gap already identified in the improved \(LM_2\) regime.

The same paper extends the model in two orthogonal directions. With signed messages, the solvability condition becomes
\[
\text{BA with signed messages solvable} \iff n > m+d+b,
\]
a direct analogue of the classical \(n>b\) signed-messages threshold. For eventually synchronous static \((n,m,d,b)\)-systems, the paper introduces reliable-broadcast primitives \(RB_2\) and \(RB_3\) and proves that BA is solvable iff the same resilience condition as in synchrony holds:
\[
n > \max\{2m+d,\;2d+m,\;b\}+2b.
\]
This suggests that the bound is intrinsic to the fault model rather than to strict round synchrony.

A related partially synchronous line of work takes a different route. Oper transforms any deterministic synchronous BA algorithm \(\mathcal{A}^S\) into a deterministic partially synchronous BA algorithm \(Oper(\mathcal{A}^S)\) while preserving resilience \(n \ge 3t+1\) and worst-case per-process bit complexity up to constant factors. Its Crux module has a synchronicity property: if all correct processes enter a view within \(\Delta_{\mathit{shift}}\) after GST and do not abandon it before \(\Delta_{\mathit{total}}\), then every correct process decides by \(\tau+\Delta_{\mathit{total}}\). In this setting, simultaneity becomes bounded-skew completion of a common view rather than exact round coincidence [2402.10059].

## 5. Timing models: exact simultaneity, bounded skew, and asynchronous co-termination

In a synchronous authenticated model with signatures, simultaneity can be sharpened considerably. A protocol of Abraham, Gueta, Malkhi, Reiter, and Spiegelman operates with \(n=2f+1\), uses a four-round synod iteration (`status`, `propose`, `commit`, `notify`), and solves synchronous authenticated Byzantine agreement in expected 8 rounds; its state-machine replication variant commits a slot every 3 rounds in the common case. The central safety device is a post-commit quorum of size \(2f+1\), created by synchrony after a commit certificate of size \(f+1\), which forces future proposals to remain consistent with the committed value [1704.02397].

Once strict synchrony is dropped, exact simultaneous decision is no longer the right abstraction. In full asynchrony, the strongest attainable coordination is probabilistic eventual co-termination. An almost-surely terminating asynchronous Byzantine agreement protocol with optimal resilience \(n>3t\) and polynomial expected complexity was obtained via shunning verifiable secret sharing: either a VSS instance behaves correctly or some faulty process becomes permanently ignored by a nonfaulty one in future sessions. This yields almost-sure termination but not exact real-time simultaneity [0808.1505].

Later asynchronous work reduced communication while retaining near-synchronous decision clustering in a probabilistic sense. A VRF-based asynchronous BA protocol against a delayed-adaptive adversary achieves \(\widetilde{O}(n)\) expected word complexity and \(O(1)\) expected time. Its analysis shows that if any correct process first decides in round \(r\), then with high probability every other correct process either decides in round \(r\) with the same value or synchronizes its estimate and decides in round \(r+1\). This is not simultaneous agreement in the strict synchronous sense, but it is almost simultaneous in the operational sense of tightly clustered decisions [2002.06545].

A useful misconception to avoid is therefore that “simultaneous” always means identical physical decision time. The literature represented here uses at least three distinct notions: exact fixed-round decision in synchronous systems, bounded-skew completion after GST in partial synchrony, and one-round-clustered or almost-sure co-termination in asynchrony.

## 6. Richer decision objects and formal perspectives

The scalar BA formulation is only one endpoint of the subject. A topological study of Byzantine \(k\)-set agreement shows that the protocol complex of a Byzantine synchronous system can remain \((k-1)\)-connected for up to \(\lceil t/k \rceil\) rounds, implying that \(\lceil t/k \rceil + 1\) rounds are necessary for Byzantine \(k\)-set agreement. For \(k=1\), this recovers the classical \(t+1\)-round lower bound for Byzantine agreement. This provides a formal route from simultaneous consensus on one value to simultaneous limitation of the system to at most \(k\) decision values [1505.04224].

Another axis of generalization is Byzantine lattice agreement. Here correct processes need not decide the same lattice element; instead their decisions must be comparable, each decision must include the process’s own proposal, and the join of the decisions is bounded by correct inputs plus at most \(f\) Byzantine contributions. In synchronous systems, one paper gives algorithms in \(3\log n+3\) rounds and \(4\log f+3\) rounds with resilience \(f<n/3\), while another gives a synchronous \(O(\log f)\)-round algorithm with signatures for \(f<n/3\), a no-signature variant for \(f<n/4\), and a transformer from lattice agreement to synchronous Generalised Lattice Agreement. This replaces exact equality by a chain condition, which is a weaker but often more scalable form of simultaneous agreement for sets, snapshots, and commutative replicated state machines [1910.14141] [2001.02670].

A different generalization is multidimensional Byzantine agreement. In the MBA protocol, each process proposes a vector \(v_i=(v_{i,1},\dots,v_{i,m})\), and the protocol decides componentwise, outputting either a widely supported value or a special value \(L\) for irreconcilable disagreement in each coordinate. The design combines a Multidimensional Graded Consensus with a Multidimensional Binary Byzantine Agreement, halts with probability 1, and assumes \(n \ge 3t+1\). The number of communication steps is upper-bounded by \(5+3X_{l,h}\), where \(l\) is the number of ambiguous components and \(h\) the honest-node ratio. This is simultaneous Byzantine agreement in the literal sense of agreeing on many coordinates at once [2105.13487].

The most abstract perspective is epistemic. The 2025 study formalizes SBA(\(S\)) and shows that the natural knowledge-based program decides exactly when agent \(i\) satisfies
\[
B^N_i\!\left(CB_N(\exists v)\right),
\]
that is, when \(i\) believes as a nonfaulty process that it is common belief among the nonfaulty processes that some initial value \(v\) exists. Implemented relative to a fixed information-exchange protocol and failure model, this yields an SBA protocol that is optimal among all protocols using the same exchange; under stronger conditions on how actions are hidden from the exchange, it is even an optimum. This recasts simultaneous Byzantine agreement as an epistemic threshold phenomenon: decision is justified exactly when common belief has become strong enough to support same-round action [2508.03418].

Source: https://www.emergentmind.com/topics/simultaneous-byzantine-agreement