Files
papers/dag-evm-formal/sections/12-pqz-cross-chain-parallelism.tex

40 lines
1.9 KiB
TeX

\section{PQZ Cross-Chain Parallelism}
\label{sec:pqz}
The Lux primary network runs P-Chain (validator registry) together with
the DAG chains and the Quasar-finality Q-Chain. We collectively call the
operational model \textbf{PQZ}: Primary validators, Quasar certificates,
and the ZK overlay. The question: does running all chains concurrently on
the same validator set compromise per-chain safety?
The answer is \emph{no}, by a straightforward independence argument
formalised in \texttt{Consensus/PQZParallel.lean}. The key observations:
\begin{enumerate}
\item \textbf{Type-level chain scoping}: vertex types in Go are
package-parameterised ($\texttt{zkvm.Vertex}$, $\texttt{dexvm.DexVertex}$,
etc.); a cross-chain \texttt{Conflicts} call is not expressible.
\item \textbf{Quasar certificates are chain-local}: each antichain
Quasar stamp binds a chain-ID and rank; stamps from different chains
are independently verifiable.
\item \textbf{Validator signing is re-entrant}: a validator signing on
$k$ chains performs $k$ independent BLS + ML-DSA + Pulsar operations
whose cost scales linearly in $k$. No chain blocks another.
\item \textbf{Shared validator set, shared network}: the only cross-chain
coupling is bandwidth; GPU batch verify linearises signature cost
across all chains on the same hardware.
\end{enumerate}
We measured this empirically. The 6 DAG-capable VMs (Z, D, A, O, R, S) are
driven by 17 unit tests running concurrently in \texttt{go test -race}; no
data races are reported. The \texttt{evmgpu/dag} package adds another 17
tests (\texttt{TestStorageKeySetDisjoint} through \texttt{TestVertexStore})
with GPU and CPU build-tag variants. All pass.
\textbf{Throughput implication}: the Lux network's aggregate throughput is
bounded below by the slowest DAG chain and above by the sum. With GPU
ecrecover + GPU keccak + GPU bitmap-intersect shared across all chains
(single context per host), adding chains is strictly additive.