Files
zeekay abf99d05fc 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

70 lines
2.3 KiB
TeX

\section{Teleporter Contract}
\label{sec:teleporter}
%% =========================================================================
The Teleporter is a chain-agnostic contract that implements the wire protocol. One audited Solidity implementation is deployed across all EVM chains. Non-EVM chains receive functionally identical implementations in their native languages, each tested against the same conformance suite (\S\ref{sec:conformance}).
\subsection{Contract Interface}
\begin{lstlisting}[language=Solidity,caption={Core Teleporter interface (simplified)}]
interface ITeleporter {
// User-facing
function deposit(
address token,
uint256 amount,
uint64 dstChainId,
bytes32 recipient
) external;
function withdraw(
bytes32 tag, // RELEASE only
uint64 srcChainId,
uint256 nonce,
address token,
address recipient,
uint256 amount,
bytes calldata proof
) external;
// MPC-submitted
function submitBacking(
address token,
uint256 backing,
uint256 timestamp,
uint64 srcChainId,
bytes calldata proof
) external;
function submitYield(
address token,
uint256 newSharePrice,
uint256 epoch,
uint64 srcChainId,
bytes calldata proof
) external;
// Views
function isNonceUsed(uint64 srcChainId, uint256 nonce)
external view returns (bool);
function backingRatio(address token)
external view returns (uint256);
}
\end{lstlisting}
\subsection{State Variables}
The contract holds five categories of state:
\begin{enumerate}[nosep]
\item \textbf{MPC public key} --- set once at deployment, rotated via 7-day timelock.
\item \textbf{Nonce bitmaps} --- \texttt{mapping(uint64 => mapping(uint256 => bool))}, one per source chain.
\item \textbf{Release counters} --- \texttt{mapping(uint64 => uint256)}, enforcing Property~\ref{prop:seq-nonce}.
\item \textbf{Backing state} --- per-token latest backing amount, timestamp, and derived pause flag.
\item \textbf{Yield state} --- per-token share price numerator and epoch index.
\end{enumerate}
The contract is non-upgradeable. No proxy pattern, no \texttt{delegatecall}, no admin functions beyond timelocked MPC key rotation.
%% =========================================================================