零知识证明:哈希函数-Poseidon2代码解析与benchmark

本文介绍了零知识证明中哈希函数的重要性,特别是Poseidon和其改进版Poseidon2。Poseidon2通过优化线性层和减少常量应用,降低了计算复杂度和内存使用。在Plonky3中,Poseidon2的性能得到验证,展示了其在零知识证明系统的优越性。
摘要由CSDN通过智能技术生成

1、哈希函数(Hash Function)与Poseidon

在密码学中,哈希函数是一种将任意大小的数据映射到固定大小的输出的函数。哈希函数的输出称为哈希值或哈希码。哈希函数具有单向性和抗碰撞性。一些常见的哈希函数包括 MD5、SHA-1、SHA-256 和 SHA-3。例如,假设您要验证一个文件的完整性。您可以使用哈希函数来计算该文件的哈希值。然后,您可以将该哈希值与文件的预期哈希值进行比较。如果两个哈希值相匹配,则可以确信文件没有被篡改。

在零知识证明领域中,使用抗碰撞Hash函数能够有效消除对可信任设置或椭圆曲线运算的需要,使Hash函数成为零知识证明系统中不可或缺的一部分。哈希函数在零知识证明系统中的发展过程可以总结为以下几个阶段:

•第一阶段:通用哈希函数

在零知识证明的早期阶段,主要使用通用哈希函数,例如 SHA-256 和 MD5。这些哈希函数被设计用于各种应用,包括数字签名和消息认证。然而,它们并不一定适合零知识证明系统的特定需求。

•第二阶段:基于 Merkle 树的承诺方案

随着零知识证明技术的发展,许多零知识证明系统开始开发专门用于零知识证明的哈希函数。一个重要的标志是基于 Merkle 树的承诺方案。Merkle 树是一种二叉树,它使用哈希函数来构建。Merkle 树可以用来构建多项式承诺,承诺值是 Merkle 树的根哈希值。基于 Merkle 树的承诺方案的优点是简单易懂,并且可以被有效地实现。然而,这些方案的安全性通常依赖于随机预言机模型,而随机预言机模型在现实世界中是不存在的。因此,基于 Merkle 树的承诺方案的安全性在理论上存在争议。

第三阶段:基于专用哈希函数

随着更加高效的多项式承诺方案的出现和发展,出现了专门用于零知识证明的哈希函数,例如 PoseidonRescue-Prime。这些专用哈希函数针对零知识证明系统的特定需求进行了优化,例如高效的计算和抵抗特定类型的攻击

在Plonky2中就使用了Poseidon哈希函数作为多项式承诺的节点生成方式。Poseidon采用 sponge/squeeze 结构,该结构吸纳万物并生成固定大小的输出,内部有一个状态 ,初始状态为0,状态S. 可分为外部状态和内部状态

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值