Files
zeekay f4ee7a0525 Publish under the org, not a person
Bylines, paper authorship, correspondence addresses and the founder blurb under
each post named an individual. They name the organisation that published the
work instead: the brand on posts and pages, the research byline on papers, and
research@ in place of a personal address. Both are what these repositories
already used elsewhere — nothing new was coined.

Co-authors are untouched. Where a paper named someone else alongside, they stay
named; only the one byline changed. Bibliography entries, running heads,
PDF metadata and affiliations move with it, so a citation still resolves to
whoever the cited paper names.

Sample and fixture data uses the placeholder name these tests already use
elsewhere, so no assertion changed meaning.
2026-09-01 08:58:10 -07:00

86 lines
3.2 KiB
TeX

\documentclass[11pt]{article}
\usepackage{../shared/luxcover}
\usepackage{amsmath,amssymb}
\usepackage{graphicx}
\usepackage{booktabs}
\usepackage{hyperref}
\usepackage{listings}
\usepackage{xcolor}
\usepackage{tikz}
\usepackage{pgfplots}
\pgfplotsset{compat=1.18}
\usepackage{siunitx}
\usepackage{multirow}
\usepackage{subcaption}
\usepackage{algorithm}
\usepackage{algpseudocode}
\usetikzlibrary{arrows.meta,positioning,calc,shapes.geometric,fit}
\sisetup{group-separator={,}}
\definecolor{luxblue}{RGB}{30,64,175}
\definecolor{luxgold}{RGB}{234,179,8}
\definecolor{gpugreen}{RGB}{22,163,74}
\definecolor{cpured}{RGB}{220,38,38}
\definecolor{cppblue}{RGB}{37,99,235}
\definecolor{gogreen}{RGB}{0,125,156}
\definecolor{fhepurple}{RGB}{124,58,237}
\definecolor{pqorange}{RGB}{234,88,12}
\definecolor{nttcyan}{RGB}{6,182,212}
\title{cevm: A GPU-Native Ethereum Virtual Machine\\with Post-Quantum Cryptography and FHE Acceleration}
\author{
Lux Research\thanks{Corresponding author: [email protected]}\\
\textit{Lux Industries, Inc.}\\
\texttt{[email protected]}
}
\date{April 2025}
\begin{document}
\luxcoverpage
\begin{abstract}
We present \textbf{cevm}, a GPU-native Ethereum Virtual Machine that executes the entire
block processing pipeline---transaction validation, signature recovery, Block-STM parallel
execution, opcode dispatch, and state root computation---on GPU hardware. Measured on
Apple M1 Max (32-core Metal GPU, 64\,GB unified memory), cevm achieves 85.9\,M opcodes/sec
on the GPU EVM kernel (4.85$\times$ over CPU), 20.9\,Ggas/s on the C++ interpreter with
full state (5.1$\times$ over Go), and 7.1$\times$ speedup on parallel ecrecover across 10 CPU
cores.
Beyond EVM acceleration, cevm provides GPU-native implementations of all three NIST
post-quantum FIPS standards (ML-DSA, ML-KEM, SLH-DSA), Lux-specific Pulsar signatures,
threshold protocols (FROST, CGGMP21), and TFHE fully homomorphic encryption---sharing
the Number Theoretic Transform (NTT) as a unified GPU primitive across all lattice-based
operations.
The system comprises 30 Metal compute shaders (production, Apple Silicon), 30 CUDA kernels
(ported from Metal, ready for H100 CI), and 30 WGSL shaders (ported from Metal, validated
with naga)---90 shader files total with zero stubs remaining across three backends: Metal
(production), CUDA (ready), and Dawn/WebGPU (ready), plus CPU SIMD fallback on all
platforms. The system is validated by 1{,}183 tests across C++, Rust, and Go. GPU memory
scales linearly at 73\,KB per transaction, supporting blocks of 800{,}000 transactions on
64\,GB unified memory.
\end{abstract}
\tableofcontents
\newpage
%% ============================================================================
\input{sections/01-introduction}
\input{sections/02-architecture-the-cevm-pipeline}
\input{sections/03-gpu-state-hash-table-design}
\input{sections/04-block-stm-on-gpu}
\input{sections/05-post-quantum-cryptography-acceleration}
\input{sections/06-fhe-on-gpu-encrypted-evm-computation}
\input{sections/07-benchmarks}
\input{sections/08-updated-benchmark-results}
\input{sections/09-comparison-with-external-gpu-evm-project}
\input{sections/10-cuda-backend-and-h100-projections}
\input{sections/11-test-coverage-and-validation}
\input{sections/99-conclusion}
\end{document}