论文- https://eprint.iacr.org/2019/458.pdf
Poseidon 哈希算法的硬件加速与实现
实用的计算完整性证明系统领域,如 SNARKs、STARKs、Bulletproofs,正在经历非常动态的发展,最近出现了几种具有改进性能和放宽设置要求的结构。此类系统的许多用例通常作为其最昂贵的部分涉及在某个密码散列函数下证明原像的知识,该散列函数(Poseidon)表示为大素数域上的电路。一个值得注意的例子是 Zcash 加密货币中coin所有权的零知识证明,其中 SHA-256 散列函数对这种电路的不足导致了巨大的计算损失。
Poseidon是一种全新的面向零知识证明(ZKP: Zero-Knowledge Proof)密码学协议设计的哈希算法。相比同类算法,包括经典的SHA-256、SHA-3以及Pedersen哈希函数,在零知识证明的应用场景下,Poseidon能够显著地降低证明生成和验证的计算复杂度,极大地提升零知识证明系统整体的运行效率。基于上述优点,Poseidon目前已被广泛应用在了各种区块链项目当中,包括去中心化存储系统Filecoin、加密货币Mina Protocol和Dusk Network等,主要用于加速其中的零知识证明系统。
Poseidon是为 ZK 证明系统中使用的有限域量身定制的, 旨在最小化电路的大小,从而最小化证明者和验证者的复杂性。
Poseidon hash 解决了存储开销问题并减小了电路大小
一个模块化框架和加密散列函数的具体实例,它们可以与 GF§ 对象一起工作。
输入数据以 Fr
元素为单位,每一个 Fr
的大小是 32
字节(4
个 uint64_t
数据)
使用Poseidon hash, 不仅可以紧凑地表示为电路,而且还可以使用特制的多项式针对各种证明系统进行定制 , 从而带来性能的又一次提升。通过使用 Bulletproofs 在不到一秒的时间内使用 Merkle 树实现十亿分之一的成员资格证明来证明这一点。
- SHA-256 替换为Pedersen 哈希函数, **隐蔽交易所需时间减少了 75%
- 而Poseidon更优, 每个消息位使用的约束比 Pedersen Hash 少 8 倍
结论: Poseidon 对电路更友好
- 往期精彩回顾:
- 区块链知识系列
- 密码学系列
- 零知识证明系列
- 共识系列
- 公链调研系列
- 比特币系列
- 以太坊系列
- EOS系列
- Filecoin系列
- 联盟链系列
- Fabric系列
- 智能合约系列