mirror of
https://github.com/lux-apps/papers.git
synced 2026-10-30 18:15:21 +00:00
Reflects the v0.20.0 -> v0.23.0 GPU-EVM release cycle:
- s8 (gpu-native): rewritten to cover the spec-complete Metal + CUDA
kernel surface, precompile dispatch (0x01..0x11), the EVMC host
bridge for static-target CALL/CREATE pre-resolution, the unified
pipeline (EVM + consensus state hash + sig-verify on one Metal
device, 1.07x pipelined speedup), and a measured-speedup table that
separates the cryptographic critical path from the bytecode kernel.
- s9 (NEW, four-way-parity): 133-vector bytecode corpus run through
CPU_Sequential / CPU_Parallel / GPU_Metal / GPU_CUDA in a single
GoogleTest driver, asserting bit-exact (gas_used, status, output).
Documents Expectation::{Agree, GasOnly, KernelCpuMissing} taxonomy
and explains why cross-implementation parity is a stronger argument
than aggregate test count.
- s10 (NEW, cuda-port): four-pass porting methodology, the three
consensus bugs the port surfaced (u256_mulmod carry-loss propagation,
unrecognized-opcode all-gas consumption, MSTORE offset-overflow
bounds check), the algebraic form of each fix, and what 90.87% line
/ 100% function LLVM coverage on the kernel CPU spec witness
contributes. Includes the AWS EKS Karpenter g4dn/g5 spot CI path.
- s11 (NEW, empirical-results): consolidated headline table organised
by workload x backend, with explicit pointers to the bench source
files at lib/evm/gpu/{kernel,metal,cuda}.
- s12 (renumbered from s9): PQZ cross-chain parallelism, unchanged.
- 01-introduction.tex: updated bullet list of contributions.
- 99-conclusion.tex: updated to cite v0.23.0 results.
62 lines
3.2 KiB
TeX
62 lines
3.2 KiB
TeX
\section{Introduction}
|
|
|
|
%% ============================================================================
|
|
|
|
Parallel blockchain execution splits into two orthogonal problem families:
|
|
\emph{intra-block} parallelism (execute the transactions of a linear block
|
|
in parallel) and \emph{inter-block} parallelism (finalise non-conflicting
|
|
blocks in parallel, a partial-order consensus). The industry has focused
|
|
almost exclusively on the first: Aptos' Block-STM~\cite{blockstm}, Monad's
|
|
pipelined execution~\cite{monad}, Sei's parallel EVM, and Polygon Miden's
|
|
optimistic execution all run in linear-chain consensus. DAG consensus, when
|
|
present (Sui's Mysticeti~\cite{mysticeti}, Aleph Zero's AlephBFT,
|
|
Avalanche's Snowman$^{++}$), typically does not thread the DAG into the
|
|
state-machine layer: blocks are ordered by the DAG and then executed
|
|
sequentially, so the DAG exists above the execution engine rather than
|
|
inside it.
|
|
|
|
Lux takes the third path: \emph{the execution engine's conflict graph
|
|
\textbf{is} the consensus DAG}. Each VM emits vertices whose parents are
|
|
determined by the state-level dependency relation of that VM, and the DAG
|
|
engine (nebula) finalises antichains that by construction contain no
|
|
mutually-conflicting vertices. The downstream property is
|
|
\textbf{serialisability by construction}: any topological order of the
|
|
accepted DAG yields identical state, and no two finalised siblings can
|
|
double-spend, re-write the same EVM slot, or re-submit the same nullifier.
|
|
|
|
This paper presents:
|
|
|
|
\begin{itemize}
|
|
\item A uniform definition of the per-chain conflict rule
|
|
(\S\ref{sec:conflict});
|
|
\item The DAG-EVM construction and its Block-STM lineage
|
|
(\S\ref{sec:dagevm});
|
|
\item The DAG-Z-Chain nullifier-conflict construction
|
|
(\S\ref{sec:dagzchain});
|
|
\item Lean~4 formal proofs of safety, commutativity, and
|
|
serialisability (\S\ref{sec:lean});
|
|
\item TLA$^+$ specifications and model-checked invariants
|
|
(\S\ref{sec:tla});
|
|
\item A principled comparison with contemporary parallel and DAG
|
|
blockchains (\S\ref{sec:contemporaries});
|
|
\item A discussion of GPU-native EVM execution covering the v0.20.0
|
|
$\to$ v0.23.0 release cycle, including spec-complete Metal and CUDA
|
|
opcode kernels, the EVMC host bridge for \texttt{CALL}/\texttt{CREATE}
|
|
pre-resolution, and a unified pipeline that runs EVM execution,
|
|
consensus state hashing, and post-quantum signature verification on
|
|
a single Metal device (\S\ref{sec:gpu});
|
|
\item A four-way parity test that runs the same 133-vector bytecode
|
|
corpus through CPU\_Sequential, CPU\_Parallel (Block-STM), GPU\_Metal
|
|
and GPU\_CUDA, asserting bit-exact agreement on
|
|
\texttt{(gas\_used, status, output)} (\S\ref{sec:parity});
|
|
\item The CUDA port methodology, three consensus-relevant bugs surfaced
|
|
by the differential-oracle property of cross-implementation
|
|
parity, and what 90.87\% line / 100\% function LLVM source-based
|
|
coverage on the spec witness contributes to the production-readiness
|
|
argument (\S\ref{sec:cuda});
|
|
\item Empirical results across all four backends on the workloads
|
|
above (\S\ref{sec:empirical}).
|
|
\end{itemize}
|
|
|
|
%% ============================================================================
|