mirror of
https://github.com/lux-apps/papers.git
synced 2026-10-30 18:15:21 +00:00
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.
84 lines
2.6 KiB
TeX
84 lines
2.6 KiB
TeX
\documentclass[11pt,a4paper]{article}
|
|
\usepackage{../shared/luxcover}
|
|
\usepackage[utf8]{inputenc}
|
|
\usepackage[T1]{fontenc}
|
|
\usepackage{amsmath,amssymb,amsfonts,amsthm}
|
|
\usepackage{graphicx}
|
|
\usepackage{hyperref}
|
|
\usepackage{booktabs}
|
|
\usepackage{listings}
|
|
\input{../shared/lstlang}
|
|
\usepackage{xcolor}
|
|
\usepackage{enumitem}
|
|
\usepackage{float}
|
|
\usepackage{multirow}
|
|
|
|
\newtheorem{theorem}{Theorem}
|
|
\newtheorem{definition}{Definition}
|
|
\newtheorem{remark}{Remark}
|
|
|
|
\lstset{
|
|
basicstyle=\small\ttfamily,
|
|
keywordstyle=\color{blue}\bfseries,
|
|
commentstyle=\color{gray},
|
|
stringstyle=\color{red},
|
|
breaklines=true,
|
|
frame=single,
|
|
numbers=left,
|
|
numberstyle=\tiny\color{gray}
|
|
}
|
|
|
|
\hypersetup{
|
|
colorlinks=true,
|
|
linkcolor=blue,
|
|
citecolor=blue,
|
|
urlcolor=blue
|
|
}
|
|
|
|
\title{Engineering EVM Precompiles\\for Cryptographic Primitives}
|
|
\author{
|
|
Lux Research \\
|
|
Lux Industries, Inc.\thanks{Corresponding author: [email protected]}\\
|
|
\texttt{[email protected]}
|
|
}
|
|
\date{2025}
|
|
|
|
\begin{document}
|
|
|
|
\luxcoverpage
|
|
|
|
\begin{abstract}
|
|
An EVM precompile is a native function callable from Solidity at a designated address,
|
|
executing outside the EVM interpreter at near-native speed. Precompiles enable
|
|
cryptographic operations that would be prohibitively expensive in EVM bytecode. This paper
|
|
teaches the engineering of precompiles from first principles: the EVM precompile interface,
|
|
address space conventions, input/output ABI design, gas cost modeling based on empirical
|
|
benchmarks, determinism requirements, error handling, and testing methodology. We present
|
|
all 20 precompiles deployed on Lux Network's C-Chain, covering BLS12-381, BN254, batch
|
|
secp256k1, post-quantum signatures (ML-DSA, FALCON), FHE operations, Warp message
|
|
verification, and NTT. For each precompile, we provide the Go implementation, gas cost
|
|
analysis, security considerations, and Solidity interface contract. This is a complete
|
|
guide for blockchain engineers adding native cryptographic capabilities to EVM-compatible
|
|
chains.
|
|
\end{abstract}
|
|
|
|
\tableofcontents
|
|
\newpage
|
|
|
|
%% ============================================================
|
|
|
|
\input{sections/01-what-is-a-precompile}
|
|
\input{sections/02-the-precompile-interface}
|
|
\input{sections/03-input-output-abi}
|
|
\input{sections/04-gas-cost-modeling}
|
|
\input{sections/05-determinism-requirements}
|
|
\input{sections/06-error-handling}
|
|
\input{sections/07-the-20-precompiles}
|
|
\input{sections/08-testing-methodology}
|
|
\input{sections/09-security-considerations}
|
|
\input{sections/10-solidity-interface-contracts}
|
|
\input{sections/11-dex-adapter-precompile}
|
|
\input{sections/99-conclusion}
|
|
|
|
\end{document}
|