Files
zeekay 98343d238e papers: Mar-3 freeze deliverables for hybrid PQ consensus stack
Quasar Horizon (consensus composition over Pulsar / ML-DSA / BLS lanes
under Prism + LSS lifecycle), Warp 2.0 (Pulse-backed cross-chain envelope
with forward-only v1->v2 migration and lattigo ReadUint64Slice DoS fix),
benchmark report (microbench, reshare, activation, Warp 2.0 verify, Prism
composition, GPU headroom, cross-WAN latency), and NIST IR 8214C-style
submission package (spec, parameter sets, domain separation, serialization,
reference-impl pointers, evaluation report, security analysis, side-channel
considerations).

All four deliverables compile cleanly via pdflatex+bibtex and reference
the canonical proof bucket files at proofs/{definitions,pulsar,lss,quasar}.
No duplication of proof bodies; cite by file path.
2026-03-03 12:00:00 -08:00

114 lines
4.4 KiB
TeX

\section{Implementation}
\label{sec:implementation}
\subsection{Precompile Addresses}
The hybrid primitives are deployed as native EVM precompiles on the Lux C-Chain,
activated at genesis.
\begin{table}[ht]
\centering
\caption{Lux hybrid cryptography precompile addresses.}
\label{tab:precompiles}
\begin{tabular}{llr}
\toprule
\textbf{Address} & \textbf{Primitive} & \textbf{Gas Cost} \\
\midrule
\texttt{0x0600...01} & BLS12-381 sign & 45{,}000 \\
\texttt{0x0600...02} & BLS12-381 verify & 55{,}000 \\
\texttt{0x0600...03} & BLS12-381 aggregate & 12{,}000 \\
\texttt{0x0600...10} & ML-DSA-65 keygen & 120{,}000 \\
\texttt{0x0600...11} & ML-DSA-65 sign & 95{,}000 \\
\texttt{0x0600...12} & ML-DSA-65 verify & 80{,}000 \\
\texttt{0x0600...20} & ML-KEM-768 keygen & 65{,}000 \\
\texttt{0x0600...21} & ML-KEM-768 encapsulate & 50{,}000 \\
\texttt{0x0600...22} & ML-KEM-768 decapsulate & 50{,}000 \\
\texttt{0x0600...30} & Hybrid sign (BLS + ML-DSA) & 150{,}000 \\
\texttt{0x0600...31} & Hybrid verify (BLS + ML-DSA) & 145{,}000 \\
\texttt{0x0600...40} & Hybrid KEM (X25519 + ML-KEM) & 120{,}000 \\
\bottomrule
\end{tabular}
\end{table}
\subsection{Benchmarks}
All measurements on AMD EPYC 7763 (single core, 2.45 GHz), Go~1.22 with SIMD-optimized
NTT from the \texttt{luxfi/lattice} library.
\begin{table}[ht]
\centering
\caption{Cryptographic operation benchmarks.}
\label{tab:benchmarks}
\begin{tabular}{lrr}
\toprule
\textbf{Operation} & \textbf{Latency} & \textbf{Output Size} \\
\midrule
BLS keygen & 10\,$\mu$s & 48\,B (pk) \\
BLS sign & 28\,$\mu$s & 96\,B \\
BLS verify & 1.2\,ms & --- \\
BLS aggregate ($n = 100$) & 42\,$\mu$s & 48\,B \\
\midrule
ML-DSA-65 keygen & 678\,$\mu$s & 1{,}952\,B (pk) \\
ML-DSA-65 sign & 1.4\,ms & 3{,}309\,B \\
ML-DSA-65 verify & 620\,$\mu$s & --- \\
\midrule
ML-KEM-768 keygen & 182\,$\mu$s & 1{,}184\,B (pk) \\
ML-KEM-768 encapsulate & 215\,$\mu$s & 1{,}088\,B (ct) \\
ML-KEM-768 decapsulate & 198\,$\mu$s & 32\,B (ss) \\
\midrule
Hybrid sign (BLS + ML-DSA) & 1.43\,ms & 3{,}405\,B \\
Hybrid verify (BLS + ML-DSA) & 1.82\,ms & --- \\
Hybrid KEM (X25519 + ML-KEM) & 415\,$\mu$s & 1{,}120\,B (ct) \\
\bottomrule
\end{tabular}
\end{table}
\subsection{BLS Same-Message Aggregate Verification}
The Quasar consensus path verifies $n$ BLS signatures over the same
32-byte certificate subject (a leader-broadcast pattern). cevm v0.45
introduced a same-message batched aggregate verifier; cevm v0.47.1
(commit \texttt{6bf0e232}) added a 2-way set-associative 4096-slot
pubkey-decompression cache (FNV1a-64 hash, 48-byte memcmp guard).
At $n{=}1024$ same-message verify lifts from $9.24\times$ to
$\mathbf{16.51\times}$ versus the flat host-blst baseline (LP-137
Phase-3 roll-up; the $\geq 10\times$ target is exceeded by 65\%).
Pairing math itself remains the canonical
\texttt{luxcpp/crypto/bls} c-abi body; the batching plus pubkey-cache
amortization is what produces the published number. Production
binaries link zero blst symbols (cevm v0.46.0 onward, CI-asserted).
\subsection{Signature Size Analysis}
The dominant cost of hybrid signatures is size, not computation. A pure BLS consensus
signature is 48 bytes (aggregated). The hybrid construction adds ML-DSA overhead:
\begin{itemize}[leftmargin=2em]
\item Per-block: 48\,B (BLS aggregate only). No ML-DSA per block.
\item Per-epoch ($E = 100$ blocks): 48\,B (BLS) + $\sim$200\,B (STARK-compressed
ML-DSA proof) = 248\,B total.
\item Annual storage at 1{,}000 epochs/day: $248 \times 1{,}000 \times 365 \approx
90$\,MB/year for epoch proofs. Negligible.
\end{itemize}
\subsection{Migration Path}
The hybrid architecture supports a three-phase migration:
\begin{enumerate}[leftmargin=2em]
\item \textbf{Phase 1 (current)}: Validators generate both BLS and ML-DSA key pairs.
Both are registered in the validator set. Blocks require BLS aggregate only;
ML-DSA signatures are collected but not enforced.
\item \textbf{Phase 2 (enforcement)}: Epoch finality requires both BLS aggregate
and STARK-compressed ML-DSA proof. Blocks still finalized by BLS alone
for speed.
\item \textbf{Phase 3 (post-transition)}: If BLS is demonstrably broken, drop BLS
and rely on ML-DSA/Corona only. The protocol supports this gracefully because
the ML-DSA infrastructure is already deployed and tested.
\end{enumerate}
%% ========================================================================
%% 7. RELATED WORK
%% ========================================================================