1 Introduction

1.1 Motivation

Byzantine agreement (BA) and secure multi-party computation (MPC) are two fundamental and widely explored problems in distributed computing and cryptography.

The general problem of MPC allows a set of n parties to correctly carry out an arbitrary computation, without revealing anything about their inputs that could not be inferred from the computed output [45, 46]. Such guarantees must hold even when a subset of the parties are corrupted and actively deviate from the protocol specification. BA can be seen as an instance of MPC, in which the function to evaluate guarantees agreement on a common output [42, 44] and privacy is not a requirement. Protocols for BA are often used as building blocks within larger constructions, including crucially in MPC protocols, and have received renewed attention in the context of blockchain protocols (starting with [38]).

There are two prominent communication models in the literature when it comes to the design of such primitives. In the synchronous model, parties have synchronized clocks and messages are assumed to be delivered within some (publicly known) delay \(\varDelta \). Protocols in this setting achieve very strong security guarantees: under standard setup assumptions, BA [23, 31] and MPC [4, 5, 7, 15, 18, 19, 21, 26, 27, 29, 43] are achievable even when up to \(t<n/2\) parties are corrupted. However, the security of synchronous protocols is often completely compromised as soon as the synchrony assumptions are violated (for example, if even one message is delayed by more than \(\varDelta \) due to unpredictable network delays). This is particularly undesirable in real-world applications, where even the most stable networks, such as the Internet, occasionally experience congestion or failures. In the asynchronous model, no timing assumptions are needed, and messages can be arbitrarily delayed. Protocols designed in this model are robust even in unpredictable real-world networks, but the security guarantees that can be achieved are significantly weaker. For example, protocols in this realm can only tolerate up to \(t < n/3\) corruptions [8, 14, 25].

As a consequence, when deploying protocols in real-world scenarios, one has to decide between employing synchronous protocols—risking catastrophic failures in the case of unforeseen network delays—or settling for the weaker security guarantees of asynchronous protocols.

1.2 Contributions

A recent line of work [9, 11] provides BA and MPC protocols that are secure up to \(t_s < n/2\) corruptions when the network is synchronous, and \(t_a\le t_s\) corruptions when the network is asynchronous, for the optimal trade-off \(t_a + 2t_s < n\).

Such protocols strive to achieve the best of both models, but current solutions are far from being efficient, especially when it comes to running time; in this paper, we focus on minimizing round complexity when the network is synchronous. This is of primary importance in typical scenarios, where the network is stable and synchronous most of the time, but may suffer from unexpected congestion.

Current BA and MPC protocols in this realm [9, 11] require a linear number of rounds in the number of parties. Moreover, known MPC protocols [11] also have linear round complexity in the depth of the circuit to evaluate.

This is in contrast to the efficiency of state-of-the-art purely synchronous protocols: fixed-round BA protocols (Monte-Carlo type) require only \(O(\kappa )\) rounds, and BA protocols with probabilistic termination (Las-Vegas type) require an expected constant number of rounds. Furthermore, current MPC protocols only require a constant number of broadcast rounds.Footnote 1 We therefore ask the following natural question.

figure a

We answer this question affirmatively by providing the following results.

Round-Efficient Synchronous BA with Asynchronous Fallback. We obtain the first BA protocols in this realm that are round efficient when the network is synchronous and with the optimal trade-off \(t_a+2t_s < n\), by providing fixed-round and expected constant-round constructions. In doing so, we completely characterize the feasibility of a primitive that we believe to be of independent interest: a round-efficient BA that is secure in a synchronous network for up to \(t_s\)-corruptions, and retains some weak validity guarantee even in an asynchronous network up to \(t_a\)-corruptions. We show that its optimal tradeoff is \(2t_a + t_s < n\) and \(t_s < n/2\). As a side result, we also provide a simpler construction of the primitive for the trade-off \(t_a+2t_s < n\). We then use this primitive as a fundamental building block to design further round-efficient primitives: broadcast protocols with similar guarantees, and also synchronous BA/MPC protocols with asynchronous fallback.

Round-Efficient Synchronous MPC with Asynchronous Fallback. We obtain the first synchronous MPC protocol with asynchronous fallback with optimal guarantees (i.e. \(t_a + 2t_s < n\) and \((n-t_s)\)-output quality as in [11]) that requires a constant number of all-to-all broadcast/BA invocations. In particular, the round complexity is independent of the depth of the circuit. When instantiating the broadcast/BA protocols with our constructions (in their fixed-round version), we achieve a total round complexity of \(O(\kappa )\).Footnote 2 For this, we adapt techniques based on garbled circuits [5, 20, 46] to our setting.

1.3 Related Work

Protocols achieving security guarantees in both synchronous and asynchronous networks have only begun to be studied in relatively recent works. Closest to ours are works by Blum et al. [9, 11], which consider the problem of BA and MPC achieving security guarantees in both communication models. Our work improves upon the round efficiency of these protocols. In the same setting, the work in [10] considers the problem of state-machine replication (SMR).

The work in [28] introduces a variant of the purely synchronous model, which allows for network partitions, motivated by eclipse attacks. In this model, the adversary is allowed to disconnect a certain fraction of parties from the rest of the network in each round. BA and MPC protocols tolerating the optimal corruption threshold in this model are also provided. In [2], similar results are achieved for SMR. These results are crucially different from ours, as they rely on the fact that synchrony is maintained in part of the network. In contrast, our protocols give guarantees even if the network is fully asynchronous.

Other works that provide hybrid security guarantees include BA achieving guarantees in synchronous or partially synchronous networks [37], or guarantees against active corruptions in a synchronous network and fail-stop in an asynchronous network [34].

A different line of work [35, 36, 39, 40] has recently investigated protocols that achieve responsiveness. These protocols operate under a synchronous network, and provide the additional guarantee that parties obtain output as fast as the network delay allows. Note that these works do not provide any security guarantees when the network is not synchronous.

2 Model

We consider a set of n parties \(\mathcal {P} = \{P_1, \dots , P_n\}\). We denote by \(\kappa \) the security parameter.

2.1 Communication and Adversarial Models

We consider a complete network of authenticated channels. Our protocols strive to be secure in the two main communication models in the literature: the synchronous and the asynchronous models.

In the synchronous model, parties have access to synchronized clocks, and all messages are delivered within a known delay \(0 \le \varDelta \in \mathbb {R}\). In this setting, protocols can be conveniently described as proceeding in rounds: parties begin the protocol simultaneously, and the r-th round identifies the time interval \([(r-1)\varDelta , r\varDelta )\) for all integers \(r \ge 1\). If a party receives a message within this time interval, we say they receive a message in round r. When a party sends a message in round r, it means they send it at time \((r-1)\varDelta \). Within each round, the adversary can schedule the delivery of messages arbitrarily. In particular, we consider a rushing adversary that generates the messages of corrupted parties after seeing all messages sent by honest parties.

In the asynchronous model, parties do not have access to synchronized clocks, and the adversary can schedule the delivery of messages arbitrarily. However, the adversary cannot drop messages, meaning that all messages are eventually delivered.

We consider a static adversary that can corrupt parties in an arbitrary manner at the beginning of the protocol.Footnote 3

2.2 Cryptographic Primitives

Public-Key Infrastructure. We assume that parties have access to a public-key infrastructure. This means parties agree on a set of public keys \((\texttt {pk}_1, \dots , \texttt {pk}_n)\) and party \(P_i\) holds the secret key \(\texttt {sk}_i\) associated with \(\texttt {pk}_i\).

Definition 1

A (digital) signature scheme is a triple \(({\mathsf {Sgn}},{\mathsf {Vfy}},{\mathsf {Kgn}})\) of algorithms such that:

  • given the security parameter \(\kappa \), the key generation algorithm \({\mathsf {Kgn}}\) outputs a public/secret key pair \(({\mathtt {pk}}, {\mathtt {sk}}) \in \mathcal {PK}\times \mathcal {SK}\);

  • given a secret key \({\mathtt {sk}} \in \mathcal {SK}\) and a message \(m \in \{0,1\}^*\), the signing algorithm \({\mathsf {Sgn}}\) outputs \(\mathcal {S} \ni \sigma := {\mathsf {Sgn}}(m, {\mathtt {sk}})\);

  • given a message \(m \in \{0,1\}^*\), a public key \({\mathtt {pk}} \in \mathcal {PK}\), and a signature \(\sigma \in \mathcal {S}\), the verifying algorithm \({\mathsf {Vfy}}\) outputs \({\mathsf {Vfy}}(m, \sigma , {\mathtt {pk}}) \in \{0,1\}\);

  • \({\mathsf {Vfy}}(m, \sigma , {\mathtt {pk}}) =1\) if and only if \(\sigma = {\mathsf {Sgn}}(m, {\mathtt {sk}})\) where \(({\mathtt {pk}}, {\mathtt {sk}})\) is a key pair output by \({\mathsf {Kgn}}\).

We require the signature scheme to be unforgeable against chosen message attacks.

Coin-Flip. Parties have access to a \(\mathsf {Coin}\)-\(\mathsf {Flip}\) functionality, parametrized by t, that allow mutually distrustful parties to generate a common uniformly random bit.

figure b

Such a functionality can be realized in the asynchronous model (e.g. [1, 14, 41]) under general assumptions up to \(t<n/3\) corruptions, or even 1-round using unique threshold signatures in the random oracle model (e.g. [12]) up to \(t<n/2\) corruptions.

3 Definitions

The definitions we give are somewhat non-standard, out of necessity to allow for different abort behaviors depending on the network condition (synchronous/asynchronous), which is unknown to the parties at the start of the protocol. If an honest party outputs symbol \(\top \), this means they detected (during the execution) that the network is asynchronous. Whenever desirable, our definitions are equivalent to the standard notions.

3.1 Agreement Primitives

Byzantine agreement (BA) allows a set of parties (each holding an input) to agree on a common value, even when a subset of parties has arbitrary behavior.

Definition 2

(Byzantine agreement). Let \(\varPi \) be a protocol executed by parties \(P_1, \dots , P_n\) where each party \(P_j\) holds input \(v_j \in \{0,1\}\) and terminates upon generating an output \(f_j \in \{0, 1, \top \}\). We say protocol \(\varPi \) achieves

  • (t-validity) if whenever up to t parties are corrupted: if there is v such that each honest party holds input \(v_j = v\), then every honest party outputs \(f_j = v\).

  • (t-weak validity) if whenever up to t parties are corrupted: if there is v such that each honest party holds input \(v_j = v\), then every honest party outputs \(f_j \in \{v, \top \}\).

  • (t-consistency) if whenever up to t parties are corrupted: there is \(v \in \{0,1, \top \}\) such that each honest party outputs \(f_j = v\).

  • (t-liveness) if whenever up to t parties are corrupted: no honest party outputs \(f_j = \top \).

Together, the t-consistency and t-liveness properties imply the more widely adopted consistency notion. If a protocol \(\varPi \) achieves t-validity, t-consistency, and t-liveness, we say it achieves t-security (or that it is t-secure).

Weak consensus (WC) is a primitive that achieves a weaker form of agreement compared to BA: it guarantees agreement among all the parties that output a bit, but parties are allowed to output a special symbol \(\bot \).

Definition 3

(Weak consensus). Let \(\varPi \) be a protocol executed by \(P_1, \dots , P_n\) where each party \(P_j\) holds input \(v_j \in \{0,1\}\) and terminates upon generating an output \(f_j \in \{0, 1, \bot , \top \}\). We say protocol \(\varPi \) achieves

  • (t-validity) if whenever up to t parties are corrupted: if there is v such that each honest party holds input \(v_j = v\), then each honest party outputs \(f_j = v\).

  • (t-weak validity) if whenever up to t parties are corrupted: if there is v such that each honest party holds input \(v_j = v\), then all honest parties output \(f_j \in \{v, \top \}\).

  • (t-weak consistency) if whenever up to t parties are corrupted: if an honest party outputs \(f_j = v \in \{0,1\}\), no honest party outputs \(f_j = 1-v\).

  • (t-liveness) if whenever up to t parties are corrupted: no honest party outputs \(f_j = \top \).

3.2 Broadcast Primitives

Broadcast (BC, sometimes called Byzantine broadcast) allows a designated party, called the sender, to consistently send a message to multiple parties in the presence of active adversarial behavior.

Definition 4

(Broadcast). Let \(\varPi \) be a protocol executed by parties \(P_1, \dots , P_n\) where a designated party \(P^*\) holds input \(v^* \in \{0, 1\}\) and each party \(P_j\) terminates upon generating an output \(f_j \in \{0, 1, \top \}\). We say protocol \(\varPi \) achieves

  • (t-validity) if whenever up to t parties are corrupted: if the sender \(P^*\) is honest, then each honest party outputs \(f_j = v^*\).

  • (t-weak-validity) if whenever up to t parties are corrupted: if the sender \(P^*\) is honest, then each honest party outputs \(f_j \in \{v^*, \top \}\).

  • (t-consistency) if whenever up to t parties are corrupted: there is \(v \in \{0,1,\top \}\) such that each honest party outputs \(f_j = v\).

Gradecast (GBC) is a primitive that is similar to broadcast, but achieves a weaker form of consistency guarantees.

Definition 5

(Gradecast). Let \(\varPi \) be a protocol executed by parties \(P_1, \dots , P_n\) where a designated sender \(P^*\) holds input \(v^* \in \{0,1\}\) and each party \(P_j\) terminates upon generating an output value and a grade \((f_j, g_j) \in \{0, 1, \bot \} \times \{0, 1, 2\}\). We say protocol \(\varPi \) achieves

  • (t-graded validity) if whenever up to t parties are corrupted: if \(P^*\) is honest, then all honest parties output \((v^*, 2)\).

  • (t-graded consistency) if whenever up to t parties are corrupted:

    1. a.

      there is a \(v \in \{0, 1\}\) such that all honest parties output either (v, 2), (v, 1) or \((\bot , 0)\).

    2. b.

      if some honest party outputs (v, 2) for any \(v \in \{0, 1\}\), no honest party outputs \((\bot , 0)\).

  • (t-weak-graded validity) if whenever up to t parties are corrupted in an execution of \(\varPi \): if \(P^*\) is honest, then each honest party outputs either \((v^*, 2)\), \((v^*, 1)\) or \((\bot , 0)\).

3.3 Multi-party Computation

A protocol for multi-party computation (MPC) allows a set of n mutually distrustful parties (each holding an input \(v_i)\) to correctly compute a function \(g(v_1, \dots , v_n)\) without revealing anything about their inputs that could not be inferred from the output. The security of MPC is usually described in the UC framework [13]. At a high-level, a protocol is secure if it is “indistinguishable” from an ideal functionality with the desired properties.

We recall the ideal functionality for MPC with full security (where parties are guaranteed to obtain the correct output), and with L-output quality (the number of inputs taken into account for the computation), as introduced in [11].

figure c

A weaker notion of security is also of interest. In MPC with unanimous output, the ideal world adversary can choose whether all honest parties receive the correct output or they all receive symbol \(\top \). We denote ideal functionality describing this security notion by \(\mathcal {F}_\mathsf {MPC} ^{\mathsf {uout},L}\).

Definition 6

An MPC protocol \(\varPi \) achieves t-full security (t-unanimous output) with L-output quality if it UC-realizes functionality \(\mathcal {F}_{\mathsf {MPC}}^{{\mathsf {sec}},L}\) (\(\mathcal {F}_{\mathsf {MPC}}^{{\mathsf {uout}},L}\)), whenever up to t parties are corrupted in an execution of \(\varPi \).

4 Round-Efficient Byzantine Agreement with Asynchronous Weak Validity

We study the feasibility and efficiency of BA protocols that are \(t_s\)-secure when the network is synchronous, and at the same time achieve \(t_a\)-weak validity when the network is asynchronous. This primitive is of independent interest, as it is used to construct BA protocols with asynchronous fallback (see Sect. 5). Moreover, it turns out to be fundamental in the design of further distributed protocols, for example to obtain constant-round synchronous broadcast protocols with asynchronous weak validity (see Sect. F), which in turn are used to construct synchronous MPC protocols with asynchronous fallback [11].

In this section, we completely characterize the threshold conditions under which such a primitive exists, and provide different round-efficient constructions (fixed-round and with probabilistic termination).

In Sect. 4.2, we show a fixed-round BA protocol that runs in \(O(\kappa )\) rounds when the network is synchronous. In the full version of this paper [22], one can also find a version running in expected constant-rounds when the network is synchronous.Footnote 4

While the optimal achievable trade-off (see [9]) of a BA protocol with full asynchronous fallback security is \(t_a + 2t_s < n\) and \(t_a \le t_s\) (which together imply \(t_s < n/2\)), we show that there is room for improvement when only requiring asynchronous weak-validity. In this case, we prove the optimal threshold trade-off to be \(2t_a + t_s < n\) and \(t_s < n/2\).

4.1 Weak Consensus with Asynchronous Weak Validity

The main tool in our BA constructions is a round-based weak consensus protocol that is secure in a synchronous network (up to \(t_s\)-corruptions), and achieves weak validity even if the network is asynchronous (up to \(t_a\)-corruptions).

In traditional weak-consensus, parties are allowed to output a symbol \(\bot \), signaling they are unsure about what bit to output. We also allow parties to output symbol \(\top \), which also signals a lack of information necessary to reach agreement, but only due to the network being asynchronous. Distinguishing between these two outcomes is essential, but not trivial. The reason is that, when designing round-based protocols, if the network is asynchronous one cannot take advantage of eventual delivery of messages, since parties only wait for a fixed amount of time \(\varDelta \) per round. Therefore, when an expected message is not delivered within a round, parties cannot decide if 1) the network is synchronous and the sender is corrupted, or 2) the network is asynchronous and the message was delayed by the adversary.

We address this problem by making use of a gradecast (GBC) protocol that achieves graded validity and graded consistency when the network is synchronous, and weak-graded validity when the network is asynchronous (see Sect. B).

By requiring each party to gradecast their input, we can have parties take a non-\(\top \) decision only if they receive at least \(n-t_s\) values with grade 2. Indeed, if the network is synchronous, honest parties output grade 2 in all executions with honest senders. Therefore, less than \(n-t_s\) outputs with grade 2 guarantee that the network is asynchronous and it is safe to output \(\top \).

In case at least \(n-t_s\) values with grade 2 are received, the output determination ensures the required guarantees: party \(P _i\) outputs v if 1) they received (v, 2) from \(n-t_s\) gradecasts, or 2) they received (v, 2) from at least \(n-t_s-t_a\) gradecasts and \((1-v,\cdot )\) from up to \(t_a\); in any other case they output \(\bot \).

In particular, if the network is asynchronous and there are up to \(t_a\) corruptions, weak validity is achieved: any party that does not output \(\top \) has received at least \(n-t_s\) values with grade 2, and \(n - t_s - t_a > t_a\) of those values correspond to the inputs of honest parties. Moreover, when the network is synchronous and up to \(t_s\) parties are corrupted, there cannot be honest parties \(P _i\) and \(P _j\) that output different bits v and \(1-v\), respectively. This is because 1) if \(P _i\) receives \((1-v,\cdot )\) up to \(t_a\) times, then \(P _j\) cannot receive \((1-v,2)\) more than \(t_a\) times, and 2) if \(P _i\) receives (v, 2) at least \(n-t_s\) times, then \(P_j\) receives \((v,\cdot )\) at least \(n-t_s > t_a\) times.

We formally describe the protocol below. Let \(\varPi _\mathsf {GBC} ^{t}\) be a gradecast protocol running in s rounds. The n executions of \(\varPi _\mathsf {GBC} ^{t}\) are to be run in parallel to preserve round-efficiency. Security is proven in Sect. C.

figure d

Lemma 1

Assume protocol \(\varPi _{\mathsf {GBC}}^{\max \{t_a,t_s\}}\) achieves the following security guarantees.

  • When run over a synchronous network: \((\max \{t_s, t_a\})\)-graded validity and \((\max \{t_s,t_a\})\)-graded consistency.

  • When run over an asynchronous network: \((\max \{t_s, t_a\})\)-weak graded validity.

Then, if \(2t_a + t_s < n\) and \(t_s < n/2\), protocol \(\varPi _{\mathsf {WC}}^{t_a, t_s}\left( \varPi _{\mathsf {GBC}}^{\max \{t_a,t_s\}}\right) \) achieves the following security guarantees.

  • When run over a synchronous network: \(t_s\)-liveness, \(t_s\)-validity, \(t_s\)-weak consistency.

  • When run over an asynchronous network: \(t_a\)-weak validity.

When assuming a worse tradeoff \(t_a + 2t_s < n\) and \(t_s \le t_a\) (which is optimal to achieve BA with full asynchronous fallback) one can obtain a simpler and more efficient weak consensus protocol with asynchronous weak validity (see Sect. D for a construction and security proof).

4.2 Fixed-Round Synchronous BA with Asynchronous Weak Validity

We now present a fixed-round synchronous Byzantine agreement protocol with asynchronous weak validity. If the network is synchronous and there are up to \(t_s\) corruptions, agreement is reached with overwhelming probability after \(O(\kappa )\) rounds. Moreover, even when the network is asynchronous and there are up to \(t_a\) corruptions, the protocol achieves weak validity.

