Poseidon¶
Overview¶
Poseidon is a hash function specifically designed for zero-knowledge proof systems. Compared to traditional hash functions like SHA-256, SHA-3, and Pedersen, it is tailored for the finite fields used in ZK proof systems, aiming to minimize circuit size and thereby minimize prover and verifier complexity.
Poseidon is based on the HADES strategy, reducing the number of constraints per message bit and improving performance in proof systems such as SNARKs, STARKs, and Bulletproofs.
Why Poseidon Is Suitable for ZKP¶
Reduced Computational Complexity: Poseidon can significantly reduce the computational complexity of proof generation and verification, greatly improving the overall operational efficiency of zero-knowledge proof systems.
SNARK-Friendly Design: Hash algorithms suitable for SNARKs are called SFH (SNARK-Friendly Hash). SFH is a hash algorithm specifically designed for SNARKs with lower multiplicative complexity than traditional hash algorithms. Common SFH examples include MiMC and Poseidon.
Efficiency Improvement: SHA256 is a typical SNARK-unfriendly hash function. Poseidon hash functions are specifically designed for ZKP; they are easier to implement in ZKP and can improve efficiency by 100x or more.
Technical Features¶
Algebraic Circuit Optimization: Poseidon is a family of hash functions designed to be highly efficient as algebraic circuits.
Finite Field Operations: Poseidon operates over finite fields, which naturally aligns with the arithmetic circuits of zk-SNARK proof systems.
Application Examples¶
Based on the advantages above, Poseidon has been widely adopted in various blockchain projects, including:
- Filecoin: Decentralized storage system
- Mina Protocol: Succinct blockchain
- Dusk Network: Privacy-preserving smart contract platform
- StarkNet: Layer 2 based on zk-STARK
Recommended Reading¶
Related Concepts¶
- zk-SNARK
- SNARK-friendly hash
- MiMC
- Finite Fields
- Algebraic Circuits