当前位置: 首页 > news >正文

nil Foundation的Placeholder证明系统(2)

前序博客:

  • nil Foundation的Placeholder证明系统(1)

=nil; Foundation团队2022年11月论文《Placeholder证明系统》。[2022年11月29日版本]

8. 优化

8.1 Batched FRI

不同于单独检查每个commitment,可对其进行FRI聚合。如对多项式f0,⋯,fkf_0,\cdots,f_kf0,,fk

  • 1)从transcript中获取θ\thetaθ
  • 2)计算f=f0⋅θk−1+⋯+fkf=f_0\cdot \theta^{k-1}+\cdots+f_kf=f0θk1++fk
  • 3)基于fff运行FRI,using oracles to f0,⋯,fkf_0,\cdots,f_kf0,,fk

从而可对所有committed polynomials只允许依次FRI实例。详细参看RedShift论文。

8.2 Hash By Column

不同于对每个多项式都进行commit,可对多个多项式采用相同的Merkle tree,这样可降低Prover所需提供的Merkle tree paths数量。
详细参看RedShift论文。

8.3 Hash By Subset

每个i+1i+1i+1 FRI round假定Prover发送all elements from a coset H∈D(i)H\in D^{(i)}HD(i)。每个Merkle leaf可包含the whole coset instead of separate values。
详细参看RedShift论文。不过RedShift作者在每个leaf中使用了更多的values,从而具有更好的性能。

8.4 FRI PoW

待续。。。。

9. Placeholder参数

本节重点讨论Placeholder参数 及其对协议安全和性能的影响。

9.1 FRI参数

RS[F,D,ρ]\mathbf{RS}[\mathbb{F},D,\rho]RS[F,D,ρ]为Reed-Solomon code family。此处有∣D∣=n=2k,ρ=2−R(k,RN)|D|=n=2^k,\rho=2^{-R}(k,R\mathbb{N})D=n=2k,ρ=2R(k,RN)。这意味着committing polynomials的degree bound为d=2k−Rd=2^{k-R}d=2kR
r∈[1,log⁡d=n^]r\in [1,\log d=\hat{n}]r[1,logd=n^]为FRI inner rounds数,lll为repetition参数。
相应的:

  • Prover:O(n)\mathcal{O}(n)O(n)
  • Verifier:O(log⁡n)\mathcal{O}(\log n)O(logn)

对于每个ϵ∈(0,1]\epsilon\in (0,1]ϵ(0,1],令Jϵ:[0,1]→[0,1]J_{\epsilon}:[0,1]\rightarrow [0,1]Jϵ:[0,1][0,1]函数为:
Jϵ(X)=1−1−X(1−ϵ)J_{\epsilon}(X)=1-\sqrt{1-X(1-\epsilon)}Jϵ(X)=11X(1ϵ)

假设Δ(f,RS)=δ>0\Delta(f,\mathbf{RS})=\delta>0Δ(f,RS)=δ>0,则根据Eli Ben-Sasson 2019年论文 DEEP-FRI: Sampling Outside the Box Improves Soundness,相应的soundness error上限为:
err(δ)=2log⁡∣D∣ϵ3∣F∣+(1−min⁡{δ0,Jϵ(1−ρ)}+ϵlog⁡∣D∣)l\mathbf{err}(\delta)=\frac{2\log |D|}{\epsilon^3|\mathbb{F}|}+(1-\min\{\delta_0,J_{\epsilon}(1-\rho)\}+\epsilon \log |D|)^lerr(δ)=ϵ3F2logD+(1min{δ0,Jϵ(1ρ)}+ϵlogD)l

9.2 Placeholder参数

当前可将circuit parameters用于FRI commitments。
ddd为the smallest power of two,使得d≥Nrowsd\geq N_{rows}dNrows。在Placeholder中,ddd定义为the highest degree of polynomials that can be committed by FRI instance。
wwwddd-th root of unity。有d=2n^d=2^{\hat{n}}d=2n^,且n^≥Nrows\hat{n}\geq N_{rows}n^Nrows

RS[F,D,ρ]\mathbf{RS}[\mathbb{F},D,\rho]RS[F,D,ρ]来表示FRI commitments,其中:

  • F\mathbb{F}F:与PLONK arithmetization中的field相同。
  • DDD:为domain of n=2k=2n^+Rn=2^k=2^{\hat{n}+R}n=2k=2n^+R root of unity。
  • ρ=2−R\rho=2^{-R}ρ=2R:为可调整的参数。

