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¶
- Keccak source code used in Monero
- SHA3 on Wikipedia
- Keccak-256 vs SHA3-256 explained on Ethereum stackexchange
- Online tool to calculate Keccak-256 and SHA3-256