Groth16

看zk-SNARK的文章或者資料的時(shí)候您没,經(jīng)常會(huì)碰到一些算法名稱,比如Groth16扣草,GGPR13等等了牛。這些名稱是由算法提出的作者名稱或者名稱首字母以及相應(yīng)的年份組成。Groth16辰妙,是由Jens?Groth在2016年提出的算法鹰祸。GGPR13,是由Rosario?Gennaro密浑,Craig?Gentry蛙婴,BryanParno,Mariana?Raykova在2013年提出的算法尔破。

零知識(shí)證明(zk-SNARK )街图,從QSP/QAP到Groth16浇衬,期間也有很多學(xué)者專家,提出各種優(yōu)化(優(yōu)化計(jì)算時(shí)間餐济,優(yōu)化證明的大小耘擂,優(yōu)化電路的尺寸等等)。Groth16提出的算法颤介,具有非常少的證明數(shù)據(jù)(2/3個(gè)證明數(shù)據(jù))以及一個(gè)表達(dá)式驗(yàn)證梳星。

Groth16論文(On the Size of Pairing-based Non-interactive Arguments)的下載地址:

https://eprint.iacr.org/2016/260.pdf

本文主要從工程應(yīng)用理解的角度介紹Groth16算法的證明和驗(yàn)證過程。文章中所用的中文字眼可能和行業(yè)中不一樣滚朵,歡迎批評指出冤灾。

Proofs?- 在零知識(shí)證明的場景下,Proofs指具有完美的完備性(Completeness)以及完美的可靠性(Soundness)辕近。也就是韵吨,具有無限計(jì)算資源也無法攻破。

Arguments?- 在零知識(shí)證明的場景下移宅,Arguments是指具有完美的完備性以及多項(xiàng)式計(jì)算的可靠性归粉。也就是,在多項(xiàng)式計(jì)算能力下漏峰,是可靠的糠悼。

Schwartz-Zippel 定理?- 假設(shè)是個(gè)n元多項(xiàng)式,多項(xiàng)式總的階為d浅乔。如果

是從有限集合S中隨機(jī)選取倔喂,則的概率是小于等于。簡單的說靖苇,如果多元多項(xiàng)式席噩,在很大的集合中隨機(jī)選取參數(shù),恰好函數(shù)f等于0的概率幾乎為0贤壁。

https://brilliant.org/wiki/schwartz-zippel-lemma/

線性(Linear)函數(shù)?- 假設(shè)函數(shù)f滿足兩個(gè)條件:1.??2.悼枢,則稱函數(shù)f為線性函數(shù)。

Affine 函數(shù)?- 假設(shè)函數(shù)g脾拆,能找到一個(gè)線性函數(shù)f馒索,滿足,則稱函數(shù)g為Affine函數(shù)名船。也就是绰上,Affine函數(shù)是由一個(gè)線性函數(shù)和偏移構(gòu)成。

Trapdoor函數(shù)?- 假設(shè)一個(gè)Trapdoor函數(shù)f包帚,很容易,但是非常難运吓。但是渴邦,如果提供一個(gè)secret疯趟,也非常容易。



QAP的定義為"

Relation":谋梭。也就是說信峻,statements為, witness為瓮床,并且的情況下盹舞,滿足如下的等式:

的階為n。

設(shè)置過程:隨機(jī)選取隘庄,生成踢步。

證明過程:隨機(jī)選擇兩個(gè)參數(shù),計(jì)算

驗(yàn)證過程:

驗(yàn)證過程丑掺,計(jì)算如下的等式是否成立:

注意获印,設(shè)置過程中的x是一個(gè)值,不是代表多項(xiàng)式街州。在理解證明/驗(yàn)證過程的時(shí)候兼丰,必須要明確,A/B/C的計(jì)算是和CRS中的參數(shù)成線性關(guān)系(NILP的定義)唆缴。在明確這一點(diǎn)的基礎(chǔ)上鳍征,可以看出的參數(shù)能保證A/B/C的計(jì)算采用統(tǒng)一的參數(shù)。因?yàn)闀?huì)包含

子項(xiàng)面徽,要保證和C相等艳丛,必須采用統(tǒng)一的參數(shù)。參數(shù)增加隨機(jī)因子斗忌,保證零知識(shí)(驗(yàn)證者無法從證明中獲取有用信息)质礼。參數(shù)保證了驗(yàn)證等式的最后兩個(gè)乘積獨(dú)立于的參數(shù)。

完備性證明(Completeness):

完備性證明织阳,也就是驗(yàn)證等式成立眶蕉。

可靠性證明 (Soundness):

Groth16算法證明的是statistical knowledge soundness,假設(shè)證明者提供的證明和CRS成線性關(guān)系唧躲。也就是說造挽,證明A可以用如下的表達(dá)式表達(dá)(A和CRS的各個(gè)參數(shù)成線性關(guān)系):

同理,B/C都可以寫成類似的表達(dá):

從Schwartz-Zippel 定理弄痹,我們可以把A/B/C看作是的多項(xiàng)式饭入。觀察

這個(gè)驗(yàn)證等式,發(fā)現(xiàn)一些變量的限制條件:

1)?(等式的右邊沒有)

不失一般性肛真,可以假設(shè)谐丢。

2)?(等式右邊)

不失一般性,可以假設(shè)。

3)(等式的右邊沒有因子)

也就是乾忱。

在上述三個(gè)約束下讥珍,A/B的表達(dá)式變成:

4)等式的右邊沒有

不失一般性,

5)等式的右邊沒有

不失一般性窄瘟,衷佃。

6)等式的右邊沒有,?

所以?

7)等式的右邊沒有和

所以蹄葱,氏义。