Soundness error定义为:
ϵπ(δ)≤max⁡(ϵFRI(δ),ϵIOPN,1F)\epsilon_{\pi}(\delta)\leq\max(\epsilon_{FRI}(\delta),\epsilon_{IOP}^N, \frac{1}{\mathbb{F}})ϵπ(δ)max(ϵFRI(δ),ϵIOPN,F1)
其中,ϵIOPN=(Jp,ν)8⋅4nF/D\epsilon_{IOP}^N=(J_{p,\nu })^8\cdot \frac{4n}{\mathbb{F}/D}ϵIOPN=(Jp,ν)8F/D4n

log⁡∣F∣=255,ν=∣F∣−1/20,D=228\log |\mathbb{F}|=255,\nu=|\mathbb{F}|^{-1/20},D=2^{28}logF=255,ν=F1/20,D=228,其对ϵIOPN\epsilon_{IOP}^NϵIOPN的error contribution量级为2−1282^{-128}2128
ρ=1/16\rho=1/16ρ=1/16,根据上面的FRI error公式,为达到80 bits security ,需要40个verifier queries(λ\lambdaλ)。
【注意,以上参数并未考虑借助”grinding“技术,可进一步降低queries数量。】

10. Circuit性能评估

关键标识有:

标识含义
nnn(对应之前NrowsN_{rows}NrowsRows的数量
NwitnessN_{witness}NwitnessWitness Columns(又名”Advice Columns“)的数量
NpermN_{perm}Nperm包含在Permutation Argument中的Witness Columns数量
NselN_{sel}NselCircuit中所使用的Selectors数量
NlookupN_{lookup}NlookupLookup Constraints数量
NcN_cNcConstraints Polynomials数量【根据RedShift论文,Constraint Polynomials:由Selector Polynomials qL,qR,qO,qM,qC\mathbf{q_L},\mathbf{q_R},\mathbf{q_O},\mathbf{q_M},\mathbf{q_C}qL,qR,qO,qM,qC 和 Permutation Polynomials {Sidi(X)}i=13,{Sσj(X)}j=13\{S_{id_i}(X)\}_{i=1}^3, \{S_{\sigma_j}(X)\}_{j=1}^3{Sidi(X)}i=13,{Sσj(X)}j=13组成】
NPIN_{PI}NPIPublic input Columns数量
wiw_iwiWitness Polynomials,其中0≤i<Nwitness0\leq i < N_{witness}0i<Nwitness
cj(i)c_j^{(i)}cj(i)Constraints Polynomials,其中0≤i<Nsel0\leq i < N_{sel}0i<Nsel
gatei\mathbf{gate}_igateiGate Polynomials,0≤i<Nsel0\leq i<N_{sel}0i<NselGate Polynomials for Selector qi(X)q_i(X)qi(X) and Constraints {cj(i)}j=0ni′−1\{c_j^{(i)}\}_{j=0}^{n_i'-1}{cj(i)}j=0ni1
PIiPI_iPIiPublic input Polynomials,其中0≤i<NPI0\leq i < N_{PI}0i<NPI
σ(col:i,row:j)=(col:i′,row:j′)\sigma(col:\ i, row:\ j)=(col:\ i', row:\ j')σ(col: i,row: j)=(col: i,row: j)Permutation over the Table
o\mathbf{o}oSet of all Offsets。
fi\mathbf{f}_ifiWitness polynomials,0≤i<Nwitness0\leq i < N_{witness}0i<Nwitness
fci\mathbf{f}_{c_i}fciConstant-related polynomials,0≤i<Nconst0\leq i < N_{const}0i<Nconst
HcH_cHcCommitment hash
HrH_rHrRandom Oracle hash
lHcl_{H_c}lHcNumber of bits in commitment hash
lHrl_{H_r}lHrNumber of bits in random oracle hash

10.1 Proof Size

Proof中包含:

  • f0,comm,⋯,fNwitness−1,commf_{0,comm},\cdots,f_{N_{witness}-1,comm}f0,comm,,fNwitness1,comm:对witness多项式的承诺值。
  • Acomm′,Scomm′A'_{comm},S'_{comm}Acomm,Scomm:为lookup承诺值。
  • Pcomm,QcommP_{comm},Q_{comm}Pcomm,Qcomm
  • VcommV_{comm}Vcomm:lookup相关
  • T0,comm,⋯,TNperm−1,commT_{0,comm},\cdots,T_{N_{perm}-1,comm}T0,comm,,TNperm1,comm
  • Values and paths with size log⁡n\log nlogn
    • fi(y)f_i(y)fi(y) for i∈[0,Nwitness−1]i\in [0, N_{witness}-1]i[0,Nwitness1]
    • P(y),P(yw),Q(y),Q(yw)P(y), P(yw),Q(y), Q(yw)P(y),P(yw),Q(y),Q(yw)
    • Tj(y)T_j(y)Tj(y) for j∈[0,Nperm−1]j\in [0, N_{perm}-1]j[0,Nperm1]
    • A′(y),S′(y),V(y),A′(yw−1),V(yw)A'(y),S'(y), V(y), A'(yw^{-1}),V(yw)A(y),S(y),V(y),A(yw1),V(yw)
    • Gate-depending fi(ywμ)f_i(yw^{\mu})fi(ywμ)
  • For circuit polynomials:区分point values
  • Evaluation proof for the values above(lll次):

附录 nil Foundation系列博客

  • nil Foundation的Solana-Ethereum Bridge Based on Light-Client State Proof Verification
  • nil Foundation的基于Solana light client实现的zk-bridge方案
  • nil Foundation的Mina->以太坊 bridge原型已完成
  • nil Foundation的Mina-Ethereum State Proof Verification Applications
  • nil Foundation的in-EVM Full Mina State Verification
  • nil Foundation的Placeholder证明系统(1)
  • zkLLVM:nil Foundation开发的电路编译器

参考资料

[1] ZCash Halo2 Lookup argument
[2] ZCash Halo2 Permutation argument

相关文章:

nil Foundation的Placeholder证明系统(2)

前序博客&#xff1a; nil Foundation的Placeholder证明系统&#xff08;1&#xff09; nil; Foundation团队2022年11月论文《Placeholder证明系统》。[2022年11月29日版本] 8. 优化 8.1 Batched FRI 不同于单独检查每个commitment&#xff0c;可对其进行FRI聚合。如对多项…...

QHash源码解读

QT版本 v5.12.10 元素 // 重点说明QHashData的函数&#xff0c;QHashData是QHash的基础 struct QHashData {struct Node {Node *next;uint h;};Node *fakeNext; // 永为nullNode **buckets; // Node *数组QtPrivate::RefCount ref;int size; // node个数int nodeSize; /…...

【Unity细节】RigidBody中Dynamic和Kinematic的区别

&#x1f468;‍&#x1f4bb;个人主页&#xff1a;元宇宙-秩沅 hallo 欢迎 点赞&#x1f44d; 收藏⭐ 留言&#x1f4dd; 加关注✅! 本文由 秩沅 原创 收录于专栏&#xff1a;unity细节和bug ⭐Dynamic和Kinematic的区别⭐ 文章目录⭐Dynamic和Kinematic的区别⭐&#x1f3…...

【C++、数据结构】哈希 — 闭散列与哈希桶的模拟实现

文章目录&#x1f4d6; 前言1. STL中哈希表的两个应用⚡1.1 &#x1f31f;unordered_set1.2 &#x1f31f;unordered_map2. 常见查找的性能对比&#x1f4a5;3. 哈希表模拟实现&#x1f3c1;3.1 哈希的概念&#xff1a;3.2 哈希函数&#xff1a;3.3 哈希冲突&#xff1a;3.4 闭…...

vue 开发环境 卸载node 版本 切换新的 node 版本 mac电脑

注意&#xff1a;操作的机器当前是mac&#xff0c;先卸载&#xff0c;再安装 1.查看现有 node 版本 node -v2.卸载现有 node 版本&#xff0c; 1.卸载从node官网下载pkg安装的node sudo rm -rf /usr/local/{bin/{node,npm},lib/node_modules/npm,lib/node,share/man/*/node…...

在Linux和Windows上安装Nacos-2.1.1

记录&#xff1a;377场景&#xff1a;在CentOS 7.9操作系统安装Nacos-2.1.1。在Windows操作系统上安装Nacos-2.1.1。Nacos&#xff1a;Nacos: Dynamic Naming and Configuration Service。Nacos提供动态配置服务、服务发现及管理、动态DNS服务功能。版本&#xff1a;JDK 1.8 Na…...

解决QML debugging is enabled.Only use this in a safe environment.警告

系列文章目录 文章目录系列文章目录前言一、警告原因二、解决办法参考前言 我试图运行一个非常简单的程序&#xff0c;当单击退出按钮时关闭窗口&#xff0c;但获取以下输出&#xff0c;前提是包含按钮的应用程序窗口不显示&#xff1a; 您已启用QML调试(实际上它默认启用)&…...

华为OD机试真题JAVA实现【N进制减法】真题+解题思路+代码(20222023)

🔥系列专栏 华为OD机试(JAVA)真题目录汇总华为OD机试(Python)真题目录汇总华为OD机试(C++)真题目录汇总华为OD机试(JavaScript)真题目录汇总文章目录 🔥系列专栏题目输入输出描述示例一输入输出说明解题思路Code代码运行结果版权说明<...

ACM第一周---周训---题目合集.

&#x1f680;write in front&#x1f680; &#x1f4dd;个人主页&#xff1a;认真写博客的夏目浅石.CSDN &#x1f381;欢迎各位→点赞&#x1f44d; 收藏⭐️ 留言&#x1f4dd;​ &#x1f4e3;系列专栏&#xff1a;ACM周训练题目合集.CSDN &#x1f4ac;总结&#xff1a…...

SCI学术论文的基本架构,以及Results、Discussion、Conclusion这三者的区别

SCI论文七大部分&#xff0c;各自应包含哪些内容 SCI写作——论文的结构 一篇SCI论文的大致框架包括Title, Abstract, Introduction, Methods/Methodology, Results, Discussion, Conclusion。不同的学科会有细微的变化&#xff0c;但大体框架基本不变。 1、标题Title 标题用…...

二叉树性质

在二叉树的第i层上至多有2^&#xff08;i-1&#xff09;个结点&#xff08;i≥1&#xff09;深度为k的二叉树至多有2^k-1个结点&#xff08;k≥1&#xff09;对任何一颗二叉树T&#xff0c;如果其叶子数为n0&#xff0c;度为2的结点数位n2&#xff0c;则n0n21满二叉树&#xff…...

二维数组操作示例

给定一个二维字符串数组&#xff0c;求对其按每个一维数组升序排列并按矩阵输出 //创建 String[][] twoDimension {{"A1","A2","A3"},{"B1","B2","B3"}}; List<String> arrayToList null; List<St…...

Spring Boot邮件发送(powernode CD2207)(内含教训视频+源代码)

Spring Boot邮件发送&#xff08;powernode CD2207&#xff09;&#xff08;内含教训视频源代码&#xff09; 教学视频源代码下载链接地址&#xff1a;https://download.csdn.net/download/weixin_46411355/87452056 目录Spring Boot邮件发送&#xff08;powernode CD2207&…...

FortiTalk | “三英论安全”之OT安全热门话题解读

OT安全热门话题解读 在数字化转型时代&#xff0c;OT/IT融合已经成为主旋律&#xff0c;可能很多人还没有意识到“工厂”已经不是以前的“工厂”。从封闭走向互联、从现场走向远程、从手动走向自动&#xff0c;这种变革带来的不仅是便捷和效率&#xff0c;更潜藏着巨大的网络安…...

前端开发:关于diff算法详解

前言 前端开发中&#xff0c;关于JS原生的内容和前端算法相关的内容一直都是前端工作中的核心&#xff0c;不管是在实际的前端业务开发还是前端求职面试&#xff0c;都是非常重要且必备的内容。那么本篇博文来分享一个关于前端开发中必备内容&#xff1a;diff算法&#xff0c;d…...

如何为报表开发工具 FastReport .NET 设置 Apache 2 Web 服务器?

FastReport .NET是一款全功能的Windows Forms、ASP.NET和MVC报表分析解决方案&#xff0c;使用FastReport .NET可以创建独立于应用程序的.NET报表&#xff0c;同时FastReport .Net支持中文、英语等14种语言&#xff0c;可以让你的产品保证真正的国际性。专业版和企业版包括Fast…...

华为OD机试真题JAVA实现【出租车计费】真题+解题思路+代码(20222023)

🔥系列专栏 华为OD机试(JAVA)真题目录汇总华为OD机试(Python)真题目录汇总华为OD机试(C++)真题目录汇总华为OD机试(JavaScript)真题目录汇总文章目录 🔥系列专栏题目输入输出示例一输入输出说明示例二输入输出说明...

MySQL 查看版本的 5 种方法

MySQL 提供了几种用于查看服务器版本的方法&#xff0c;本文给大家做个简单的介绍。 方法一&#xff1a;登录 MySQL 每次通过 mysql 客户端连接服务器之后&#xff0c;都会显示一个欢迎信息&#xff0c;里面包含了服务器的版本&#xff1a; mysql -uroot Enter password: **…...

【软件测试】稳定性测试怎么做,这篇文章彻底讲透了~

稳定性对产品的重要性不言而喻。 而作为质量保障&#xff0c;在稳定性测试方面的探索也在不断演化。记得两年前我们做稳定性测试还是基于恒定的压力&#xff0c;7*24小时长时间运行&#xff0c;关注的指标无非是吞吐量TPS的抖动、响应时间的变化趋势&#xff0c;以及各种资源是…...

Leetcode:198. 打家劫舍、213. 打家劫舍 II、337. 打家劫舍 III(C++)

目录 198. 打家劫舍 问题描述&#xff1a; 实现代码与解析&#xff1a; 动态规划&#xff08;版本一&#xff09;&#xff1a; 原理思路&#xff1a; 动态规划&#xff08;版本二&#xff09;&#xff1a; 原理思路&#xff1a; 213. 打家劫舍 II 问题描述&#xff1a…...

逻辑回归:给不确定性划界的分类大师

想象你是一名医生。面对患者的检查报告&#xff08;肿瘤大小、血液指标&#xff09;&#xff0c;你需要做出一个**决定性判断**&#xff1a;恶性还是良性&#xff1f;这种“非黑即白”的抉择&#xff0c;正是**逻辑回归&#xff08;Logistic Regression&#xff09;** 的战场&a…...

【力扣数据库知识手册笔记】索引

索引 索引的优缺点 优点1. 通过创建唯一性索引&#xff0c;可以保证数据库表中每一行数据的唯一性。2. 可以加快数据的检索速度&#xff08;创建索引的主要原因&#xff09;。3. 可以加速表和表之间的连接&#xff0c;实现数据的参考完整性。4. 可以在查询过程中&#xff0c;…...

云启出海,智联未来|阿里云网络「企业出海」系列客户沙龙上海站圆满落地

借阿里云中企出海大会的东风&#xff0c;以**「云启出海&#xff0c;智联未来&#xff5c;打造安全可靠的出海云网络引擎」为主题的阿里云企业出海客户沙龙云网络&安全专场于5.28日下午在上海顺利举办&#xff0c;现场吸引了来自携程、小红书、米哈游、哔哩哔哩、波克城市、…...

Cinnamon修改面板小工具图标

Cinnamon开始菜单-CSDN博客 设置模块都是做好的&#xff0c;比GNOME简单得多&#xff01; 在 applet.js 里增加 const Settings imports.ui.settings;this.settings new Settings.AppletSettings(this, HTYMenusonichy, instance_id); this.settings.bind(menu-icon, menu…...

2025盘古石杯决赛【手机取证】

前言 第三届盘古石杯国际电子数据取证大赛决赛 最后一题没有解出来&#xff0c;实在找不到&#xff0c;希望有大佬教一下我。 还有就会议时间&#xff0c;我感觉不是图片时间&#xff0c;因为在电脑看到是其他时间用老会议系统开的会。 手机取证 1、分析鸿蒙手机检材&#x…...

AI书签管理工具开发全记录(十九):嵌入资源处理

1.前言 &#x1f4dd; 在上一篇文章中&#xff0c;我们完成了书签的导入导出功能。本篇文章我们研究如何处理嵌入资源&#xff0c;方便后续将资源打包到一个可执行文件中。 2.embed介绍 &#x1f3af; Go 1.16 引入了革命性的 embed 包&#xff0c;彻底改变了静态资源管理的…...

Python Ovito统计金刚石结构数量

大家好,我是小马老师。 本文介绍python ovito方法统计金刚石结构的方法。 Ovito Identify diamond structure命令可以识别和统计金刚石结构,但是无法直接输出结构的变化情况。 本文使用python调用ovito包的方法,可以持续统计各步的金刚石结构,具体代码如下: from ovito…...

C/C++ 中附加包含目录、附加库目录与附加依赖项详解

在 C/C 编程的编译和链接过程中&#xff0c;附加包含目录、附加库目录和附加依赖项是三个至关重要的设置&#xff0c;它们相互配合&#xff0c;确保程序能够正确引用外部资源并顺利构建。虽然在学习过程中&#xff0c;这些概念容易让人混淆&#xff0c;但深入理解它们的作用和联…...

Python+ZeroMQ实战:智能车辆状态监控与模拟模式自动切换

目录 关键点 技术实现1 技术实现2 摘要&#xff1a; 本文将介绍如何利用Python和ZeroMQ消息队列构建一个智能车辆状态监控系统。系统能够根据时间策略自动切换驾驶模式&#xff08;自动驾驶、人工驾驶、远程驾驶、主动安全&#xff09;&#xff0c;并通过实时消息推送更新车…...

NPOI操作EXCEL文件 ——CAD C# 二次开发

缺点:dll.版本容易加载错误。CAD加载插件时&#xff0c;没有加载所有类库。插件运行过程中用到某个类库&#xff0c;会从CAD的安装目录找&#xff0c;找不到就报错了。 【方案2】让CAD在加载过程中把类库加载到内存 【方案3】是发现缺少了哪个库&#xff0c;就用插件程序加载进…...