SNARK原理示例

news2024/9/23 19:19:37

1. 引言

前序博客有:

  • SNARK Design
  • Rollup项目的SNARK景观

SNARK方案由 Polynomial IOP ➕多项式承诺方案 组成。

当前的Polynomial IOP主要分为三大类:

  • 1)基于interactive proofs(IPs)的Polynomial IOP:如Hyrax、vSQL、Libra、Virgo等。【 P P P无需做FFT运算】
  • 2)基于multi-prover interactive proofs(MIPs)的Polynomial IOP:如Spartan、Brakedown、Xiphos等。【 P P P无需做FFT运算】
  • 3)基于constant-round的Polynomial IOP:如Marlin、PlonK、StarkWare的SNARKs等。【 P P P需要做FFT运算】

以上方案都是通过增加 P P P开销,来减少proof长度以及降低 V V V开销。
以上1)2)类,只要其结合的多项式承诺方案也不需要FFT,则 P P P无需做FFT运算。

当前的多项式承诺方案主要分为四大类:

  • 1)基于pairing的多项式承诺方案(既不transparent,也不post-quantum)
    • KZG10、PST13、ZGKPP18等。
    • 独特属性有:具有constant sized evaluation proofs。
  • 2)基于discrete logarithm的多项式承诺方案(transparent,但不post-quantum)
    • 如BCCGP16、Bulletproofs、Hyrax、Dory等。【其中Dory即需要discret-log hardness,还需要pairing。】
  • 3)基于IOPs+hashing(transparent 且 post-quantum)
    • 如Ligero、FRI、Brakedown等。
  • 4)基于Groups of unknown order的多项式承诺方案(若使用class groups具有transparent属性,但不是post-quantum的)
    • 如DARK、Dew等。
    • 由于使用class groups, P P P非常慢。

本文将:

  • 1)从“Multi-prover Interactive Proofs”(即基于MIP)的Polynomial IOP 分类中选择一个示例
  • 2)从“IOPs+hashing”的多项式承诺方案 分类中选择一个示例
  • 3)将以上1)2)2个示例组合,展示SNARK的工作原理
  • 4)将以上1)2)2个示例组合,所构成的SNARK具有novel efficiency:
    • 4.1)从文献来看,具有最快的 P P P(concretely and asymptotically);
    • 4.2)可基于任意(足够大)的域(即具有field agnosticism(域不可知)属性);
    • 4.3)首个实现见Brakedown [GLSTW21]:
      • 详细见 Alexander Golovnev、Jonathan Lee、Srinath Setty、Justin Thaler和Riad S. Wahby等人2021年论文 Brakedown: Linear-time and post-quantum SNARKs for R1CS)
      • 开源代码见:https://github.com/conroi/lcpc(Rust)
    • 4.4)缺点在于:proof相当大——近期已对其进行了改进,可参看Tiancheng Xie等人2022年论文Orion: Zero Knowledge Proof with Linear Prover Time。【Orion改进了proof size,但是牺牲了field agnosticism(域不可知)属性。
      在这里插入图片描述

2. Polynomial IOP示例

本文的Polynomial IOP示例运行在Arithmetic Circuit Satisfiability上下文中。
所谓Arithmetic Circuit Satisfiability,是指:

  • 已知某 arithmetic circuit C C C over F \mathbb{F} F of size S S S且输出为 y y y,判断是否存在某 w w w,使得 C ( w ) = y C(w)=y C(w)=y
    在这里插入图片描述

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

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

相关文章

【10】C语言_for循环 | 初识 | 入门 |

目录 1、引出for循环 2、for循环语法 例题&#xff1a; 1、引出for循环 因为while的三个条件&#xff0c;如果代码写的多的时候&#xff0c;以下的三个条件离得远不好&#xff0c;所以引出三个条件在一起的for循环 int main() { int i 1; //初始化while(i < 10)…

Java基本数据类型及其包装类

