1. 引言
前序博客:
- ZKP中的哈希函数
- 如何选择ZK-friendly 哈希函数?
- snark/stark-friendly hash函数
- Anemoi Permutation和Jive Compression模式:高效的ZK友好的哈希函数
- Tip5:针对Recursive STARK的哈希函数
- ZK友好代数哈希函数安全倡议
哈希函数广泛用于ZKP系统中,为提高ZKP系统效率,需要ZK友好的哈希函数。
受MARVELlous启发的hash函数:包含了Jarvis、Vision (binary field)、Pepper、Rescue (prime field),由COSIC团队的研究者设计。
- Vision/Rescue:Aly等人2019年论文《Efficient Symmetric Primitives for Advanced Cryptographic Protocols (A Marvellous Contribution)》。
- Rescue Prime hash:Szepieniec等人2020年论文 《Rescue-Prime: a Standard Specification (SoK)》。
3MI Labs 和 Irreducible团队 2024年论文《Vision Mark-32: ZK-Friendly Hash Function Over Binary Tower Fields》中所引入的Vision Mark-32哈希函数,为:
- 对Binary Tower Fields的Vision哈希改进版
- 具有优化的round数和高效的MDS matrix。
论文作者在Alveo U55C FPGA加速卡上实现了fully-pipelined Vision Mark-32 permutation,相比于当今流行的Poseidon哈希,其硬件效率提升了一个量级。
Vision Mark-32哈希函数:
- 使用Vision permutation来实例化其Sponge构造:
- 基于 F 2 32 \mathbb{F}_{2^{32}} F232域
- 具有8 rounds,state size为 m = 24 m=24 m=24,capacity为 c = 8 c=8 c=8
- 安全级别为 128 128 128 bits
- 相应伪代码为:
其中:- M M M为MDS matrix
- C r , 1 , C r , 2 ∈ F 2 32 24 C_{r,1},C_{r,2}\in\mathbb{F}_{2^{32}}^{24} Cr,1,Cr,2∈F23224为第 r r r-th round的round constants。
Vision Mark-32的安全性,依赖于:
- Marvelous family的安全性
- 以及,Sponge构造所提供的通用安全性
针对不同的攻击类型,需要的rounds数信息如下:
Vision Mark-32 与 Grøstl-256(SHA3最后一轮竞争者)、Poseidon哈希性能对比为:
其中:
- Grøstl-256(SHA3最后一轮竞争者):基于AES,AES为经过了最多认真彻底审查的算法。Grøstl哈希函数为Merkle–Damgård构造 + 512-bit压缩函数,每次压缩哈希输入为256 bits。
- Vision Mark-32 和 Poseidon采用的Sponge构造rates为512 bits。
- Vision Mark-32 比 Grøstl 更算术友好,且对于单个LUT的效率,仅比Grøstl低33%.
- Marvelous设计策略:也是基于AES设计策略。
- Grøstl-256和 Vision Mark-32,性能瓶颈均在LUT。
- Poseidon使用DSP,难于与LUT-only designs进行直接比较。
2. Irreducible工程进展
主流哈希函数和密码学算法(如 Keccak 和 AES)大量使用bitwise和二进制域运算。这种设计可:
- 在现代 CPU 上的数字电路中高效实现
- 在现代 CPU软件中高效实现。
然而,零知识和可验证计算要求:
- 哈希函数和密码学算法不仅执行效率高,
- 而且可以通过证明系统高效验证。
当今最流行的证明系统(如Plonky2)使用面向算术化的哈希函数(如Poseidon):
- 这些函数依赖于prime-order有限域中的原始运算。
这对于 STARK 的递归组合尤为重要,而递归组合现在是扩展 ZK 计算的重要技术。虽然 Poseidon 对于 ZK 验证很有效,但在现代英特尔处理器上:
- Poseidon比 Keccak-256 慢 10 倍左右,
- Poseidon比Grøstl(受 AES 启发的哈希函数)慢 14 倍。
Irreducible 团队与3MI Labs合作,推出Vision Mark-32:
- 是一种面向算术化的密码学算法和哈希函数,
- 专为与Binius配合使用而设计。
- 是Vision构造的特殊实例,
- 使用binary tower fields的独特属性来实现硬件的高性能,同时在 Binius 证明系统中保持高效可验证性。
- 在《Succinct Arguments over Towers of Binary Fields》研究论文中指出:
- Grøstl 是与 Binius 进行高效递归的候选哈希函数;
- Vision Mark-32 在降低验证成本和proof size方面更进一步,同时不牺牲计算效率。
Vision 密码学算法是一种替换排列网络 (substitution-permutation network,SPN):
- 这是一种可靠的设计策略,也用于 AES。
Vision Mark-32 在原始 Vision 构造上引入了三项显著的优化:
- 1)linear layer:设计为使用快速subfield乘法和additive数论变换(number theoretic transform,NTT),而不是一般矩阵乘法。
- 2)non-linear layer:设计为使用特定于binary tower filed的快速求逆算法,以及使用二进制矩阵乘法的线性化多项式evaluation的实现。
- 3)精细的安全分析可减少所需的permutation rounds排列轮数。
Irreducible团队在基于 Alveo U55C FPGA 加速器卡的 Irreducible Gen1 生产平台上以硬件方式实现了 Vision Mark-32。
- 是完全流水线式的,以 250MHz 的速度运行,具有 512 位 AXI Stream 接口。
此外,在下表中提供了针对相同设置设计的 Grøstl 和 Poseidon 哈希函数的完全流水线式实现。
这表明,新的 Vision Mark-32 实现:
- 实现了传统哈希函数的硬件效率,
- 同时还易于算术化。
参考资料
[1] 3MI Labs 和 Irreducible团队 2024年论文《Vision Mark-32: ZK-Friendly Hash Function Over Binary Tower Fields》
[2] 2024年5月1日Irreducible团队博客 Vision Mark-32: 专为Binius设计的面向算术化哈希函数