mirror of
https://github.com/lux-apps/papers.git
synced 2026-11-03 05:07:46 +00:00
Bylines, paper authorship, correspondence addresses and the founder blurb under each post named an individual. They name the organisation that published the work instead: the brand on posts and pages, the research byline on papers, and research@ in place of a personal address. Both are what these repositories already used elsewhere — nothing new was coined. Co-authors are untouched. Where a paper named someone else alongside, they stay named; only the one byline changed. Bibliography entries, running heads, PDF metadata and affiliations move with it, so a citation still resolves to whoever the cited paper names. Sample and fixture data uses the placeholder name these tests already use elsewhere, so no assertion changed meaning.
196 lines
7.8 KiB
TeX
196 lines
7.8 KiB
TeX
\documentclass[11pt,a4paper]{article}
|
|
\usepackage{../../shared/luxcover}
|
|
\usepackage[utf8]{inputenc}
|
|
\usepackage[T1]{fontenc}
|
|
\usepackage{amsmath,amssymb}
|
|
\usepackage{graphicx}
|
|
\usepackage{hyperref}
|
|
\usepackage{booktabs}
|
|
\usepackage{enumitem}
|
|
\usepackage{xcolor}
|
|
|
|
\hypersetup{colorlinks=true,linkcolor=black,citecolor=blue,urlcolor=blue}
|
|
|
|
\title{Lux MPTC Experimental Evaluation}
|
|
\author{
|
|
Lux Research\\
|
|
\textit{Lux Industries, Inc.}\\
|
|
\texttt{[email protected]}
|
|
}
|
|
\date{2026-03-03}
|
|
|
|
\begin{document}
|
|
|
|
\luxcoverpage
|
|
|
|
\section*{Abstract}
|
|
|
|
\noindent We present Lux, a hybrid post-quantum consensus architecture for DAG-native chains. Lux separates fast operational finality from durable post-quantum finality. Validators emit Photons over a Nebula DAG substrate; classical BLS aggregates form Beams for low-latency confirmation, while ML-DSA attestations and Pulsar lattice-threshold Pulses provide post-quantum finality over Nebula roots. Prism binds all certificate lanes to the same transcript, and Quasar reaches Horizon finality when the bound lanes verify.
|
|
|
|
\textbf{This document.} The experimental evaluation summary for the NIST MPTC submission. Detailed numbers, methodology, hardware, and reproduction commands live in the companion benchmark report \cite{luxbenchmarks}; this document summarizes the headline results and points at the full report.
|
|
|
|
\section{Headline numbers}
|
|
|
|
All numbers on Apple M1 Max single core, $n = 21$, freeze tag \texttt{v0.1.0-rc1-pq-consensus-freeze}. Full reproduction in \cite{luxbenchmarks}.
|
|
|
|
\subsection{Sign / verify per scheme}
|
|
|
|
\begin{tabular}{@{}lrr@{}}
|
|
\toprule
|
|
\textbf{Scheme} & \textbf{Sign} & \textbf{Verify} \\
|
|
\midrule
|
|
BLS12-381 (single) & 350 \textmu s & 820 \textmu s \\
|
|
BLS aggregate (100 signers) & --- & 875 \textmu s \\
|
|
ML-DSA-65 & 495 \textmu s & 250 \textmu s (cached: 3 \textmu s) \\
|
|
Ed25519 & --- & 205 \textmu s (cached: 1.1 \textmu s) \\
|
|
secp256k1 & --- & 658 ns \\
|
|
Pulsar Sign1 (per party, $K=21$) & 185 ms & --- \\
|
|
Pulsar Sign2 (per party, $K=21$) & 22 ms & --- \\
|
|
Pulsar Verify & --- & 9 ms \\
|
|
Lens Ed25519 (per party) & 110 \textmu s sign & 320 \textmu s verify \\
|
|
\bottomrule
|
|
\end{tabular}
|
|
|
|
\subsection{Reshare benchmarks (LSS)}
|
|
|
|
LSS-Pulsar resharing $(t, n) \to (t, n)$ at sizes $\{3, 7, 21, 64, 128\}$, local-loop simulation:
|
|
|
|
\begin{tabular}{@{}rrr@{}}
|
|
\toprule
|
|
$\mathbf{n}$ & \textbf{Pulsar reshare (ms)} & \textbf{Lens reshare (ms)} \\
|
|
\midrule
|
|
3 & 360 & 0.7 \\
|
|
7 & 570 & 1.8 \\
|
|
21 & 960 & 5.2 \\
|
|
64 & 2440 & 16.5 \\
|
|
128 & 4730 & 33.0 \\
|
|
\bottomrule
|
|
\end{tabular}
|
|
|
|
Lens is $\sim 100$--$200\times$ faster per-party. Lens is classical (curve discrete log); Pulsar is post-quantum (Module-LWE). The trade-off is the production reason both kernels exist.
|
|
|
|
\subsection{Activation cert latency}
|
|
|
|
Pulsar activation cert at $K = 21$:
|
|
|
|
\begin{tabular}{@{}lr@{}}
|
|
\toprule
|
|
\textbf{Phase} & \textbf{Time} \\
|
|
\midrule
|
|
Sign1 + Round1Pre (local-loop) & 480 ms \\
|
|
Sign2 + Combine (local-loop) & 280 ms \\
|
|
Verify & 9 ms \\
|
|
\midrule
|
|
\textbf{Total local-loop} & \textbf{$\sim 760$ ms} \\
|
|
\textbf{Total cross-WAN p99} & \textbf{$\sim 880$ ms} \\
|
|
\bottomrule
|
|
\end{tabular}
|
|
|
|
\subsection{Warp 2.0 envelope verify}
|
|
|
|
Destination-side verify latency, $n = 21$:
|
|
|
|
\begin{tabular}{@{}lr@{}}
|
|
\toprule
|
|
\textbf{Path} & \textbf{Time} \\
|
|
\midrule
|
|
Beam-only & $\sim 900$ \textmu s \\
|
|
Beam + Pulse & $\sim 10$ ms \\
|
|
Full Horizon (Beam + ML-DSA + Pulse) & $\sim 15$ ms \\
|
|
Beam + Groth16-wrapped ML-DSA + Pulse & $\sim 12$ ms \\
|
|
\bottomrule
|
|
\end{tabular}
|
|
|
|
\subsection{Prism composition verify}
|
|
|
|
Consensus-side full Horizon verify on a Lux mainnet bundle:
|
|
|
|
\begin{tabular}{@{}lr@{}}
|
|
\toprule
|
|
\textbf{Step} & \textbf{Time} \\
|
|
\midrule
|
|
Transcript binding check + $\tau$ compute & 17 \textmu s \\
|
|
Beam aggregate verify ($n=21$) & 875 \textmu s \\
|
|
ML-DSA cert set verify (21, parallel) & 5.3 ms \\
|
|
Pulse verify & 9 ms \\
|
|
Validator-set + Nebula linkage check & 38 \textmu s \\
|
|
\midrule
|
|
\textbf{Total Prism verify} & \textbf{$\sim 15$ ms} \\
|
|
\bottomrule
|
|
\end{tabular}
|
|
|
|
\subsection{Cross-WAN $K = 21$ Pulse latency}
|
|
|
|
\begin{tabular}{@{}lrr@{}}
|
|
\toprule
|
|
\textbf{Phase} & \textbf{Median (ms)} & \textbf{p99 (ms)} \\
|
|
\midrule
|
|
Sign1 broadcast (1 WAN crossing) & 240 & 360 \\
|
|
Sign1 verify + Round1Pre (local) & 220 & 280 \\
|
|
Sign2 broadcast (1 WAN crossing) & 240 & 360 \\
|
|
Sign2 verify + Combine (local) & 250 & 320 \\
|
|
\midrule
|
|
\textbf{Total $K=21$ Pulse} & \textbf{$\sim 950$} & \textbf{$\sim 1320$} \\
|
|
\bottomrule
|
|
\end{tabular}
|
|
|
|
Lux mainnet bundle interval is $\sim 3$ s. Pulse latency at p99 is $\sim 1.3$ s --- comfortably under bundle interval. Chain reaches Horizon-final on every bundle in steady state.
|
|
|
|
\subsection{Pulse latency projections at $K = 64$, $K = 128$}
|
|
|
|
\begin{tabular}{@{}lrr@{}}
|
|
\toprule
|
|
$\mathbf{K}$ & \textbf{Median (s)} & \textbf{p99 (s)} \\
|
|
\midrule
|
|
21 & 0.95 & 1.3 \\
|
|
64 & 1.7 & 2.3 \\
|
|
128 & 3.0 & 3.9 \\
|
|
\bottomrule
|
|
\end{tabular}
|
|
|
|
At $K \geq 100$, p99 approaches the bundle interval; grouped Pulsar (smaller per-group $k$, multiple groups in parallel) is the right answer. Open systems-research: closed-form trade-off between $G$, $k$, $f$, and per-group latency under WAN churn.
|
|
|
|
\subsection{GPU acceleration headroom}
|
|
|
|
Projected Pulsar Round 1 GPU speedup over CPU:
|
|
|
|
\begin{tabular}{@{}lrrr@{}}
|
|
\toprule
|
|
$\mathbf{K}$ & \textbf{CPU (ms)} & \textbf{GPU projected (ms)} & \textbf{Speedup} \\
|
|
\midrule
|
|
3 & 95 & 110 & 0.9$\times$ \\
|
|
21 & 185 & 75 & 2.5$\times$ \\
|
|
64 & 380 & 95 & 4.0$\times$ \\
|
|
128 & 740 & 130 & 5.7$\times$ \\
|
|
\bottomrule
|
|
\end{tabular}
|
|
|
|
Projection from FHE-class NTT throughput on Apple M1 Max (\cite{luxfhebenchmarks}: 2.1 M poly muls/s). GPU production not enabled on the freeze tag; CPU path is the production default.
|
|
|
|
\section{Methodology}
|
|
|
|
\paragraph{Hardware.} Apple M1 Max (10 cores, performance + efficiency), Apple M2 Ultra (24 cores), AMD EPYC 7763 (64 cores). Runs on the M1 performance core; throttling monitored via \texttt{powermetrics} and runs that triggered throttling are discarded.
|
|
|
|
\paragraph{Software.} Go 1.26.1; \texttt{CGO\_ENABLED=0} for cross-compile, native otherwise. Build / test gate: \texttt{GOWORK=off go test -count=1 -short -timeout 300s ./...} from each canonical repo.
|
|
|
|
\paragraph{Statistics.} Median of 10 runs at \texttt{benchtime=1s}. Where p99 is reported, 1000-run distribution. Cross-WAN measurements use the production Lux mainnet 5-region deployment (US-East, US-West, EU-West, AP-South, AP-East); WAN RTT distribution is sampled via the operator monitoring stack.
|
|
|
|
\section{Reproducibility}
|
|
|
|
Every table above is reproducible from the freeze tag using the listed commands in \cite{luxbenchmarks}. KAT regen (\texttt{pulsar/scripts/regen-kats.sh}) produces byte-equal output across runs. Fuzz harnesses return zero panics in 60 s.
|
|
|
|
\section{Comparison to claims in older Lux drafts}
|
|
|
|
Older Quasar drafts cited a ``357 \textmu s epoch finality'' figure that does not match any measured operation in the current code. The honest measured numbers are the ones in this report. Closest real candidates to 357 \textmu s: BLS single keygen (350 \textmu s), ML-DSA-65 sign (495 \textmu s); neither corresponds to ``epoch finality.''
|
|
|
|
The full Quasar Horizon verify is $\sim 15$ ms CPU; the cross-WAN $K=21$ Pulse latency is $\sim 1$--$1.3$ s. These are the numbers to cite.
|
|
|
|
\section{Pointers}
|
|
|
|
For the full benchmark report with reproduction commands and per-platform numbers, see \cite{luxbenchmarks}. For the underlying threshold-cryptography analyses, see the LP-073 paper \cite{luxpulsar}, the LSS paper \cite{luxlssmpc}, the Quasar Horizon paper \cite{luxquasarhorizon}, and the Warp 2.0 paper \cite{luxwarpv2}.
|
|
|
|
\bibliographystyle{plain}
|
|
\bibliography{../references}
|
|
|
|
\end{document}
|