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

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.xdnf.cn/news/1425249.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

第八篇 Asciidoc 输出 All In One HTML 解决图片无法显示问题

问题:我的图片显示不出来了 小明使用 Asciidoc 来记笔记,他将笔记输出为 HTML 文件。小丽向小明借笔记。小明将 Asciidoc 笔记输出为 HTML文件,并拷贝给了小丽。 但是,小丽发现,图片都显示不出来了。 小丽:小明,你给我的笔记,图片都显示不出来啊。 小明:是我给你的…

2024CCPC郑州邀请赛暨河南省赛(A,B,C,D,F,G,H,J,K,L,M)

2024 National Invitational of CCPC (Zhengzhou), 2024 CCPC Henan Provincial Collegiate Programming Contest 2024 年中国大学生程序设计竞赛全国邀请赛(郑州)暨第六届 CCPC 河南省大学生程序设计竞赛 比赛链接 这场的题说实话难度其实都不大&…

AndroidStudio集成高德地图后出现黑屏并报错

报错内容为:No implementation found for void com.autonavi.base.ae.gmap.GLMapEngine.nativeMainThreadTrigger(int, long) (tried Java_com_autonavi_base_ae_gmap_GLMapEngine_nativeMainThreadTrigger and Java_com_autonavi_base_ae_gmap_GLMapEngine_nativeM…

金蝶AAS-V9.0前后端部署

前言 包含金蝶AAS9.0部署,前端部署,后端部署。 金蝶AAS9.0部署 1. 下载金蝶AAS9.0安装包上传至服务器; 2. 解压安装包; unzip -d /opt/AAS-V9.0 AAS-V9.0.zip3. 配置JAVA路径; echo $JAVA_HOME vim /opt/AAS-9.0…

06_机器学习算法_朴素贝叶斯

1. 朴素贝叶斯的介绍与应用 1.1 朴素贝叶斯的介绍 朴素贝叶斯算法(Naive Bayes, NB)是应用最为广泛的分类算法之一。它是基于贝叶斯定义和特征条件独立假设的分类方法。由于朴素贝叶斯法基于贝叶斯公式计算得到,有着坚实的数学基础,以及稳定的分类效率。NB模型所需估计的…

Mac SourceTree配置ssh git仓库

一、准备条件 1、Mac系统电脑 2、安装好SourceTree 3、获取ssh git仓库地址 二、配置步骤 1、打开终端命令行 ssh -t rsa -C "xxx""xxx"代表注册git仓库时,使用的用户名,可以是字符串也可以是邮箱地址。 如果遇到输入密码&#xf…

2024MySQL8安装与绿色版Navicat连接【提供安装包】数据库

视频教程面向人群和使用方法: 1:大学生【解决老师作业或自己兴趣学习需要】; 2:第一次需要安装MySQL的开发者【需要简单使用,因为项目会用到】 3:老手二倍速,新手老老实实按照教程一倍速模仿视频操作&am…

照明灯具十大排名哪个品牌好?照明灯具前十名排行榜大公开!

照明灯具十大排名哪个品牌好?护眼台灯作为照明灯具的重要组成部分,其品质与品牌选择显得尤为关键,市面上品质比较好的护眼台灯品牌有书客、明基、松下等品牌。本文旨在为大家揭晓照明灯具十大排名中的佼佼者,揭示照明灯具前十名的…

思科期末大作业

计算机网络,可代写网络作业, 思科cisco模拟器,eve,制作校园局域网、企业局域网,实现路由交换、单臂路由、冗余、ACL、Nat、PAT、DHCP,RIP,OSPF,pppoe等技术,价格合理,详细私聊

原创|手把手教你构建评分卡模型

作者:胡赟豪‍‍‍‍ 本文约2800字,建议阅读5分钟 本文介绍了构建评分卡模型。‍‍‍ 一、背景 在各种机器学习、深度学习模型快速发展的当下,评分卡模型作为一种可解释机器学习模型,仍然在金融、营销等领域被广泛使用。这一模型通…

vue嵌套路由

一、嵌套 children配置 1.父类路由 mymusic 2.子类路由 musicson 1.创建MusicSon组件 <template><div><p>从前和后来</p><p>唯一</p><p>运气来的似有若无</p></div> </template><script>export defaul…

案例 | 澳鹏自动驾驶标注方案入选虎嗅智库行业报告

随着自动驾驶技术发展及方案演进&#xff0c;市场对于数据标注的数量和质量的需求都呈现指数级增长。传统的手工标注已不能满足标注需求&#xff0c;自动标注伴随大模型的发展应运而生。 在这一背景下&#xff0c;虎嗅智库发布《自动驾驶数据标注技术落地洞察》&#xff0c;并…

PCB供电夹子DIY

在刷小红书的时候&#xff0c;看到了清华卓晴教授【https://zhuoqing.blog.csdn.net/】DIY的供电夹子&#xff0c;感觉对于自己DIY PCB的时候供电会比较方便&#xff0c;物料也比较简单&#xff0c;打算复刻一下。 使用物料 1、小夹子&#xff0c;文具店都有卖&#xff0c;选…

专业做护眼灯的有哪些品牌,强烈分享几款专业护眼灯的牌子

随着学生们重返校园&#xff0c;家长和孩子们忙于新学期的准备工作&#xff0c;眼睛健康的考量自然也在其中。这也是为何近年来护眼台灯越来越受到欢迎的原因之一。在受欢迎的过程中也会有不少人萌生出“专业做护眼灯的有哪些品牌”这一问题&#xff0c;作为一个长期近视并且日…

SpringBoot+MybatisPlus实现读写分离,自动切换数据源,主从同步

读写分离有必要吗&#xff1f; 实现读写分离势必要与你所做的项目相关&#xff0c;如果项目读多写少&#xff0c;那就可以设置读写分离&#xff0c;让“读”可以更快&#xff0c;因为你可以把你的“读”数据库的innodb设置为MyISAM引擎&#xff0c;让MySQL处理速度更快。 实现…

【无标题】海图微电子产品

一、HT2300 1、产品介绍 HT2300在全分辨率 (1920 H 1080 V) 下&#xff0c;它们的帧率可达2500fps。加上全局快门像素和低噪声等特性&#xff0c;可满足对高分辨率&#xff0c;高速CMOS图像传感器的需求&#xff0c;适用于科学研究&#xff0c;工业检测和数字影视中高速视频捕捉…

汇凯金业:贵金属投资如何操作

投资贵金属虽然可能看起来令人生畏&#xff0c;但只要你知道如何操作&#xff0c;就可能会变得实际可行。以下是操作贵金属投资的基本步骤&#xff1a; 1. 了解市场 第一步是学习贵金属投资的基础知识&#xff0c;了解市场的运作方式&#xff0c;类型的区别(如黄金、白银、铂…

JETBRAINS IDES 分享一个2099通用试用码,支持一键升级!DataGrip 2024 版

文章目录 废话不多说上教程&#xff1a;&#xff08;动画教程 图文教程&#xff09;一、动画教程激活 与 升级&#xff08;至最新版本&#xff09; 二、图文教程 &#xff08;推荐&#xff09;Stage 1.下载安装 toolbox-app&#xff08;全家桶管理工具&#xff09;Stage 2 : 下…

【手势识别-UILongPressGestureRecognizer长按 Objective-C语言】

一、我们来说这个长按啊, 1.长按这个手势,也是,步骤都是一样的,首先,也是这三大步啊, 1)创建手势对象 2)对某一个view添加手势 3)实现手势的方法 首先,也是三大步, 1)创建手势对象:首先,你要告诉我,你要使用哪一个手势,我要使用一个叫做UILongPressGesture…

【吊打面试官系列】Java高并发篇 - 创建线程的有哪些方式?

大家好&#xff0c;我是锋哥。今天分享关于 【创建线程的有哪些方式&#xff1f;】面试题&#xff0c;希望对大家有帮助&#xff1b; 创建线程的有哪些方式&#xff1f; 1、继承 Thread 类创建线程类 2、通过 Runnable 接口创建线程类 3、通过 Callable 和 Future 创建线程 …