Files
papers/lux-security-token-standard/sections/05-controller-operations-with-mpc.tex
zeekay 4a753bb639 papers: reorganize into per-paper dirs, add Antje Worring as co-author
Restructured from flat .tex/.pdf files into per-paper subdirectories.
Added Antje Worring as co-author on all papers.
Synced PDFs to pdfs/ for download site.
2026-04-18 21:50:07 -07:00

67 lines
2.6 KiB
TeX

\section{Controller Operations with MPC}
\label{sec:controller}
\subsection{Threshold Controller}
In the original Arca \texttt{st-contracts}, the controller was a single Ethereum address. If that key was compromised, the attacker could force-transfer any holder's securities. The Lux standard replaces the single controller with an MPC threshold controller.
Controller operations (forced transfers, redemptions, document updates) require a $t$-of-$n$ threshold signature from a controller quorum. The default configuration uses 2-of-3:
\begin{enumerate}[nosep]
\item \textbf{Issuer share}: Held by the securities issuer.
\item \textbf{Platform share}: Held by the ATS operator \cite{lux-ats-architecture}.
\item \textbf{Regulatory share}: Held by the regulatory custodian or compliance officer.
\end{enumerate}
\begin{lstlisting}[language=Solidity,caption={MPC-controlled forced transfer.}]
contract SecurityToken is ISecurityToken {
address public mpcController; // MPC threshold address
modifier onlyController() {
require(msg.sender == mpcController, "not controller");
_;
}
function controllerTransfer(
address from, address to, uint256 value,
bytes calldata data, bytes calldata operatorData
) external override onlyController {
// Controller can transfer regardless of restrictions
// Used for: court orders, regulatory seizures, error correction
_transfer(from, to, value);
emit ControllerTransfer(msg.sender, from, to, value, data, operatorData);
}
function controllerRedeem(
address holder, uint256 value,
bytes calldata data, bytes calldata operatorData
) external override onlyController {
_burn(holder, value);
emit ControllerRedemption(msg.sender, holder, value, data, operatorData);
}
}
\end{lstlisting}
The \texttt{mpcController} address is the public key derived from the distributed key generation ceremony. No single party ever possesses the full private key.
\subsection{Controller Action Types}
\begin{table}[H]
\centering
\caption{Controller actions and their legal bases.}
\label{tab:controller-actions}
\begin{tabular}{lp{6.5cm}}
\toprule
\textbf{Action} & \textbf{Legal Basis} \\
\midrule
Forced transfer & Court order, regulatory directive \\
Forced redemption & Issuer buyback, regulatory delisting \\
Account freeze & SAR investigation, OFAC designation \\
Document update & Prospectus amendment, offering circular update \\
Partition migration & Corporate action (merger, conversion) \\
Emergency pause & Material adverse event, security incident \\
\bottomrule
\end{tabular}
\end{table}