在上述七個(gè)約束下,A/B的表達(dá)式變成:

再看驗(yàn)證的等式:

觀察图云,因?yàn)椴淮嬖?惯悠,所以,琼稻。

也就是說

代入驗(yàn)證等式吮螺,所以可以推導(dǎo)出:

如果帕翻,假設(shè)鸠补,對于,則

代入A/B嘀掸,可以獲取以下等式:

在證明和CRS線性關(guān)系下紫岩,所有能使驗(yàn)證等式成立的情況下,等式必須成立睬塌。也就說泉蝌,能提供正確證明的,肯定知道witness揩晴。

5

QAP的NIZK Arguments

從QAP的NILP可以演化為QAP的NIZK Arguments勋陪。也就是說Groth16算法并不是完美的可靠,而是多項(xiàng)式計(jì)算情況下可靠硫兰。QAP的定義為"Relation"

也就是說诅愚,在一個(gè)域中,statements為劫映, witness為违孝,并且的情況下,滿足如下的等式(的階為n):

也就是說泳赋,三個(gè)有限群, 對應(yīng)的生成元分別是雌桑。為了方便起見,也為了和論文的表達(dá)方式一致祖今,的計(jì)算用表示校坑,的計(jì)算用表示拣技。

設(shè)置過程:隨機(jī)選取,生成耍目。

證明過程:隨機(jī)選擇兩個(gè)參數(shù)过咬,計(jì)算

驗(yàn)證過程:驗(yàn)證如下的等式是否成立。

很容易發(fā)現(xiàn)制妄,驗(yàn)證過程的等式也可以用4個(gè)配對函數(shù)表示:

證明過程和QAP的NILP的證明過程類似,不再詳細(xì)展開泵三。

6

證明元素的最小個(gè)數(shù)

論文指出zk-SNARK的最少的證明元素是2個(gè)耕捞。上述的證明方式是需要提供3個(gè)證明元素(A/B/C)。論文進(jìn)一步說明烫幕,如果將電路進(jìn)行一定方式的改造俺抽,使用同樣的理論,可以降低證明元素為2個(gè)较曼,但是磷斧,電路的大小會(huì)變的很大。

總結(jié):Groth16算法是Jens Groth在2016年發(fā)表的算法捷犹。該算法的優(yōu)點(diǎn)是提供的證明元素個(gè)數(shù)少(只需要3個(gè))弛饭,驗(yàn)證等式簡單,保證完整性和多項(xiàng)式計(jì)算能力下的可靠性萍歉。Groth16算法論文同時(shí)指出侣颂,zk-SNARK算法需要的最少的證明元素為2個(gè)。目前Groth16算法已經(jīng)被ZCash枪孩,F(xiàn)ilecoin等項(xiàng)目使用憔晒。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市蔑舞,隨后出現(xiàn)的幾起案子拒担,更是在濱河造成了極大的恐慌,老刑警劉巖攻询,帶你破解...
    沈念sama閱讀 218,204評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件从撼,死亡現(xiàn)場離奇詭異,居然都是意外死亡蜕窿,警方通過查閱死者的電腦和手機(jī)谋逻,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,091評論 3 395
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來桐经,“玉大人毁兆,你說我怎么就攤上這事∫跽酰” “怎么了气堕?”我有些...
    開封第一講書人閱讀 164,548評論 0 354
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經(jīng)常有香客問我茎芭,道長揖膜,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,657評論 1 293
  • 正文 為了忘掉前任梅桩,我火速辦了婚禮壹粟,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘宿百。我一直安慰自己趁仙,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,689評論 6 392
  • 文/花漫 我一把揭開白布垦页。 她就那樣靜靜地躺著雀费,像睡著了一般。 火紅的嫁衣襯著肌膚如雪痊焊。 梳的紋絲不亂的頭發(fā)上盏袄,一...
    開封第一講書人閱讀 51,554評論 1 305
  • 那天,我揣著相機(jī)與錄音薄啥,去河邊找鬼辕羽。 笑死,一個(gè)胖子當(dāng)著我的面吹牛垄惧,可吹牛的內(nèi)容都是我干的逛漫。 我是一名探鬼主播,決...
    沈念sama閱讀 40,302評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼赘艳,長吁一口氣:“原來是場噩夢啊……” “哼酌毡!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起蕾管,我...
    開封第一講書人閱讀 39,216評論 0 276
  • 序言:老撾萬榮一對情侶失蹤枷踏,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后掰曾,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體旭蠕,經(jīng)...
    沈念sama閱讀 45,661評論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,851評論 3 336
  • 正文 我和宋清朗相戀三年旷坦,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了掏熬。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,977評論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡秒梅,死狀恐怖旗芬,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情捆蜀,我是刑警寧澤疮丛,帶...
    沈念sama閱讀 35,697評論 5 347
  • 正文 年R本政府宣布幔嫂,位于F島的核電站,受9級特大地震影響誊薄,放射性物質(zhì)發(fā)生泄漏履恩。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,306評論 3 330
  • 文/蒙蒙 一呢蔫、第九天 我趴在偏房一處隱蔽的房頂上張望切心。 院中可真熱鬧,春花似錦片吊、人聲如沸昙衅。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,898評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至著瓶,卻和暖如春联予,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背材原。 一陣腳步聲響...
    開封第一講書人閱讀 33,019評論 1 270
  • 我被黑心中介騙來泰國打工沸久, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人余蟹。 一個(gè)月前我還...
    沈念sama閱讀 48,138評論 3 370
  • 正文 我出身青樓卷胯,卻偏偏與公主長得像,于是被迫代替她去往敵國和親威酒。 傳聞我的和親對象是個(gè)殘疾皇子窑睁,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,927評論 2 355

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