ZKP11.2 Fiat-Shamir and SNARGs

ZKP学习笔记

ZK-Learning MOOC课程笔记

Lecture 11: From Practice to Theory (Guest Lecturer: Alex Lombardi)

11.2 Fiat-Shamir and SNARGs

  • Succinct Non-Interactive Arguments (SNARGs)
    在这里插入图片描述

    • This class so far: constructions of SNARGs using IOPs and a random oracle.
  • The Fiat-Shamir Transform

    • Powerful, general proposal for removing interaction
      在这里插入图片描述

    • The Random Oracle Model [BR93]

      • Assumption about the structure of an attack on a hash function h
        在这里插入图片描述
    • Fiat-Shamir in the ROM (Random Oracle Model)
      在这里插入图片描述

      • Under such an assumption, h() can be thought of as a random function.
      • In practice, h() is instantiated with (e.g.) SHA256, possibly salted.
      • No matter what, h() is instantiated with a public efficient algorithm
  • Obvious (theoretical) problem: Public efficient algorithms can’t compute random functions

    • Example of an uninstantiable random oracle property [CGH98]
      • Random Oracles Do Not Exist
        在这里插入图片描述

      • For any fixed f, a RO is CI for f.

      • Why? Each query x to the RO produces a random output y, which is equal to f(x) with probability 2 − λ 2^{-\lambda} 2λ.
        在这里插入图片描述

      • Is this a reasonable counterexample?

        • Hash function/random oracle must be able to hash inputs of arbitrary length. CI with bounded inputs might exist!
        • [Barak01,GK03] apply to fixed-input length hash functions.
        • Theorem [Barak ‘01, Goldwasser-Kalai ‘03]: KaTeX parse error: Undefined control sequence: \exsit at position 1: \̲e̲x̲s̲i̲t̲ interactive protocol Π \Pi Π such that Π F S \Pi_{FS} ΠFS is ROM-secure but insecure for any efficiently computable H (e.g. SHA-3).
      • Security property broken by running the hash function on its own description. Is this practically relevant?

        • Recursive SNARKs do something of this flavor
      • Does NOT imply RO-based SNARKs are broken in practice.

        • But it does imply a lack of theoretical understanding.

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/189505.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

3、MSF使用

文章目录 一、利用ms17-010漏洞对靶机执行溢出攻击二、后渗透模块meterpreter的使用 一、利用ms17-010漏洞对靶机执行溢出攻击 分别输入以下命令,使用ms17_010_eternalblue模块对目标机的ms17-010漏洞进行利用: use exploit/windows/smb/ms17_010_eter…

【机器学习 | 聚类】关于聚类最全评价方法大全,确定不收藏?

🤵‍♂️ 个人主页: AI_magician 📡主页地址: 作者简介:CSDN内容合伙人,全栈领域优质创作者。 👨‍💻景愿:旨在于能和更多的热爱计算机的伙伴一起成长!!&…

贝叶斯个性化排序损失函数

