Files
papers/lux-mchain-mpc/sections/12-concrete-security-analysis-2025-revision.tex
zooqueen ebe2ebcb3c 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

57 lines
2.5 KiB
TeX

\section{Concrete Security Analysis (2025 Revision)}
\subsection{Forgery Probability}
We compute concrete security margins for the deployed MPC configurations. For a $(t, n)$-threshold scheme, the forgery probability depends on the underlying hardness assumption:
\begin{table}[h]
\centering
\begin{tabular}{@{}llll@{}}
\toprule
\textbf{Scheme} & \textbf{Configuration} & \textbf{Hardness} & \textbf{$\Pr[\text{Forge}]$} \\
\midrule
CGG21 & 11-of-15 (ETH) & ECDLP + Paillier & $< 2^{-127}$ \\
MuSig2 & 11-of-15 (BTC) & OMDL in ROM & $< 2^{-128}$ \\
FROST & 7-of-10 (XRPL) & OMDL in ROM & $< 2^{-128}$ \\
Corona & 15-of-21 (PQ) & LWE ($n=630$, $q=2^{32}$) & $< 2^{-128}$ \\
Dual-sig & CGG21 + Corona & ECDLP $\times$ LWE & $< 2^{-255}$ \\
\bottomrule
\end{tabular}
\label{tab:concrete-security}
\end{table}
\subsection{Liveness at Scale}
For $n = 100$ validators, $t = 67$ threshold, individual uptime $p = 0.999$:
\begin{equation}
\Pr[\text{unavailable}] = \Pr[\text{Binomial}(100, 0.999) < 67] < 2^{-139.6}
\end{equation}
This is computed via the exact binomial CDF. The expected available nodes $\mu = 99.9$ exceeds the threshold by $32.9$ nodes, providing substantial headroom. See Appendix of the companion Lux Bridge paper \cite{lux-bridge-2025} for the full derivation.
\subsection{Contract-Level Security Fixes}
Four critical vulnerabilities were identified in the bridge smart contracts that interact with M-Chain:
\begin{enumerate}
\item \textbf{C-01}: \texttt{bridgeMint()} in LRC20B lacked daily limits. Fixed: configurable \texttt{dailyMintLimit} with automatic period reset.
\item \textbf{C-02}: \texttt{MINTER\_ROLE} was conflated with \texttt{DEFAULT\_ADMIN\_ROLE}. Fixed: separate role with explicit grant/revoke.
\item \textbf{C-03}: MPC-signed messages used \texttt{block.timestamp} as nonce. Fixed: monotonic counter nonce per bridge contract.
\item \textbf{C-04}: Withdraw nonce used predictable hash. Fixed: sequential per-user counter nonce.
\end{enumerate}
All fixes verified by Halmos symbolic proofs (68 \texttt{check\_} functions across the ecosystem).
\subsection{Formal Verification}
The M-Chain threshold cryptography is backed by Lean~4 proofs at \texttt{github.com/luxfi/formal}:
\begin{itemize}
\item \texttt{Crypto/FROST.lean}: FROST correctness and threshold unforgeability
\item \texttt{Crypto/BLS.lean}: BLS aggregation soundness from bilinearity
\item \texttt{Crypto/Corona.lean}: LWE security with concrete parameters ($n=630$, $q=2^{32}$, $\sigma=13744$)
\item \texttt{Consensus/BFT.lean}: $2f+1$ quorum safety for SwapSigTx validation
\end{itemize}