Defines an EVM precompile at 0x0074 for FALCON signature verification. FALCON (Fast-Fourier Lattice-based Compact Signatures over NTRU) produces the smallest post-quantum signatures among lattice schemes (666 bytes at NIST Level 1). It is selected for use cases where signature size is critical: on-chain attestations, certificate chains, and compact proofs.
Address: 0x0074
Input: (bytes32 messageHash, bytes signature, bytes publicKey, uint8 paramSet)
Output: bytes32 (0x01 valid, 0x00 invalid)
Gas: 65,000 (FALCON-512), 130,000 (FALCON-1024)
FALCON wins on size; ML-DSA wins on signing speed. FALCON signing requires floating-point discrete Gaussian sampling, making constant-time implementation harder.
1. FALCON security relies on the NTRU lattice assumption and Short Integer Solution (SIS).
2. Signing requires careful floating-point sampling. Side-channel hardened implementation is mandatory.
3. FALCON is a NIST PQC finalist (Round 4 alternate) but not yet a FIPS standard. Use ML-DSA (FIPS 204) for FIPS-mandated contexts.
4. Key generation is slower than ML-DSA (~100ms vs ~1ms). Pregenerate keys in KMS.
github.com/luxfi/evm/precompile/contracts/falcon.go |github.com/luxfi/crypto/falcon/ |Copyright (C) 2024-2026, Lux Partners Limited. All rights reserved.
Licensed under the MIT License.