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
48 lines
2.0 KiB
TeX
48 lines
2.0 KiB
TeX
\section{System Model}
|
|
|
|
\label{sec:wave-model}
|
|
|
|
\subsection{Network and Adversary}
|
|
|
|
We model the network as a set of $n$ validators $V = \{v_1, \ldots, v_n\}$ connected
|
|
by authenticated point-to-point channels. The network is partially synchronous: there
|
|
exists an unknown Global Stabilization Time (GST) after which all messages are delivered
|
|
within a known bound $\Delta$.
|
|
|
|
\begin{definition}[Byzantine Adversary]
|
|
The adversary $\mathcal{A}$ controls a set $B \subset V$ of Byzantine validators with
|
|
$|B| \leq f < n/3$. Byzantine validators may behave arbitrarily but cannot forge
|
|
cryptographic signatures. The adversary is adaptive within an epoch but cannot corrupt
|
|
validators instantaneously.
|
|
\end{definition}
|
|
|
|
\begin{definition}[Transaction DAG]
|
|
\label{def:wave-dag}
|
|
The transaction set $T$ forms a directed acyclic graph $G = (T, E)$ where $(t_i, t_j) \in E$
|
|
if $t_j$ is a parent of $t_i$. Each transaction $t$ has a set $\text{parents}(t) \subseteq T$.
|
|
The ancestry of $t$ is $\mathcal{A}(t) = \{t' : t' \text{ is reachable from } t \text{ in } G\}$.
|
|
\end{definition}
|
|
|
|
\begin{definition}[Conflict Set]
|
|
Transactions $t_i, t_j$ conflict if they consume the same UTXO. The conflict set
|
|
$\mathcal{C}(t) = \{t' \in T \setminus \{t\} : t' \text{ conflicts with } t\}$.
|
|
Each conflict set induces a binary choice (or $m$-ary for multi-way conflicts) on which
|
|
the Wave protocol operates.
|
|
\end{definition}
|
|
|
|
\subsection{Correctness Properties}
|
|
|
|
\begin{definition}[Safety]
|
|
If honest validators $v_i$ and $v_j$ finalize transactions $t$ and $t'$ respectively
|
|
where $t \neq t'$, then $t \notin \mathcal{C}(t')$.
|
|
\end{definition}
|
|
|
|
\begin{definition}[Liveness]
|
|
If a valid transaction $t$ is submitted and all honest validators eventually receive $t$,
|
|
then $t$ or some $t' \notin \mathcal{C}(t)$ is eventually finalized by all honest validators.
|
|
\end{definition}
|
|
|
|
%% -----------------------------------------------------------------------
|
|
%% 3. THE WAVE PROTOCOL
|
|
%% -----------------------------------------------------------------------
|