解釋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.

在這篇文章中,我們將回顧多項式的概念瓦侮,解釋多項式“盲估”的概念,以及如何使用同態(tài)隱藏 (HH) 來實現(xiàn)這一方案忍坷。(請看 第一部分 對于 HH 的解釋)。 在未來的文章中革砸,我們將會認(rèn)識到盲估是構(gòu)建 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} 疾党,并且加法和乘法都會執(zhí)行 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)

根據(jù)大家所了解的 P雹洗,P(s) 的值是 1,(s),…,(s^d) 值的一個線性組合香罐。—— 線性組合僅意味著“加權(quán)和”时肿,在 P(s) 一例中權(quán)重就是 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性質(zhì)的 E嗜侮,其中 g 是一個采用難離散對數(shù)問題的群生成器。我們提到啥容,這種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.

假設(shè) Alice 有 d 階多項式 P炭臭, 并且 Bob 可以隨機地選擇一個點 s∈Fp 永脓, Bob 期望知道 E(P(s)),這就是于 s 點對 P 進行評估的同態(tài)隱藏(HH)鞋仍,做到這點有兩種簡單的方式:

  • Alice 發(fā)送 P 給 Bob常摧,從而 Bob 可以自行計算 E(P(s))
  • Bob 發(fā)送 s 給 Alice威创;Alice計算 E(P(s)) 并發(fā)送給 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 發(fā)送給 Bob 的主要原因是享甸,僅僅是因為它太大了——(d+1)個元素,比如在跳,現(xiàn)有的Zcash協(xié)議中 d 的值將近2百萬枪萄;它最終會與“簡潔的” SNARKs 協(xié)同工作。事實上猫妙,上面Bob發(fā)送給Alice的匿數(shù)序列也一樣長瓷翻,但是這個序列能夠作為系統(tǒng)的參數(shù)硬編碼到系統(tǒng)中,而每次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發(fā)送匿數(shù) E(1),E(s),…,E(s^d) 給Alice彼哼。
  • Alice根據(jù)送達的匿數(shù)計算 E(P(s)) 对妄,并且發(fā)送 E(P(s)) 給Bob。(Alice能夠利用E對線性組合的支持進行計算敢朱,并且 P(s) 就是 1,s,...,s^d 的線性組合剪菱。)

可以注意到,因為只有匿數(shù)被發(fā)送拴签,Alice不會了解 s[2],Bob也不會了解 P.

    • [2] 事實上孝常,隱藏特性僅僅保證了 s 不能由 E(s) 反推得到,但在這里蚓哩,我們想強調(diào)它同樣不可能由序列 E(s),…,E(s^d) 反推得到构灸,雖然這個序列包涵了很多 s 的信息。這樣的判斷緣于 Diffie-Hellman 假設(shè)岸梨,這個假設(shè)論證了 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”.

在后面的文章中,我們將詳細(xì)討論盲估技術(shù)如何被應(yīng)用于 SNARKs曹阔。 大致的解釋是半开,驗證器在內(nèi)部有一個 “正確的”多項式,它需要檢查是否證明方知道這件事次兆。這將使得證明方可以在一個他們不知道的隨機的點上驗證他們是否知道這個多項式稿茉,并保證證明方的多項式如果不正確,他有更高的幾率得到一個報錯芥炭。這種做法依賴于Schwartz-Zippel引理說明漓库,即“不同多項式在大多數(shù)點是相同的”。


譯者總結(jié)

數(shù)學(xué)關(guān)系
交互模型
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末园蝠,一起剝皮案震驚了整個濱河市渺蒿,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌彪薛,老刑警劉巖茂装,帶你破解...
    沈念sama閱讀 206,723評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件怠蹂,死亡現(xiàn)場離奇詭異,居然都是意外死亡少态,警方通過查閱死者的電腦和手機城侧,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,485評論 2 382
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來彼妻,“玉大人嫌佑,你說我怎么就攤上這事∏惹福” “怎么了屋摇?”我有些...
    開封第一講書人閱讀 152,998評論 0 344
  • 文/不壞的土叔 我叫張陵,是天一觀的道長幽邓。 經(jīng)常有香客問我炮温,道長,這世上最難降的妖魔是什么牵舵? 我笑而不...
    開封第一講書人閱讀 55,323評論 1 279
  • 正文 為了忘掉前任柒啤,我火速辦了婚禮,結(jié)果婚禮上畸颅,老公的妹妹穿的比我還像新娘白修。我一直安慰自己,他們只是感情好重斑,可當(dāng)我...
    茶點故事閱讀 64,355評論 5 374
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著肯骇,像睡著了一般窥浪。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上笛丙,一...
    開封第一講書人閱讀 49,079評論 1 285
  • 那天漾脂,我揣著相機與錄音,去河邊找鬼胚鸯。 笑死骨稿,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的姜钳。 我是一名探鬼主播坦冠,決...
    沈念sama閱讀 38,389評論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼哥桥!你這毒婦竟也來了辙浑?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,019評論 0 259
  • 序言:老撾萬榮一對情侶失蹤拟糕,失蹤者是張志新(化名)和其女友劉穎判呕,沒想到半個月后倦踢,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,519評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡侠草,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 35,971評論 2 325
  • 正文 我和宋清朗相戀三年辱挥,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片边涕。...
    茶點故事閱讀 38,100評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡晤碘,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出奥吩,到底是詐尸還是另有隱情哼蛆,我是刑警寧澤,帶...
    沈念sama閱讀 33,738評論 4 324
  • 正文 年R本政府宣布霞赫,位于F島的核電站腮介,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏端衰。R本人自食惡果不足惜叠洗,卻給世界環(huán)境...
    茶點故事閱讀 39,293評論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望旅东。 院中可真熱鬧灭抑,春花似錦、人聲如沸抵代。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,289評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽荤牍。三九已至案腺,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間康吵,已是汗流浹背劈榨。 一陣腳步聲響...
    開封第一講書人閱讀 31,517評論 1 262
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留晦嵌,地道東北人同辣。 一個月前我還...
    沈念sama閱讀 45,547評論 2 354
  • 正文 我出身青樓,卻偏偏與公主長得像惭载,于是被迫代替她去往敵國和親旱函。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 42,834評論 2 345

推薦閱讀更多精彩內(nèi)容