ZKP的起源和發展歷程:自1980年代至今

作者:Preethi Kasireddy,DappCamp創始人;翻譯:金色財經cryptonaitive

ZKP(零知識證明)在加密貨幣大爆發後受到歡迎,但它們的悠久歷史可以追溯到 1980 年代。本文探討 ZKP 這些年來的起源和發展。

ZKP的基本前提是,一方(prover)可以向另一方(verifier)證明他們了解特定信息,而無需實際透露該信息是什麼。通過這樣做,Prover可以證明他們對特定事實或數據的了解,而無需透露任何其他信息。

現在,讓我們開始探索ZKP的歷史和發展。

1980年代:ZKP起源

ZKP 在加密貨幣爆發後獲得了關注,因為它們允許在兩方之間進行無需信任和匿名的交換,但這個概念本身並不新鮮。 ZKP 的歷史其實可以追溯到 20 世紀 80 年代後期,當時 Shafi Goldwasser、Silvio Micali 和 Charles Rackoff 在一篇題為“The Knowledge Complexity of Interactive Proof-Systems”(交互式證明系統的知識複雜性)的論文中引入這個概念。

作者描述的初始概念涉及稱為“交互式協議”的東西,其中prover和verifier將來回通信(反復交互)以使verifier相信prover知道正確的信息。這種方法雖然有其自身突破,但被證明是耗時且資源密集型的,尤其是在涉及大量數據時。為了使ZKP具有可擴展性,它們需要是非交互式的。

Peggy(證明者)和 Victor(驗證者)

1986 年,Fiat 和 Shamir 發明了 Fiat-Shamir heuristic(Fiat-Shamir 啟發式,一種採用交互式知識證明並據此創建數字簽名的技術),成功地將交互式零知識證明轉變為非交互式零知識證明。現在,這使得 ZKP 成為非交互式的,並為 ZKP 的廣泛、可擴展使用奠定了基礎。

FovzAhH68lMILxcih3DeM0c6oFkDIFub94SiZKrd.png

交互式與非交互式ZKP

2011-2015:zkSNARKs

ZKP 的下一次重大推動發生在 2011 年,Nir Bitansky、Ran Canetti和Alessandro Chiesa在密碼學理論國際研討會上發表了一篇名為“From Extractable Collision Resistance to SNARKs and Back Again” (從可提取的抗碰撞性到 SNARKs,然後再反向操作 )的論文。

6dfioud49xs00wSolNizdEZD1p7q1oD82BS4EfTz.png

zkSNARK如何工作?

這篇論文表明,我們可以使用一種稱為可提取抗碰撞 (ECR) 哈希函數的東西來創建 SNARKS(簡潔的非交互式知識論證)。 SNARKS 基本上是“簡潔”的 ZKP,這意味著它們體積小,可以在幾秒鐘內得到驗證。

這篇論文表明,我們可以使用一種稱為可提取抗碰撞 (ECR) 哈希函數的東西來創建 SNARKS(簡潔的非交互式知識論證)。 SNARKS 基本上是“簡潔”的 ZKP,這意味著它們體積小,可以在幾秒鐘內得到驗證。

67OEGdawnLdQfi1ktEizi2jo1uWJAoJFS5oMwd8g.png

ZKP、NIZKP 和 zkSNARK 的比較

從這裡開始,ZKP 的進程加快了,並促成了 2013 年Pinocchio的誕生。

Pinocchio是零知識簡潔非交互式知識論證 (zk-SNARK) 證明系統的第一個概念驗證實現之一,被認為是該領域的突破。它在幾年前一直被使用,但隨後被更新、更高效版本的zk-SNARKs所取代。

當時 zkSNARKS 的兩個主要缺點是:

● 可信設置的要求

zkSNARKs 需要prover和verifier之間的“可信設置”。此設置階段用於創建一組初始參數,然後用於生成和驗證 zk 證明。

生成這些參數需要一些秘密信息。一群人通常生成這些秘密,然後使用這些秘密來生成參數。一旦生成參數,秘密就被丟棄。然而,由於秘密輸入需要由一組人生成,因此需要我們“信任”這些人。

在區塊鏈中,我們希望最小化信任,這就是為什麼“可信設置”通常不受青睞的原因。

zk-SNARK 證明依賴於prover和verifier之間的初始“可信設置”,這意味著需要一組公共參數來構建零知識證明,從而構建隱私交易。這些參數幾乎就像遊戲規則一樣,它們被編碼到協議中,是證明交易有效的必要因素之一。這會產生潛在的中心化問題,因為參數通常由非常小的團隊制定。

l4OqzI0h9p8bp9CPtIxElRcOzTraKWO7X4FhKOPt.png

多參與者可信設置的工作流程 來源

● 非後量子安全

zkSNARKS 不是後量子安全的,因為它們依賴於公鑰加密。公鑰密碼學依賴於解決特定數組的離散對數問題的難度。但隨著量子計算機的誕生,公鑰密碼學面臨風險,因為計算機可以將大數分解為素數,這意味著解決離散對數問題不再困難。

ZK行業正在努力構建解決這兩個問題的協議。

2016-2018:讓SNARKs變得實用

接下來是Groth。 Groth 於 2016 年推出,是使 zkSnarks 高效且極其實用的首批協議之一。這是一個巨大的突破,並立即得到採用。事實上,由於它的性能和簡單性,它今天仍在許多協議中使用,並且圍繞它構建了許多工具。