Following the traditional Feldman-Micali paradigm [24], parties run a sequence of iterations. Each iteration consists of a weak consensus protocol \(\varPi _{\mathsf {WC}}^{t_a, t_s}\) followed by an invocation to the coin-flip functionality \(\mathcal {F}_\mathsf {CoinFlip} ^{t_s}\), where: 1) parties that obtain a bit as output of \(\varPi _{\mathsf {WC}}^{t_a, t_s}\) keep this value for the next iteration, 2) parties that obtained \(\bot \) adopt the value of the coin, and 3) parties that obtained \(\top \) keep their initial value of the iteration.

Notice that, if the network is synchronous, the output of an honest party in the execution of \(\varPi _{\mathsf {WC}}^{t_a, t_s}\) is binary or \(\bot \). Since weak consensus guarantees that honest parties do not output contradicting bits, and the coin value is uniform and independent of the output of weak consensus, agreement is reached with probability 1/2 per iteration.Footnote 5

Moreover, if the network is asynchronous, weak validity is achieved. The reason is that in each iteration, if all honest parties start with the same value v, then weak validity of \(\varPi _{\mathsf {WC}}^{t_a, t_s}\) ensures that they all output v or \(\top \), and the coin value is ignored. Therefore, they keep v as the value for the next iteration.

We formally describe the protocol below. Security is proven in Section E.

figure e

Lemma 2

Assume protocol \(\varPi _{\mathsf {WC}}^{t_a, t_s}\) achieves the following security guarantees.

  • When run over a synchronous network: \(t_s\)-liveness, \(t_s\)-validity, and \(t_s\)-weak consistency.

  • When run over an asynchronous network: \(t_a\)-weak validity.

Then, protocol \(\varPi _{{\mathsf {SBA}}}^{t_a, t_s}\left( \varPi _{\mathsf {WC}}^{t_a, t_s}, \mathcal {F}_{\mathsf {CoinFlip}}^{t_s}\right) \) achieves the following security guarantees with overwhelming probability.

  • When run over a synchronous network: \(t_s\)-security. Moreover, the protocol runs in \(O(\kappa )\) rounds and achieves simultaneous termination.

  • When run over an asynchronous network: \(t_a\)-weak validity.

4.3 Optimality of Synchronous BA with Asynchronous Weak Validity

In this section we prove the optimality of our constructions with respect to corruption thresholds. More specifically, we show that the tradeoff assumption \(2t_a + t_s < n\) is not only sufficient, but also necessary to obtain BA protocols that are secure up to \(t_s\) corruptions in a synchronous network, and achieve weak validity up to \(t_a\) corruptions in an asynchronous network.

Lemma 3

Assume \(2t_a + t_s \ge n\). There does not exist an n-party Byzantine agreement protocol that is both

  • \(t_s\)-secure when run over a synchronous network;

  • \(t_a\)-weakly valid when run over a synchronous network

Proof

Assume there exists a protocol \(\varPi \) achieving all the above security guarantees. Partition the party set \(\mathcal {P}\) into sets \(S_a, S_b\) and K where \(\#S_a = \#S_b=t_a\) and \(\#K = t_s\).

  • Scenario 1. The network is synchronous. Parties in \(S_a\) participate in \(\varPi \) with input 0. Parties in \(S_b\) participate in \(\varPi \) with input 1. Parties in K are corrupted by the adversary and simply abort.

  • Scenario 2. All messages from parties in K are dropped (delayed for longer than the round time) by the adversary. Parties in \(S_a\) participate in \(\varPi \) with input 0. Parties in \(S_b\) are corrupted by the adversary, but participate in \(\varPi \) as if they were honest with input 1. Parties in K partecipate in the protocol with input 0.

  • Scenario 3. All messages from parties in K are dropped (delayed for time \(\delta > \varDelta \)) by the adversary. Parties in \(S_b\) participate in \(\varPi \) with input 1. Parties in \(S_a\) are corrupted by the adversary and participate in \(\varPi \) as if they were honest with input 0. Parties in K participate in the protocol using input 1.

In scenario 1, parties in \(S_a\) and \(S_b\) output the same value \(b_1 \in \{0,1\}\) by \(t_s\)-consistency and \(t_s\)-liveness of \(\varPi \). In scenario 2, parties in \(S_a\) output 0 or \(\top \) by \(t_a\)-weak validity of \(\varPi \). In scenario 3, parties in \(S_b\) output 1 or \(\top \) by \(t_a\)-weak validity of \(\varPi \). Since the views of parties in \(S_a\) in scenarios 1 and 2 are indistinguishable, and the views of parties in \(S_b\) in scenarios 1 and 3 are indistinguishable, then in scenario 2 (respectively 3) no party in \(S_a\) (respectively \(S_b\)) outputs \(\top \). However, this means that \(0 = b_1 = 1,\) which is a contradiction (here, we assumed parties are deterministic, but the same argument can be adapted to probabilistic parties and their output distributions).    \(\square \)

5 Synchronous BA with Asynchronous Fallback

In order to achieve a BA protocol that is \(t_s\)-secure when the network is synchronous, and \(t_a\)-secure when the network is asynchronous, we use the compiler \(\varPi _{\mathsf {HBA}}^{t_a, t_s}\) introduced by Blum et al. [9]. The compiler assumes 1) a \(t_s\)-secure synchronous BA protocol \(\varPi _\text {1}\) that is \(t_a\)-weakly valid even when run over an asynchronous network, and 2) a \(t_a\)-secure asynchronous BA protocol \(\varPi _\text {2}\) that achieves validity and terminates for a higher corruption threshold \(t_s \ge t_a\) when the network is synchronous. The idea is to run, in sequence, the synchronous BA protocol followed by the asynchronous one. The output from the first protocol is used as input to the second.

