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/.
62 lines
1.5 KiB
TeX
62 lines
1.5 KiB
TeX
\section{Performance Optimization}
|
|
|
|
|
|
\subsection{Signature Aggregation}
|
|
|
|
**Challenge**: ML-DSA signatures are 100$\times$ larger than ECDSA.
|
|
|
|
**Solution**: Use lattice-based aggregate signatures \cite{boneh2003aggregate}:
|
|
|
|
\begin{equation}
|
|
\text{Agg}(\sigma_1, \ldots, \sigma_n) = \sigma \quad \text{where } |\sigma| = O(1)
|
|
\end{equation}
|
|
|
|
**Result**:
|
|
\begin{itemize}
|
|
\item Single signature: 3,293 bytes
|
|
\item 100 validators: Still 3,293 bytes (constant!)
|
|
\item Network bandwidth: 100$\times$ reduction
|
|
\end{itemize}
|
|
|
|
\subsection{Parallel Verification}
|
|
|
|
ML-DSA verification is parallelizable:
|
|
|
|
\begin{lstlisting}[language=Go]
|
|
func VerifyBatch(sigs []Signature, msgs []Message) bool {
|
|
results := make(chan bool, len(sigs))
|
|
|
|
for i := range sigs {
|
|
go func(idx int) {
|
|
results <- ML-DSA.Verify(sigs[idx], msgs[idx])
|
|
}(i)
|
|
}
|
|
|
|
for range sigs {
|
|
if !<-results { return false }
|
|
}
|
|
return true
|
|
}
|
|
\end{lstlisting}
|
|
|
|
**Speedup**: Linear in CPU cores (16-core: 16$\times$ faster).
|
|
|
|
\subsection{Hardware Acceleration}
|
|
|
|
We implement lattice operations in AVX-512:
|
|
|
|
\begin{table}[h]
|
|
\centering
|
|
\begin{tabular}{lrrr}
|
|
\toprule
|
|
\textbf{Operation} & \textbf{Software (ms)} & \textbf{AVX-512 (ms)} & \textbf{Speedup} \\
|
|
\midrule
|
|
Key generation & 0.15 & 0.04 & 3.75$\times$ \\
|
|
Signing & 0.25 & 0.08 & 3.13$\times$ \\
|
|
Verification & 0.12 & 0.05 & 2.40$\times$ \\
|
|
\bottomrule
|
|
\end{tabular}
|
|
\caption{ML-DSA performance with AVX-512}
|
|
\end{table}
|
|
|