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

44 lines
2.4 KiB
TeX

\section{Replay Protection}
We identify five distinct classes of replay attack. Each is closed by an independent mechanism.
\subsection{Class 1: Cross-Network Replay}
\textbf{Attack:} A valid message on mainnet is submitted on testnet (or vice versa).
\textbf{Defense:} The domain separator includes \texttt{networkID}. Mainnet and testnet have different network IDs. The domain separator mismatch causes rejection at verification step 1.
\subsection{Class 2: Cross-Chain Replay}
\textbf{Attack:} A valid message destined for chain $B$ is submitted on chain $B'$.
\textbf{Defense:} The \texttt{dstChain} field is bound to the intended destination. Verification step 2 checks $\text{msg.dstChain} = \text{local.chainID}$. Chain $B'$ rejects the message.
\subsection{Class 3: Same-Chain Double Spend}
\textbf{Attack:} A valid message is submitted twice on the same destination chain.
\textbf{Defense:} The destination chain maintains a consumed-nonce mapping per source chain: $\text{consumed}[\text{srcChain}][\text{nonce}] \in \{0, 1\}$. Verification step 7 checks this bitmap. The second submission is rejected.
\subsection{Class 4: Nonce Skip}
\textbf{Attack:} An attacker submits nonce $k+2$ before nonce $k+1$, blocking $k+1$ permanently.
\textbf{Defense:} Nonces are strictly monotonic per source chain: $\text{msg.nonce} = \text{lastNonce}[\text{srcChain}] + 1$. Out-of-order nonces are rejected. The relayer must submit messages in nonce order.
\subsection{Class 5: Stale Message Replay}
\textbf{Attack:} After MPC key rotation, an attacker replays a message signed by the old key set.
\textbf{Defense:} The \texttt{expiry} field enforces a time-to-live. Verification step 5 checks $\text{msg.expiry} > \text{block.timestamp}$. Additionally, the MPC attestation includes the key generation epoch; messages signed by a deprecated key set are rejected.
\begin{theorem}[Replay Completeness]
The five replay protection mechanisms are complete and independent. Every possible replay attack falls into exactly one class, and the corresponding defense prevents it.
\end{theorem}
\begin{proof}
We enumerate all replay dimensions: network identity, chain identity, message identity (nonce), temporal validity, and key validity. Each dimension is protected by exactly one mechanism. The mechanisms are orthogonal: disabling any single mechanism enables exactly one class of replay, not multiple.
\end{proof}