Expand description

Poseidon hash function with 55 full rounds, 0 partial rounds, sbox 7, a state of 3 elements and constraints of degree 2 Specialised circuit for Poseidon where we have maximum degree 2 constraints.

Modules

  • Implement an interpreter for a specific instance of the Poseidon inner permutation. The Poseidon construction is defined in the paper “Poseidon: A New Hash Function”. The Poseidon instance works on a state of size STATE_SIZE and is designed to work only with full rounds. As a reminder, the Poseidon permutation is a mapping from F^STATE_SIZE to F^STATE_SIZE. The user is responsible to provide the correct number of full rounds for the given field and the state. Also, it is hard-coded that the substitution is 7. The user must verify that 7 is coprime with p - 1 where p is the order the field. The constants and matrix can be generated the file poseidon/src/pasta/params.sage