Files
zeekay 663cc83ca3 docs(papers): ZAP stack + cert profile modes + pitch decks (LP-186..300)
Companion LaTeX papers to luxfi/LPs:
- lp-200-zap-stack: full ZAP-as-substrate paper (10-layer model, deco-
  mplected concerns, performance).
- lp-200-lux-vs-avalanche-diff: code-translation appendix.
- lp-203-gpu-native-verify, lp-205-pipelined-quasar, lp-208-dag-mempool,
  lp-209-mysticeti-ordering, lp-210-block-stm, lp-211-cross-shard-atomic,
  lp-217-cert-profile-modes, lp-218-zap-p3q-pq-rollup,
  lp-220-p3q-corona-magnetar, lp-221-stark-fri-verifier,
  lp-300-schema-registry.

Pitch / outreach decks (luxcover.sty templated):
- blackrock-nahmii-pitch, corporate-dao-stack-analysis,
  nahmii-patent-acquisition, pq-patent-family-future-infringers,
  lux-substrate-platform-pitch, w3a-foundation-membership,
  multi-validator-scale, vfs-archive-cost-study.

Edits aligning to LP-217 / LP-200:
- lp-020-quasar-consensus 02-system-model + 08-performance.
- lp-073-pulsar 11-quasar.
- lp-103-omnichain-explorer 03-chain-support.
- lp-104-graph-engine.
- lp-201-zap-universal-wire/wire-inventory.csv.
- lp-306-lx-social-dex sections/02.
- lux-adoption-roadmap, lux-chain-architecture,
  lux-consensus-engines/08-composition, lux-crypto-agility,
  lux-evm-precompile-engineering/02, lux-fhe-smart-contracts/05,
  lux-quasar-composition/04+06+10, lux-reproducible-builds.
- INDEX.md cross-links the new papers.
2026-06-10 22:35:37 -07:00

146 lines
5.4 KiB
TeX

