Files
papers/mpc-custody/sections/03-2-of-3-wallet-architecture.tex
zeekayandHanzo Dev 70f6883235 Restore the regulated-markets papers; Lux holds the licences
A July commit removed eight papers on the premise "no license — DEX/non-custodial
only". That premise is wrong: Lux operates an ATS, a broker-dealer, a transfer
agent and a bank, and this material is resold at lux.financial. The merge that
brought main in preserved the removal because the commit stated a reason, which
is how a stale reason outlives the fact it rested on.

Back, at the versions main carried — main never received the removal, so its
copies are the later ones: the ATS architecture, the security-token standard,
smart order routing, institutional custody, MPC custody, post-quantum securities,
the SSB partnership and the CoinBridge brief. 83 files.

Co-authored-by: Hanzo Dev <[email protected]>
2026-08-30 15:58:05 -07:00

83 lines
3.1 KiB
TeX

\section{2-of-3 Wallet Architecture}
\label{sec:wallet}
%% =====================================================================
Each user's wallet uses a $2$-of-$3$ threshold with the following share
distribution:
\begin{table}[h]
\centering
\begin{tabular}{clp{7.5cm}}
\toprule
\textbf{Share} & \textbf{Holder} & \textbf{Role} \\
\midrule
$\mathbf{s}_1$ & User device & Stored in device secure enclave
(iOS Keychain / Android Keystore) \\
$\mathbf{s}_2$ & ATS operator & Auto-co-signs after pre-trade compliance
(KYC, AML, sanctions, offering checks) \\
$\mathbf{s}_3$ & Cold backup & Encrypted to user passphrase, stored in
Shamir backup (S3 + user's custody) \\
\bottomrule
\end{tabular}
\caption{2-of-3 share distribution for user wallets.}
\label{tab:shares}
\end{table}
\begin{theorem}[Non-Custodial Guarantee]
\label{thm:non-custodial}
No single party can produce a valid signature. Specifically:
\begin{enumerate}[nosep]
\item The ATS operator alone cannot move user assets (holds only
$\mathbf{s}_2$; needs $\mathbf{s}_1$ or $\mathbf{s}_3$).
\item The user alone cannot bypass compliance (holds only
$\mathbf{s}_1$; needs $\mathbf{s}_2$ or $\mathbf{s}_3$).
\item A compromised backup alone is useless (holds only
$\mathbf{s}_3$; needs $\mathbf{s}_1$ or $\mathbf{s}_2$).
\end{enumerate}
\end{theorem}
\begin{proof}
By the unforgeability of the threshold signing protocol
(Theorem~\ref{thm:cggmp-uf} for CGGMP21,
Theorem~\ref{thm:frost-uf} for FROST), producing a valid signature
requires at least $t = 2$ shares. Each party holds exactly one share.
Therefore no single party can sign. This holds information-theoretically
for the secret sharing layer (any single share is uniformly random,
independent of the key) and computationally for the signing protocol
(under the OMDL/ECDSA assumptions).
\end{proof}
\subsection{Signing Flows}
\textbf{Normal transaction (user + operator):}
\begin{enumerate}[nosep]
\item User initiates transaction on their device.
\item Device generates partial signature using $\mathbf{s}_1$.
\item ATS operator receives request, runs pre-trade compliance checks.
\item If compliant, operator generates partial signature using
$\mathbf{s}_2$.
\item Signatures are combined into a standard on-chain signature.
\end{enumerate}
\textbf{Device lost (operator + backup):}
\begin{enumerate}[nosep]
\item User proves identity through KYC re-verification.
\item Backup share $\mathbf{s}_3$ is recovered using the user's
passphrase.
\item Operator co-signs with $\mathbf{s}_2$ to authorize a reshare
that generates a new $\mathbf{s}_1$ for the replacement device.
\item The on-chain address does not change (reshare preserves the
aggregate public key).
\end{enumerate}
\textbf{Operator compromise (user + backup):}
\begin{enumerate}[nosep]
\item User activates emergency recovery using device share
$\mathbf{s}_1$ and backup share $\mathbf{s}_3$.
\item Funds are moved to a new threshold address with a fresh
operator share.
\end{enumerate}
%% =====================================================================