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.
150 lines
6.1 KiB
TeX
150 lines
6.1 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{algorithm}
|
|
\usepackage{algpseudocode}
|
|
\usepackage{listings}
|
|
\usepackage{xcolor}
|
|
\usepackage{tikz}
|
|
\usepackage{float}
|
|
\usepackage{enumitem}
|
|
\usepackage{array}
|
|
\usepackage{multirow}
|
|
\usepackage{tabularx}
|
|
\input{../shared/lstlang}
|
|
\usetikzlibrary{arrows.meta,positioning,shapes.geometric,fit,calc}
|
|
|
|
\hypersetup{colorlinks=true,linkcolor=black,citecolor=blue,urlcolor=blue}
|
|
|
|
\lstset{
|
|
basicstyle=\ttfamily\scriptsize,
|
|
breaklines=true,
|
|
frame=single,
|
|
numbers=left,
|
|
numberstyle=\tiny\color{gray},
|
|
keywordstyle=\color{blue!70!black}\bfseries,
|
|
commentstyle=\color{green!50!black}\itshape,
|
|
stringstyle=\color{red!60!black},
|
|
showstringspaces=false,
|
|
}
|
|
|
|
\newtheorem{theorem}{Theorem}
|
|
\newtheorem{lemma}[theorem]{Lemma}
|
|
\newtheorem{definition}{Definition}
|
|
\newtheorem{proposition}[theorem]{Proposition}
|
|
\newtheorem{remark}{Remark}
|
|
|
|
\title{LUX\_STRICT\_E2E\_PQ:\\
|
|
End-to-End Post-Quantum Architecture\\
|
|
for the Lux Network}
|
|
|
|
\author{
|
|
Lux Research\thanks{Corresponding author: \texttt{[email protected]}}\\
|
|
\textit{Lux Industries, Inc.}\\
|
|
\texttt{[email protected]}
|
|
}
|
|
|
|
\date{2026}
|
|
|
|
\begin{document}
|
|
|
|
\luxcoverpage
|
|
|
|
\begin{abstract}
|
|
Most ``post-quantum blockchain'' work today PQ-hardens \emph{consensus} only: a
|
|
threshold signature over block headers replaces BLS, and the rest of the stack
|
|
(transaction authorisation, contract permits, peer handshakes, bridge admission,
|
|
randomness, finality binding, contract auth profiles) continues to use ECDSA,
|
|
Keccak, BN254 pairings, and KZG trusted setups. A Shor-capable adversary
|
|
defeats this stack at every layer the threshold signature does not touch.
|
|
|
|
This paper specifies LUX\_STRICT\_E2E\_PQ, the locked profile under which
|
|
\emph{every} byte that gates a state transition on Lux is bound to a FIPS-203 /
|
|
FIPS-204 / FIPS-205 primitive or a SHA3-family transcript. The profile is a
|
|
single \texttt{ChainSecurityProfile} (\texttt{luxfi/[email protected]},
|
|
\texttt{config/security\_profile.go:244}) with eleven enum-or-flag fields, all
|
|
of which are zero-value-invalid; the profile carries a SHA3-384 digest of every
|
|
other field (\texttt{ComputeHash}, \texttt{security\_profile.go:835}) and that
|
|
digest is pinned in genesis. Booting on a chain whose profile does not match
|
|
the pinned digest fails closed --- there is no permissive default.
|
|
|
|
We specify the fourteen surfaces the profile covers. On signed-transaction
|
|
authorisation: a 17-field \texttt{TxAuthEnvelope}
|
|
(\texttt{protocol/auth/tx\_envelope.go:108}) whose signing digest is
|
|
TupleHash256-bound under customization \texttt{LUX\_TX\_AUTH\_V1}, replacing
|
|
RLP-keccak for raw transactions. On smart-contract permits: an 11-field
|
|
\texttt{PQPermit} (\texttt{protocol/auth/permit.go:70}) under
|
|
\texttt{LUX\_PQ\_PERMIT\_V1}, replacing EIP-2612. On the Z-Chain identity
|
|
rollup: five operations (\texttt{Register} / \texttt{Rotate} / \texttt{Revoke} /
|
|
\texttt{AuthorizeSession} / \texttt{CommitTxAuthBatch} /
|
|
\texttt{CommitPermitBatch}) over a seven-root \texttt{ZRegistryRoots}
|
|
aggregator. On finality: a 23-axis Q-Chain \texttt{ComputeRoundDigest} binding
|
|
consumed by Pulsar, the Module-LWE threshold scheme that replaces BLS in the
|
|
finality lane (\texttt{luxfi/pulsar}). On proofs: the p3q STARK / FRI
|
|
stack over SHA3 with no KZG, no BN254, and no Groth16 wrappers
|
|
(\texttt{luxfi/[email protected]}, ten crates). On the P2P layer: an ML-KEM-768 /
|
|
ML-KEM-1024 + ML-DSA-65 handshake with five cSHAKE customizations
|
|
(\texttt{luxfi/node@dc906d281b}). On bridges: a refused-primitives
|
|
\texttt{BridgeProfile}. On contract auth: a per-contract auth profile resolved
|
|
through the \texttt{PQAuth} precompile at \texttt{0x012202}.
|
|
|
|
We close with a golden vector. Under the locked LUX\_STRICT\_E2E\_PQ profile,
|
|
\texttt{ChainSecurityProfile.ComputeHash} returns
|
|
\[
|
|
\texttt{93efd103\ldots323bfcd0}.
|
|
\]
|
|
This 48-byte digest is the entire E2E security claim, byte-equal, end to end,
|
|
across every Lux node that boots the genesis under this profile. A
|
|
divergent node sees a different digest and refuses to start.
|
|
|
|
\textbf{Honest claim.} The crypto primitives in this paper --- ML-DSA-65,
|
|
ML-KEM-768, cSHAKE256, TupleHash256, FRI, Pulsar --- are not new. What is new
|
|
is the \emph{composition}: a single locked profile that pins every surface a
|
|
classical or post-quantum adversary could touch, with a single 48-byte digest
|
|
binding the entire system together. The paper specifies the surface coverage
|
|
at a level of detail sufficient to reproduce every signing transcript and
|
|
every wire envelope byte-for-byte from \texttt{luxfi/consensus},
|
|
\texttt{luxfi/crypto}, \texttt{luxfi/pulsar}, \texttt{luxfi/p3q}, and
|
|
\texttt{luxfi/node} canonicals.
|
|
|
|
The canonical claims/evidence table and the architectural commitments live in
|
|
LP-105 (Lux Stack Lexicon) and HIP-0078 (Z-Chain registry); other Lux
|
|
documents reference them by section, never duplicate them.
|
|
\end{abstract}
|
|
|
|
\tableofcontents
|
|
\newpage
|
|
|
|
\input{sections/01-intro}
|
|
\input{sections/02-profile}
|
|
\input{sections/03-tx-auth-envelope}
|
|
\input{sections/04-pq-permit}
|
|
\input{sections/05-zchain-rollup}
|
|
\input{sections/06-qchain-finality}
|
|
\input{sections/07-pulsar}
|
|
\input{sections/08-p3q}
|
|
\input{sections/09-p2p-pq}
|
|
\input{sections/10-cpx-coverage}
|
|
\input{sections/11-bridge-pq}
|
|
\input{sections/12-evaluation}
|
|
\input{sections/13-security-considerations}
|
|
\input{sections/14-related-work}
|
|
|
|
\bibliographystyle{plain}
|
|
\bibliography{sections/15-references}
|
|
|
|
\appendix
|
|
\section*{Reproducibility}
|
|
\textbf{Source code.} \texttt{github.com/luxfi/p3q} (commit \texttt{TBD}); proofs at \texttt{github.com/luxfi/proofs/tree/main/strict-e2e-pq}; LP catalogue at \texttt{github.com/luxfi/lps}.\\
|
|
\textbf{Build.} \texttt{go build ./...} for the P3Q reference; \texttt{latexmk -pdf} for proofs.\\
|
|
\textbf{Hardware tested.} TBD (commodity x86\_64 Linux; AVX2 optional).\\
|
|
\textbf{Standards referenced.} FIPS 202 (SHA-3/SHAKE), FIPS 203 (ML-KEM), FIPS 204 (ML-DSA), FIPS 205 (SLH-DSA), NIST SP 800-56C (KDF).\\
|
|
\textbf{Contact.} [email protected].
|
|
|
|
\end{document}
|