Poseidon is a hash function designed to minimize prover and verifier complexities when zero-knowledge proofs are generated and validated. Compared to competitor hash functions, such as Pedersen Hash, Poseidon uses up to 8x fewer constraints per message bit, which means that it is significantly faster.
Dusk uses zero-knowledge cryptography to preserve privacy. For example to prove that a user is part of a whitelist, a coin is unspent, proving the knowledge of a hash pre-image and much more. To do that effectively, we organize a so-called Merkle tree (not for every above-mentioned use case) that is used to prove that the transactor knows the opening of an element. The complexity of a proof depends on how large the circuit is, that is required to compute the path of the Merkle tree. Regular cryptographic hash functions such as SHA-256 or SHA-3 require large circuits as they are not tailored to finite fields used in ZK proof systems. Poseidon is a hash function designed to minimize the size of the circuits and thus to minimize the prover and verifier complexities.
We have created the first Poseidon implementation in Rust. Check our code HERE.
And read the full research HERE.
Thanks to the creators of the research: L. Grassi, D. Kales, D.Khovratovich, A. Roy, C.Rechberger and M. Schofnegger.
Dusk — Technology for Securities
Dusk streamlines the issuance of digital securities and automates trading compliance with the world’s first programmable and confidential securities.