Computational cryptography › Live on mainnet today › Hashes and symmetric crypto
Hardness assumption

Keccak-256 is secure

In plain words

Ethereum's main fingerprint (hash) function.

The idea: A hash function: any input in, 32 bytes out, with no way back and no known way to find two inputs with the same output. Ethereum uses it to give things short, unforgeable names: your address is part of the hash of your public key, and each block header carries hashes that pin down the entire state.

Why it matters: It creates addresses and seals the entire state of every account.

The details

On the map: collision + preimage resistance

Keccak-256 is Ethereum's main hash function[1, 2]: it derives addresses, roots the state, transaction and receipt tries, and hashes messages before signing. Ethereum adopted it before NIST finalized SHA-3, so it differs slightly in padding from standard SHA3-256[3].

The assumption is that finding collisions or preimages is infeasible. No meaningful attack exists on the full function, and quantum computers only speed up generic attacks.

Rests on

If any of these breaks, this breaks too.

If it falls

If this breaks, these break with it.

Everything that falls with it (5 boxes)

References

  1. Guido Bertoni, Joan Daemen, Michaël Peeters and Gilles Van Assche. The Keccak reference, version 3.0. Keccak team, 2011. keccak.team/files/Keccak-reference-3.0.pdf
  2. Gavin Wood. Ethereum: A Secure Decentralised Generalised Transaction Ledger. Ethereum Yellow Paper, 2014. ethereum.github.io/yellowpaper/paper.pdf
  3. NIST. SHA-3 standard: permutation-based hash and extendable-output functions. NIST FIPS 202, 2015. doi:10.6028/NIST.FIPS.202