Nova: 基于committed relaxed R1CS的IVC方案

news/2024/11/8 1:28:49/

Nova是INV的一种实现方案,所谓IVC是指Prover可以向Verifier证明 z i = F ( i ) ( z 0 ) z_i = F^{(i)}(z_0) zi=F(i)(z0)

最朴素的做法是直接进行i次迭代,每次迭代都进行一次zkSnark,但这样做有三个问题:

  • Prover所需内存大小为 Ω ( i ∗ ∣ F ∣ ) Ω(i∗∣F∣) Ω(iF)
  • 生成的proof不是incrementally updatable的
  • Verify时间跟 i i i有关

Nova 的整体思路是将原始的 R1CS 问题转化为一种更加灵活且支持Folding形式的relaxed R1CS,并在此基础上,进一步构造了 committed relaxed R1CS,committed relaxed R1CS主要保护了witness的机密性,然后基于 committed relaxed R1CS构建了IVC方案。

Folding Scheme是Nova构造IVC的核心,通过前面R1CS和relaxed R1CS两篇博文的讲解,相信大家对如何构造一个Folding Scheme已经有了初步了解。接下来本文将介绍如何通过Folding Scheme去构造IVC,主要包括两部分:

  • 简单回顾Folding Scheme
  • IVC讲解

1. Folding Scheme

在这里插入图片描述

上述过程可通过Fiat-Shamir Transform变为非交互,全称是non-interactive folding scheme(NIFS).

NIFS由(G,K,P,V)四个算法构成:

在这里插入图片描述

2. IVC

首先通过引入augmented function F’描述一个简单的IVC过程。令 U i 、 u i U_i、u_i Uiui为两个committed relaxed R1CS instances,其中 U i U_i Ui代表前 i − 1 i-1 i1次F’正确执行的输出(running), u i u_i ui代表前 i i i次F’正确执行的输出(incremental)。

在这里插入图片描述

F’主要干两件事:

  1. 执行incremental computation,也就是调用F输出 z i + 1 z_{i+1} zi+1
  2. 调用NIFS的verifier折叠输出 U i + 1 U_{i+1} Ui+1

需要注意的是F’并没有直接输出 U i + 1 U_{i+1} Ui+1,而是输出了 h i + 1 h_{i+1} hi+1,因为 U i + 1 U_{i+1} Ui+1包含在 u i + 1 . u_{i+1}. ui+1.x中,则在下一步折叠 u i + 1 . u_{i+1}. ui+1.x和 U i + 1 . U_{i+1}. Ui+1.x时会卡住,因此这里以定长的哈希结果作为输出。

然后IVC Prover计算一个新的instance u i + 1 u_{i+1} ui+1,用来证明第 i + 1 i+1 i+1次F’执行的正确性,即证明了以上两点。

( u ⊥ , w ⊥ ) (u_{⊥},w{⊥}) (u,w)是一对平凡的instance-witness对,其中E、W和x是相应的令向量, r E = 0 、 r w = 0 r_E=0、r_w=0 rE=0rw=0 E ‾ 、 W ‾ \overline{E}、\overline{W} EW分别是E、W对应的承诺。

在第 i + 1 i+1 i+1次迭代中,IVC Prover调用F’计算 ( ( U i + 1 , W i + 1 ) , ( u i + 1 , w i + 1 ) ) ((U_{i+1},W_{i+1}),(u_{i+1},w_{i+1})) ((Ui+1,Wi+1),(ui+1,wi+1)),则相应的IVC proof π i + 1 = ( ( U i + 1 , W i + 1 ) , ( u i + 1 , w i + 1 ) ) \pi_{i+1} =((U_{i+1},W_{i+1}),(u_{i+1},w_{i+1})) πi+1=((Ui+1,Wi+1),(ui+1,wi+1))。F’具体的定义如下:

在这里插入图片描述