Intuitively, when the network is synchronous, security is provided by the synchronous protocol, and preserved by \(t_s\)-validity with termination of the asynchronous one. On the other hand, when the network experiences delays, security is provided by the asynchronous protocol, while \(t_a\)-weak validity of the round-based protocol ensures an adversary cannot break pre-agreement among honest parties.

figure f

Lemma 4

([9], Theorem 3). Assume protocol \(\varPi _\text {1}\) achieves the following security guarantees.

  • When run over a synchronous network: \(t_s\)-security.

  • When run over an asynchronous network: \(t_a\)-weak validity.

Furthermore, assume protocol \(\varPi _\text {2}\) achieves the following security guarantees.

  • When run over a synchronous network: \(t_s\)-validity with termination.

  • When run over an asynchronous network: \(t_a\)-security.

Then, if \(t_a \le t_s\) and \(t_a + 2t_s < n\), protocol \(\varPi _{\mathsf {HBA}}^{t_a, t_s}\left( \varPi _\text {1}, \varPi _\text {2}\right) \) achieves the following security guarantees.

  • When run over a synchronous network: \(t_s\)-security.

  • When run over an asynchronous network: \(t_a\)-security.

By using our round-efficient synchronous BA protocols as the \(\varPi _1\) component of the compiler (the fixed-round version in Sect. 4.2, or the expected constant-round version in the full version [22]), and the asynchronous protocols with increased validity from [9] as the second component \(\varPi _2\),Footnote 6 we obtain the following corollaries.

Corollary 1

Let \(t_a \le t_s\) and \(t_a + 2t_s < n\). There exists a protocol that achieves the following security guarantees with overwhelming probability.

  • When run over a synchronous network: \(t_s\)-security. Moreover, it runs in \(O(\kappa )\) rounds and achieves simultaneous termination.

  • When run over an asynchronous network: \(t_a\)-security.

Corollary 2

Let \(t_a \le t_s\) and \(t_a + 2t_s < n\). There exists a protocol that achieves the following security guarantees with overwhelming probability.

  • When run over a synchronous network: \(t_s\)-security. Moreover, it runs in expected constant number of rounds.

  • When run over an asynchronous network: \(t_a\)-security.

6 Round-Efficient MPC with Asynchronous Fallback

Blum et al. [11] obtain the first MPC protocol that is \(t_s\)-secure in a synchronous network, and \(t_a\)-secure with \((n-t_s)\)-output quality in an asynchronous network (these guarantees are provably optimal).

Their protocol requires black-box access to 1) a Byzantine agreement primitive that is \(t_s\)-secure in a synchronous network and \(t_a\)-secure in an asynchronous network, and 2) a broadcast primitive that is \(t_s\)-secure in a synchronous network and \(t_a\)-weakly valid in an asynchronous network. Their constructions for these primitives (borrowed from [9]) both require O(n) rounds. Moreover, their protocol evaluates the circuit in a gate-by-gate fashion, and therefore requires O(d) communication rounds, where d denotes the multiplicative depth of the circuit representing the function to evaluate.

Using our fixed-round BA and broadcast from Sect. 4.2 and Sect. F, and adapting Yao’s garbled circuit techniques [46], we obtain the first MPC protocol in this realm with optimal security guarantees and that has a total round complexity of \(O(\kappa )\), independent of the circuit depth. We loosely follow the structure of [17].

6.1 Multi-party Garbled Circuits

Let g denote the function to evaluate, represented as a boolean circuit \(\mathsf {circ} _g\) containing only \(\texttt {NAND}\) gates.Footnote 7 In general, the circuit-depth d of \(\mathsf {circ} _g\) depends on g, and MPC protocols following the gate-by-gate paradigm typically require O(d) communication rounds. Using garbled circuit techniques,Footnote 8 we obtain an MPC protocol with round complexity independent of d.

The high-level idea is to use MPC to evaluate a function \(f_\mathsf {GRBL} \) that produces a garbled version of \(\mathsf {circ} _g\), which parties can then evaluate locally. As we will discuss, the function \(f_\mathsf {GRBL} \) can be represented as a circuit whose depth is independent of g.

Roughly speaking, \(f_\mathsf {GRBL} \) outputs an encrypted version of \(\mathsf {circ} _g\), in which all entries of each function table are encrypted using secret keys associated with the corresponding input values. A party holding two input values to a gate, together with the corresponding keys, can decrypt the corresponding entry of the function table and obtain the output of the gate (and the corresponding key). To preserve privacy, the values travelling on each wire are masked by \(\texttt {XOR}\)ing them with random bits. If a party is entitled to learn an output, they are given the corresponding random mask.

The function \(f_\mathsf {GRBL} \) can be represented by a constant-depth circuit. The reason is that once the secret masks and keys for each wire have been generated, the garbled function tables of \(\mathsf {circ} _g\) can be computed in parallel.

Distributed Encryption. There is a complication with the approach we described. To compute encryptions of the function table entries within the MPC, parties need white-box access to an encryption scheme. This is undesirable in itself, but matters are worsened by the fact that the circuit-representations of even the most efficient block-ciphers are fairly large (\(\sim \)6400 \(\texttt {AND}\) gates for AES-128),Footnote 9 making this approach unfeasible.

