首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么要为零知识证明发明新的哈希函数?

为什么要为零知识证明发明新的哈希函数?
EN

Cryptography用户
提问于 2020-05-15 06:50:12
回答 1查看 1.1K关注 0票数 10

最近,新的哈希函数被发明。它们的主要目的是服务于零知识证明系统的需要。我说的是波塞冬-256,斯塔卡德-256等等。参见论文

与现有的哈希函数(如Blake3或SHA3 )相比,这些散列函数的主要优点是什么?这些功能有何不同?

EN

回答 1

Cryptography用户

回答已采纳

发布于 2020-05-15 11:12:01

让我们看看密码散列函数是如何在零知识证明系统中使用的一个例子。下面是用Zokrates工具箱编写的代码,它是使用零知识证明系统计算哈希的一个例子。首先编译程序说明。然后,我们将继续通过设置的算术电路的设置。然后我们导出验证器并计算证明。

代码语言:javascript
复制
import "hashes/sha256/512bitPacked" as sha256packed

def main(private field a, private field b, private field c, private field d) -> (field[2]):
    h = sha256packed([a, b, c, d])
    return h

让我们还分析另一个代码示例,以构造一个Pedersen哈希,并使用Zokrates构造零知识证明。

代码语言:javascript
复制
import "hashes/pedersen/6bit" as pedersen

def main() -> (field):

    field[6] e = [1, 1, 0, 0, 0, 0]
    field[2] d = pedersen(e)

    5483803361072598088157572477433311028290255512997784196805059543720485966024 == d[0]
    8712718144085345152615259409576985937188455136179509057889474614313734076278 == d[1]

    return 1

正如我们在这两个例子中所看到的,在一个密码散列函数下证明一个预图像的知识,用一个大素数域上的电路来表示,是零知识证明系统中算术电路结构中计算费用最高的部分之一。因此,所有的追求发明咆哮和赤裸裸友好的密码散列函数受到了热烈的欢迎!

在这个问题中提到的文件声称比Pedersen Hash减少了每个消息位的约束数,这可能会改善ZKSNARK的多项式承诺的构造性能。同样,所提出的二进制哈希函数STARKAD在不久的将来将有助于基于ZKSTARK的系统的构建。

我们的散列函数Poseidon比Pedersen Hash在每条消息位上使用的约束少8倍,而我们的二进制散列函数Starkad比其他最近的设计有很大的优势。

票数 6
EN
页面原文内容由Cryptography提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://crypto.stackexchange.com/questions/80690

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档