mirror of
https://github.com/lux-apps/papers.git
synced 2026-10-30 18:15:21 +00:00
Sweep across the non-Tier-1 paper catalogue (Tier-1 owned by parallel
agent and excluded). All 113 processed papers already had luxcover
wired up; this commit fixes 14 build breakers and produces fresh
PDFs across the catalogue.
Fixes:
- lux-blockchain-scaling-laws: em-dash inside lstlisting -> --
- lux-corona-pq: stale \input pointing at 03-the-corona-scheme renamed
to 03-the-corona-scheme (file already renamed on disk)
- lux-lattice-cryptography-primer: same Corona->Corona rename
- lux-formal-verification-lean4: Lean source uses unicode (×, ∀, ∃, ∈,
∧, ∨, ∩, ≠, ⟨, ⟩, ·, ¬) inside lstlistings. Added a literate map
so listings render the math glyphs without UTF-8 fault.
- lux-id-did-specification: ✓/✗ in tabular replaced with \ding{51}
/ \ding{55} (pifont). Added pifont package.
- lux-ntt-simd-implementation: middle-dot in Go assembly listings;
added literate {·}{\textperiodcentered}.
- lux-ntt-transform: μ, ×, –, — in regular text (no T1 fontenc).
Replaced with $\mu$/$\times$/--/--- via unicode->latex sweep.
- lux-perpetuals-derivatives, lux-quantum-consensus,
lux-quasar-consensus, lux-tee-computing-mesh: same unicode->latex
sweep across body text. Also fixed broken math segment
`$L_{avg} = 10$\times$$` -> `$L_{avg} = 10\times$`.
- lux-zchain: emoji glyphs in roadmap table replaced with
parenthetical text.
- lux-triple-proof-consensus: dropped duplicate \usepackage{geometry}
that clashed with luxcover (geometry option clash).
- pq: defined missing \Rq macro.
PDFs rebuilt for the full Tier-2/3 set.
Excluded (Tier-1, parallel agent): lp-073-pulsar, lp-stricte2epq,
dag-evm-formal, lp-010-quasar-stm-{3,4}, lp-020-quasar-consensus,
lux-institutional-custody, lux-nist-mptc-submission, pqsafe-il5,
pq-rns, plus shared/ and lps/.
82 lines
2.2 KiB
TeX
82 lines
2.2 KiB
TeX
\section{Implementation}
|
|
|
|
|
|
\subsection{Validator Node Architecture}
|
|
|
|
\begin{lstlisting}[language=Go]
|
|
type QuantumValidator struct {
|
|
dilithiumKey *dilithium.PrivateKey // Post-quantum key
|
|
sphincsKey *sphincs.PrivateKey // Long-term key
|
|
kyberKey *kyber.PrivateKey // Key exchange
|
|
|
|
// Backward compatibility
|
|
ecdsaKey *ecdsa.PrivateKey // Legacy key
|
|
hybridMode bool // Enable dual signing
|
|
}
|
|
|
|
func (v *QuantumValidator) SignBlock(block *Block) *Signature {
|
|
if v.hybridMode {
|
|
ecdsaSig := ecdsa.Sign(v.ecdsaKey, block.Hash())
|
|
dilithiumSig := dilithium.Sign(v.dilithiumKey, block.Hash())
|
|
return &Signature{
|
|
ECDSA: ecdsaSig,
|
|
ML-DSA: dilithiumSig,
|
|
}
|
|
}
|
|
|
|
// Pure quantum mode
|
|
return dilithium.Sign(v.dilithiumKey, block.Hash())
|
|
}
|
|
\end{lstlisting}
|
|
|
|
\subsection{Network Protocol}
|
|
|
|
**Message format**:
|
|
\begin{verbatim}
|
|
+----------------+------------------+-------------------+
|
|
| Block Header | ML-DSA Sig | Aggregate Votes |
|
|
| (128 bytes) | (3,293 bytes) | (3,293 bytes) |
|
|
+----------------+------------------+-------------------+
|
|
Total: 6,714 bytes
|
|
\end{verbatim}
|
|
|
|
**Comparison with ECDSA**:
|
|
\begin{itemize}
|
|
\item ECDSA block: 128 + 65 + 65 = 258 bytes
|
|
\item ML-DSA block: 6,714 bytes
|
|
\item Overhead: 26$\times$ larger (acceptable for 50K TPS)
|
|
\end{itemize}
|
|
|
|
\subsection{Migration Path}
|
|
|
|
\textbf{Step 1}: Validators generate ML-DSA keys
|
|
\begin{lstlisting}[language=bash]
|
|
luxd validator generate-pq-keys \
|
|
--type dilithium \
|
|
--output /etc/lux/pq-keys.json
|
|
\end{lstlisting}
|
|
|
|
\textbf{Step 2}: Register quantum keys on-chain
|
|
\begin{lstlisting}[language=Go]
|
|
tx := RegisterQuantumKey{
|
|
ValidatorID: validatorID,
|
|
DilithiumPubKey: pubkey,
|
|
Proof: zkProof, // Proof of key ownership
|
|
}
|
|
\end{lstlisting}
|
|
|
|
\textbf{Step 3}: Enable hybrid mode
|
|
\begin{lstlisting}[language=bash]
|
|
luxd --enable-quantum-consensus \
|
|
--hybrid-mode=true \
|
|
--quantum-threshold=0.66
|
|
\end{lstlisting}
|
|
|
|
\textbf{Step 4}: Full quantum activation (2030)
|
|
\begin{lstlisting}[language=bash]
|
|
luxd --enable-quantum-consensus \
|
|
--hybrid-mode=false \
|
|
--deprecate-ecdsa
|
|
\end{lstlisting}
|
|
|