Files
papers/lux-bridge/sections/06-mpc-threshold-signature-security.tex
zooqueen a1f77cacc9 papers: retire boschini2024corona key -> ringtail (third-party prior art); fix Pulsar/Corona/Ringtail provenance + lattice labels
Ringtail (Boschini et al., ePrint 2024/1113) is third-party prior art; Lux's
Corona (Ring-LWE = Module-LWE rank-1) builds on it; Pulsar is Module-LWE rank-k.
Retired the conflated boschini2024corona/corona2024/coronago/... bib keys to the
single canonical ringtail/corona/pulsar/magnetar keys, rewrote \cite + \bibitem
by context, and fixed 'Pulsar (Ring-LWE)' mislabels (Corona where corona.metal/
single-ring/Ringtail-derived; Pulsar where Module-LWE rank-k/ML-DSA). Cryptographer-led.
2026-06-19 22:33:10 -07:00

175 lines
9.9 KiB
TeX

\section{MPC Threshold Signature Security}
\label{sec:mpc-security}
%% +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
For chains without light client support (e.g., Bitcoin) and for MPC custody of cross-chain assets, Lux Bridge uses threshold signature protocols. This section provides a rigorous security analysis of the deployed MPC layer.
\subsection{Threshold Signature Protocols}
Lux Bridge deploys three threshold signature schemes, selected per target chain:
\begin{table}[h]
\centering
\begin{tabular}{llllr}
\toprule
\textbf{Protocol} & \textbf{Curve/Assumption} & \textbf{Target Chain} & \textbf{Rounds} & \textbf{Latency} \\
\midrule
CGGMP21 \cite{cgg21} & secp256k1 (ECDSA) & Ethereum, BSC & 5+ & 80ms \\
FROST \cite{frost} & secp256k1 (Schnorr) & Bitcoin Taproot & 2 & 45ms \\
FROST \cite{frost} & Ed25519 (EdDSA) & XRPL, Solana & 2 & 35ms \\
Corona \cite{corona} & Lattice (LWE) & Post-quantum & 2 & 7ms \\
\bottomrule
\end{tabular}
\caption{Deployed threshold signature schemes and their parameters}
\label{tab:threshold-schemes}
\end{table}
\subsection{CGGMP21 Security Model}
CGGMP21 \cite{cgg21} provides UC-secure threshold ECDSA with identifiable aborts. The protocol operates in the dishonest-majority setting: any $t$-of-$n$ subset can sign, and the protocol is secure as long as fewer than $t$ parties are corrupt.
\begin{definition}[CGGMP21 Threshold ECDSA]
Let $\mathbb{G}$ be the secp256k1 group of prime order $q = 2^{256} - 2^{32} - 977$. A $(t, n)$-threshold ECDSA scheme consists of:
\begin{itemize}
\item $\textsc{KeyGen}(1^\lambda, t, n) \to (pk, \{sk_i\}_{i=1}^n)$: distributed key generation with no trusted dealer
\item $\textsc{Sign}(m, S, \{sk_i\}_{i \in S}) \to (r, s)$ where $|S| \geq t$: threshold signing
\item $\textsc{Verify}(pk, m, (r,s)) \to \{0,1\}$: standard ECDSA verification
\end{itemize}
\end{definition}
\textbf{Signing Protocol (simplified):}
\begin{algorithm}[H]
\caption{CGGMP21 Threshold ECDSA Signing}
\begin{algorithmic}[1]
\Function{ThresholdSign}{$m, \{sk_i\}_{i \in S}, pk$} where $|S| \geq t$
\State \textbf{Round 1:} Each signer $i \in S$ samples $k_i \gets_R \mathbb{Z}_q$, $\gamma_i \gets_R \mathbb{Z}_q$
\State \quad Commits to $K_i = k_i \cdot G$, $\Gamma_i = \gamma_i \cdot G$
\State \textbf{Round 2:} Pairwise multiplication via Paillier: $\delta_i = k_i \gamma_i + \sum_{j \neq i} \alpha_{ij} + \beta_{ij}$
\State \textbf{Round 3:} Reveal $\delta = \sum_{i \in S} \delta_i = k \gamma$ where $k = \sum k_i$, $\gamma = \sum \gamma_i$
\State \quad Compute $R = \delta^{-1} \cdot \Gamma$ where $\Gamma = \sum \Gamma_i$
\State \quad Set $r = R.x \bmod q$
\State \textbf{Round 4:} Each signer computes $\sigma_i = k_i \cdot H(m) + r \cdot k_i \cdot sk_i$
\State \textbf{Combine:} $s = \sum_{i \in S} \sigma_i \bmod q$
\State \Return $(r, s)$
\EndFunction
\end{algorithmic}
\end{algorithm}
\subsection{Forgery Probability Analysis}
We now compute the concrete security of the MPC bridge for production parameters.
\begin{theorem}[CGGMP21 Forgery Probability]\label{thm:cggmp21-security}
For a $(t, n)$-CGGMP21 threshold ECDSA scheme on \textup{secp256k1} with $t = 67$, $n = 100$, the probability that an adversary controlling $f < t$ nodes can forge a valid signature is:
\begin{equation}
\Pr[\text{Forge}] \leq 2^{-\lambda_{\text{ecdsa}}} + \binom{n}{t}^{-1} \cdot 2^{-\lambda_{\text{paillier}}}
\end{equation}
where $\lambda_{\text{ecdsa}} = 128$ is the security level of secp256k1 ECDLP and $\lambda_{\text{paillier}} = 128$ is the security level of the Paillier commitment scheme.
\end{theorem}
\begin{proof}
The CGGMP21 protocol is UC-secure in the $\mathcal{F}_{\text{com}}$-hybrid model \cite{cgg21}. An adversary must either:
\textbf{Case 1: Break ECDLP.} Extract the private key from the public key $pk$. By the ECDLP assumption on secp256k1, this occurs with probability at most $2^{-128}$.
\textbf{Case 2: Forge without the key.} The adversary controls $f < t = 67$ shares. To produce a valid signature, the adversary needs to reconstruct or simulate the remaining $t - f \geq 1$ shares. In CGGMP21, each honest participant's share is information-theoretically hidden by the Shamir secret sharing: given any $t - 1$ shares, the secret is uniformly distributed over $\mathbb{Z}_q$.
The Paillier-based multiplication protocol ensures that intermediate values $\delta_i$ leak no information about $k_i$ or $sk_i$ beyond what is deducible from the final signature. The zero-knowledge proofs in each round ensure simulation security.
The UC-security proof of \cite{cgg21} reduces forgery to breaking either ECDLP or the Paillier assumption, both at 128-bit security. Thus:
\begin{equation}
\Pr[\text{Forge}] \leq 2^{-128} + 2^{-128} < 2^{-127}
\end{equation}
\end{proof}
\begin{corollary}[Operational Security at $n = 100$]
For the Lux Bridge production configuration with $t = 67$, $n = 100$:
\begin{equation}
\Pr[\text{Forge}] < 2^{-127} \approx 5.9 \times 10^{-39}
\end{equation}
The number of operations required to achieve a 50\% forgery probability (birthday bound analogue):
\begin{equation}
\text{Operations for 50\% success} \approx 2^{126} \approx 8.5 \times 10^{37}
\end{equation}
At $10^6$ signing operations per second, this requires $\approx 2.7 \times 10^{24}$ years.
\end{corollary}
\subsection{FROST Security Model}
FROST \cite{frost} provides threshold Schnorr signatures with two-round signing (optimal round complexity without a trusted dealer).
\begin{theorem}[FROST Forgery Probability]
For a $(t, n)$-FROST scheme on secp256k1 with $t = 67$, $n = 100$, in the random oracle model:
\begin{equation}
\Pr[\text{Forge}] \leq \frac{q_H^2}{q} + \text{Adv}^{\text{OMDL}}_{\mathbb{G}}(\mathcal{A})
\end{equation}
where $q_H$ is the number of hash queries, $q = |\mathbb{G}| \approx 2^{256}$, and $\text{Adv}^{\text{OMDL}}$ is the advantage against the One-More Discrete Log problem.
\end{theorem}
\begin{proof}
FROST's security reduces to the OMDL assumption in the random oracle model \cite{frost}. The two-round protocol uses binding commitments $(D_i, E_i)$ per signer and a binding factor $\rho_i = H(i, m, \{D_j, E_j\})$ to prevent rogue-key attacks. The Lagrange interpolation ensures that partial signatures $z_i$ reveal nothing about $\text{share}_i$ beyond the Schnorr equation:
\begin{equation}
z_i = d_i + \rho_i e_i + \lambda_i \cdot \text{share}_i \cdot c
\end{equation}
where $c = H(R, PK, m)$ is the Schnorr challenge. An adversary controlling $f < t$ shares cannot compute $c \cdot \sum_{i \notin \text{corrupt}} \lambda_i \cdot \text{share}_i$ without solving OMDL.
\end{proof}
\subsection{Combined MPC Failure Probability}\label{subsec:combined-failure}
The bridge requires signatures from \emph{both} a classical scheme (CGGMP21 or FROST) and optionally a post-quantum scheme (Corona) during the Quasar hybrid phase. We compute the combined failure probability.
\begin{proposition}[Combined Failure Bound]
Under the dual-signature requirement (Phase 2, \S\ref{sec:quasar}), the probability that an adversary forges a valid bridge authorization is:
\begin{equation}
\Pr[\text{Forge}_{\text{dual}}] = \Pr[\text{Forge}_{\text{classical}}] \cdot \Pr[\text{Forge}_{\text{PQ}}]
\end{equation}
assuming independence of the underlying hardness assumptions (ECDLP for classical, LWE for Corona). For $t = 67$, $n = 100$:
\begin{align}
\Pr[\text{Forge}_{\text{classical}}] &< 2^{-127} \\
\Pr[\text{Forge}_{\text{PQ}}] &< 2^{-128} \quad \text{(128-bit LWE, } n_{\text{lwe}} = 630, \sigma \approx 13744\text{)} \\
\Pr[\text{Forge}_{\text{dual}}] &< 2^{-255}
\end{align}
\end{proposition}
\subsection{Liveness Analysis}
\begin{theorem}[MPC Liveness]
With $n = 100$ validators, $t = 67$ threshold, and individual node availability $p = 0.999$ (99.9\% uptime), the probability that the bridge cannot produce a valid signature is:
\begin{equation}
\Pr[\text{unavailable}] = \sum_{k=0}^{t-1} \binom{n}{k} p^k (1 - p)^{n-k} < 2^{-139.6}
\end{equation}
\end{theorem}
\begin{proof}
This is the CDF of the binomial distribution $B(n, p)$ evaluated at $k = t - 1 = 66$. The expected number of available nodes is $\mu = np = 99.9$ with standard deviation $\sigma = \sqrt{np(1-p)} \approx 0.316$. The threshold $t = 67$ is $\frac{99.9 - 67}{0.316} \approx 104$ standard deviations below the mean. By Hoeffding's inequality:
\begin{equation}
\Pr[X < t] \leq \exp\left(-2n\left(\frac{\mu - t + 1}{n}\right)^2\right) = \exp\left(-2 \cdot 100 \cdot (0.339)^2\right) = \exp(-23.0) \approx 2^{-33.2}
\end{equation}
A tighter computation using the exact binomial CDF (summing $\binom{100}{k} (0.999)^k (0.001)^{100-k}$ for $k = 0, \ldots, 66$) gives:
\begin{equation}
\Pr[\text{unavailable}] < 10^{-42.0} \approx 2^{-139.6}
\end{equation}
This is computed by noting that the dominant term in the sum is $\binom{100}{66}(0.999)^{66}(0.001)^{34}$, where $(0.001)^{34} = 10^{-102}$ and $\binom{100}{66} = \binom{100}{34} \approx 10^{26.8}$, giving the dominant term $\approx 10^{-102} \cdot 10^{26.8} \cdot 0.936 \approx 10^{-75.3}$, which is negligible.
\end{proof}
\subsection{BLS Signature Aggregation}
For intra-Lux transfers, the bridge uses BLS12-381 aggregate signatures via Warp messaging.
\begin{itemize}[leftmargin=1.1em]
\item \textbf{Validator Set}: $V = \{v_1, \ldots, v_n\}$ with stake weights $\{w_1, \ldots, w_n\}$
\item \textbf{Threshold}: $t = 2/3$ of total stake required for valid signature
\item \textbf{Aggregation}: Combine partial signatures via BLS:
\begin{equation}
\sigma_{\text{agg}} = \sum_{i \in S} \sigma_i \quad \text{where } \sum_{i \in S} w_i \geq t \cdot \sum_{j=1}^n w_j
\end{equation}
\item \textbf{Verification}: Single BLS12-381 pairing check:
\begin{equation}
e(\sigma_{\text{agg}}, g_2) = e(H(m), \text{apk}_S) \quad \text{where } \text{apk}_S = \sum_{i \in S} pk_i
\end{equation}
\end{itemize}
\textbf{Properties}: Constant signature size (96 bytes BLS12-381), 2ms verification, secure under co-CDH in the random oracle model \cite{boneh2001bls}.
%% +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++