mirror of
https://github.com/lux-apps/papers.git
synced 2026-11-03 05:07:46 +00:00
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.
134 lines
5.6 KiB
TeX
134 lines
5.6 KiB
TeX
\section{Securities Compliance}
|
|
|
|
\label{sec:securities}
|
|
% ============================================================
|
|
|
|
\subsection{The Cross-Chain Securities Problem}
|
|
|
|
Security tokens issued under ERC-3643 (T-REX)~\cite{erc3643} maintain on-chain compliance registries that enforce:
|
|
|
|
\begin{enumerate}[nosep]
|
|
\item \textbf{Investor identity}: KYC/AML verified addresses in an identity registry.
|
|
\item \textbf{Jurisdiction}: Country-level transfer restrictions (e.g., US accredited investors only).
|
|
\item \textbf{Lockup}: Time-based transfer restrictions (e.g., 12-month hold after issuance).
|
|
\item \textbf{Accreditation}: Investor qualification (e.g., net worth, income thresholds).
|
|
\item \textbf{Capacity}: Maximum number of holders or per-holder limits.
|
|
\end{enumerate}
|
|
|
|
When a security token is bridged via a conventional protocol, these constraints are stripped. The bridge token on the destination chain has no compliance registry, enabling unrestricted transfer to non-qualified addresses. This violates securities law in every major jurisdiction.
|
|
|
|
\subsection{Compliance-Preserving Teleport}
|
|
|
|
Teleport introduces a compliance-preserving bridge mode for ERC-3643 tokens:
|
|
|
|
\begin{definition}[Securities Bridge Mode]
|
|
\label{def:securities}
|
|
For a security token $T$ with compliance registry $\mathcal{R}_T$ on source chain $\Chain_s$, the securities bridge mode:
|
|
\begin{enumerate}[nosep]
|
|
\item Deploys a mirrored compliance registry $\mathcal{R}_T'$ on destination chain $\Chain_d$.
|
|
\item The MPC signer set attests to registry state, synchronizing $\mathcal{R}_T'$ with $\mathcal{R}_T$.
|
|
\item The bridge token on $\Chain_d$ enforces the same transfer restrictions as $T$ on $\Chain_s$.
|
|
\item Registry updates propagate cross-chain within one attestation period.
|
|
\end{enumerate}
|
|
\end{definition}
|
|
|
|
\subsection{Compliance State Machine}
|
|
|
|
Each security token transfer follows a state machine with compliance checks at every transition:
|
|
|
|
\begin{figure}[h]
|
|
\centering
|
|
\begin{tikzpicture}[
|
|
node distance=1.8cm,
|
|
state/.style={rectangle, rounded corners, draw, minimum width=1.6cm, minimum height=0.8cm, font=\scriptsize, align=center},
|
|
arrow/.style={-{Stealth[length=2mm]}, thick},
|
|
label/.style={font=\scriptsize, text=black!70}
|
|
]
|
|
\node[state] (init) {Initiated};
|
|
\node[state, right of=init, xshift=0.8cm] (kyc) {KYC\\Verified};
|
|
\node[state, right of=kyc, xshift=0.8cm] (lock) {Locked};
|
|
\node[state, below of=kyc, yshift=-0.4cm] (attest) {MPC\\Attested};
|
|
\node[state, below of=lock, yshift=-0.4cm] (mint) {Minted\\(Compliant)};
|
|
\node[state, below of=init, yshift=-0.4cm] (reject) {Rejected};
|
|
|
|
\draw[arrow] (init) -- node[above, label] {check $\mathcal{R}_T$} (kyc);
|
|
\draw[arrow] (kyc) -- node[above, label] {escrow} (lock);
|
|
\draw[arrow] (lock) -- node[right, label] {$\sigma$} (mint);
|
|
\draw[arrow] (kyc) -- node[left, label] {attest} (attest);
|
|
\draw[arrow] (attest) -- node[below, label] {sync $\mathcal{R}_T'$} (mint);
|
|
\draw[arrow] (init) -- node[left, label] {fail} (reject);
|
|
\end{tikzpicture}
|
|
\caption{Securities compliance state machine. Transfers require KYC verification on both source and destination chains before minting.}
|
|
\label{fig:compliance-sm}
|
|
\end{figure}
|
|
|
|
\subsection{Compliance Registry Interface}
|
|
|
|
\begin{lstlisting}[language=Solidity,caption=IComplianceRegistry interface]
|
|
interface IComplianceRegistry {
|
|
// Identity verification
|
|
function isVerified(address investor)
|
|
external view returns (bool);
|
|
function getCountry(address investor)
|
|
external view returns (uint16);
|
|
|
|
// Transfer compliance
|
|
function canTransfer(
|
|
address from,
|
|
address to,
|
|
uint256 amount
|
|
) external view returns (bool);
|
|
|
|
// Lockup enforcement
|
|
function getLockupEnd(address investor)
|
|
external view returns (uint256);
|
|
|
|
// Accreditation
|
|
function isAccredited(address investor)
|
|
external view returns (bool);
|
|
|
|
// Capacity
|
|
function holderCount()
|
|
external view returns (uint256);
|
|
function maxHolders()
|
|
external view returns (uint256);
|
|
}
|
|
\end{lstlisting}
|
|
|
|
\subsection{Settlement Registry}
|
|
|
|
For regulatory reporting, Teleport maintains a settlement registry that records every cross-chain security token transfer with sufficient detail for audit:
|
|
|
|
\begin{definition}[Settlement Record]
|
|
\label{def:settlement}
|
|
A settlement record $\rho = (T, \Chain_s, \Chain_d, \text{from}, \text{to}, a, t, \sigma, \text{complianceHash})$ contains the token, source and destination chains, sender, recipient, amount, timestamp, MPC signature, and a hash of the compliance state at the time of transfer.
|
|
\end{definition}
|
|
|
|
The settlement registry is append-only and indexed by token address and time range. Regulators can query the registry to reconstruct the complete transfer history of any security token across all chains.
|
|
|
|
\subsection{Regulatory Compatibility}
|
|
|
|
\begin{table}[h]
|
|
\centering
|
|
\small
|
|
\begin{tabular}{@{}p{2cm}p{4.8cm}@{}}
|
|
\toprule
|
|
\textbf{Regulation} & \textbf{Teleport Compliance Mechanism} \\
|
|
\midrule
|
|
MiCA~\cite{mica2023} & Cross-chain identity registry sync, transaction reporting via settlement registry \\
|
|
\addlinespace
|
|
SEC Reg D & Accredited investor checks enforced on destination chain; lockup periods preserved \\
|
|
\addlinespace
|
|
SEC Reg S & Country-code transfer restrictions; US persons blocked on non-exempt chains \\
|
|
\addlinespace
|
|
AAOIFI & ShariaFilter + SAB classifications; on-chain fatwa references \\
|
|
\addlinespace
|
|
ERC-3643 & Full T-REX registry mirroring; compliance agent role preserved cross-chain \\
|
|
\bottomrule
|
|
\end{tabular}
|
|
\caption{Regulatory framework compatibility.}
|
|
\label{tab:regulatory}
|
|
\end{table}
|
|
|
|
% ============================================================
|