内置数据类型 Java语言提供了八种基本类型。六种数字类型&#xff08;四个整数型&#xff0c;两个浮点型&#xff09;&#xff0c;一种字符类型&#xff0c;还有一种布尔型。 byte&#xff1a; byte 数据类型是8位、有符号的&#xff0c;以二进制补码表示的整数&#xff1b;…

Prometheus-Exporter详解

一、Exporter是什么 广义上讲所有可以向Prometheus提供监控样本数据的程序都可以被称为一个Exporter。而Exporter的一个实例称为target&#xff0c;如下所示&#xff0c;Prometheus通过轮询的方式定期从这些target中获取样本数据: 二、Exporter的来源 从Exporter的来源上来…

26. 删除有序数组中的重复项

文章目录题目描述方法一 双指针-while方法二 双指针-for题目描述 给你一个 升序排列 的数组 nums &#xff0c;请你 原地 删除重复出现的元素&#xff0c;使每个元素 只出现一次 &#xff0c;返回删除后数组的新长度。元素的 相对顺序 应该保持 一致 。 由于在某些语言中不能…

数字图像处理---空间滤波基础

空间滤波概念 滤波&#xff1a;通过修改或者抑制给定图像的特定频率分量&#xff0c;常见有低通滤波器与高通滤波器。空间滤波&#xff1a;将像素值使用该像素值及其邻域的值进行替换&#xff0c;替换方式有线性与非线性两种&#xff0c;即线性滤波器与非线性滤波器。 线性滤…

VScode快速配置C/C++环境

文章目录我安装时仅参考了这两篇分享1.下载并安装VScode 商店C/C插件2.下载MinGW-W64 x86_64-win32-seh3.配置各种.json5.Hello_world.cpp测试我安装时仅参考了这两篇分享 伸手党进&#xff1a;具体步骤主要是这篇&#xff1a;Hudiscount-Vscode配置C/C环境 MinGW-W64 x86_64-…

华为数通--NAT、ACL、IPSec

NAT\ACL\IPSEC VPNNAT1.1静态NAT转换1.2NAT服务器1.3动态NAT1.4easy IPACL高级ACLIPSEC VPN配置IPSec V-P-N&#xff1a;.1 加解密点.2 IPSEC的SPD&#xff08;ACL&#xff09;、提议&#xff08;protocol&#xff09;和IPSEC 策略NAT(网络地址转换&#xff09; 1.1静态NAT转换…

设计模式 (一) 单例模式 Java

目录 一、饿汉式单例模式 二、懒汉式单例模式 三、最完美的单例模式写法 单例模式一般分为饿汉式与懒汉式&#xff08;类似于懒加载&#xff09;。饿汉式会在类加载时即刻创建实例对象&#xff0c;线程安全&#xff1b;懒汉式由于是在调用时才创建&#xff0c;所以需要考虑线…

vue3中的v-for

一.列表渲染v-for 真实开发中&#xff0c;往往会从服务器中拿到一组数据&#xff0c;并且需要对其进行渲染&#xff0c;这个时候可以使用v-for完成。 1.v-for的基本使用 1&#xff09;基本格式&#xff1a;“item in 数组” 数组通常是来自data或者prop&#xff0c;也可以是…

Swift(2)

因为要在31号之前用swift写一个系统&#xff0c;我不得不把我的电脑系统更新了一下&#xff0c;之后便下载了这个&#xff0c; 做了一些简单的测试&#xff0c;部分软件还是可以打开的。 这个软件用着的确比那个网站用着要舒服很多。 目录 问号 感叹号 ​编辑if else ​编…

Ubuntu18.04下linuxdeployqt下载安装

开发环境&#xff1a;Ubuntu18.04QT5.14.2 使用需求&#xff1a;使用QT开发完成后的项目需要使用linuxdeployqt工具打包生成相关文件 下载安装&#xff1a; 1.使用火狐浏览器打开linuxdeployqt下载地址&#xff1a; https://github.com/probonopd/linuxdeployqt/releases h…

