解释SNARKs 第2部分:多项式盲估

原文出自:https://blog.z.cash/snark-explain2/
作者:Ariel Gabizon
译者:Matter实验室

In this post, we recall the notion of a polynomial, and explain the notion of “blind evaluation” of a polynomial, and how it is implemented using Homomorphic Hiding (HH). (See Part I for an explanation of HH. ) In future posts, we will see that blind evaluation is a central tool in SNARK constructions.

在这篇文章中,我们将回顾多项式的概念,解释多项式“盲估”的概念,以及如何使用同态隐藏 (HH) 来实现这一方案。(请看 第一部分 对于 HH 的解释)。 在未来的文章中,我们将会认识到盲估是构建 SNARK 的核心工具。

We denote by Fp the field of size p; that is, the elements of Fp are {0,…,p−1} and addition and multiplication are done mod p as explained in Part I.

我们使用 Fp 来表示 p 的域的大小;也就是说,跟第一部分说明的一样,Fp 中的元素是 {0,...,p-1} ,并且加法和乘法都会执行 mod p

POLYNOMIALS AND LINEAR COMBINATIONS

多项式和线性组合

Recall that a polynomial P of degree d over Fp is an expression of the form

P(X)=a0+a1⋅( X )+a2⋅( X^2 ) +…+ ad⋅( X^d )

, for some a0,…,ad ∈ Fp.

回忆一下具有 在 Fp 上的 d 阶多项式,是一个下面这种形式的表达式:

P(X)=a0+a1⋅( X )+a2⋅( X^2 ) +…+ ad⋅( X^d )

其中 a0,…,ad ∈ Fp

We can evaluate P at a point s ∈ Fp by substituting s for X, and computing the resultant sum

P(s)=a0+a1⋅( s )+a2⋅( s^2 )+…+ad⋅( s^d)

For someone that knows P, the value P(s) is a linear combination of the values 1,(s),…,(s^d) – where linear combination just means “weighted sum”, in the case of P(s) the “weights” are a0,…,ad.

我们可以这样在 s ∈ Fp 点上计算 P,让 s 代替 X,并计算总和。

P(s)=a0+a1⋅( s )+a2⋅( s^2 )+…+ad⋅( s^d)

根据大家所了解的 PP(s) 的值是 1,(s),…,(s^d) 值的一个线性组合。—— 线性组合仅意味着“加权和”,在 P(s) 一例中权重就是 a0,…,ad

In the last post, we saw the HH E defined by E(x)=g^x where g was a generator of a group with a hard discrete log problem. We mentioned that this HH “supports addition” in the sense that E(x+y) can be computed from E(x) and E(y). We note here that it also “supports linear combinations”; meaning that, given a,b,E(x),E(y), we can compute E(ax+by). This is simply because

E(ax+by)=g^( ax+by )=g^( ax )⋅g^( by )=( ( g^x )^a )⋅( ( g^y )^b )=( E(x)^a )⋅( E(y)^b ).

在上一篇文章中,我们看到了用 E(x)=g^x 定义的带HH性质的 E,其中 g 是一个采用难离散对数问题的群生成器。我们提到,这种HH“加法支持”,能用E(x)E(y)计算出E(x+y)。 我们在这儿指出,HH一样能“支持线性组合”;这意味着,给定 a,b,E(x),E(y) ,我们能计算出 E(ax+by)。原理很简单,因为:

E(ax+by)=g^( ax+by )=g^( ax )⋅g^( by )=( ( g^x )^a )⋅( ( g^y )^b )=( E(x)^a )⋅( E(y)^b )

BLIND EVALUATION OF A POLYNOMIAL

某个多项式的盲估

Suppose Alice has a polynomial P of degree d, and Bob has a point s ∈ Fp that he chose randomly. Bob wishes to learn E(P(s)), i.e., the HH of the evaluation of P at s. Two simple ways to do this are:

  • Alice sends P to Bob, and he computes E(P(s)) by himself.
  • Bob sends s to Alice; she computes E(P(s)) and sends it to Bob.

