Files
papers/lp-221-stark-fri-verifier/lp-221-stark-fri-verifier.tex
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

84 lines
2.9 KiB
TeX

\documentclass[11pt,a4paper]{article}
\usepackage{../shared/luxcover}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{amsmath,amssymb,amsfonts}
\usepackage{graphicx}
\usepackage{hyperref}
\usepackage{booktabs}
\usepackage{enumitem}
\usepackage{xcolor}
\usepackage{siunitx}
\usepackage{listings}
\usepackage{url}
\hypersetup{colorlinks=true,linkcolor=black,citecolor=blue,urlcolor=blue}
\sloppy
\hbadness=10000
\hfuzz=20pt
\lstset{
basicstyle=\ttfamily\scriptsize,
breaklines=true,
frame=single,
showstringspaces=false,
}
\title{LP-221: STARK-FRI Verifier Precompile\\
\large A dedicated EVM slot for strict-PQ STARK proofs,\\
orthogonal to the P3Q signature dispatch at 0x012205}
\author{Lux Industries, Inc. \\
\texttt{[email protected]}}
\date{2026-06-04}
\begin{document}
\luxcoverpage
\begin{abstract}
LP-221 specifies the dedicated EVM precompile at slot
\texttt{0x012220} for verifying strict-PQ STARK proofs. The verifier
is a Plonky3 fork with the classical-curve surface stripped out:
\textbf{FRI}~\cite{frieprint} low-degree testing over the
\textbf{Goldilocks} 64-bit prime field, \textbf{cSHAKE256}
(FIPS~202~/ SP~800-185)~\cite{fips202,sp800185} Merkle commitments,
no KZG, no pairings, no elliptic-curve arithmetic. The reference
implementation at \texttt{lux/precompile/starkfri/} (5 files, 22
tests passing under \texttt{-race} in \SI{1.376}{\second} on
darwin/arm64) registers under config key \texttt{starkfriVerify}.
LP-221 is the dedicated allocation that LP-300~\S``Post-quantum
precompile registry'' had recorded as the displaced-Plonky3-fork
placeholder pending dedicated LP allocation. LP-221 is orthogonal
to LP-218: LP-218 owns slot \texttt{0x012205} for PQ
\emph{signature} verification (Pulsar~/ Corona~/ Magnetar
kind-byte dispatched); LP-221 owns slot \texttt{0x012220} for PQ
SNARK \emph{proof} verification. One slot for signatures, one slot
for SNARK proofs, two disjoint use cases, zero overlap. The on-chain
wire format pins \texttt{VersionV1=0x01}, \texttt{MagicHeader="P3Q1"}
preserved verbatim from the pre-rename era for proof-artifact
byte-stability (EasyCrypt~/ Lean~/ Jasmin~/ dudect), and
\texttt{MinInputLength=13} (1 version + 4 proof-len + 4 magic + 4
public-input-len). Gas schedule is \texttt{BaseVerifyGas=200{,}000 +
PerByteGas=10}, sized to the CPU verify cost (\SIrange{5}{10}{\milli\second}
per typical \SI{30}{\kilo\byte} proof). Soundness reduces to
collision resistance of cSHAKE256 modeled as a random oracle; the
parameter set used by the audited backend crate fixes the soundness
error at $\le 2^{-100}$. Completeness is~$1$.
\end{abstract}
\tableofcontents
\newpage
\input{sections/01-introduction}
\input{sections/02-architectural-decision}
\input{sections/03-specification}
\input{sections/04-verifier}
\input{sections/05-cryptographic-properties}
\input{sections/06-constant-time}
\input{sections/07-composition}
\bibliographystyle{plain}
\bibliography{biblio}
\end{document}