由于F’是能够在多项式时间内计算的,可以用一个committed relaxed R1CS 结构来表示F’执行:
( u i + 1 , w i + 1 ) ← t r a c e ( F ′ , ( v k i , U i , u i , ( i , z 0 , z i ) , w i , T ‾ ) ) (u_{i+1},w_{i+1}) \leftarrow trace(F',(vk_i,U_i,u_i,(i,z_0,z_i),w_i,\overline{T})) (ui+1,wi+1)trace(F,(vki,Ui,ui,(i,z0,zi),wi,T))
现在,我们给出IVC的完整定义:

在这里插入图片描述

使用zkSnark压缩IVC proof

上述完整的介绍了IVC过程,但还有一个问题没解决,即Prover如何去证明一个IVC proof是有效的?

很明显Prover可以使用zkSnark来证明,但如果采用 zk­SNARK 构造证明的话,需要证明诸如向量的承诺等于特定的值等复杂问题,所以Nova使用Spartan变种来压缩Nova IVC proof,这里只介绍如何使用zkSnark去证明IVC proof是有效的,细节如下:

在这里插入图片描述

参考:
Nova: Recursive Zero-Knowledge Arguments from Folding Schemes


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

相关文章

雪佛兰linux高德_BAT血拼地图第一战:四维图新、高德抢夺安吉星

车云网从消息人士处获悉,中国最大的车联网服务商安吉星已决定将2014年新项目的地图服务合作伙伴更换为高德。这意味着世纪高通,这家由四维图新控股的服务商,在安吉星车联网项目中又增加了一个竞争对手。 安吉星向上海通用车主提供服务是通过车…

用python写一个手机app签到脚本_利用Python实现App自动签到领取积分

要自动签到,最简单的是打开页面分析请求,然后我们用脚本实现请求的自动化。但是发现食行没有页面,只有 APP,这不是一个好消息,这意味着需要抓包处理了。 有需要Python学习资料的小伙伴吗?小编整理【一套Python资料、源码和PDF】,感兴趣者可以关注小编后私信学习资料(是关…

这可能是最简单易懂的机器学习入门

https://www.toutiao.com/a6643235821170213384/ 2019-01-06 12:27:52 文用浅显易懂的语言精准概括了机器学习的相关知识,内容全面,总结到位,剖析了机器学习的what,who,when, where, how,以及why等相关问题…

机器学习|最简单易懂的机器学习

https://www.toutiao.com/a6670113185682424324/ 本文用浅显易懂的语言精准概括了机器学习的相关知识,内容全面,总结到位,剖析了机器学习的what,who,when, where, how,以及why等相关问题。从机器学习的概念…

fone返利云受邀出席中国汽车行业流通年会,返利云总经理与大家探讨如何提高汽车4S店的经营利润

11月14日-16日,fone受邀参加由CADA主办的“2019中国汽车流通行业年会”。fone返利云总经理孙宇在大会中从“汽车经销商健康资金流的数据保障”的角度来与大家分享探讨经销商需要一款什么样的产品,从返利切入,进而提升经销商经营利润。 一个从…

雪佛兰新乐骋全球同步上市 售价6.99--9.79万

http://www.sina.com.cn 2008年03月26日 14:03 新浪汽车 字号设置:[ 大 中 小 ] 雪佛兰新乐骋 新浪汽车讯 2008年3月26日,上海通用汽车对外宣布全球同步车型雪佛兰新乐骋正式在中国市场上市。雪佛兰新乐骋首次亮相于2007年9月法兰克福车展,…

【学习笔记】穿T恤听古典音乐

文章目录 1 走进古典音乐1.1 音乐中的自然法则1.2 音乐要素如何模仿1.3 模仿与超越 2 每一天的巴赫2.1 巴赫的故事与作品2.2 对位法2.3 数学之美 3 莫扎特:把日子过成歌剧3.1 《莫扎特传》序曲——唐璜3.2 历史地位与风格演变3.3 咏叹调与宣叙调3.4 《后宫诱逃》3.5…