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.
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
...and likely a few other things.
Keccak-256 vs SHA3-256¶
SHA3-256 is Keccak-256, except NIST changed padding. For that reason original Keccak-256 gives in 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.