/kerl

IOTA is adding an additional hashing function, based on Keccak, with conversion to ternary. The following document describes the functionality and specification to be implemented.

Primary LanguageRust

IOTA Kerl:

IOTA is adding an additional hashing function, based on Keccak, with conversion to ternary.
The following document describes the functionality and specification to be implemented.

Kerl integration in IOTA:

Kerl is used in IOTA for the following tasks:

Functionality Curl Kerl
Address generation V^
Signature generation V
Signature verification * V
Essence calculation (bundleHash) V
Proof of Work V
Transaction Hash V
Milestone verification V

* Curl is used to verify spending from snapshot addresses.

^ CheckSums are calculated using the last 9 trytes.


Kerl specification:

Kerl Specification: specification and implementation details for kerl

Kerl Test vectors: extensive test vectors for independent implementations

Kerl implementation examples: