mirror of
https://github.com/lux-apps/papers.git
synced 2026-10-30 18:15:21 +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.
33 lines
1.5 KiB
TeX
33 lines
1.5 KiB
TeX
\section{MPC Attestation}
|
|
|
|
|
|
Messages are not self-authenticating. An MPC committee of $n$ nodes provides threshold attestation.
|
|
|
|
\subsection{Signing Protocol}
|
|
|
|
The MPC committee uses CGGMP21~\cite{cggmp2021} for ECDSA threshold signing (EVM-compatible chains) and FROST~\cite{frost2020} for Schnorr threshold signing (non-EVM chains).
|
|
|
|
For a message $M$ with hash $H = \text{keccak256}(\text{abi.encode}(M))$:
|
|
|
|
\begin{enumerate}[leftmargin=2em]
|
|
\item Each MPC node independently verifies the source chain event (deposit confirmation, finality).
|
|
\item Each node that confirms the event produces a signature share over $H$.
|
|
\item The coordinator collects $t$-of-$n$ shares and produces the threshold signature $\sigma$.
|
|
\item The message $(M, \sigma)$ is submitted to the destination chain.
|
|
\end{enumerate}
|
|
|
|
\subsection{Verification on Destination}
|
|
|
|
The destination chain verifier holds the MPC committee's public key (registered on the P-Chain). Verification is a single \texttt{ecrecover} (ECDSA) or Schnorr verification---identical to verifying a single signature. The threshold structure is invisible to the verifier.
|
|
|
|
\subsection{Key Rotation}
|
|
|
|
MPC key rotation occurs via DKG on the M-Chain:
|
|
\begin{enumerate}[leftmargin=2em]
|
|
\item New key shares are generated via proactive secret sharing.
|
|
\item The new public key is registered on the P-Chain.
|
|
\item A transition period accepts signatures from both old and new keys.
|
|
\item After the transition period, old keys are deprecated.
|
|
\end{enumerate}
|
|
|