Byzantine broadcast

A Byzantine broadcast protocol lets a designated sender hand a value to parties over point-to-point channels so that, even when up to parties, possibly including the sender, deviate arbitrarily, all honest parties output the same value, and that value is the sender’s input whenever the sender is honest — LSP82.

Syntax

A broadcast protocol for parties, with sender index , value space , , and round bound , is a tuple of efficient algorithms:

  • , a trusted setup giving every party and party the private value . In the plain model it is trivial; in a public-key infrastructure is ‘s signing key and lists every party’s verification key.
  • , and for the sender’s input , interactive algorithms that run for synchronous rounds over authenticated point-to-point channels, after which outputs .

Properties

Security

The adversary chooses the sender, the corrupted set and the sender’s input, which matters only for an honest sender. It wins if two honest parties output different values (agreement), if the sender is honest and an honest party outputs a value other than (validity), or if an honest party outputs nothing within rounds (termination). Correctness is the case .

\begin{algorithm}
\algname{Game}
\caption{$\Game^{\mathrm{bc}}_{\Pi,\calA}(\secpar)$}
\begin{algorithmic}
\State $(s, T, m, \stA) \gets \calA(1^\secpar)$
\Comment{$T \subseteq [n]$ with $|T| \le t$, and $m \in \calM$}
\State $(\pp, k_1, \ldots, k_n) \gets \Setup(1^\secpar, n)$
\State Run $\Pi$ for $r(\secpar, n)$ rounds with $P_i(\pp, k_i)$ for $i \notin T$, sender input $m$ if $s \notin T$, and $\calA(\stA, \pp, (k_i)_{i \in T})$ controlling $(P_i)_{i \in T}$
\State $y_i \gets$ the output of $P_i$, or $\bot$ if it has none, for $i \notin T$
\State $w_{\mathrm{agr}} := [\exists\, i, j \notin T : y_i \ne y_j]$; $w_{\mathrm{val}} := [s \notin T \land \exists\, i \notin T : y_i \ne m]$
\Return $w_{\mathrm{agr}} \lor w_{\mathrm{val}} \lor [\exists\, i \notin T : y_i = \bot]$
\end{algorithmic}
\end{algorithm}

A protocol is a broadcast protocol against corruptions if for all efficient corrupting at most parties,

is negligible, and perfectly secure if for every, possibly unbounded, . Byzantine broadcast is achieved when for every there is a broadcast protocol against corruptions, efficient in for each fixed .

Variations

Broadcast against

A broadcast protocol against every corruptions, for every ; Byzantine broadcast against gives it, its adversaries including these — folklore. Over authenticated point-to-point channels without setup, broadcast against corruptions exists, with perfect security, if and only if ; with unforgeable signatures it exists against any number of corruptions — LSP82. With faults no solution exists in a communication graph with fewer than nodes or connectivity below — FLM85; the argument covers randomized protocols and efficient adversaries, so the impossibility holds whatever hardness assumption a protocol uses (no broadcast from authenticated channels) — standard.

Signatures need a public-key infrastructure, and with one the Dolev–Strong protocol achieves broadcast against any in rounds with polynomially many messages, which is round-optimal for deterministic protocols (DS ⇒ Byzantine broadcast) — DS83. With signatures and a public-key infrastructure, Byzantine agreement for runs in an expected constant number of rounds — KK06. Without setup, over private channels, randomized agreement against runs in an expected constant number of rounds — FM88.

Participates in

Builds on Byzantine broadcast

Produces Byzantine broadcast

Barriers