ZKP的下一個重要里程碑是 2017 年 Bulletproofs 的推出。我記得 Bulletproofs 在 2017 年大肆宣傳。 Bulletproofs 是簡短的非交互式零知識證明,可以證明某個加密值在給定的“範圍內”不透露任何有關數據的信息(例如,我可以在不透露金額的情況下向你證明交易價值在一定範圍內)。這些“範圍證明”可以聚合成一個簡短的證明。 Bulletproof協議變得如此流行的原因是因為它們使比特幣的機密交易不僅成為可能,而且變得高效。 Bulletproof技術最大的區別在於它不需要可信設置。這在區塊鏈行業非常重要,因為我們專注於構建無需信任的網絡,正如你可以想像的那樣,行業很快就採用了Bulletproof技術。

K6VXDXTE2F9Idkf3G67rmgu5RmO7n7kQYyJ25vRV.png

SNARKs、STARKs 和 Bulletproofs 的Runtime比較

2018:STARK

2018 年,STARKS(Zero-Knowledge Scalable Transparent ARguments of Knowledge——零知識可擴展透明知識論證——的縮寫)通過緩解 zkSNARKS 的兩個缺點在業界引起了轟動:

● STARKS 是“後量子安全”的,這意味著它們依賴於哈希函數而不是橢圓曲線作為證明機制。

● STARKS 不需要可信設置。相反,zk-STARKS 使用可公開驗證的隨機源作為初始參數。

zkSTARKS 的最大缺點是它們的證明很大。這使得它不適合區塊鏈,因為鏈上存儲需要花錢。然而,STARKS 超過 SNARKS 脫穎而出,並讓行業擺脫可信設置。

P23fHMbIHa7qjZcBddWdKf8RUgXQXJjSZ39lPNfd.png

zkSNARKs 和 zkSTARKs 在各種參數上的比較

2019:SNARKS年

2019 年對 zkSNARKS 來說是重要的一年,該領域有 3 項重大創新:

● SONIC

Sonic 做出的最大貢獻是支持“通用”且可不斷升級的參考字符串。這意味著你不需要進行可信設置來為每個程序生成初始參數。相反,你只需執行一次可信設置,然後對所有程序使用相同的參數。雖然這並不能完全減輕可信設置的缺點,但它確實使它變得更好了。

Sonic 還具有恆定的證明大小(這很好,因為證明大小不會隨著程序的複雜性而增加)並引入了批量驗證,從而減少了驗證時間。但是,當你不進行批處理時,驗證時間非常長。

● MARLIN

Marlin 是 Sonic 的顯著改進版本,證明時間減少了 10 倍。它還提供了更快的驗證而無需批處理,並將驗證時間縮短了 3 倍。

● PLONK

PLONK 是“Permutations over Lagrange-bases for Oecumenical Non Interactive Arguments of Knowledge ”(普遍用途的非交互式知識論證的拉格朗日基排列)的縮寫,是 SONIC 的另一個改進版本,它的一個特性是,它的證明時間減少了 5 倍。這裡的重大創新是 PLONK 允許自定義門(gate)而不是通常的加法/乘法,這意味著你可以為更複雜的程序構建 zk 證明。

PlonK 和 Marlin 都用通用設置替換了 Groth16 中電路特定的可信設置。隨著 PLONK 的推出,加密社區也意識到他們甚至可以構建“zkEVM”,這將使我們能夠在以太坊上獲取任何智能合約代碼並將其轉換為零知識證明。 Vitalik 曾經寫過一篇精彩文章,解釋了它背後的數學原理。

這標誌著ZKP亂戰的結束,但也僅僅只是個開始!

pcnfXz3vOnaC2flLUZeFML3aZPh25cIeAAMaGdvy.png

各協議證明大小和安全假設圖,來源

2020年至今

HALO2

2020 年,Zcash 團隊推出了 HALO 2(HALO 的繼後繼者),它結合了 PLONK 和 Bulletproofs 的優點,然後允許在沒有可信設置的情況下進行快速驗證。

FgnoXJu2Beri9vTxrzruBaBWx6SYOuU8RfDbitfe.png

HALO vs HALO 2,來源

快進到 2022 年,我們開始再次看到新協議開發的加速。

HYPERPLONK

HYPERPLONK 於 2022 年推出,是一種 zkp系統,證明是完全線性時間的並支持高度和查找自定義門。它試圖提高 PLONK 的靈活性,提高其速度並提供更多好處。

雖然 PLONK 本身非常強大,但它有一定的局限性,尤其是在證明大型聲明或嘗試使用高度並行的硬件時。在證明諸如rollup和 zkEVM 等大型複雜命令時,這些限制尤為重要。 HyperPlonk 旨在解決這個問題。

PLONKY2

最近,Polygon 於 2022 年 1 月發布的 Plonky2 是 ZKP 世界中最新的。它是一種遞歸 SNARK,比現有其他方案快 100 倍。它結合了 PLONK 和 FRI,以獲得最好的 STARK(即快速證明和無可信設置)和最好的 SNARK(即支持遞歸和以太坊上的低驗證成本)。

這將我們帶到了今天。這就是 ZKP生態今天的樣子:

sDZsf6H6neTvr91PHWQNdC2EWsYNDLoyp3wDCDLZ.png

ZKP生態

雖然沒有哪個“協議”被認為是最好的,但了解所有這些協議、它們的優點和局限性有助於我們為特定用例和設置選擇最好的一個。我的團隊收集了我今天介紹的所有協議的信息,並在此處為你總結:

vICxlPgSJxbfFTzGL2fns88KBcWRm3sgFO3UUSQp.png

各ZKP特性全匯總

ZKP 有著悠久而豐富的歷史,每個協議都在突破極限,提高速度並擴展這項技術的限制。從需要prover和verifier來回交換信息的第一次迭代,我們已經走了很長一段路。

在我看來,我們才剛剛開始。你認為 ZKP 領域的下一個重大創新是什麼?

Total
0
Shares
Related Posts