DID 学习日记 - 基础篇 - poseidon hash

官方资料

https://www.poseidon-hash.info

Poseidon

Poseidon2

我对 poseidon hash 的一些粗浅理解

与其他 hash 共有的特点

poseidon hash 和其他 hash 函数一样, 都有如下特点:

  • 抗碰撞性 (collision resistance)

    Poseidon 被设计为抗碰撞的哈希函数,这意味着在常规计算条件下,两个不同的输入应该产生不同的哈希输出。抗碰撞性是哈希函数的一项基本属性,确保不同的输入映射到相同的哈希值的概率非常小。

  • 不可逆性 (pre-image resistance)

    不可逆性是指给定哈希输出,理论上很难找到原始的输入。在哈希函数的设计中,不可逆性是一个重要的安全属性,确保哈希值不能轻易被逆向计算出原始输入。

poseidon hash 的优势

POSEIDON hash 与其他 hash 函数在几个方面有所不同:

  • 结构

    POSEIDON hash 采用了一种新颖的结构,包括了 Sponge Construction 和 HADES Design Strategy,在设计中考虑了对 Merkle 树的应用,这使得它在处理零知识证明系统中的特定需求时表现出色。

  • 性能

    相比其他 hash 函数,POSEIDON hash 在特定场景下能够提供更高的性能,例如在 Merkle 树中累积值的零知识证明中,POSEIDON hash 可以在 1 秒内处理十亿大小的树,而且其约束数也比其他函数低。

  • 应用

    POSEIDON hash 被建议用于各种零知识证明友好的哈希应用,包括承诺、签名方案和多元素对象的哈希等 7。

  • 设计灵感

    POSEIDON hash 的设计灵感来自于多个密码学算法,如 LowMC 密码、SHARK 分组密码和 MiMC 算法,这使得其设计更加全面 4。

    这些方面的不同使得 POSEIDON hash 在特定的零知识证明系统中具有独特的优势,从而为密码学领域带来了新的可能性。

在 merkle tree 和 DID 里的作用

当把 hash 的结果放到区块链上(的智能合约)之后, 证明者通过提供 POSEIDON hash 的源数据,校验者自己将源数据进行 hash 操作后得到 hash 值,然后与证明者提前放在区块链上的 hash 值进行比对。

如果两者值一样,在区块链数据不可修改+hash 操作不可逆的前提下,证明者就证明了自己拥有这个源数据。