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

news/2024/9/24 3:17:45/

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. 可分为外部状态和内部状态


http://www.ppmy.cn/news/1462107.html

相关文章

iOS 如何让超出父视图的部分响应事件

1.demo 奉上自己的demo 2. 不能点击的原因 由于找不到hittest view,所以没有可以响应的uiresponser对象,所以点击没有任何反应 3. 解决思想 覆写hittest方法让父视图可以找到这个视图就好 4. 代码演示 - (UIView *)hitTest:(CGPoint)point withEvent: …

vld.ini配置文件说明

vld.ini配置文件说明 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; ;; Visual Leak Detector - 初始化/配置文件 ;; 版权所有 (c) 2005-2017 VLD团队 ;; ;; 本库是自由软件;你可以在自由软件基金会发布的GNU宽通用公共…

社交软件数据恢复:思语

在这个教程中,我们将详细介绍如何恢复在思语中丢失的数据,而不会推荐任何具体的数据恢复软件。 一、备份的重要性 在开始数据恢复之前,我们需要强调备份的重要性。备份可以确保即使数据丢失,您也可以轻松恢复。因此,…

JAVA虚拟机(JVM)中的堆

介绍 Java虚拟机中的堆是一个非常重要的区域,它一般用来存储实例对象和数组的区域,它存在于运行时数据区,同时它是线程共享的区域,在堆内存不足时会发生OOM,也是Java中的垃圾回收器回收的主要区域。但是不正确的内存管…

Linux-centos下安装ffmpeg的详细教程

源安装 第一种方式: . 首先需要安装yum源: 这个源安装的ffmpeg版本是3.4 yum install epel-release yum install -y https://mirrors.ustc.edu.cn/rpmfusion/free/el/rpmfusion-free-release-7.noarch.rpm然后可以安装ffmpeg yum install -y ffmpeg ff…

php+vant van-uploader手机拍照 上传

设置capture”user”&#xff0c;则只会调起摄像头&#xff1b; 不设置capture“user”&#xff0c;则会弹窗让选择相册或拍照。 HTML: <link rel"stylesheet" href"/vue/vant.css"><van-field name"uploader" label"照片"&…

《Python编程从入门到实践》day29

# 昨日知识点回顾 修改折线图文字和线条粗细 矫正图形 使用内置格式 # 今日知识点学习 15.2.4 使用scatter()绘制散点图并设置样式 import matplotlib.pyplot as plt import matplotlib matplotlib.use(TkAgg)plt.style.use(seaborn-v0_8) # 使用内置格式 fig, ax plt.subpl…

基于Hadoop的课程诊改大数据可视化分析研究与应用

基于Hadoop的课程诊改大数据可视化分析研究与应用 “A Study and Application of Big Data Visualization Analysis for Course Diagnosis and Improvement based on Hadoop” 完整下载链接:基于Hadoop的课程诊改大数据可视化分析研究与应用 文章目录 基于Hadoop的课程诊改大…