Files
papers/lp-220-p3q-corona/sections/05-dex-rollup-settlement.tex
zooqueen 12912be1b5 papers: reconcile Corona to Module-LWE (Ringtail-derived, rank-7), not Ring-LWE rank-1
- canonical lux-corona-pq paper: rank-7 Module-LWE (A in R_q^{8x7}, q=48-bit), Module-SIS
- scrub residual Corona Ring-LWE/R-LWE labels across ethos-of-lux, pqsafe-il5,
  lux-whitepaper, lux-quasar-composition, lp-020; Corona<->Pulsar = parameter regime,
  both Module-LWE (not rank-1-vs-rank-k)
- LLM.md: drop stale 'Corona as rank-1' wobble note; align to code/Ringtail params
- rebuild affected PDFs
2026-06-20 01:59:25 -07:00

95 lines
4.9 KiB
TeX

\section{Application: DEX Rollup Settlement to Z-Chain}
\label{sec:dex-rollup}
The DEX matching path (Lux Lightspeed DEX~\cite{luxlightspeeddex}) fills
orders at hundreds of millions per second per GPU on the D-Chain, far
above any single chain's finality rate. To anchor that throughput
trustlessly, per-market fill batches roll up to the Z-Chain and are
verified there through the P3Q family at slot \texttt{0x012205}. This
section places Corona (kind $0x02$) in that settlement pipeline; the
measured verify rates belong to the sibling kinds, and Corona is the
optional Module-LWE parameter-diversity leg.
\subsection{Two verification rungs}
DEX rollup settlement uses a two-rung ladder, both callable at the same
P3Q slot:
\begin{enumerate}[leftmargin=2em,nosep]
\item \textbf{Attestation rung (venue-trust).} The sequencer signs each
per-market batch with a P3Q kind~$0x01$ (Pulsar / FIPS-204 ML-DSA-65)
threshold signature. The Z-Chain contract calls
\texttt{P3Q.verify(0x01, \ldots)} to confirm the batch was produced
by the venue's threshold quorum. This rung trusts the venue's signer
set but is cheap: the ML-DSA-65 verify path is measured at
$\sim$\num{4714} verifies per second.
\item \textbf{Validity rung (trustless).} For trust-minimized
settlement the sequencer additionally produces a STARK/FRI validity
proof of correct matching, verified by the \texttt{starkfri} verifier
(LP-221~\cite{lp221}) --- a cSHAKE256 / Goldilocks PQ Plonky3-fork
verifier. This rung proves the fills are correct without trusting the
signer set. The current verifier is measured at $\sim$\num{986}
proofs per second against a \textbf{toy AIR}; this figure is the
operative number and is explicitly not a production-circuit
measurement.
\end{enumerate}
The attestation rung is fast and venue-trusting; the validity rung is
slower and trustless. A venue chooses the rung (or runs both) per its
trust requirements.
\subsection{Where Corona fits}
Corona (kind $0x02$) is the \emph{Module-LWE cross-family insurance leg}
for the attestation rung, not a separate settlement mechanism. A
value-bearing DEX rollup that wants independence from the Module-LWE
assumption underlying ML-DSA-65 signs each batch with \emph{both} a
Pulsar (kind $0x01$) and a Corona (kind $0x02$) threshold signature and
requires both \texttt{P3Q.verify} calls to return \texttt{true}, exactly
as in Section~\ref{sec:corona-kind}'s use case. A Module-LWE break that
compromises the Pulsar attestation does not compromise the Corona
attestation; the rollup's settlement remains cryptographically anchored.
The cost discipline of Section~\ref{sec:corona-kind} applies unchanged:
Corona's \SI{5000000}{gas} makes the second leg appropriate for
value-bearing markets (custody, treasury, regulated-securities venues)
and prohibitive for high-volume markets, which settle on the kind~$0x01$
attestation rung alone (optionally backed by the starkfri validity rung).
As noted throughout this paper, Corona's GPU dispatch is projected and
its verifier core is not yet wired; the DEX settlement path that needs a
second lattice family today uses the measured kind~$0x01$ rung, with
Corona reserved at its dispatch entry until its threshold library lands.
\subsection{Bundled settlement: $K \times V \times \text{markets}$}
Per-fill, per-venue verification does not scale: at the
attestation-rung's $\sim$\num{4714} verifies per second, a chain that
verified one signature per fill would cap settlement far below the
matcher's fill rate. The settlement model therefore bundles. A single
Z-Chain settlement object aggregates $K$ signer attestations across $V$
venues across many markets into one verification event:
\begin{itemize}[leftmargin=2em,nosep]
\item \textbf{$K$ signers.} The threshold quorum per venue contributes
$K$ partial signatures aggregated into one threshold signature that
verifies in a single \texttt{P3Q.verify} call.
\item \textbf{$V$ venues.} Independent venues' batches are aggregated
into one settlement object rather than verified one venue at a time.
\item \textbf{Many markets.} Each venue's per-market arenas (Lux
Lightspeed DEX) contribute their batch roots to the bundle, so a
single verification covers many books.
\end{itemize}
Because one verification amortizes over $K \times V \times
\text{markets}$ fills, the effective settled-fill rate at fleet scale is
\textbf{projected} to exceed $10^9$ fills per second of finality ---
this is a fleet-aggregation projection, not a single-verifier
measurement. The per-verifier measured rates ($\sim$\num{4714}/s
attestation, $\sim$\num{986}/s validity on a toy AIR) are the operative
numbers; the $>$$10^9$ figure is what those rates compose to once the
bundle factor $K \times V \times \text{markets}$ is applied across a
multi-node Z-Chain settlement fleet. No single P3Q verifier reaches that
rate.
%% ============================================================