贝叶斯个性化排名(Bayesian Personalized Ranking, BPR)是一种用于推荐系统的机器学习方法,旨在为用户提供个性化的排名列表。BPR的核心思想是通过对用户历史行为数据的分析,对用户可能喜欢和不喜欢的物品对(item pair…

时间序列预测 — Informer实现多变量负荷预测(PyTorch)

目录 1 实验数据集 2 如何运行自己的数据集 3 报错分析 1 实验数据集 实验数据集采用数据集4:2016年电工数学建模竞赛负荷预测数据集(下载链接),数据集包含日期、最高温度℃ 、最低温度℃、平均温度℃ 、相对湿度(平均) 、降雨…

Kibana部署

服务器 安装软件主机名IP地址系统版本配置KibanaElk10.3.145.14centos7.5.18042核4G软件版本:nginx-1.14.2、kibana-7.13.2-linux-x86_64.tar.gz 1. 安装配置Kibana (1)安装 [rootelk ~]# tar zxf kibana-7.13.2-linux-x86_64.tar.gz -C…

laravel实现发送邮件功能

Laravel提供了简单易用的邮件发送功能,使用SMTP、Mailgun、Sendmail等多种驱动程序,以及模板引擎将邮件内容进行渲染。 1.在项目目录.env配置email信息 MAIL_MAILERsmtp MAIL_HOSTsmtp.qq.com MAIL_PORT465 MAIL_FROM_ADDRESSuserqq.com MAIL_USERNAME…

【理解ARM架构】 散列文件 | 重定位

🐱作者:一只大喵咪1201 🐱专栏:《理解ARM架构》 🔥格言:你只管努力,剩下的交给时间! 目录 🏓引出重定位🏓散列文件🏓可读可写数据段重定位&#…

php的字符转义函数有那些,是干什么的

在 PHP 中,字符转义函数是用于处理字符串中的特殊字符,以防止这些字符被误解、滥用或引起安全问题的一组函数。这些函数的主要作用是确保在将用户提供的数据插入到数据库、构建 HTML 输出或进行其他与安全相关的操作时,不会导致潜在的安全漏洞…

6.12找树左下角的值(LC513-M)

算法: 这道题适合用迭代法,层序遍历:按层遍历,每次把每层最左边的值保存、更新到result里面。 看看Java怎么实现层序遍历的(用队列): /*** Definition for a binary tree node.* public clas…

C#,《小白学程序》第九课:堆栈(Stack),先进后出的数据型式

1 文本格式 /// <summary> /// 《小白学程序》第九课&#xff1a;堆栈&#xff08;Stack&#xff09; /// 堆栈与队列是相似的数据形态&#xff1b;特点是&#xff1a;先进后出&#xff1b; /// 比如&#xff1a;狭窄的电梯&#xff0c;先进去的人只能最后出来&#xff1…

Python中zip()函数用法解析

打包 zip() 函数是 Python 中一个非常有用的函数&#xff0c;它用于将多个可迭代对象组合成一个元组序列&#xff0c;依次将来自每个可迭代对象的元素打包在一起。 基本的语法是 zip(iterable1, iterable2, ...)&#xff0c;其中 iterable1, iterable2, ... 是要合并的可迭代…

Kubernetes技术与架构-配置

一般情况下&#xff0c;Kubernetes使用yaml文件格式定义配置文件&#xff0c;配置文件须指定对应的API稳定版本号&#xff0c;将配置文件进行版本控制、在发布新版本的过程中出问题时可以执行版本回滚操作&#xff0c;将相关联的对象定义在同一个配置文件中、从而更容易地管理&…

队列详解(C语言实现)

文章目录 写在前面1 队列的定义2 队列的初始化3 数据入队列4 数据出队列5 获取队头元素6 获取队尾元素7 获取队列元素个数8 判断队列是否为空8 队列的销毁 写在前面 本片文章详细介绍了另外两种存储逻辑关系为 “一对一” 的数据结构——栈和队列中的队列&#xff0c;并使用C语…

openEuler Linux 部署 FineBi

openEuler Linux 部署 FineBi 部署环境 环境版本openEuler Linux22.03MySQL8.0.35JDK1.8FineBi6.0 环境准备 升级系统内核和软件 yum -y updatereboot安装常用工具软件 yum -y install vim tar net-tools 安装MySQL8 将 MySQL Yum 存储库添加到系统的存储库列表中 sudo…

RocketMq 队列(MessageQueue)

RocketMq是阿里出品&#xff08;基于MetaQ&#xff09;的开源中间件&#xff0c;已捐赠给Apache基金会并成为Apache的顶级项目。基于java语言实现&#xff0c;十万级数据吞吐量&#xff0c;ms级处理速度&#xff0c;分布式架构&#xff0c;功能强大&#xff0c;扩展性强。 官方…

【LeetCode:828. 统计子串中的唯一字符 | 贡献法 乘法原理】

&#x1f680; 算法题 &#x1f680; &#x1f332; 算法刷题专栏 | 面试必备算法 | 面试高频算法 &#x1f340; &#x1f332; 越难的东西,越要努力坚持&#xff0c;因为它具有很高的价值&#xff0c;算法就是这样✨ &#x1f332; 作者简介&#xff1a;硕风和炜&#xff0c;…

蓝桥杯第四场双周赛(1~6)

1、水题 2、模拟题&#xff0c;写个函数即可 #define pb push_back #define x first #define y second #define int long long #define endl \n const LL maxn 4e057; const LL N 5e0510; const LL mod 1e097; const int inf 0x3f3f; const LL llinf 5e18;typedef pair…

十大排序之冒泡排序与快速排序(详解)

文章目录 &#x1f412;个人主页&#x1f3c5;算法思维框架&#x1f4d6;前言&#xff1a; &#x1f380;冒泡排序 时间复杂度O(n^2)&#x1f387;1. 算法步骤思想&#x1f387;2.动画实现&#x1f387; 3.代码实现&#x1f387;4.代码优化&#xff08;添加标志量&#xff09; …

NX二次开发UF_CURVE_ask_curve_fit_data 函数介绍

文章作者&#xff1a;里海 来源网站&#xff1a;https://blog.csdn.net/WangPaiFeiXingYuan UF_CURVE_ask_curve_fit_data Defined in: uf_curve.h int UF_CURVE_ask_curve_fit_data(tag_t curve_feature, UF_CURVE_curve_fit_data * curve_fit_data ) overview 概述 Ask c…

【Spring集成MyBatis】MyBatis注解开发

文章目录 1. MyBatis的常用注解2. 基于注解的MyBatis增删改查增删改查完整代码加载映射关系测试代码 3. MyBatis的注解实现复杂映射开发一对一操作的实现一对一操作实现的第二种方式一对多操作的实现多对多操作实现 1. MyBatis的常用注解 2. 基于注解的MyBatis增删改查 使用注…