mirror of
https://github.com/lux-apps/papers.git
synced 2026-10-30 18:15:21 +00:00
The seven engine specifications (lux-{photon,wave,nova,nebula,prism,ray,field}-protocol)
were fragmented short notes documenting layers of the same Quasar consensus stack.
This commit merges them into a single canonical reference, lux-consensus-engines.tex,
that uses one preamble, one set of theorems, one bibliography, and one composition
chapter showing how the engines layer into the LP-020 finality pipeline.
The seven originals are reduced to single-page breadcrumb stubs pointing at the
consolidated paper; their sections/ content is preserved on disk for git history.
- new: lux-consensus-engines/ (50 pages, 646KB PDF, ~2900 lines tex)
- breadcrumbs: each original keeps cover + title + stub paragraph naming its chapter
- composition: chapter 9 records the layered contract Photon < Wave < Nova < ...
- bibliography: consolidated from the seven original thebibliography blocks
64 lines
2.6 KiB
TeX
64 lines
2.6 KiB
TeX
\section{The Prism Protocol}
|
|
|
|
\label{sec:prism-protocol}
|
|
|
|
\subsection{Per-Band Consensus}
|
|
|
|
Each spectrum band runs an independent Photon pipeline. The bands share the same
|
|
validator set but process different transaction subsets.
|
|
|
|
\begin{algorithm}[H]
|
|
\caption{Prism Protocol --- Multi-Spectrum Parallel Consensus}
|
|
\label{alg:prism-prism-core}
|
|
\begin{algorithmic}[1]
|
|
\Require Validator $v$, $B$ spectrum bands, each with pipeline depth $m$
|
|
\Require Parameters: $k$, $\alpha$, $\beta$ (per-band Photon parameters)
|
|
\State Initialize $B$ independent Photon pipelines $P_0, P_1, \ldots, P_{B-1}$
|
|
\Loop
|
|
\State \Comment{Assign incoming transactions to bands}
|
|
\For{each new transaction $t$}
|
|
\State $b \gets H(\text{csid}(t)) \mod B$
|
|
\State Insert $t$ into pipeline $P_b$
|
|
\EndFor
|
|
\State \Comment{Run one round of all band pipelines in parallel}
|
|
\State $S \gets \text{RandomSample}(V \setminus \{v\}, k)$
|
|
\For{each band $b$ \textbf{in parallel}}
|
|
\State Execute one round of $P_b$.\textsc{PhotonRound}($S$)
|
|
\EndFor
|
|
\State \Comment{Collect finalized transactions from all bands}
|
|
\For{each band $b$}
|
|
\For{each transaction $t$ finalized by $P_b$ this round}
|
|
\State Submit $t$ to spectral combiner
|
|
\EndFor
|
|
\EndFor
|
|
\EndLoop
|
|
\end{algorithmic}
|
|
\end{algorithm}
|
|
|
|
\subsection{Shared Sampling}
|
|
|
|
All bands share the same sample $S$ in each round. This is critical for efficiency:
|
|
the validator queries each peer once per round, carrying preferences for all bands.
|
|
The response message includes preferences for all active pipeline slots across all bands.
|
|
|
|
\begin{lemma}[Shared Sample Independence]
|
|
\label{lem:prism-shared-sample}
|
|
Using the same sample $S$ for all bands does not compromise safety, because the
|
|
confidence counters for different bands depend on different transaction preferences,
|
|
which are independent for non-conflicting transactions.
|
|
\end{lemma}
|
|
|
|
\begin{proof}
|
|
Band $b_1$'s confidence counter for transaction $t_1$ depends on the responses
|
|
$\{\text{col}(u, t_1) : u \in S\}$. Band $b_2$'s counter for $t_2$ depends on
|
|
$\{\text{col}(u, t_2) : u \in S\}$. Since $t_1$ and $t_2$ are in different bands,
|
|
they are non-conflicting (Theorem~\ref{thm:prism-locality}), so the responses for $t_1$ and
|
|
$t_2$ are independent random variables even though they come from the same sample $S$.
|
|
The joint distribution factors: $\Pr[\text{col}(u, t_1) = c_1, \text{col}(u, t_2) = c_2] =
|
|
\Pr[\text{col}(u, t_1) = c_1] \cdot \Pr[\text{col}(u, t_2) = c_2]$.
|
|
\end{proof}
|
|
|
|
%% -----------------------------------------------------------------------
|
|
%% 4. SPECTRAL COMBINER
|
|
%% -----------------------------------------------------------------------
|