假设 Alice 有 d 阶多项式 P, 并且 Bob 可以随机地选择一个点 s∈Fp , Bob 期望知道 E(P(s)),这就是于 s 点对 P 进行评估的同态隐藏(HH),做到这点有两种简单的方式:

  • Alice 发送 P 给 Bob,从而 Bob 可以自行计算 E(P(s))
  • Bob 发送 s 给 Alice;Alice计算 E(P(s)) 并发送给 Bob。

However, in the blind evaluation problem we want Bob to learn E(P(s)) without learning P – which precludes the first option; and, most importantly, we don’t want Alice to learn s, which rules out the second [1].

[1] The main reason we don’t want to send P to Bob, is simply that it is large – (d+1) elements, where, for example, d~2000000 in the current Zcash protocol; this ultimately has to do with the “Succinct” part of SNARKs. It is true that the sequence of hidings Bob is sending to Alice above is just as long, but it will turn out this sequence can be “hard-coded” in the parameters of the system, whereas Alice’s message will be different for each SNARK proof.

然而,在盲估问题中,我们希望 Bob 在不了解 P 的情况下了解 E(P(s)) – 这将排除第一种选择; 更重要的是,我们不希望 Alice 了解 s ,这将排除第二种选择 [1]。

    • [1] 我们不想将 P 发送给 Bob 的主要原因是,仅仅是因为它太大了——(d+1)个元素,比如,现有的Zcash协议中 d 的值将近2百万;它最终会与“简洁的” SNARKs 协同工作。事实上,上面Bob发送给Alice的匿数序列也一样长,但是这个序列能够作为系统的参数硬编码到系统中,而每次SNARK证明时Alice的消息都不相同。

Using HH, we can perform blind evaluation as follows.

  • Bob sends to Alice the hidings E(1),E(s),…,E(s^d).

  • Alice computes E(P(s)) from the elements sent in the first step, and sends E(P(s)) to Bob. (Alice can do this since E supports linear combinations, and P(s) is a linear combination of 1,s,…,sd.)

Note that, as only hidings were sent, neither Alice learned s [2], nor Bob learned P.

[2] Actually, the hiding property only guarantees s not being recoverable from E(s), but here we want to claim it is also not recoverable from the sequence E(s),…,E(s^d) that potentially contains more information about s. This follows from the d-power Diffie-Hellman assumption, which is needed in several SNARK security proofs.

使用HH,我们可以像下面一样进行盲估。

  • Bob发送匿数 E(1),E(s),…,E(s^d) 给Alice。
  • Alice根据送达的匿数计算 E(P(s)) ,并且发送 E(P(s)) 给Bob。(Alice能够利用E对线性组合的支持进行计算,并且 P(s) 就是 1,s,...,s^d 的线性组合。)

可以注意到,因为只有匿数被发送,Alice不会了解 s[2],Bob也不会了解 P.

    • [2] 事实上,隐藏特性仅仅保证了 s 不能由 E(s) 反推得到,但在这里,我们想强调它同样不可能由序列 E(s),…,E(s^d) 反推得到,虽然这个序列包涵了很多 s 的信息。这样的判断缘于 Diffie-Hellman 假设,这个假设论证了 SNARK 的安全性。

WHY IS THIS USEFUL?

为什么这是一个有用的方法

Subsequent posts will go into more detail as to how blind evaluation is used in SNARKs. The rough intuition is that the verifier has a “correct” polynomial in mind, and wishes to check the prover knows it. Making the prover blindly evaluate their polynomial at a random point not known to them, ensures the prover will give the wrong answer with high probability if their polynomial is not the correct one. This, in turn, relies on the Schwartz-Zippel Lemma stating that “different polynomials are different at most points”.

在后面的文章中,我们将详细讨论盲估技术如何被应用于 SNARKs。 大致的解释是,验证器在内部有一个 “正确的”多项式,它需要检查是否证明方知道这件事。这将使得证明方可以在一个他们不知道的随机的点上验证他们是否知道这个多项式,并保证证明方的多项式如果不正确,他有更高的几率得到一个报错。这种做法依赖于Schwartz-Zippel引理说明,即“不同多项式在大多数点是相同的”。


译者总结

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

推荐阅读更多精彩内容