Files
zeekay 98343d238e papers: Mar-3 freeze deliverables for hybrid PQ consensus stack
Quasar Horizon (consensus composition over Pulsar / ML-DSA / BLS lanes
under Prism + LSS lifecycle), Warp 2.0 (Pulse-backed cross-chain envelope
with forward-only v1->v2 migration and lattigo ReadUint64Slice DoS fix),
benchmark report (microbench, reshare, activation, Warp 2.0 verify, Prism
composition, GPU headroom, cross-WAN latency), and NIST IR 8214C-style
submission package (spec, parameter sets, domain separation, serialization,
reference-impl pointers, evaluation report, security analysis, side-channel
considerations).

All four deliverables compile cleanly via pdflatex+bibtex and reference
the canonical proof bucket files at proofs/{definitions,pulsar,lss,quasar}.
No duplication of proof bodies; cite by file path.
2026-03-03 12:00:00 -08:00

162 lines
6.9 KiB
TeX

\section{Discussion}
\subsection{When to Use GPU EVM}
The crossover analysis (Table~\ref{tab:crossover}) provides a clear decision rule:
\begin{itemize}
\item \textbf{Below 500 ops/tx}: CPU wins. Simple transfers and token operations
do not generate enough parallel work to amortize GPU launch overhead.
\item \textbf{500--2{,}000 ops/tx}: Marginal GPU advantage (1.0--2.08$\times$).
Worth offloading only if the GPU is not otherwise occupied.
\item \textbf{Above 2{,}000 ops/tx}: Clear GPU advantage. Uniswap swaps ($\sim$3{,}000 ops),
complex DeFi ($>$5{,}000 ops), and ZK verification ($>$10{,}000 ops) all benefit.
\item \textbf{Peak}: 50k transactions $\times$ 5k opcodes each: 4.85$\times$.
\end{itemize}
\subsection{The Optimization Priority Stack}
Based on measured data, the priority order for EVM acceleration is:
\begin{enumerate}
\item \textbf{Parallel ecrecover} (7.1$\times$ on 87\% of time = 3.76$\times$ overall).
Implemented. Deployed.
\item \textbf{C++ interpreter} (5.1$\times$ on 13\% of time = 1.12$\times$ overall).
Implemented. The marginal gain is small because EVM execution is not the bottleneck.
\item \textbf{GPU opcodes} (4.85$\times$ on complex contracts). Highest impact on
computation-heavy workloads where per-transaction opcode count exceeds 2{,}000.
\item \textbf{Block-STM} (6.4$\times$ on 10 threads for independent transactions).
Orthogonal to the above; parallelizes across transactions rather than within them.
\end{enumerate}
\subsection{Memory Budget}
GPU memory is the practical scaling constraint. At 73\,KB per transaction plus 5\,GB
persistent state, the memory budget determines maximum block size:
\begin{itemize}
\item \textbf{32\,GB system}: $(32 - 5) / 0.073 \approx 370{,}000$ tx/block
\item \textbf{64\,GB system}: $(64 - 5) / 0.073 \approx 800{,}000$ tx/block
\item \textbf{128\,GB (M4 Ultra)}: $(128 - 5) / 0.073 \approx 1{,}685{,}000$ tx/block
\end{itemize}
\subsection{Comparison to External Systems}
\begin{table}[h]
\centering
\small
\begin{tabular}{lrrl}
\toprule
\textbf{System} & \textbf{Throughput} & \textbf{Notes} \\
\midrule
Ethereum mainnet & $\sim$30\,Mgas/s & Sequential geth \\
Go EVM (Lux, sequential) & 534--1{,}038\,Mgas/s & Measured (this paper) \\
C++ evmone++ (Lux) & 20.9\,Ggas/s & EVM-only, measured \\
Go EVM + parallel sig & $\sim$2{,}150\,Mgas/s & Measured (this paper) \\
Block-STM 10-thread & 3{,}390\,Mgas/s & Measured (this paper) \\
GPU EVM (50k$\times$5k) & 85.9\,M ops/s & Measured (this paper) \\
\bottomrule
\end{tabular}
\caption{Throughput comparison. Ethereum mainnet number is the effective gas
rate under consensus ($\sim$30M gas per 12s block). Lux numbers are execution-only,
measured without consensus overhead.}
\label{tab:comparison}
\end{table}
\subsection{Go EVM Workload Benchmarks at 1\,B Gas Blocks}
With 47K transactions per block ($\sim$1\,B gas at 21{,}000 gas/tx), the Go EVM
produces detailed per-workload timing that separates EVM execution from signature
recovery:
\begin{table}[h]
\centering
\small
\begin{tabular}{lrrrr}
\toprule
\textbf{Workload} & \textbf{EVM (ms)} & \textbf{Sig (ms)} & \textbf{Total (ms)} & \textbf{EVM-only (Mgas/s)} \\
\midrule
ETH Transfer & 241 & 1{,}613 & 1{,}854 & \num{4148} \\
ERC-20 Transfer & 326 & 1{,}614 & 1{,}940 & \num{4537} \\
Storage Write & 384 & 1{,}623 & 2{,}007 & \num{5970} \\
Uniswap Swap & 368 & 1{,}624 & 1{,}992 & \num{4669} \\
Mixed DeFi & 312 & 1{,}622 & 1{,}934 & \num{4723} \\
\bottomrule
\end{tabular}
\caption{Go EVM workload benchmarks at 47K txs/block (1\,B gas). Signature recovery
(\SI{1613}{ms}) is constant across workloads---it dominates total time at 82--87\%.
EVM-only throughput ranges from \SI{4148}{Mgas/s} (ETH Transfer) to \SI{5970}{Mgas/s}
(Storage Write). All measurements on Apple M1 Max.}
\label{tab:workload}
\end{table}
The signature bottleneck is stark: \SI{1613}{ms} of ecrecover is constant regardless of
workload complexity, confirming that GPU batch ecrecover is the highest-leverage
optimization at production block sizes.
\subsection{Consensus Pipeline Benchmarks}
With pipelined consensus (building block $N{+}1$ while block $N$ finalizes), the
consensus layer is no longer the throughput bottleneck:
\begin{table}[h]
\centering
\small
\begin{tabular}{lrrr}
\toprule
\textbf{Configuration} & \textbf{Blocks/sec} & \textbf{Txs/block} & \textbf{Theoretical TPS} \\
\midrule
SoloGPU ($K{=}1$) & \num{107000} & 47K & \num{5100000000} \\
BurstParams & \num{78000} & 100K & \num{7800000000} \\
\bottomrule
\end{tabular}
\caption{Consensus pipeline throughput on Apple M1 Max. SoloGPU uses $K{=}1$
(single validator, no network RTT), 1\,ms block time, 1\,B gas limit.
BurstParams uses 100K txs/block with 2.1\,B gas limit. These are consensus-layer
measurements---execution is excluded. Theoretical TPS = blocks/sec $\times$ txs/block.}
\label{tab:consensus_pipeline}
\end{table}
\textbf{Key finding}: Consensus is no longer the bottleneck. At \num{107000} blocks/sec
(SoloGPU) and \num{78000} blocks/sec (BurstParams), the consensus layer vastly outpaces
EVM execution. The bottleneck has shifted entirely to execution and signature recovery.
\subsection{Throughput at 1\,B Gas Block Limit}
Lux Network operates with a \num{1000000000} (1\,B) gas block limit---33$\times$ Ethereum's
30\,M limit. At 21{,}000 gas per simple transfer, this yields $\sim$47{,}619 transactions
per block. The following table projects execution throughput at this block size.
\begin{table}[h]
\centering
\small
\begin{tabular}{lrrr}
\toprule
\textbf{Execution Engine} & \textbf{Time/1B-gas block} & \textbf{Exec TPS$^*$} & \textbf{Notes} \\
\midrule
C++ evmone++ (1 core) & 47.8\,ms & \num{952000} & $1\text{B} / 20.9\,\text{Ggas/s}$ \\
GPU EVM (Metal, 32-core) & $\sim$10\,ms & $\sim$\num{47600000} & Projected from 2.3\,Gops/s \\
Block-STM (10 threads) & 295\,ms & \num{161000} & $1\text{B} / 3.39\,\text{Ggas/s}$ \\
Go EVM (sequential) & 1{,}852\,ms & \num{25700} & $1\text{B} / 0.54\,\text{Ggas/s}$ \\
\bottomrule
\end{tabular}
\caption{Execution throughput projected to Lux's 1\,B gas block limit.
$^*$Execution-only TPS assuming 21{,}000 gas/tx and no consensus overhead.
C++ evmone++ processes a full 1\,B-gas block in under 50\,ms, enabling
sub-100\,ms block times. GPU EVM projection assumes linear scaling from
measured 2.3\,Gops/s kernel throughput.}
\label{tab:1b-gas}
\end{table}
With BLS consensus aggregate verify at $16.51\times$ at $n{=}1024$
on the same-message hot path (cevm v0.47.1, pubkey-decompression cache
on top of v0.45 batching) and pipelined block execution, the
theoretical throughput ceiling is:
\begin{equation}
\text{TPS}_{\text{ceiling}} = \frac{47{,}619\text{ txs/block}}{10\,\text{ms}} = \num{4761904}\text{ TPS (with finality)}
\end{equation}
With 1\,ms InfiniBand interconnect replacing WAN latency, the theoretical
maximum reaches $\sim$\num{47619047} TPS.