Precompiles
LP-4340
DraftKeccak-256 / SHA-3 Hash Family Precompile
Native EVM-default hash (Keccak-256, the EVM `KECCAK256` opcode) and standardized SHA-3 family (FIPS 202) including SHA3-256, SHA3-384, SHA3-512, SHAKE128, SHAKE256.
Abstract
Keccak (Bertoni, Daemen, Peeters, Van Assche 2008) is the sponge-
construction hash function selected by NIST as SHA-3 (FIPS 202,
2015). Ethereum (and the Lux EVM) uses Keccak-256 — the
original Keccak with the pre-final padding rule, not the
NIST-standardized SHA3-256 — as the universal address-derivation /
storage-slot / event-topic hash, exposed via the KECCAK256
opcode (0x20). This LP pins:
- Keccak-256 (
KECCAK256opcode) — EVM-default, used in address derivation and state-trie keying. - SHA-3 family precompiles (SHA3-256, SHA3-384, SHA3-512, SHAKE128, SHAKE256) at reserved precompile addresses — FIPS 202 compliant for standards-track applications (P3Q hash binding LP-4810, PQ-cert profiles, RFC-compliant signing).
- The 1-byte domain-separation flag distinguishing Keccak from SHA-3 in shared codebases.
Per LP-0120 the precompile address registry assigns dedicated slots for SHAKE128/256 to feed P3Q-FRI's hash-based PCS.
Reference implementation
- Primitive:
golang.org/x/crypto/sha3(FIPS 202 + Keccak-256) - Opcode:
KECCAK256(0x20) - P3Q hash binding: LP-4810 (SHA3 family for FRI)
Copyright
Copyright and related rights waived via CC0.