To overcome this problem, we use a distributed encryption technique due to Damgård and Ishai [20]. Let m denote a plaintext. Instead of computing \(\mathsf {Enc} _k(m)\) within the multi-party computation, m is shared among the parties by means of a secret-sharing scheme (see Sect. A, Definition 8). Party \(P_i\) receives a share \([m]_i\) and a secret key \(K_i\) as output of the computation, and locally computes \(c_i = \mathsf {Enc} _{K_i}([m_i])\). Each party then sends their encrypted shares to all parties. Upon receiving a sufficient number of encrypted shares, a party in possession of the necessary keys can decrypt them and reconstruct the secret (for example, if \(P_j\) is entitled to know the secret, they receive the keys as output from the multi-party computation). This approach extends to the dual-key setting (see Definition 7, Sect. A), and only requires black-box access to the encryption scheme.

Information Checking Protocol. Moving encryption outside the MPC comes at the price of secret-sharing the plaintexts to preserve privacy. In our setting, the secrets are the entries of each function table of \(\mathsf {circ} _g\), together with the key associated with the output value. Since we work (at least when the network is synchronous) with an honest majority, authentication of the shares is necessary to prevent corrupted parties to tamper with the reconstruction phase. This can be achieved by requiring the dealer (in our setting, \(f_\mathsf {GRBL} \)) to sign the shares using digital signatures, but computing signatures within the MPC of \(f_\mathsf {GRBL} \) is also inefficient.

Instead, one can use the Information Checking Protocol by Rabin and Ben-Or [43]. It works over a finite field \(\mathbb {F}_q\). For a secret s, the dealer samples uniformly random elements \((\mathfrak {b}, \mathfrak {y})\), and computes \(\mathfrak {c} = s + \mathfrak {by}\). Party \(P_i\) is given \((s, \mathfrak {y})\): the authentication vector. Another party \(P_j\) (to whom \(P_i\) wishes to forward s at a later time), is given \((\mathfrak {b}, \mathfrak {c})\): the check vector. Upon receiving the couple \((s, \mathfrak {y})\) from \(P_i\), party \(P_j\) can check that \(\mathfrak {c} = s + \mathfrak {by}\). If \(P_i\) is corrupted and wants to send \(s' \ne s\) to \(P_j\), party \(P_i\) has to guess the unique \(\mathfrak {y}'\) solving \(\mathfrak {c} = s'\mathfrak {b} + \mathfrak {y}'\), which they can only do with probability \(1/(q-1)\), as the field element \(\mathfrak {c} - s'\mathfrak {b}\) is distributed according to \(\mathfrak {b}\).

The resulting function \(f_\mathsf {GRBL} \) is formally described below. The wires of \(\mathsf {circ} _g\) are denoted by lower-case greek letters (\(\alpha , \beta , \gamma \), \(\dots \)), and the gates with lower case english letters (abc, \(\dots \)). The input \(b_i\) of party \(P_i\) is a vector containing a boolean encoding of their input to g as well as extra inputs needed to generate randomness.

figure g

In the next section, we describe the MPC protocol we will use to compute \(f_\mathsf {GRBL} \).

6.2 MPC with Linear Round Complexity in d and \(\kappa \) and Asynchronous Fallback

To achieve security in both synchronous and asynchronous networks, we want to compute \(f_\mathsf {GRBL} \) using the compiler from [11]. We recall the construction and its security guarantees below.

figure h

Lemma 5

([11], Theorem 2). Assume protocol \(\varPi _1\) achieves the following security guarantees.

  • When run over a synchronous network: \(t_s\)-security.

  • When run over an asynchronous network: \(t_a\)-unanimous output, \(t_a\)-weak termination and \((n-t_s)\)-output quality.

Furthermore, assume protocol \(\varPi _2\) achieves the following security guarantees.

  • When run over an asynchronous network: \(t_a\)-security with \((n-t_a)\)-output quality.

Then, assuming \(t_a \le t_s\) and \(t_a + 2t_s < n\), protocol \(\varPi _{\mathsf {HMPC}}^{t_s, t_a}\left( \varPi _1, \varPi _2\right) \) achieves the following security guarantees.

  1. 1.

    When run over a synchronous network: \(t_s\)-security.

  2. 2.

    When run over an asynchronous network: \(t_a\)-security and \((n-t_s)\)-output quality.

We provide sub-protocols \(\varPi _1, \varPi _2\) with the security guarantees required by Lemma 5, and that in addition 1) securely evaluate boolean circuits, and 2) require O(d) communication rounds.

We take \(\varPi _1\) to be the synchronous protocol \(\varPi _\mathsf {SMPC} ^{t_a, t_s}\) of [11, Section 4.5], which requires O(d) rounds; it is the only known synchronous protocol to date providing the necessary security guarantees.