Diffusion Models, CLIP与 DALLE 的学习与感悟

整合了一下关于Diffusion Models, CLIP与 DALLE 的介绍&#xff0c;应用&#xff0c;以及后续的拓展路线。 (Generative) Diffusion Models 还是先横向对一下最近比较火的几个生成模型 GAN、VAE、Flow-based Models、Diffusion Models。 在这里&#xff0c;可以将Diffusion…

SAP FICO 批量成本估算

批量成本估算 【前言】 单个物料的成本估算我们使用事务代码CK11N&#xff0c;标记/发布使用事务代码CK24&#xff0c;那么若有大批量新建的物料需要做成本估算&#xff0c;怎么办&#xff1f; 这里首先需要检查“成本核算变式”。 后台路径&#xff1a;SPRO→控制→产品成…

SpringBoot+Vue项目图书个性化推荐系统

文末获取源码 开发语言&#xff1a;Java 框架&#xff1a;springboot JDK版本&#xff1a;JDK1.8 服务器&#xff1a;tomcat7 数据库&#xff1a;mysql 5.7/8.0 数据库工具&#xff1a;Navicat11 开发软件&#xff1a;eclipse/myeclipse/idea Maven包&#xff1a;Maven3.3.9 浏…

Java设计模式-观察者模式Observer

介绍 观察者模式是行为设计模式之一。当您对对象的状态感兴趣并希望在任何更改时得到通知时&#xff0c;观察者设计模式非常有用。在观察者模式中&#xff0c;观察另一个对象状态的对象被称为观察者&#xff0c;而被观察的对象则被称为主体。 优点 观察者模式设计后&#xff0…

手撕RTSP协议中 从零开始学习RTSP协议 持续更新中....

RTSP协议在安防监控 摄像头有着广泛的运用 &#xff0c;基本上只要是做摄像头 是必须支持的协议。 我个人理解 RTSP基本上算是一个局域网的协议&#xff0c;广域网不太适合因为rtsp传输的视频码率 分辨率 都是比较高的 所有注定了他只适合局域网不适合互联网。 下午就要回家…

Node.js+Vue.js全栈开发王者荣耀手机端官网和管理后台(二) || 后台及接口完结篇

文章目录Node.jsVue.js全栈开发王者荣耀手机端官网和管理后台(二)通用CRUD接口装备&#xff08;物品&#xff09;管理图片上传英雄管理英雄编辑【模型字段】英雄编辑【编辑表单】技能编辑【UI】技能编辑【交互】文章管理富文本编辑器&#xff08;quill&#xff09;富文本编辑器…

23种设计模式(八)——工厂方法模式【对象创建】

文章目录 意图什么时候使用工厂方法真实世界类比工厂方法模式的实现工厂方法模式的优缺点亦称: 虚拟构造函数、Virtual Constructor、Factory Method 意图 在工厂方法模式中,工厂父类负责定义创建产品对象的公共接口,而工厂子类则负责生成具体的产品对象,这样做的目的是将…

大数据-hadoop-MapReduce原理详解

MapReduce[1]是Google提出的一个软件架构&#xff0c;用于大规模数据集的并行运算。概念“Map&#xff08;映射&#xff09;”和“Reduce&#xff08;归约&#xff09;”&#xff0c;及他们的主要思想&#xff0c;都是从函数式编程语言借鉴的&#xff0c;还有从矢量编程语言借来…

【基于crul库编写源码实现上传文件到http服务器】

基于crul库编写源码实现上传文件到http服务器编译crul库(可以去我下载资源里面找)用postman生成代码postman生成的代码对应的http服务器的设置_msnap_send_to_httpserver函数有http通过json发送jpeg文件、以及上传ftp服务器、发邮件的实例编译crul库(可以去我下载资源里面找) …