Poseidon2:更快的Poseidon哈希函数

1. 引言

Lorenzo Grassi等人2023年论文《Poseidon2: A Faster Version of the Poseidon Hash Function》。
sage脚本见:

  • https://extgit.iaik.tugraz.at/krypto/hadeshash/-/blob/master/code/generate_params_poseidon.sage

Poseidon2与Poseidon主要区别为:
Poseidon2:更快的Poseidon哈希函数_第1张图片
Poseidon2与Poseidon的约束表示区别为:
Poseidon2:更快的Poseidon哈希函数_第2张图片

开源代码实现见:

  • https://github.com/HorizenLabs/poseidon2(Rust)

在该代码库中实现的哈希函数有:

  • Poseidon哈希函数:2019年论文。
  • Poseidon2哈希函数:2023年论文。
  • GMiMC-Hash哈希函数:2019年论文。
  • Neptune哈希函数:2021年论文。

这些哈希函数的性能对比为:
Poseidon2:更快的Poseidon哈希函数_第3张图片
其中:

  • p BLS12 = 0 x 73 e d a 753299 d 7 d 483339 d 80809 a 1 d 80553 b d a 402 f f f e 5 b f e f f f f f f f f 00000001 p_{\text{BLS12}}=0x73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000001 pBLS12=0x73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000001为BLS12-381曲线的Scalar域,详情见博客BLS12-381 pairing-friendly 曲线,已用于以太坊2.0、ZCash等项目中。
  • p Goldilocks = 0 x f f f f f f f f 00000001 = 2 64 − 2 32 + 1 p_{\text{Goldilocks}}=0xffffffff00000001= 2^{64} - 2^{32} + 1 pGoldilocks=0xffffffff00000001=264232+1,详情见博客Goldilocks域。已用于Plonky2,以及Polygon zkEVM等项目中。
  • p Babybear = 0 x 78000001 = 2 31 − 2 27 + 1 p_{\text{Babybear}}=0x78000001=2^{31}−2^{27}+1 pBabybear=0x78000001=231227+1,Baby bear field信息详情见RISC Zero zkVM: Scalable, Transparent Arguments of RISC-V Integrity,已用于RISC0 zkVM项目中。

你可能感兴趣的:(基础理论,哈希算法)