However, we cannot use \(\varPi _\mathsf {SMPC} ^{t_s, t_a}\) in a black-box manner, since it evaluates arithmetic circuits defined over “large” fields (\(\#\mathbb {F}_q > n\)), while in our construction it is natural to represent the boolean function \(f_\mathsf {GRBL} \) as a boolean circuit. One solution is to embed the boolean circuit into a larger field through the inclusion map \(i\,:\,\mathbb {F}_2 \rightarrow \mathbb {F}_{q}\) and to represent \(\texttt {NAND}\) gates with arithmetic gates computing \(a(x,y):= 1 - xy\) (it is straightforward to verify that \(i \circ a = a \circ i\)).

To keep actively corrupted parties from giving inputs in \(\mathbb {F}_q \setminus \{0,1\}\), a checking mechanism has to be put into place. The high level idea of \(\varPi _\mathsf {SMPC} ^{t_s, t_a}\) is that the inputs of each party are encrypted using an additively-homomorphic threshold encryption scheme. To ensure correctness, after broadcasting their encrypted inputs, parties must prove (in ZK) knowledge for the corresponding plaintext. In addition, we require parties to prove in ZK that the plaintext lies in \(\{0,1\}\).

The protocol then follows the gate-by-gate paradigm, with additional interaction required to evaluate multiplication gates. After the circuit is evaluated, parties reconstruct the outputs using threshold decryption. A security proof can be obtained as for [11, Theorem 1] with minor changes.

We take \(\varPi _2\) to be the modified version (by Coretti et al. [17]) of protocol \(\pi _{\text {BKR}}\) by Ben-Or et al. [8], which evaluates boolean circuits and requires O(d) rounds. Security is proven in [17, Lemma 2].

Lemma 5, with these choices of \(\varPi _1\) and \(\varPi _2\), yields the following corollary.

Corollary 3

Assume \(t_a \le t_s\) and \(t_a + 2t_s <n\). There exists a protocol \(\varPi _{{\mathsf {HMPC}}}^{t_s, t_a}\) evaluating boolean circuits and requiring O(d) communication rounds achieving the following security guarantees.

  • When run over a synchronous network: \(t_s\)-security.

  • When run over an asynchronous network: \(t_a\)-security and \((n-t_s)\)-output quality.

Our modification of Protocol \(\varPi _\mathsf {SMPC} ^{t_a, t_a}\) [11], used as \(\varPi _1\) in compiler \(\varPi _\mathsf {HMPC} ^{t_a, t_s}\), requires black-box access to:

  1. (i)

    a Byzantine agreement sub-protocol that is \(t_s\)-secure when run over a synchronous network, and \(t_a\)-secure when run over an asynchronous network;

  2. (ii)

    a broadcast sub-protocol that is \(t_s\)-secure when run over a synchronous network, and \(t_a\)-weakly valid when run over an asynchronous network.

At the time of [11], the only known protocols with these guarantees required O(n) rounds,Footnote 10 resulting in O(n) round-complexity of the MPC protocol.

In Sect. F, we present a broadcast protocol \(\varPi _{{\mathsf {SBC}}}^{t_a, t_s}\left( \varPi _{{\mathsf {SBA}}}^{t_a, t_s}\right) \) running in a fixed number of rounds that is weakly valid in asynchronous networks. Our solution is inspired by a synchronous construction that obtains BC from BA, but requires some modifications to achieve security guarantees in asynchronous networks.

Combining this with results from previous sections, we obtain an MPC protocol running in \(O(\kappa )\) rounds with respect to n. More specifically,

  • Lemma 1 (or Lemma 8), Lemma 2, and Lemma 4, guarantee that protocol \(\varPi _{\mathsf {HBA}}^{t_a, t_s}\left( \varPi _{\mathsf {SBA}}^{t_a, t_s}, \varPi _{\mathsf {ABA}}^{t_a, t_s}\right) \) from Sect. 5 (which runs in \(O(\kappa )\) rounds with respect to the number of parties n) achieves the security guarantees (i);

  • Lemma 1, (or Lemma 8), Lemma 2, and Lemma 9, guarantee protocol \(\varPi _{{\mathsf {SBC}}}^{t_a, t_s}\left( \varPi _{{\mathsf {SBA}}}^{t_a, t_s}\right) \) from Sect. F (that also runs in \(O(\kappa )\) rounds with respect to the number of parties n) achieves the security guarantees (ii).

Combining this with Corollary 3, we obtain the following corollary.

Corollary 4

Assume \(t_a \le t_s\) and \(t_a + 2t_s <n\). There exists a MPC protocol with the following properties.

  • When run over a synchronous network: \(t_s\)-security.

  • When run over an asynchronous network: \(t_a\)-security and \((n-t_s)\)-output quality.

  • If the network is synchronous, runs in \(O(\kappa )\) rounds.

  • Runs in O(d) rounds.

Recall that the security guarantees of Corollary 4 are optimal ([11, Theorems 3, 4]).

6.3 Protocol Description

We now present our fully constant-round MPC protocol that is 1) \(t_s\)-secure if the network is synchronous, and 2) \(t_a\)-secure with \((n-t_s)\)-output quality if the network is asynchronous. The construction, that we already discussed, consists of three steps.

  • (Parties jointly) use an MPC protocol with the properties of Corollary 4 to compute function \(f_\mathsf {GRBL} \).

  • (Each party) encrypts the authenticated shares of the entries of each gate of \(\mathsf {circ} _g\) received as output of \(f_\mathsf {GRBL} \) (the keys are also part of the output). They send the resulting ciphertexts to all parties.

  • (Each party) evaluates the circuit locally: given two (masked) inputs to a gate and the corresponding keys, they decrypt the received shares of the corresponding entry of the gate, recovering the (masked) output value and the corresponding key. They do this until all gates are evaluated. Finally, they unmask the accessible outputs.

A phase indicator \(\phi \) guarantees that, if the network is asynchronous, parties do not terminate before sending the encryptions of their shares to other parties. Security is discussed in Sect. G.

figure i

Lemma 6

Suppose that \(t_a \le t_s\) and \(t_a + 2t_s <n\), and assume that protocol \(\varPi _{\mathsf {HMPC}}^{t_s, t_a}\) achieves the security guarantees of Corollary 4. Then, protocol \(\varPi _{\mathsf {CR-HMPC}}^{t_s, t_a}\left( \varPi _{\mathsf {HMPC}}^{t_s, t_a}\right) \) achieves the same security guarantees, and requires a number of rounds independent of the circuit depth of the function to be evaluated, when the network is synchronous.