\section{Wire Schemas}
Rollup transaction envelopes are ZAP frames in the
\texttt{0xE0}--\texttt{0xEF} rollup schema range. The umbrella
LP-200 reconciles the range against LP-211 (cross-shard wire
\texttt{0xE2}--\texttt{0xE7}) and LP-208 (DAG header/body, current
allocation \texttt{0xF0}--\texttt{0xF1}).
\begin{table}[h]
\centering
\small
\begin{tabular}{@{}lllp{5cm}@{}}
\toprule
\textbf{Schema} & \textbf{Envelope} & \textbf{Kind} & \textbf{Purpose} \\
\midrule
\texttt{0xE0} & \texttt{RollupBatchTx} & \texttt{0x40} & Sequencer commit of a batch \\
\texttt{0xE1} & \texttt{RollupChallengeTx} & \texttt{0x41} & Fraud-proof challenge for optimistic rollups \\
\texttt{0xE2} & \texttt{RollupExitTx} & \texttt{0x42} & User exit from rollup to parent L1 \\
\texttt{0xE3} & \texttt{RollupGenesisTx} & \texttt{0x43} & Rollup-creation tx at deploy time \\
\texttt{0xE4}--\texttt{0xEF} & reserved & --- & Future rollup-VM envelopes \\
\bottomrule
\end{tabular}
\caption{Rollup wire schemas. Note: per LP-211, schemas
\texttt{0xE2}--\texttt{0xE7} are reserved for cross-shard wire;
the umbrella allocation in LP-200 resolves this so that
LP-218 rollup envelopes use \texttt{0xE0}, \texttt{0xE1},
plus higher slots in the rollup range. The exact final
schema-ID-to-name mapping is reconciled in the LP-200 schema map.}
\label{tab:schemas}
\end{table}
\subsection{RollupBatchTx (\texttt{0xE0}, Kind \texttt{0x40})}
Fixed section (offset table):
\begin{table}[h]
\centering
\small
\begin{tabular}{@{}rlrp{6cm}@{}}
\toprule
\textbf{Offset} & \textbf{Field} & \textbf{Size} & \textbf{Description} \\
\midrule
$0$ & Kind & $1$ & \texttt{0x40} \\
$1$ & Version & $1$ & \texttt{0x01} \\
$2$ & SequencerID & $20$ & Sequencer node ID (or threshold-group ID for $t$-of-$n$) \\
$22$ & PrevRoot & $32$ & State root before this batch \\
$54$ & NewRoot & $32$ & State root after this batch \\
$86$ & BatchHash & $32$ & \texttt{sha256(concat(tx\_i bytes))} \\
$118$ & BatchNum & $8$ & Monotonic batch counter per rollup \\
$126$ & TxCount & $4$ & $N$ -- number of txs in batch \\
$130$ & PulsarSigOff & $4$ & Offset to Pulsar threshold sig in tail \\
$134$ & GroupPubKeyOff & $4$ & Offset to Pulsar group public key in tail \\
$138$ & ZKProofOff & $4$ & Offset to STARK / Groth16 proof (zero if optimistic) \\
$142$ & TxFramesOff & $4$ & Offset to packed list of tx ZAP frames \\
\bottomrule
\end{tabular}
\caption{\texttt{RollupBatchTx} field layout.}
\label{tab:batchtx}
\end{table}
Variable-length tail: Pulsar sig, group pubkey, optional ZK proof,
packed tx frames. The tx frames are the exact same ZAP buffers the
sequencer received from clients -- no re-encode, no re-frame.
\subsection{RollupChallengeTx (\texttt{0xE1}, Kind \texttt{0x41})}
Submitted by any peer to challenge an optimistic rollup batch
during its challenge window.
\begin{table}[h]
\centering
\small
\begin{tabular}{@{}rlrp{6cm}@{}}
\toprule
\textbf{Offset} & \textbf{Field} & \textbf{Size} & \textbf{Description} \\
\midrule
$0$ & Kind & $1$ & \texttt{0x41} \\
$1$ & Version & $1$ & \texttt{0x01} \\
$2$ & ChallengedBatchID & $32$ & \texttt{sha256} of the challenged \texttt{RollupBatchTx} \\
$34$ & ChallengerID & $20$ & Challenger node ID \\
$54$ & FraudWitnessOff & $4$ & Offset to fraud witness in tail \\
$58$ & BondAmount & $8$ & Challenger bond (slashable if invalid) \\
\bottomrule
\end{tabular}
\caption{\texttt{RollupChallengeTx} field layout.}
\label{tab:challengetx}
\end{table}
Tail: fraud witness -- typically a single tx ZAP frame plus a state
witness showing the sequencer applied the tx incorrectly. The
Z-Chain re-executes the tx witness; if the sequencer's claimed new
root disagrees, the batch is rejected and the sequencer is slashed.
Omitted entirely from ZK rollups (no challenge window).
\subsection{RollupExitTx (\texttt{0xE2}, Kind \texttt{0x42})}
User exits a rollup back to the parent L1 by proving inclusion of a
withdrawal record in a finalized batch.
\begin{table}[h]
\centering
\small
\begin{tabular}{@{}rlrp{6cm}@{}}
\toprule
\textbf{Offset} & \textbf{Field} & \textbf{Size} & \textbf{Description} \\
\midrule
$0$ & Kind & $1$ & \texttt{0x42} \\
$1$ & Version & $1$ & \texttt{0x01} \\
$2$ & UserAddress & $20$ & Parent L1 address receiving the exit \\
$22$ & BatchID & $32$ & Anchored batch ID \\
$54$ & ExitAmount & $32$ & uint256 -- amount being exited \\
$86$ & TokenID & $20$ & Token contract address on rollup \\
$106$ & MerkleProofOff & $4$ & Offset to state-membership proof \\
\bottomrule
\end{tabular}
\caption{\texttt{RollupExitTx} field layout.}
\label{tab:exittx}
\end{table}
\subsection{RollupGenesisTx (\texttt{0xE3}, Kind \texttt{0x43})}
Submitted once at rollup deploy time.
\begin{table}[h]
\centering
\small
\begin{tabular}{@{}rlrp{6cm}@{}}
\toprule
\textbf{Offset} & \textbf{Field} & \textbf{Size} & \textbf{Description} \\
\midrule
$0$ & Kind & $1$ & \texttt{0x43} \\
$1$ & Version & $1$ & \texttt{0x01} \\
$2$ & RollupID & $20$ & Globally-unique rollup ID \\
$22$ & DeployerAddress & $20$ & Parent L1 deployer address \\
$42$ & RollupMode & $1$ & \texttt{0x00} optimistic, \texttt{0x01} ZK \\
$43$ & CertModeFloor & $1$ & LP-217 cert mode required on parent L1 \\
$44$ & ChallengeWindowBlocks & $8$ & Optimistic window (zero for ZK) \\
$52$ & InitialRootOff & $4$ & Offset to initial state root \\
$56$ & SequencerPubKeyOff & $4$ & Offset to sequencer Pulsar group pubkey \\
$60$ & ConfigOff & $4$ & Offset to rollup-specific config blob \\
\bottomrule
\end{tabular}
\caption{\texttt{RollupGenesisTx} field layout.}
\label{tab:genesistx}
\end{table}