零知识证明详解五:计算转为多项式

简介:本文翻译自zcash官方博客,讲解zcash中所使用的zk-SNARKs的原理第五部分,此处是原文链接。友情提示:本文偏技术化,适合对技术和数学非常感兴趣的同学阅读。
zkSNARK是zero-knowledge succint non-interactive arguments of knowledge的简称,意思是:简洁的非交互的零知识证明
(本文授权BH好文好报群摘编、转载以及相关转授权推文行为)

在前三章,我们得出了一个处理多项式的方法。本章,我们研究下如何把我们想证明和验证的语句转化为多项式。

2013年,Gennaro, Gentry, Parno以及Raykova等人定义一种非常有用的、把计算转化为多项式的方法,叫做:二次运算程序(QAP),QAPs已经成为了zk-SNARK构造方法的基础。

本章,我们将通过一些例子解释QAPs的转化方法。不过,你需要做好心里准备,即便我们只是使用一些小例子,也不可避免的要先理解一下其他的知识点。

假设,Alice想要向Bob证明她知道c_1, c_2, c_3 \in \mathbb{F}_p,并使得(c_1*c_2) * (c_1 + c_3) = 7。第一步,我们先把上面的计算转化一个运算电路。

运算电路

运算电路由各种运算门(比如加法和乘法),以及连接门的线路构成。在我们上面的例子中,电路的样子如图所示:


CircuitDrawing.png

底部的线路是输入线,顶部的线路是输出线,它给出输入在电路上计算的结果。

在图中可以看出,我们使用了一种特殊的方式为线路和门添加了标签,这些标签在接下来转换电路到QAP时有用:

  1. 当相同的输出节点输出到不止一个门的时候,我们认为它是同一条,就像例子中的w1。
  2. 我们假设乘法门有且刚好有2条输入线,我们分别称之为左线和右线
  3. 我们没有标记出从加法门到乘法门的线,也没有标记加法门。我们认为加法的输入直接进入乘法门,所以,在上例中我们认为w1w3都是g2的右输入。

针对电路的一个合法的赋值,是给被标记线的赋值,使得每个乘法门的输出值确实是相应输入的乘积。

因此,对于我们的电路,一个合乎规范的赋值形式是:(c1,…,c5) 其中 c4=c1*c2 并且 c5=c4*(c1+c3) 。

按照这种方式,Alice想要证明的是,她知道一组合法的赋值(c_1, ..., c_5),可以满足c_5=7。下一步,是使用QAP将这个语句翻译成一个多项式。

简化为二次运算方程

我们将每个乘法门与域元素联系起来:g_1将与1 \in \mathbb{F}_p联系起来,g_22 \in \mathbb{F}_p 联系起来。我们称点{1,2}为我们的目标点。现在,我们需要定义 “左线多项式”集合 L1,…,L5 , “右线多项式” 集合R1,…,R5 以及 “输出多项式” 集合:O1,…,O5

这些定义的想法是,非乘法门所涉及的多项式在目标点的取值一般为零。

具体来说,像w_1,w_2,w_4各自是g_1的左、右、和输出线;我们定义L_1=R_2=O_4=2-X,因为多项式2-X,根据g_1,在1点值是1,根据g_2,多项式在2点值是0。译者注:可将X=1代入验证 2-X = 2 - 1 = 1,将X=2代入验证:2-X = 2- 2=0

注意到w_1w_3都是g_2的右输入。因此我们同样定义L_4=R_1=R_3=O_5=X-1——因为,根据g2,X-1在目标点2是1,而在另外一个点是0。

我们将其余的多项式都设置成零多项式。(译者注:也即L2=L_3=L_5=R_2=R_4=R_5=O_1=O_2=O_3 = 0)

给定 (c1,…,c5) 固定值,我们用他们作为系数来定义一个左、右和输出的“和”多项式。也就是说,我们定义:

L := \sum_{i=1}^5 c_i * L_i, R := \sum_{i=1}^5 c_i * R_i, O := \sum_{i=1}^5 c_i * O_i

然后我们定义多项式P := L * R - O

现在,在完成所有这些定义之后,核心点在于:当且仅当P在所有的目标点上等于0时, (c1,…,c5)才是一个对于电路的合法赋值。

(
译者注:作者这里少了一步,否则下面的验证会有些突兀:
L(X) = \sum_{i=1}^5 c_i * L_i = c_1(2-X)+c_4(X-1)
R(X) = \sum_{i=1}^5 c_i * R_i = c_1(X-1)+c_2(2-X)
O(X) = \sum_{i=1}^5 c_i * R_i = c_4(2-X)+c_5(X-1)
)

让我们使用例子来验证一下。假设我们定义 L,R,O,P ,采用上述给出的c_1,…,c_5。让我们在目标点1上计算所有的这些多项式:

在所有的L_i中,只有L_1在1点上是非零的。因此我们有L(1)=c_1⋅L_1(1)=c_1。同样,我们可以得到R(1)=c_2O(1)=c_4
(*译者注:
R(1) = c_1(1-1)+c_2(2-1) = c_2
O(1) = c_4(2-1)+c_5(1-1) = c_4
*)

因此,P(1)=c_1*c_2-c_4。 类似的可以计算出: P(2)=c_4*(c_1+c_3)-c_5

换句话说,当且仅当(c_1, ..., c_5)是一组正确的赋值的时候,P在所有的目标点为0

现在,我们使用下面的代数事实:对于一个多项式 P 和一个点 a \in \mathbb{F}_p,当且仅当多项式 X-a 可以整除 P 时,我们有 P(a) = 0 ,比如 P=(X - a) * HH是某个多项式。

定义目标多项式 T(X) := (X-1)*(X-2),当且仅当(c1,…,c5) 是一个合法的赋值时,我们有T 能整除 P

根据上面的讨论,我们对于 QAP 做出如下定义:

一个dm大小的二次算术程序(QAP) Q,由多项式L_1,…,L_m, R_1,…,R_m, O_1,…,O_m 和 一个d阶目标多项式 T 构成。

如果给(c1,…,cm) 的赋值满足 Q,定义
L:=\sum_{i=1}^m c_i⋅L_i
R:=\sum_{i=1}^m c_i⋅R_i
O:=\sum_{i=1}^m c_i⋅O_i

P:=L⋅R-O
我们可以确定T可以整除P

在这个语境中,Alice想要证明她知道一组赋值(c_1,...,c_5)满足上述的QAP,并且c_5 = 7

总之,我们已经看到,像“我知道c_1,c_2,c_3能满足(c1⋅c2)⋅(c1+c3)=7”这样的语句,是怎么样通过QAP被转换成等价的多项式语句的。在下一篇中,我们将看到一个高效率的QAP协议。

早赞声明:为方便早赞、避免乱赞,“BH好文好报群”为点赞者、写作者牵线搭桥,实行“先审后赞、定时发表”的规则,也让作品脱颖而出、速登热门!加群微信:we01230123(天平)。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 213,014评论 6 492
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,796评论 3 386
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 158,484评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,830评论 1 285
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,946评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,114评论 1 292
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,182评论 3 412
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,927评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,369评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,678评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,832评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,533评论 4 335
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,166评论 3 317
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,885评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,128评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,659评论 2 362
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,738评论 2 351

推荐阅读更多精彩内容