mirror of
https://github.com/lux-apps/papers.git
synced 2026-11-02 11:39:52 +00:00
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.
79 lines
3.2 KiB
TeX
79 lines
3.2 KiB
TeX
\section{Quasar finality binding}
|
|
\label{sec:quasar-finality-binding}
|
|
|
|
Lux finality is post-quantum: BLS aggregates (Beam, classical fast
|
|
path) plus ML-DSA per-validator attestations plus Pulsar threshold
|
|
Pulses (lattice / Ring-LWE), composed by Prism into a HorizonCertificate
|
|
(LP-105). FHE results enter this finality through a
|
|
$\mathsf{nebula\_fhe\_root}$ commitment in the QuasarRoundDescriptor.
|
|
|
|
\subsection{The commitment}
|
|
|
|
\[
|
|
\mathsf{nebula\_fhe\_root}
|
|
\;=\;
|
|
H\!\bigl(
|
|
\mathsf{bootstrap\_key\_root}
|
|
\;\|\;
|
|
\mathsf{key\_switch\_key\_root}
|
|
\;\|\;
|
|
\mathsf{public\_param\_root}
|
|
\;\|\;
|
|
\mathsf{active\_circuit\_dag\_root}
|
|
\;\|\;
|
|
\mathsf{finalized\_evaluations\_root} \bigr)
|
|
\]
|
|
|
|
\paragraph{Field origins.}
|
|
$\mathsf{bootstrap\_key\_root}$ and $\mathsf{key\_switch\_key\_root}$ are
|
|
produced by the M-Chain MPC keygen ceremony (LP-019, LP-076). The
|
|
Lux FHE-Go runtime computes them deterministically from the threshold
|
|
share output. $\mathsf{public\_param\_root}$ commits to the
|
|
ParameterSetID lineage. $\mathsf{active\_circuit\_dag\_root}$ is the
|
|
merkle root of currently-installed FHE circuits.
|
|
$\mathsf{finalized\_evaluations\_root}$ accumulates Nebula-FHE
|
|
$\mathsf{FheReceipt}$ commitments produced during the round.
|
|
|
|
\paragraph{Hash suite.}
|
|
Production builds use SHA3-256 as the canonical hash (LP-105
|
|
hash-suite invariance). The rc1 scaffold ships a self-contained
|
|
SHA-256 to reduce the dependency surface during scaffold validation;
|
|
the production handover is a one-line swap to
|
|
\texttt{luxcpp/crypto/sha256}. Both runtimes carry the
|
|
\texttt{HashSuiteID} field in the round descriptor so a verifier can
|
|
unambiguously distinguish.
|
|
|
|
\subsection{F-Chain alias}
|
|
|
|
In F-Chain deployments (LP-013), $\mathsf{nebula\_fhe\_root}$ and
|
|
$\mathsf{fchain\_fhe\_root}$ are the same 32-byte field. LP-013 names
|
|
it from the F-Chain perspective; this paper names it from the
|
|
dual-runtime perspective. Specifications and code paths must use one
|
|
name consistently within a given module --- inside
|
|
\texttt{github.com/luxfi/consensus} the field is named
|
|
\texttt{nebula\_fhe\_root}; inside \texttt{github.com/luxfi/fchain}
|
|
it is named \texttt{fchain\_fhe\_root}.
|
|
|
|
\subsection{Soundness}
|
|
|
|
Theorem~\ref{thm:fhe-nebula-binding} (proofs/fhe/nebula-binding.tex)
|
|
formalizes the binding soundness: a forged binding reduces to either
|
|
a hash collision in $H$ or a Pulsar SUF-CMA forgery
|
|
(\texttt{proofs/pulsar/unforgeability.tex},
|
|
Theorem~\ref{thm:pulsar-suf-cma}). The plaintext content of the FHE
|
|
evaluation is private throughout --- the GPU only handles ciphertexts
|
|
and threshold key holders are TEE-protected (LP-065). What Quasar
|
|
finalizes is the \emph{commitment} to the encrypted result, not the
|
|
result itself. Decrypting the result requires the threshold MPC
|
|
ceremony; finality of the encrypted-state machine does not.
|
|
|
|
\subsection{Replay protection}
|
|
|
|
Every contributing sub-root is keyed by $\mathsf{KeyEraID} +
|
|
\mathsf{Generation}$, and the $\mathsf{HashSuiteID}$ is bound into the
|
|
transcript. Cross-epoch replay of an FHE result is rejected because
|
|
the resulting $\mathsf{nebula\_fhe\_root}$ does not match the
|
|
descriptor in the new round; Prism's transcript-equality check
|
|
(LP-105 \S Prism) fails. The proof appears in
|
|
\texttt{proofs/fhe/nebula-binding.tex}, Remark~\ref{rem:fhe-replay-protection}.
|