mirror of
https://github.com/luxfi/proofs.git
synced 2026-10-30 15:21:05 +00:00
Squashed batch covering:
- lux-adopts-liquidity-protocol.tex: protocol adoption proof artifact
- chronology updates aligning Quasar consensus references to LP-020
- pq-finality-no-bls.tex: Pulsar (Corona-derived lattice threshold)
naming clarification; per-block / per-epoch / per-era cert language
- quasar-cert-soundness.tex: Pulsar (systems-layer composition with
key-era lifecycle, resharing, activation cert, rollback) vs Corona
(signing primitive); math notation and theorems unchanged
- INFRASTRUCTURE-STATUS-2026-04-20.md → INFRASTRUCTURE-STATUS.md
(drop date stamp from filename)
- LP back-refs and chronology integration
quasar-cert-soundness.tex production-publishable depth (March 3 final):
- NEW Section 6 (Pulsar Key-Era Lifecycle Lemmas): formal
definitions for Pulsar share state, GroupKey hash, and Refresh /
Reshare / Reanchor transitions. Four lifecycle lemmas with full
proofs:
Lemma 10 (Generation monotonicity)
Lemma 11 (KeyEraID stability across Reshare)
Lemma 12 (GroupKey byte-identity across Refresh and Reshare)
Lemma 13 (Rollback-lineage forward reconstruction)
Plus Theorem 14 (Activation-certificate soundness): VerifyActivation
accepts iff the new committee shares Lagrange-recombine to the
master secret under the unchanged GroupKey, except with negligible
probability under MLWE/MSIS.
- Lagrange-recombination identity written as a labelled display
equation, citing
Crypto.Threshold.Reshare.reshare_preserves_public_key in
lean/Crypto/Threshold/Reshare.lean for the mechanised companion.
- Bibliography additions: hjky97 (Herzberg--Jarecki--Krawczyk--Yung
proactive secret sharing), desmedtjajodia97 (redistribution),
wongwangwing02 (verifiable redistribution), lp073 (Pulsar paper).
- LP-073 section pointers updated to text-form references that
survive without LP-073 .aux file.
Naming evolution: throughout this work, "Corona" refers to the
lattice signing primitive (Sign1/Sign2/Combine math); "Pulsar" refers
to the Lux production fork at github.com/luxfi/pulsar that wraps it
with key-era lifecycle for permissionless validator-set rotation.
- proofs/fhe/ (NEW): canonical proof bucket for the Lux FHE
dual-runtime stack (LP-167 companion):
correctness.tex — encrypt → evaluate → decrypt correctness.
dual-runtime-equivalence.tex — Lux FHE-Go and Lux FHE-C++ produce
byte-equal output on identical inputs
and parameters; KAT closure witness.
nebula-binding.tex — FHE result roots bind into Nebula /
Quasar transcripts; reduces a forged
binding to hash collision + Pulsar
SUF-CMA forgery.
parameter-security.tex — concrete LWE parameter security under
the Albrecht estimator; ≥128-bit
classical and ≥128-bit quantum for
PN10QP27 / PN11QP54 / PN9QP28_STD128.
Theorem statements + remarks; no proof bodies duplicated in the
companion paper (papers/lux-fhe-runtime/) — the paper cites these.
85 lines
3.6 KiB
TeX
85 lines
3.6 KiB
TeX
%% ============================================================
|
|
%% fhe/nebula-binding.tex
|
|
%% ============================================================
|
|
%%
|
|
%% Canonical Lux FHE result-root binding into Nebula/Quasar
|
|
%% transcripts. Papers cite this; do not redefine.
|
|
%% ============================================================
|
|
|
|
\subsection*{Lux FHE result roots bind into Nebula/Quasar transcripts}
|
|
|
|
\begin{theorem}[Nebula-FHE binding soundness]
|
|
\label{thm:fhe-nebula-binding}
|
|
Let $\mathsf{nebula\_fhe\_root}$ denote the canonical FHE evaluation
|
|
commitment (LP-167 \S\,Binding into Quasar finality):
|
|
\[
|
|
\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)
|
|
\]
|
|
where $H$ is the Lux FHE hash suite (SHA-256 on rc1; SHA-3-256 on
|
|
production builds; suite identifier carried in the round descriptor per
|
|
LP-105 hash-suite invariance). Let $\mathsf{QuasarRoundDescriptor}$ bind
|
|
$\mathsf{nebula\_fhe\_root}$ alongside $\mathsf{NebulaRoot}$, $\mathsf{epoch}$,
|
|
$\mathsf{KeyEraID}$, $\mathsf{Generation}$, and $\mathsf{HashSuiteID}$
|
|
(LP-073, LP-105). Then for any PPT adversary $\mathcal{A}$ that produces a
|
|
\texttt{HorizonCertificate} accepting the descriptor, the probability that
|
|
$\mathcal{A}$ binds an FHE result not produced by an honest evaluation under
|
|
the keys committed by $\mathsf{bootstrap\_key\_root}$ and
|
|
$\mathsf{key\_switch\_key\_root}$ is bounded by
|
|
\[
|
|
\mathrm{Adv}^{\mathsf{Nebula\text{-}FHE\text{-}bind}}_{\mathcal{A}}
|
|
\;\leq\;
|
|
\mathrm{Adv}^{\mathsf{coll}}_{H}(\mathcal{B}_1)
|
|
\;+\;
|
|
\mathrm{Adv}^{\mathsf{SUF\text{-}CMA}}_{\mathsf{Pulsar}}(\mathcal{B}_2)
|
|
\;+\;
|
|
\mathrm{negl}(\lambda)
|
|
\]
|
|
where $\mathcal{B}_1$ reduces to the collision resistance of $H$ and
|
|
$\mathcal{B}_2$ reduces to Pulsar SUF-CMA
|
|
(\texttt{proofs/pulsar/unforgeability.tex},
|
|
Theorem~\ref{thm:pulsar-suf-cma}).
|
|
\end{theorem}
|
|
|
|
\begin{proof}[Proof sketch]
|
|
A successful binding break either (i) collides $H$ on two distinct input
|
|
tuples to the same $\mathsf{nebula\_fhe\_root}$ --- reducing to the
|
|
collision-resistance assumption on the hash suite --- or (ii) forges a
|
|
Pulsar Pulse over the QuasarRoundDescriptor that contains the dishonest
|
|
$\mathsf{nebula\_fhe\_root}$, reducing to Pulsar SUF-CMA. The remaining
|
|
contribution is the negligible chance that the validator-set hash, the
|
|
KeyEra binding, or the Nebula transcript binding admit a parallel break;
|
|
each reduces by Prism's transcript-equality check (LP-105 \S Prism).
|
|
\end{proof}
|
|
|
|
\begin{remark}[F-Chain alias]
|
|
\label{rem:fchain-alias}
|
|
In F-Chain deployments (LP-013) the field $\mathsf{nebula\_fhe\_root}$
|
|
and $\mathsf{fchain\_fhe\_root}$ are the same 32-byte commitment; LP-013
|
|
names it from inside the F-Chain frame, LP-167 names it from the dual-
|
|
runtime perspective. The binding theorem applies unchanged; the
|
|
F-Chain cert lanes (\texttt{FChainTFHE}, \texttt{FChainBootstrap}) verify
|
|
against the same root.
|
|
\end{remark}
|
|
|
|
\begin{remark}[Replay protection]
|
|
\label{rem:fhe-replay-protection}
|
|
Cross-epoch replay of an FHE result is rejected because every contributing
|
|
sub-root ($\mathsf{bootstrap\_key\_root}$, $\mathsf{key\_switch\_key\_root}$,
|
|
$\mathsf{public\_param\_root}$, $\mathsf{active\_circuit\_dag\_root}$) is
|
|
keyed by $\mathsf{KeyEraID} + \mathsf{Generation}$, and the
|
|
$\mathsf{HashSuiteID}$ is bound into the transcript per LP-105
|
|
hash-suite separation. A descriptor referencing a stale
|
|
$\mathsf{nebula\_fhe\_root}$ fails Prism's transcript-equality check.
|
|
\end{remark}
|