溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

zk-SNARKs知識有哪些

發(fā)布時(shí)間:2021-12-29 12:00:25 來源:億速云 閱讀:154 作者:iii 欄目:互聯(lián)網(wǎng)科技

這篇文章主要講解了“zk-SNARKs知識有哪些”,文中的講解內(nèi)容簡單清晰,易于學(xué)習(xí)與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學(xué)習(xí)“zk-SNARKs知識有哪些”吧!

1、可信設(shè)置

傳統(tǒng)的zk-SNARK,例如Groth26有一個(gè)主要的缺點(diǎn):依賴于一個(gè)公共的參考字符串,該字符串使用一次性可信設(shè)置創(chuàng)建。該設(shè)置創(chuàng)建一個(gè)供證明方和驗(yàn)證方同時(shí)使用的參考字符串。這里面有三個(gè)主要的問題:

  • 可信設(shè)置生成的“有毒廢料”,如果泄露的話,可以被用于生成無法 檢測的偽造證明。多方計(jì)算通常會忽略這個(gè)問題,但是儀式的協(xié)調(diào) 異常復(fù)雜。

  • 可信設(shè)置創(chuàng)建的參考字符串通常綁定到一個(gè)電路(基本上就是程序)。 不可能為任何計(jì)算創(chuàng)建一個(gè)單獨(dú)的可信設(shè)置,這使得很多應(yīng)用都不可行, 例如智能合約。

  • 可信設(shè)置是一次性的,生成的參考字符串不可升級,這意味著如果 Zcash需要修復(fù)其zk-SNARK電路中的哪怕一個(gè)很小的bug,也需要一個(gè) 新的儀式來部署修復(fù)。

2、通用zk-SNARK

新的zk-SNARK構(gòu)建解決了對可信設(shè)置的要求,這意味著像智能合約等任意代碼可以作為zk-SNARK運(yùn)行。目前有兩個(gè)不同的方法:

  • 透明設(shè)置

設(shè)置創(chuàng)建一個(gè)共用的參考字符串,公開并且不會創(chuàng)建有毒廢料。這和zk-STARK的機(jī)制類似。Fractal、Halo和SuperSonic-CG使用的就是透明設(shè)置。這種方法的缺點(diǎn)在于證明數(shù)據(jù)量會很大。Fractal和zk-STARK證明能達(dá)到250KB,這對于區(qū)塊鏈應(yīng)用是不現(xiàn)實(shí)的。Fractal團(tuán)隊(duì)告訴我,他們正在解決證明數(shù)據(jù)量過大的問題。Halo和SuperSonic的證明要小一些, 不到10KB。

  • 通用設(shè)置

這種設(shè)置創(chuàng)建一個(gè)結(jié)構(gòu)化參考字符串,也會產(chǎn)生有毒廢料,不過設(shè)置不再局限于單一電路,一個(gè)參考字符串可以用于無限的任意電路中。例如Marlin、SuperSonic-RSA和Plonk。這三種構(gòu)建生成的參考字符串可以升級,以便提高安全性。如果當(dāng)前的有毒廢料泄露,那么只需要升級設(shè)置就可以再次保障系統(tǒng)的安全。

3、zk-SNARK分類

如何比較新出現(xiàn)的zk-SNARK?在證明人側(cè),為每種zk-SNARK構(gòu)建生成一個(gè)證明需要O(n log n)時(shí)間。區(qū)別主要在于證明的數(shù)據(jù)量大小、驗(yàn)證時(shí)間以及參考字符串的大小。

所有這些zk-SNARKS使用的編譯器可以分為三類:預(yù)處理、DARK和傳統(tǒng)的SNARK(非通用):

zk-SNARKs知識有哪些

4、已有的zk-SNARK構(gòu)建

作為參考,我將介紹三種已有的構(gòu)建。Groth26是非通用的,它依賴于一次性不可升級的設(shè)置,Sonic是一個(gè)通用的zk-SNARK。

Groth26:Groth26是目前最快、數(shù)據(jù)量最小的zk-SNARK,被用于Zcash等。Groth26不是通用的,其設(shè)置需要綁定到一個(gè)特定的電路。由于其速度和證明的小數(shù)據(jù)量,因此常常被新的zk-SNARK拿來比較性能。

Sonic:Sonic是一個(gè)早期的通用zk-SNARK協(xié)議。論文發(fā)表于2019年1月。Sonic支持通用、可升級的參考字符串。Sonic的證明大小固定,但是驗(yàn)證成本高。理論上可以將多個(gè)證明分批驗(yàn)證以獲得更好的性能。

5、新的zk-SNARK構(gòu)建

Fractal:Fractal 是一種允許遞歸的zk-SNARK。通過對電路的預(yù)處理實(shí)現(xiàn)了透明設(shè)置。證明最大250KB,這筆其他構(gòu)建生成的證明都要大的多。

Halo:Halo支持遞歸證據(jù)組織,無需可信設(shè)置。與其他新的zk-SNARK構(gòu)建不同,Halo的驗(yàn)證時(shí)間是線性的。

SuperSonic:SuperSonic 是Sonic的改進(jìn)版,是第一個(gè)在驗(yàn)證時(shí)間和證明數(shù)據(jù)量方面實(shí)用化的透明zk-SNARK。

Marlin:Marlin 是Sonic的改進(jìn)版,證明時(shí)間縮短10倍,驗(yàn)證時(shí)間縮短4倍。

一個(gè)大問題是:如何比較這些不同zk-SNARK構(gòu)建的性能?不幸的是,我不知道zk-SNARK有任何基準(zhǔn)測試,不過即使有的話,也不是所有的新構(gòu)建都有一個(gè)參考實(shí)現(xiàn)。因此下面表格中的數(shù)字請不要過于較真,它們是基于論文中的基準(zhǔn)指標(biāo),或者基于發(fā)明者提供的估算。

通過查看證明的大小、證明運(yùn)行時(shí)間、驗(yàn)證運(yùn)行時(shí)間,有一些方面是值得注意的:

  • 使用透明設(shè)置的構(gòu)建通常由較大的證明數(shù)據(jù)量

  • Halo的驗(yàn)證時(shí)間不恒定,這和其他新的zk-SNARK構(gòu)建不同

  • 在證明數(shù)據(jù)量尺寸和運(yùn)行速度方面,Groth26仍然是無敵的

感謝各位的閱讀,以上就是“zk-SNARKs知識有哪些”的內(nèi)容了,經(jīng)過本文的學(xué)習(xí)后,相信大家對zk-SNARKs知識有哪些這一問題有了更深刻的體會,具體使用情況還需要大家實(shí)踐驗(yàn)證。這里是億速云,小編將為大家推送更多相關(guān)知識點(diǎn)的文章,歡迎關(guān)注!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI