Skip to content

Keccak-256 Hash Function

Monero employs Keccak as a hashing function. In most context specifically Keccak-256 is used, providing 32-byte hashes.

Keccak is the leading hashing function, designed by non-NSA designers. Keccak won NIST competition to become the official SHA3.

Use Cases

Monero does not employ Keccak for Proof-of-Work. Instead, Keccak is used for:

  • random number generator
  • block hashing
  • transaction hashing
  • stealth address private key image (for double spend protection)
  • public address checksum
  • RingCT
  • multisig
  • bulletproofs

...and likely a few other things.

Keccak-256 vs SHA3-256

SHA3-256 is Keccak-256, except that NIST changed the padding. For this reason, the original Keccak-256 gives a different hash value than NIST SHA3-256.

Monero uses original Keccak-256. The NIST standard was only published on August 2015, while Monero went live on 18 April 2014.

Reference