国产欧美精品一区二区三区_国产黄色电影_久久极品_欧美日韩专区_成人国产免费视频_一级片大片

幣圈網(wǎng)

ArkStream Capital:零知識(shí)證明四十年技術(shù)發(fā)展里程碑


摘要


零知識(shí)證明(ZKP)在區(qū)塊鏈領(lǐng)域被廣泛視為是自分布式賬本技術(shù)以來(lái)最重要的科技創(chuàng)新之一,同時(shí)也是風(fēng)險(xiǎn)投資的重點(diǎn)領(lǐng)域。本文對(duì)零知識(shí)證明技術(shù)近四十年的歷史文獻(xiàn)和最新研究都做了系統(tǒng)的綜述。


首先,介紹了零知識(shí)證明的基本概念和歷史背景。然后,重點(diǎn)分析了基于電路的零知識(shí)證明技術(shù),包括 zkSNARK、Ben-Sasson、Pinocchio、Bulletproofs 和 Ligero 等模型的設(shè)計(jì)、應(yīng)用和優(yōu)化方法。在計(jì)算環(huán)境領(lǐng)域,本文介紹了 ZKVM 和 ZKEVM,探討了其如何提升交易處理能力、保護(hù)隱私和提高驗(yàn)證效率。文章還介紹了零知識(shí) Rollup(ZK Rollup)作為 Layer 2 擴(kuò)展方案的工作機(jī)制和優(yōu)化方法,以及硬件加速、混合解決方案和專用 ZK EVM 的最新進(jìn)展。


最后,本文展望了 ZKCoprocessor、ZKML、ZKThreads、ZK Sharding 和 ZK StateChannels 等新興概念,并探討了它們?cè)趨^(qū)塊鏈擴(kuò)展性、互操作性和隱私保護(hù)方面的潛力。


通過(guò)分析這些最新技術(shù)和發(fā)展趨勢(shì),本文為理解和應(yīng)用零知識(shí)證明技術(shù)提供了全面視角,展示了其在提升區(qū)塊鏈系統(tǒng)效率和安全性方面的巨大潛力,為未來(lái)的投資決策提供了重要參考。


前言


在如今,互聯(lián)網(wǎng)正在進(jìn)入 Web3 時(shí)代的進(jìn)程中,區(qū)塊鏈應(yīng)用(DApps)的發(fā)展迅速,幾乎每天都有新的應(yīng)用涌現(xiàn)。近幾年,區(qū)塊鏈平臺(tái)每天都承載著數(shù)百萬(wàn)用戶的活動(dòng),處理著數(shù)十億筆交易。這些交易產(chǎn)生的大量數(shù)據(jù)通常包括用戶身份、交易金額、賬戶地址和賬戶余額等敏感個(gè)人信息。鑒于區(qū)塊鏈的開(kāi)放性和透明性特點(diǎn),這些存儲(chǔ)的數(shù)據(jù)對(duì)所有人都是開(kāi)放的,因此引發(fā)了多種安全與隱私問(wèn)題。


目前,有幾種加密技術(shù)可以應(yīng)對(duì)這些挑戰(zhàn),包括同態(tài)加密、環(huán)簽名、安全多方計(jì)算和零知識(shí)證明。同態(tài)加密允許在不解密密文的情況下執(zhí)行運(yùn)算,有助于保護(hù)賬戶余額和交易金額的安全,但無(wú)法保護(hù)賬戶地址的安全。環(huán)簽名提供了一種特殊的數(shù)字簽名形式,能夠隱藏簽名者的身份,從而保護(hù)賬戶地址的安全,但對(duì)賬戶余額和交易金額的保護(hù)則無(wú)能為力。安全多方計(jì)算允許在多個(gè)參與者之間分配計(jì)算任務(wù),而無(wú)需任何參與者知曉其他參與者的數(shù)據(jù),有效保護(hù)了賬戶余額和交易金額的安全,但同樣不能保護(hù)賬戶地址的安全。此外,同態(tài)加密、環(huán)簽名和安全多方計(jì)算無(wú)法在不泄露交易金額、賬戶地址和賬戶余額的情況下用于驗(yàn)證區(qū)塊鏈環(huán)境中證明者是否擁有足夠的交易金額(Sun et al., 2021)。


零知識(shí)證明是一種更全面的解決方案,這種驗(yàn)證協(xié)議允許在不透露任何中介數(shù)據(jù)的情況下驗(yàn)證某些命題的正確性(Goldwasser,Micali&Rackoff, 1985)。該協(xié)議不需要復(fù)雜的公鑰設(shè)施,其重復(fù)實(shí)施也不會(huì)為惡意用戶提供獲取額外有用信息的機(jī)會(huì)(Goldreich, 2004)。通過(guò) ZKP,驗(yàn)證者能夠在不泄露任何私人交易數(shù)據(jù)的情況下,驗(yàn)證證明者是否具有足夠的交易金額。驗(yàn)證過(guò)程包括生成包含證明者聲稱的交易金額的證明,然后將該證明傳遞給驗(yàn)證者,驗(yàn)證者對(duì)證明進(jìn)行預(yù)定義的計(jì)算,并產(chǎn)出最終的計(jì)算結(jié)果,從而得出是否接受證明者聲明的結(jié)論。如果證明者的聲明被接受,意味著他們擁有足夠的交易金額。上述驗(yàn)證過(guò)程可以記錄在區(qū)塊鏈上,沒(méi)有任何偽造(Feige, Fiat& Shamir, 1986)。


ZKP 這一特性使其在區(qū)塊鏈交易和加密貨幣應(yīng)用中扮演核心角色,特別是在隱私保護(hù)和網(wǎng)絡(luò)擴(kuò)容方面,使得其不僅成為了學(xué)術(shù)研究的焦點(diǎn),被廣泛認(rèn)為是自分布式賬本技術(shù)——特別是比特幣——成功實(shí)施以來(lái)最重要的技術(shù)創(chuàng)新之一。同時(shí)也是行業(yè)應(yīng)用和風(fēng)險(xiǎn)投資的重點(diǎn)賽道(Konstantopoulos, 2022)。


由此,諸多基于 ZKP 的網(wǎng)絡(luò)項(xiàng)目相繼涌現(xiàn),如 ZkSync、StarkNet、Mina、Filecoin 和 Aleo 等。隨著這些項(xiàng)目的發(fā)展,關(guān)于 ZKP 的算法創(chuàng)新層出不窮,據(jù)報(bào)道幾乎每周都有新算法問(wèn)世(Lavery, 2024 ;AdaPulse, 2024)。此外,與 ZKP 技術(shù)相關(guān)的硬件開(kāi)發(fā)也在迅速進(jìn)展,包括專為 ZKP 優(yōu)化的芯片。例如,Ingonyama、Irreducible 和 Cysic 等項(xiàng)目已經(jīng)完成了大規(guī)模的資金募集,這些發(fā)展不僅展示了 ZKP 技術(shù)的快速進(jìn)步,也反映了從通用硬件向?qū)S糜布?GPU、FPGA 和 ASIC 的轉(zhuǎn)變(Ingonyama, 2023 ;Burger, 2022)。


這些進(jìn)展表明,零知識(shí)證明技術(shù)不僅是密碼學(xué)領(lǐng)域的一個(gè)重要突破,也是實(shí)現(xiàn)更廣泛區(qū)塊鏈技術(shù)應(yīng)用——尤其是在提高隱私保護(hù)和處理能力方面——的關(guān)鍵推動(dòng)力(Zhou et al, 2022)。


因此,我們決定系統(tǒng)地整理零知識(shí)證明(ZKP)的相關(guān)知識(shí),以更好地輔助我們做出未來(lái)的投資決策。為此,我們綜合審閱了關(guān)于 ZKP 相關(guān)的核心學(xué)術(shù)論文(依據(jù)相關(guān)性和引用次數(shù)進(jìn)行排序);同時(shí),我們也詳細(xì)分析了該領(lǐng)域內(nèi)領(lǐng)先的項(xiàng)目的資料和白皮書(根據(jù)其融資規(guī)模進(jìn)行排序)。這些綜合性的資料搜集和分析為本文的撰寫提供了堅(jiān)實(shí)的基礎(chǔ)。


一、零知識(shí)證明基礎(chǔ)知識(shí)


1. 概述


1985 年,學(xué)者 Goldwasser、Micali 和 Rackoff 在論文《TheKnowledge Complexity of Interactive Proof-Systems》中首次提出了零知識(shí)證明(Zero-KnowledgeProof,ZKP)和交互式知識(shí)證(InteractiveZero-Knowledge,IZK)。該論文是零知識(shí)證明的奠基之作,定義了許多影響后續(xù)學(xué)術(shù)研究的概念。例如,知識(shí)的定義是「不可行計(jì)算(unfeasiblecomputation)的輸出」,即知識(shí)必須是一個(gè)輸出,且是一個(gè)不可行計(jì)算,意味著它不能是簡(jiǎn)單的函數(shù),而需是復(fù)雜的函數(shù)。不可行計(jì)算通常可以理解為是一個(gè) NP 問(wèn)題,即可以在多項(xiàng)式時(shí)間內(nèi)驗(yàn)證其解正確性的問(wèn)題,多項(xiàng)式時(shí)間指的是算法運(yùn)行時(shí)間可以用輸入大小的多項(xiàng)式函數(shù)來(lái)表示。這是計(jì)算機(jī)科學(xué)中衡量算法效率和可行性的重要標(biāo)準(zhǔn)。由于 NP 問(wèn)題的求解過(guò)程復(fù)雜,因此被認(rèn)為是不可行計(jì)算;但其驗(yàn)證過(guò)程相對(duì)簡(jiǎn)單,所以非常適合用于零知識(shí)證明驗(yàn)證(Goldwasser, Micali & Rackoff, 1985)。


NP 問(wèn)題的一個(gè)經(jīng)典例子是旅行商問(wèn)題,其中要找到訪問(wèn)一系列城市并返回起點(diǎn)的最短路徑。雖然找到最短路徑可能很困難,但給定一個(gè)路徑,驗(yàn)證這條路徑是否是最短的相對(duì)容易。因?yàn)轵?yàn)證一個(gè)具體路徑的總距離可以在多項(xiàng)式時(shí)間內(nèi)完成。


Goldwasser 等人在其論文中引入了「知識(shí)復(fù)雜度」(knowledgecomplexity)這一概念,用以量化在交互式證明系統(tǒng)中,證明者向驗(yàn)證者泄露的知識(shí)量。他們還提出了交互式證明系統(tǒng)(InteractiveProof Systems,IPS),其中證明者(Prover)和驗(yàn)證者(Verifier)通過(guò)多輪互動(dòng)來(lái)證明某個(gè)語(yǔ)句的真實(shí)性(Goldwasser, Micali & Rackoff, 1985)。


綜上,Goldwasser 等人總結(jié)的零知識(shí)證明的定義,是一種特殊的交互式證明,其中驗(yàn)證者在驗(yàn)證過(guò)程中不會(huì)獲得除語(yǔ)句真值外的任何額外信息;并且提出了三個(gè)基本特性包括:


1.完備性(completeness):如果論證是真實(shí)的,誠(chéng)實(shí)的證明者可以說(shuō)服誠(chéng)實(shí)的驗(yàn)證者這一事實(shí);


2.可靠性(soundness):如果證明者不知道聲明內(nèi)容,他只能以微不足道的概率欺騙驗(yàn)證者;


3.零知識(shí)性(zero-knowledge):在證明過(guò)程完成后,驗(yàn)證者只獲得「證明者擁有此知識(shí)」的信息,而無(wú)法獲得任何額外內(nèi)容(Goldwasser, Micali & Rackoff, 1985)。


2. 零知識(shí)證明示例


為更好理解零知識(shí)證明及其屬性,以下是一個(gè)驗(yàn)證證明者是否擁有某些私密信息的示例,該示例分為三個(gè)階段:設(shè)置、挑戰(zhàn)和響應(yīng)。


第一步:設(shè)置(Setup)


在這一步,證明者的目標(biāo)是創(chuàng)建一個(gè)證據(jù),證明他知道某個(gè)秘密數(shù)字 s,但又不直接顯示 s。設(shè)秘密數(shù)字;


選擇兩個(gè)大的質(zhì)數(shù) p 和 q,計(jì)算它們的乘積  。設(shè)質(zhì)數(shù)  和,計(jì)算得到的;


計(jì)算,這里,v 作為證明的一部分被發(fā)送給驗(yàn)證者,但它不足以讓驗(yàn)證者或任何旁觀者推斷出 s。;


隨機(jī)選擇一個(gè)整數(shù) r,計(jì)算  并發(fā)送給驗(yàn)證者。這個(gè)值 x 用于后續(xù)的驗(yàn)證過(guò)程,但同樣不暴露 s。設(shè)隨機(jī)整數(shù),計(jì)算得到的。


第二步:挑戰(zhàn)(Challenge)


驗(yàn)證者隨機(jī)選擇一個(gè)位 a(可以是 0 或 1),然后發(fā)送給證明者。這個(gè)「挑戰(zhàn)」決定了證明者接下來(lái)需要采取的步驟。


第三步:響應(yīng)(Response)


根據(jù)驗(yàn)證者發(fā)出的 a 值,證明者進(jìn)行響應(yīng):


如果,證明者發(fā)送(這里 r 是他之前隨機(jī)選擇的數(shù))。


如果,證明者計(jì)算 并發(fā)送。設(shè)驗(yàn)證者發(fā)送的隨機(jī)位,根據(jù) a 的值,證明者計(jì)算 ;


最后,驗(yàn)證者根據(jù)收到的 g 來(lái)驗(yàn)證 是否等于。如果等式成立,驗(yàn)證者接受這個(gè)證明。當(dāng) 時(shí),驗(yàn)證者計(jì)算驗(yàn)證者計(jì)算,右側(cè)驗(yàn)證  ; 當(dāng)  時(shí),驗(yàn)證者計(jì)算驗(yàn)證者計(jì)算,右側(cè)驗(yàn)證。


這里,我們看到驗(yàn)證者計(jì)算得到的 說(shuō)明證明者成功地通過(guò)了驗(yàn)證過(guò)程,同時(shí)沒(méi)有泄露他的秘密數(shù)字 s。在這里,由于 a 只可以取 0 或 1 ,僅有兩種可能性,證明者依靠運(yùn)氣通過(guò)驗(yàn)證的概率(當(dāng) a 取 0 時(shí))。但驗(yàn)證者隨后再挑戰(zhàn)證明者次,證明者不斷更換相關(guān)數(shù)字,提交給驗(yàn)證者,且總能成功地通過(guò)驗(yàn)證過(guò)程,這樣一來(lái)證明者依靠運(yùn)氣通過(guò)驗(yàn)證的概率 (無(wú)限趨近于 0),證明者確實(shí)知道某個(gè)秘密數(shù)字 s 的結(jié)論便得到證明。這一例子證明了零知識(shí)證明系統(tǒng)的完整性、可靠性和零知識(shí)性(Fiat& Shamir, 1986)。


二、非交互零知識(shí)證明


1. 背景


零知識(shí)證明(ZKP)在傳統(tǒng)概念中通常是交互式和在線的協(xié)議形式;例如,Sigma 協(xié)議通常需要三到五輪交互才能完成認(rèn)證(Fiat& Shamir, 1986)。然而,在諸如即時(shí)交易或投票等場(chǎng)景中,往往沒(méi)有機(jī)會(huì)進(jìn)行多輪交互,特別是在區(qū)塊鏈技術(shù)應(yīng)用中,線下驗(yàn)證功能顯得尤為重要(Sun 等, 2021)。


2.NIZK 的提出


1988 年,Blum、Feldman 和 Micali 首次提出了非交互式零知識(shí)(NIZK)證明的概念,證明了在無(wú)需多輪交互的情況下,證明者(Prover)與驗(yàn)證者(Verifier)仍可完成認(rèn)證過(guò)程的可能性 。這一突破使得即時(shí)交易、投票以及區(qū)塊鏈應(yīng)用的實(shí)現(xiàn)變得可行 (Blum, Feldman & Micali, 1988)。


他們提出非交互式零知識(shí)證明(NIZK)可以分為三個(gè)階段:


1.設(shè)置

2.計(jì)算

3.驗(yàn)證


設(shè)置階段使用計(jì)算函數(shù),將安全參數(shù)轉(zhuǎn)換為公共知識(shí)(證明者和驗(yàn)證者均可獲取),通常編碼在一個(gè)共同參考字符串(CRS)中。這是計(jì)算證明并使用正確的參數(shù)和算法進(jìn)行驗(yàn)證的方式。


計(jì)算階段采用計(jì)算函數(shù)、輸入和證明密鑰,輸出計(jì)算結(jié)果和證明。


在驗(yàn)證階段,通過(guò)驗(yàn)證密鑰來(lái)驗(yàn)證證明的有效性。


他們所提出的公共參考字符串(CRS)模型,即基于所有參與者共享一個(gè)字符串來(lái)實(shí)現(xiàn) NP 問(wèn)題的非交互式零知識(shí)證明。這種模型的運(yùn)行依賴于 CRS 的可信生成,所有參與者必須能夠訪問(wèn)相同的字符串。僅當(dāng) CRS 被正確且安全地生成時(shí),依此模型實(shí)施的方案才能確保安全性。對(duì)于大量參與者而言,CRS 的生成過(guò)程可能既復(fù)雜又耗時(shí),因此盡管這類方案通常操作簡(jiǎn)便且證明體積較小,其設(shè)置過(guò)程卻頗具挑戰(zhàn) (Blum, Feldman & Micali, 1988)。


隨后,NIZK 技術(shù)經(jīng)歷了迅猛發(fā)展,涌現(xiàn)了多種方法將交互式零知識(shí)證明轉(zhuǎn)化為非交互式證明。這些方法在系統(tǒng)的構(gòu)建或底層加密模型的假設(shè)上各有不同。


3.Fiat-Shamir 變換


Fiat-Shamir 變換,又叫 Fiat-ShamirHeurisitc(啟發(fā)式),或者 Fiat-Shamir Paradigm(范式);由 Fiat 和 Shamir 在 1986 年提出,是一種能夠?qū)⒔换ナ搅阒R(shí)證明轉(zhuǎn)換為非交互式的方法。該方法通過(guò)引入哈希函數(shù)來(lái)減少交互次數(shù),并依托安全假設(shè)來(lái)保障證明的真實(shí)性及其難以偽造的特性。Fiat-Shamir 變換使用公共密碼學(xué)哈希函數(shù)替代部分隨機(jī)性和交互性,其輸出從某種程度上可以視作 CRS。盡管此協(xié)議在隨機(jī)預(yù)言機(jī)模型中被視為安全,但它依賴于哈希函數(shù)輸出對(duì)不同輸入的均勻隨機(jī)性和獨(dú)立性這一假設(shè) (Fiat &Shamir, 1986)。Canetti、Goldreich 和 Halevi 在 2003 年的研究表明,雖然這種假設(shè)在理論模型中成立,但在實(shí)際應(yīng)用中可能遇到挑戰(zhàn),因此在使用時(shí)有失敗的風(fēng)險(xiǎn) (Canetti, Goldreich & Halevi, 2003)。Micali 后來(lái)對(duì)此方法進(jìn)行改進(jìn),將多輪交互壓縮為單輪,進(jìn)一步簡(jiǎn)化了交互流程 (Micali, 1994)。


4. Jens Groth 及其研究


Jens Groth 的后續(xù)研究極大推動(dòng)了零知識(shí)證明在密碼學(xué)和區(qū)塊鏈技術(shù)中的應(yīng)用。2005 年,他、Ostrovsky 和 Sahai 三人一起共同提出了首個(gè)適用于任何 NP 語(yǔ)言的完美非交互零知識(shí)證明系統(tǒng),即使面對(duì)動(dòng)態(tài) / 自適應(yīng)對(duì)手也能保證通用組合安全(UC)。此外,他們利用數(shù)論復(fù)雜性假設(shè),設(shè)計(jì)了一種簡(jiǎn)潔高效的非交互零知識(shí)證明系統(tǒng),顯著減少了 CRS 和證明的體積 (Groth& Sahai, 2005)。


2007 年,Groth、 Cramer 及 Damg?rd 開(kāi)始將這些技術(shù)商業(yè)化,通過(guò)實(shí)驗(yàn)驗(yàn)證,他們的公鑰加密和簽名方案在效率和安全性方面均有顯著提升,盡管這些方案基于雙線性群的假設(shè) (Groth & Sahai, 2007)。2011 年,Groth 進(jìn)一步探索如何將全同態(tài)加密與非交互零知識(shí)證明結(jié)合,提出了一種減少通信開(kāi)銷的方案,使得 NIZK 的體積與證明的見(jiàn)證大小保持一致(Groth, 2011)。在隨后的幾年里,他與其他研究人員對(duì)基于配對(duì)的技術(shù)進(jìn)行了深入研究,為大規(guī)模聲明提供了緊湊而高效的非交互式證明,盡管這些證明仍然沒(méi)有脫離雙線性群框架 (Bayer & Groth, 2012; Groth, Kohlweiss & Pintore, 2016; Bootle, Cerulli, Chaidos, Groth & Petit, 2015; Groth, Ostrovsky & Sahai, 2012; Groth & Maller, 2017)。


5. 其他研究


在特定應(yīng)用場(chǎng)景中,特定驗(yàn)證者的非交互式零知識(shí)證明表現(xiàn)出了其獨(dú)特的實(shí)用價(jià)值。例如,Cramer 和 Shoup 利用基于通用哈希函數(shù)的方法開(kāi)發(fā)的公鑰加密方案,在 1998 年和 2002 年有效地抵御了選擇性密文攻擊。此外,在密鑰注冊(cè)模型中,成功開(kāi)發(fā)了一種新的非交互式零知識(shí)證明方法,適用于解決所有 NP 類問(wèn)題,關(guān)鍵在于參與者需要注冊(cè)他們自己的密鑰以進(jìn)行后續(xù)驗(yàn)證(Cramer& Shou, 1998, 2002)。


此外,Damg?rd、Fazio 和 Nicolosi 在 2006 年提出了改進(jìn)已有 Fiat-Shamir 變換的新方法,允許在無(wú)需直接交互的情況下進(jìn)行非交互式零知識(shí)證明。在他們的方法中,驗(yàn)證者首先需要注冊(cè)一個(gè)公鑰,準(zhǔn)備后續(xù)加密操作。證明者使用加法同態(tài)加密技術(shù)在不知情的情況下對(duì)數(shù)據(jù)進(jìn)行運(yùn)算,生成包含答案的加密信息,作為對(duì)挑戰(zhàn)的響應(yīng)。這個(gè)方法的安全性基于「復(fù)雜性杠桿假設(shè)」,認(rèn)為對(duì)于具備超常計(jì)算資源的對(duì)手,某些被認(rèn)為難解的計(jì)算問(wèn)題可能被解決 (Damg?rd, Fazio &Nicolosi, 2006)。


Ventre 和 Visconti 在 2009 年提出的「弱可歸責(zé)可靠性」概念是對(duì)這一假設(shè)的替代,要求對(duì)手在提出虛假證明時(shí),不僅需意識(shí)到其虛假性,還必須清楚自己如何成功制造這一偽證。這一要求顯著增加了欺騙的難度,因?yàn)閷?duì)手必須明確自己的欺騙手段。在實(shí)際操作中,使用此概念的對(duì)手需要提供特定證明,其中包含針對(duì)指定驗(yàn)證者的密文信息,無(wú)該驗(yàn)證者私鑰難以完成證明,從而在對(duì)手試圖偽造證明時(shí),通過(guò)檢測(cè)暴露其行為 (Ventre andVisconti, 2009)。


Unruh 變換是 2015 年提出的一種 Fiat-Shamir 轉(zhuǎn)換的替代方案。Fiat-Shamir 方法通常在面對(duì)量子計(jì)算時(shí)并不安全,并且對(duì)于某些協(xié)議可能產(chǎn)生不安全的方案(Unruh, 2015)。相比之下,Unruh 變換在隨機(jī)預(yù)言機(jī)模型(ROM)中,為任何交互式協(xié)議提供了對(duì)抗量子對(duì)手的可證明安全的非交互式零知識(shí)證明(NIZK)。與 Fiat-Shamir 方法相似,Unruh 變換無(wú)需額外的設(shè)置步驟(Ambainis, Rosmanis & Unruh, 2014)。


此外,Kalai 等人提出了一種基于私有信息檢索技術(shù)的任意決策問(wèn)題論證系統(tǒng)。該方法采用多證明者交互式證明系統(tǒng)(MIP)模型,并通過(guò) Aiello 等人的方法,將 MIP 轉(zhuǎn)換為一個(gè)論證系統(tǒng) 。這一構(gòu)造在標(biāo)準(zhǔn)模型中運(yùn)行,不需要依賴隨機(jī)預(yù)言機(jī)假設(shè)。這種方法被應(yīng)用于一些基于「普通人證明(Proofs-for-Muggles)」的零知識(shí)論證中 (Kalai, Raz& Rothblum, 2014)。


在這些技術(shù)基礎(chǔ)上,非交互式零知識(shí)證明(NIZK)已被廣泛應(yīng)用于各種需要高度安全和隱私保護(hù)的領(lǐng)域,如金融交易、電子投票和區(qū)塊鏈技術(shù)等。通過(guò)減少交互次數(shù)和優(yōu)化證明生成與驗(yàn)證過(guò)程,NIZK 不僅提高了系統(tǒng)的效率,還增強(qiáng)了安全性和隱私保護(hù)能力。在未來(lái),隨著這些技術(shù)的進(jìn)一步發(fā)展和完善,我們可以預(yù)期 NIZK 將在更多領(lǐng)域中發(fā)揮重要作用,為實(shí)現(xiàn)更加安全和高效的信息處理和傳輸提供堅(jiān)實(shí)的技術(shù)基礎(chǔ)(Partala, Nguyen & Pirttikangas, 2020)。


三、基于電路的零知識(shí)證明


1. 背景


在密碼學(xué)領(lǐng)域,尤其是在處理需要高度并行化和特定類型的計(jì)算任務(wù)(如大規(guī)模矩陣運(yùn)算)時(shí),傳統(tǒng)的圖靈機(jī)模型展現(xiàn)出一定的局限性。圖靈機(jī)模型需通過(guò)復(fù)雜的內(nèi)存管理機(jī)制來(lái)模擬無(wú)限長(zhǎng)的紙帶,并且不適合直接表達(dá)并行計(jì)算和流水線操作。相比之下,電路模型以其獨(dú)特的計(jì)算結(jié)構(gòu)優(yōu)勢(shì),更適合于某些特定的密碼學(xué)處理任務(wù) ( Chaidos, 2017)。本文將詳細(xì)探討基于電路的零知識(shí)證明系統(tǒng)(Zero-KnowledgeProof Systems Based on Circuit Models),這類系統(tǒng)特別強(qiáng)調(diào)使用電路(通常是算術(shù)電路或布爾電路)來(lái)表達(dá)和驗(yàn)證計(jì)算過(guò)程。


2. 電路模型的基本概念與特點(diǎn)


在基于電路的計(jì)算模型中,電路被定義為一種特殊的計(jì)算模型,它能將任何計(jì)算過(guò)程轉(zhuǎn)換為一系列的門和連線,這些門執(zhí)行特定的邏輯或算術(shù)操作。具體而言,電路模型主要分為兩大類:


算術(shù)電路:主要由加法和乘法門組成,用于處理有限域上的元素。算術(shù)電路適用于執(zhí)行復(fù)雜的數(shù)值運(yùn)算,廣泛應(yīng)用于加密算法和數(shù)值分析中。


邏輯電路:由與門、或門、非門等基本邏輯門構(gòu)成,用于處理布爾運(yùn)算。邏輯電路適合于執(zhí)行簡(jiǎn)單的判斷邏輯和二進(jìn)制計(jì)算,常用于實(shí)現(xiàn)各類控制系統(tǒng)和簡(jiǎn)單的數(shù)據(jù)處理任務(wù) ( Chaidos, 2017)。


3. 零知識(shí)證明中的電路設(shè)計(jì)與應(yīng)用


在零知識(shí)證明系統(tǒng)中,電路設(shè)計(jì)的過(guò)程涉及將待證明的問(wèn)題表達(dá)為一個(gè)電路,這一過(guò)程需要設(shè)計(jì) zk 電路需要大量的「逆向思維」:「如果一個(gè)計(jì)算的聲稱輸出是真實(shí)的,則輸出必須滿足一定的要求。如果這些要求難以僅用加法或乘法建模,我們要求證明者進(jìn)行額外工作,以便我們更容易地模型化這些要求。」設(shè)計(jì)過(guò)程通常遵循以下步驟 ( Chaidos, 2017):


問(wèn)題表示:首先將待證明的問(wèn)題如密碼學(xué)哈希函數(shù)的計(jì)算過(guò)程,轉(zhuǎn)換為電路的形式。這包括將計(jì)算步驟分解為電路中的基本單元,如門和連線。


電路優(yōu)化:通過(guò)技術(shù)手段如門合并和常數(shù)折疊,優(yōu)化電路設(shè)計(jì),減少所需的門數(shù)量和計(jì)算步驟,從而提高系統(tǒng)的運(yùn)行效率和響應(yīng)速度。


轉(zhuǎn)換為多項(xiàng)式表示:為適配零知識(shí)證明技術(shù),將優(yōu)化后的電路進(jìn)一步轉(zhuǎn)換為多項(xiàng)式形式。每個(gè)電路元件和連接都對(duì)應(yīng)于特定的多項(xiàng)式約束。


生成公共參考字符串(CRS):在系統(tǒng)初始化階段,生成包括證明密鑰和驗(yàn)證密鑰在內(nèi)的公共參考字符串,以供后續(xù)的證明生成和驗(yàn)證過(guò)程使用。


證明生成與驗(yàn)證:證明者根據(jù)其私有輸入和 CRS,在電路上執(zhí)行計(jì)算,生成零知識(shí)證明。驗(yàn)證者則可以根據(jù)公開(kāi)的電路描述和 CRS,驗(yàn)證證明的正確性,而無(wú)需了解證明者的私有信息 ( Chaidos, 2017)。


零知識(shí)證明電路設(shè)計(jì)涉及將特定的計(jì)算過(guò)程轉(zhuǎn)化為電路表示,并通過(guò)構(gòu)建多項(xiàng)式約束來(lái)確保計(jì)算結(jié)果的準(zhǔn)確性,同時(shí)避免泄露任何額外的個(gè)人信息。在電路設(shè)計(jì)中,關(guān)鍵任務(wù)是優(yōu)化電路的結(jié)構(gòu)并生成有效的多項(xiàng)式表示,這是為了提升證明生成與驗(yàn)證的效率。通過(guò)這些步驟實(shí)施,零知識(shí)證明技術(shù)能夠在不泄露額外信息的前提下,驗(yàn)證計(jì)算的正確性,確保了隱私保護(hù)與數(shù)據(jù)安全性的雙重需求得到滿足 ( Chaidos, 2017)。


4. 潛在的缺陷和挑戰(zhàn)


弊端包括:


1.電路復(fù)雜性和規(guī)模:復(fù)雜計(jì)算需要龐大的電路,導(dǎo)致證明生成和驗(yàn)證的計(jì)算成本顯著增加,尤其是在處理大規(guī)模數(shù)據(jù)時(shí);


2.優(yōu)化難度:盡管技術(shù)手段(如門合并、常數(shù)折疊等)可以優(yōu)化電路,但設(shè)計(jì)和優(yōu)化高效電路仍然需要深厚的專業(yè)知識(shí);


3.特定計(jì)算任務(wù)的適應(yīng)性:不同計(jì)算任務(wù)需要不同的電路設(shè)計(jì),為每個(gè)具體任務(wù)設(shè)計(jì)高效電路可能耗時(shí)且難以推廣;


4.加密算法實(shí)現(xiàn)難度:實(shí)現(xiàn)復(fù)雜的密碼學(xué)算法(如哈希函數(shù)或公鑰加密)可能需要大量的邏輯門,使電路設(shè)計(jì)和實(shí)現(xiàn)變得困難;


5.資源消耗:大規(guī)模電路需要大量硬件資源,可能在功耗、熱量和物理空間等方面遇到實(shí)際硬件實(shí)現(xiàn)的瓶頸(Goldreich, 2004 ;Chaidos, 2017 ;Partala, Nguyen & Pirttikangas, 2020 ;Sun 等, 2021)。


解決方案和改進(jìn)方向:


1.電路壓縮技術(shù):通過(guò)研究和應(yīng)用高效的電路壓縮技術(shù),減少所需邏輯門數(shù)量和計(jì)算資源;


2.模塊化設(shè)計(jì):通過(guò)模塊化設(shè)計(jì)電路,提高電路設(shè)計(jì)的復(fù)用性和可擴(kuò)展性,減少為不同任務(wù)重新設(shè)計(jì)電路的工作量;


3.硬件加速:利用專用硬件(如 FPGA 或 ASIC)加速電路計(jì)算,提高零知識(shí)證明的整體性能(Goldreich, 2004 ;Chaidos, 2017 ;Partala, Nguyen & Pirttikangas, 2020 ;Sun 等,2021)。


四、零知識(shí)證明模型


1. 背景


基于電路的零知識(shí)證明通用性較差,需要為特定問(wèn)題開(kāi)發(fā)新的模型和算法,現(xiàn)有多種高級(jí)語(yǔ)言編譯器和低級(jí)電路組合工具去進(jìn)行電路生成和設(shè)計(jì)算法,相關(guān)計(jì)算的轉(zhuǎn)換可以通過(guò)手動(dòng)電路構(gòu)建工具或自動(dòng)編譯器完成。手動(dòng)轉(zhuǎn)換通常能產(chǎn)生更優(yōu)化的電路,而自動(dòng)轉(zhuǎn)換對(duì)開(kāi)發(fā)者更方便。性能關(guān)鍵應(yīng)用通常需要手動(dòng)轉(zhuǎn)換工具(Chaidos, 2017 ;Partala, Nguyen & Pirttikangas, 2020 ;Sun 等, 2021)。


本文將討論其中最著名的幾種。總的來(lái)說(shuō),這些模型都是 zkSNARKs 技術(shù)的擴(kuò)展或變體,每個(gè)都試圖在特定的應(yīng)用需求(如證明大小、計(jì)算復(fù)雜性、設(shè)置需求等)中提供優(yōu)化。


每種協(xié)議都有其特定的應(yīng)用、優(yōu)勢(shì)和局限性,特別是在設(shè)置要求、證明大小、驗(yàn)證速度和計(jì)算開(kāi)銷方面。它們?cè)诟鱾€(gè)領(lǐng)域得到應(yīng)用,從加密貨幣隱私和安全投票系統(tǒng)到以零知識(shí)方式驗(yàn)證的一般計(jì)算等(?apko, Vukmirovi? & Nedi?, 2019)。


2. 常見(jiàn)算法模型


1. zkSNARK 模型: 2011 年,由密碼學(xué)者 Bitansky 等人提出,作為「零知識(shí)簡(jiǎn)潔非交互式知識(shí)論證」(Zero-KnowledgeSuccinct Non-Interactive Argument of Knowledge)的縮寫,它是一種改進(jìn)的零知識(shí)證明機(jī)制,如果存在可提取碰撞抗性哈希(ECRH)函數(shù),那么實(shí)現(xiàn)針對(duì) NP 問(wèn)題的 SNARK 是可能的,并展示了 SNARK 在計(jì)算委托、簡(jiǎn)潔非交互式零知識(shí)證明以及簡(jiǎn)潔雙方安全計(jì)算等多種情境中的適用性。這項(xiàng)研究還表明,SNARK 的存在意味著 ECRH 的必要性,確立了這些密碼學(xué)原語(yǔ)之間的基礎(chǔ)性聯(lián)系 (Bitanskyet al., 2011)。


zkSNARK 系統(tǒng)由設(shè)置、證明者和驗(yàn)證者三部分組成。設(shè)置過(guò)程生成證明密鑰(PK)和驗(yàn)證密鑰(VK),使用預(yù)定義的安全參數(shù) l 和 F- 算術(shù)電路 C。該電路的所有輸入和輸出均為域 F 中的元素。PK 用于生成可驗(yàn)證的證明,而 VK 用于驗(yàn)證生成的證明。基于生成的 PK,證明者使用輸入 x ∈ Fn 和證人 W ∈ Fh 生成證明 p,其中 C(x, W) = 0 l。這里,C(x, W) = 0 l 表示電路 C 的輸出為 0 l,x 和 W 是電路 C 的輸入?yún)?shù)。n、h 和 l 分別表示 x、W 和 C 輸出的維度。最后,驗(yàn)證者使用 VK、x 和 p 來(lái)驗(yàn)證 p,根據(jù)驗(yàn)證結(jié)果決定接受或拒絕該證明 (Bitanskyet al., 2011)。


此外,zkSNARK 還具備一些額外特性。首先,驗(yàn)證過(guò)程可以在短時(shí)間內(nèi)完成,并且證明的大小通常只有幾個(gè)字節(jié)。其次,證明者和驗(yàn)證者之間不需要同步通信,任何驗(yàn)證者都可以離線驗(yàn)證證明。最后,證明者算法只能在多項(xiàng)式時(shí)間內(nèi)實(shí)現(xiàn)。從那時(shí)起,已經(jīng)出現(xiàn)了多種改進(jìn)的 zkSNARK 模型,進(jìn)一步優(yōu)化了其性能和應(yīng)用范圍 (Bitanskyet al., 2011)。


2. Ben-Sasson 的模型:Ben-Sasson 等人在 2013 年和 2014 年提出了一種針對(duì)馮·諾依曼 RISC 架構(gòu)程序執(zhí)行的一種新的 zkSNARK 模型。然后,基于所提出的通用電路生成器,Ben-Sasson 等人建立了一個(gè)系統(tǒng),并展示了其在驗(yàn)證程序執(zhí)行中的應(yīng)用。該系統(tǒng)包含兩個(gè)組件:用于驗(yàn)證算術(shù)電路可滿足性的密碼學(xué)證明系統(tǒng),以及將程序執(zhí)行轉(zhuǎn)換為算術(shù)電路的電路生成器。該設(shè)計(jì)在功能和效率上均優(yōu)于之前的工作,尤其是電路生成器的通用性和輸出電路大小的加性依賴。實(shí)驗(yàn)評(píng)估表明,該系統(tǒng)可以處理多達(dá) 10, 000 條指令的程序,并在高安全級(jí)別下生成簡(jiǎn)潔的證明,其驗(yàn)證時(shí)間僅為 5 毫秒。其價(jià)值在于為區(qū)塊鏈和隱私保護(hù)智能合約等實(shí)際應(yīng)用提供了高效、通用且安全的 zk-SNARKs 解決方案 (Ben-Sasson et al., 2013, 2014)。


3. Pinocchio 模型:Parno 等人(2013)提出,是一個(gè)完整的非交互零知識(shí)論證生成套件 (Parno etal., 2013)。它包含一個(gè)高級(jí)編譯器,高級(jí)編譯器為開(kāi)發(fā)者提供了一種將計(jì)算轉(zhuǎn)化為電路的簡(jiǎn)便方法。這些編譯器接受用高級(jí)語(yǔ)言編寫的代碼,因此新舊算法都能輕松轉(zhuǎn)換。然而,為生成合適大小的電路,代碼結(jié)構(gòu)可能會(huì)有一些限制。


Pinocchio 的另一個(gè)特點(diǎn)是使用了一種被稱為二次算術(shù)程序(QuadraticArithmetic Programs,QAPs)的數(shù)學(xué)結(jié)構(gòu),可以高效地將計(jì)算任務(wù)轉(zhuǎn)換為驗(yàn)證任務(wù)。QAPs 能夠?qū)⑷我馑阈g(shù)電路編碼為多項(xiàng)式集合,并且只需要線性時(shí)間和空間復(fù)雜度來(lái)生成這些多項(xiàng)式。Pinocchio 生成的證明大小為 288 字節(jié),不隨計(jì)算任務(wù)的復(fù)雜度和輸入輸出大小變化。這大大減少了數(shù)據(jù)傳輸和存儲(chǔ)的開(kāi)銷。Pinocchio 的驗(yàn)證時(shí)間通常為 10 毫秒,相比之前的工作,驗(yàn)證時(shí)間減少了 5-7 個(gè)數(shù)量級(jí)。對(duì)于某些應(yīng)用,Pinocchio 甚至能夠?qū)崿F(xiàn)比本地執(zhí)行更快的驗(yàn)證速度。減少工作者的證明開(kāi)銷:Pinocchio 還減少了工作者生成證明的開(kāi)銷,相比之前的工作,減少了 19-60 倍 (Parno etal., 2013)。


4. Bulletproofs 模型: 2017 年 BenediktBünz 等人(2018)設(shè)計(jì)了新型非交互式 ZKP 模型。不需要可信設(shè)置,且證明大小隨見(jiàn)證值大小呈對(duì)數(shù)增長(zhǎng)。Bulletproofs 特別適用于在保密交易中的區(qū)間證明,能夠通過(guò)使用最小的群和字段元素?cái)?shù)量證明一個(gè)值在某個(gè)范圍內(nèi)。此外,Bulletproofs 還支持區(qū)間證明的聚合,使得可以通過(guò)一個(gè)簡(jiǎn)潔的多方計(jì)算協(xié)議生成一個(gè)單一的證明,大幅減少了通信和驗(yàn)證時(shí)間。Bulletproofs 的設(shè)計(jì)使其在加密貨幣等分布式和無(wú)需信任的環(huán)境中具有很高的效率和實(shí)用性。Bulletproofs 嚴(yán)格意義上并非傳統(tǒng)的基于電路的協(xié)議,它們的簡(jiǎn)潔性不如 SNARKs,驗(yàn)證 Bulletproof 的時(shí)間比驗(yàn)證 SNARK 證明更長(zhǎng)。但在不需要可信設(shè)置的場(chǎng)景中更高效。


5. Ligero 模型:Ames 等人(2017)提出的一種輕量級(jí)的零知識(shí)論證模型。Ligero 的通信復(fù)雜性與驗(yàn)證電路大小的平方根成正比。此外,Ligero 可以依賴任何抗碰撞的哈希函數(shù)。此外,Ligero 可以是隨機(jī)預(yù)言模型中的一個(gè) zkSNARK 方案。此模型不需要受信任的設(shè)置或公鑰密碼系統(tǒng)。Ligero 可用于非常大的驗(yàn)證電路。同時(shí),它適用于應(yīng)用中的中等大型電路。


3. 基于線性 PCP 和離散對(duì)數(shù)問(wèn)題的方案


Ishai 和 Paskin(2007)提出利用加法同態(tài)公鑰加密減少交互式線性 PCP 的通信復(fù)雜性。隨后 Groth 等人在 2006 年至 2008 年發(fā)表多篇研究提出了基于離散對(duì)數(shù)問(wèn)題和雙線性配對(duì)的 NIZK 方案,實(shí)現(xiàn)了完美完備性、計(jì)算正確性和完美零知識(shí)。該方案將陳述表示為代數(shù)約束滿足問(wèn)題,使用類似 Pedersen 承諾的加密承諾方案實(shí)現(xiàn)次線性證明長(zhǎng)度和非交互性,而無(wú)需 Fiat-Shamir 啟發(fā)式。盡管需要較大的 CRS 和強(qiáng)加密假設(shè)「指數(shù)知識(shí)」,足夠長(zhǎng)的 CRS 可實(shí)現(xiàn)常量證明長(zhǎng)度。驗(yàn)證和證明代價(jià)較高,建議采用「模擬可提取性」安全模型。這個(gè)類型方案基于線性 PCP 和 / 或離散對(duì)數(shù)問(wèn)題,但均不具備抗量子安全性(Groth, 2006, 2006, 2008; Groth & Sahai, 2007)。


6. Groth 16 模型:是一種高效的非交互式零知識(shí)證明系統(tǒng),由 Jens Groth 在 2016 年提出。該協(xié)議基于橢圓曲線配對(duì)和二次算術(shù)程序(QAP),旨在提供簡(jiǎn)潔、快速和安全的零知識(shí)證明 。


7. Sonic 模型:M. Maller 等人(2019)提出,基于 Groth 的可更新 CRS 模型,使用多項(xiàng)式承諾方案、配對(duì)和算術(shù)電路。需要可信設(shè)置,可通過(guò)安全多方計(jì)算實(shí)現(xiàn)。一旦生成 CRS,支持任意大小電路。


8. PLONK 模型: 2019 年提出的一個(gè)通用的 zk-SNARK,使用排列多項(xiàng)式簡(jiǎn)化算術(shù)電路表示,使證明更簡(jiǎn)單和高效;它具有多功能性,并支持遞歸證明組合(Gabizon, Williamson & Ciobotaru, 2019)。PLONK 模型自稱減少了 Sonic 的證明長(zhǎng)度并提高了證明效率,但尚未通過(guò)同行評(píng)審。


9. Marlin 模型:一種改進(jìn)式的 zk-SNARK 協(xié)議,將代數(shù)證明系統(tǒng)的效率與 Sonic 和 PLONK 的通用和可更新設(shè)置屬性相結(jié)合,提供了證明大小和驗(yàn)證時(shí)間方面的改進(jìn) (Chiesa etal., 2019)。


10. SLONK 模型:Zac 和 Ariel 在 ethresear 一個(gè)文件里介紹的新型協(xié)議,一種 PLONK 的擴(kuò)展,旨在解決特定的計(jì)算效率問(wèn)題并增強(qiáng)原始 PLONK 系統(tǒng)的功能,通常涉及底層加密假設(shè)或?qū)崿F(xiàn)的變化 (Ethereum Research, 2019)。


11. SuperSonic 模型:一種應(yīng)用新穎的多項(xiàng)式承諾方案,將 Sonic 轉(zhuǎn)換為無(wú)需可信設(shè)置的零知識(shí)方案。不具備抗量子安全性 (Bünz, Fisch & Szepieniec, 2019)。


4. 基于普通人證明的方案


「普通人證明」(Proofs-for-Muggles)是由 Goldwasser、Kalai 和 Rothblum 在 2008 年提出的一種新的零知識(shí)證明方法。該方法在原始交互證明模型中為多項(xiàng)式時(shí)間證明者構(gòu)建交互證明,適用于廣泛的問(wèn)題。通過(guò) Kalai 等人的轉(zhuǎn)換,這些證明可以變?yōu)榉墙换ナ搅阒R(shí)證明(Kalai, Raz &Rothblum, 2014)。


12. Hyrax 模型:基于普通人證明,Wahby 等人(2018)首先設(shè)計(jì)了一個(gè)低通信、低成本的零知識(shí)論證方案 Hyrax,對(duì)證明者和驗(yàn)證者來(lái)說(shuō)成本很低。在這個(gè)方案中,這個(gè)論證中沒(méi)有受信任的設(shè)置。如果應(yīng)用于批量語(yǔ)句,則驗(yàn)證時(shí)間與算術(shù)電路大小具有亞線性關(guān)系,且常數(shù)很好。證明者的運(yùn)行時(shí)間與算術(shù)電路大小成線性關(guān)系,常數(shù)也很好。使用 Fiat-Shamir 啟發(fā)式實(shí)現(xiàn)非交互性,基于離散對(duì)數(shù)問(wèn)題,未實(shí)現(xiàn)抗量子安全。


13. Libra 模型:第一個(gè)具有線性證明者時(shí)間、簡(jiǎn)潔證明大小和驗(yàn)證時(shí)間的 ZKP 模型。在 Libra 中,為了減少驗(yàn)證的開(kāi)銷,零知識(shí)機(jī)制通過(guò)一種可以掩蓋證明者響應(yīng)的輕微隨機(jī)多項(xiàng)式的方法來(lái)實(shí)現(xiàn)。此外,Libra 需要一次性受信任的設(shè)置,這只依賴于電路的輸入大小。Libra 具有出色的漸近性能和證明者的卓越效率。其證明大小和驗(yàn)證時(shí)間的性能也非常高效 (Xie etal., 2019)。


就證明者算法的計(jì)算復(fù)雜性而言,Libra 優(yōu)于 Ben-Sasson 的模型、Ligero、Hyrax 和 Aurora。此外,Libra 的證明者算法的計(jì)算復(fù)雜性與電路類型無(wú)關(guān)(Partala, Nguyen & Pirttikangas, 2020)。


14. Spartan 模型:SrinathSetty(2019)提出的旨在提供高效證明而不需要受信任設(shè)置的零知識(shí)證明系統(tǒng);使用 Fiat-Shamir 轉(zhuǎn)換實(shí)現(xiàn)非交互性。它以其輕量級(jí)設(shè)計(jì)和有效處理大電路的能力而聞名。


5. 基于概率可檢驗(yàn)證明(PCP)的零知識(shí)


Kilian(1992)構(gòu)建了第一個(gè)用于 NP 的交互式零知識(shí)論證方案,實(shí)現(xiàn)了多對(duì)數(shù)通信。該方案使用了抗碰撞哈希函數(shù)、交互式證明系統(tǒng)(IP)和概率可檢驗(yàn)證明(PCP)。證明者和驗(yàn)證者(作為隨機(jī)算法)通過(guò)多輪通信,驗(yàn)證者測(cè)試證明者對(duì)陳述的知識(shí)。通常只考慮單邊錯(cuò)誤:證明者總能為真實(shí)陳述辯護(hù),但驗(yàn)證者可能以低概率接受虛假陳述。2000 年,Micali 使用 Fiat-Shamir 轉(zhuǎn)換將方案轉(zhuǎn)化為單消息非交互式方案。以下實(shí)現(xiàn)可被視為采用了這種方法:


15. STARK 模型: 2018 年,ZK-STARKs(Scalable Transparent ARgument of Knowledge) 技術(shù)由 Ben-Sasson 等人在 2018 年提出,旨在解決 zk-SNARKs 處理復(fù)雜證明時(shí)的低效問(wèn)題。同時(shí),解決了在隱私數(shù)據(jù)上驗(yàn)證計(jì)算完整性的問(wèn)題,能夠在不依賴任何受信方的情況下,提供透明且后量子安全的證明。


同年,Ben-Sasson 等人創(chuàng)辦 StarkWareIndustries,并開(kāi)發(fā)了第一個(gè)基于 ZK-STARKs 的可擴(kuò)展性解決方案 StarkEx。根據(jù)以太坊的官方文檔,其可通過(guò) Fiat-Shamir 范式在隨機(jī)預(yù)言機(jī)模型中實(shí)現(xiàn)非交互性。該構(gòu)造具有抗量子安全性,但其安全性依賴于關(guān)于 Reed-Solomon 碼的非標(biāo)準(zhǔn)加密假設(shè)。ZK-STARKs 具有與 ZK-SNARKs 相同的特性,但包括以下優(yōu)點(diǎn):a)       可擴(kuò)展性:驗(yàn)證過(guò)程更快。透明性:驗(yàn)證過(guò)程是公開(kāi)的。較大的證明大小:需要更高的交易手續(xù)費(fèi)(StarkWare Industries, 2018 , 2018)


16. Aurora 模型:Ben-Sasson 等人(2019)提出,是基于 STARK 的簡(jiǎn)潔非交互論證(SNARG)。非交互性基于 Fiat-Shamir 構(gòu)造。它適用于算術(shù)電路的滿足性。Aurora 的論證大小與電路大小成多對(duì)數(shù)關(guān)系。此外,Aurora 具有幾個(gè)吸引人的特點(diǎn)。在 Aurora 中,有一個(gè)透明的設(shè)置。不存在有效的量子計(jì)算攻擊,可以破解 Aurora。此外,快速對(duì)稱加密被用作黑盒。Aurora 優(yōu)化了證明大小。例如,如果安全參數(shù)是 128 位,則 Aurora 的證明大小最多為 250 千字節(jié)。Aurora 和 Ligero 通過(guò)優(yōu)化證明大小和計(jì)算開(kāi)銷,使得它們非常適合在資源有限的設(shè)備上進(jìn)行零知識(shí)證明。這些優(yōu)化不僅提升了效率,還擴(kuò)大了零知識(shí)證明技術(shù)的應(yīng)用范圍,使其能夠在更多實(shí)際場(chǎng)景中得到應(yīng)用。


17. Succinct Aurora 模型:Ben-Sasson 等人(2019)于同一篇論文中提出:Aurora 協(xié)議的擴(kuò)展,提供了更優(yōu)化的證明大小和驗(yàn)證過(guò)程。它保持了 Aurora 的透明設(shè)置和安全功能,同時(shí)增強(qiáng)了效率。


18. Fractal 模型:Chiesa 等人(2020)提出,一種預(yù)處理 SNARK,使用遞歸組合提高效率和可擴(kuò)展性。它利用對(duì)數(shù)證明大小和驗(yàn)證時(shí)間,特別適用于復(fù)雜計(jì)算。


6. 基于 CPC(通用證明構(gòu)造)的設(shè)置階段進(jìn)行分類


第一代(G 1)- 每個(gè)電路需要單獨(dú)的受信任設(shè)置。zkSNARK,Pinocchio 和 Groth 16


第二代(G 2)- 最初為所有電路設(shè)置一次。PlonK,Sonic,Marlin,slonk 和 Libra


第三代(G 3)- 不需要受信任設(shè)置的證明系統(tǒng)。Bulletproofs,STARKs,Spartan,F(xiàn)ractal,Supersonic,Ligero,Aurora 和 SuccinctAurora(?apko, Vukmirovi? & Nedi?, 2019 ;Partala, Nguyen & Pirttikangas, 2020)。


五、零知識(shí)虛擬機(jī)的概述和發(fā)展


1. 背景


前面介紹的部分更多的是零知識(shí)證明 ZKP 在密碼學(xué)中的發(fā)展,接下來(lái)我們簡(jiǎn)單介紹一下它在計(jì)算機(jī)領(lǐng)域的發(fā)展。


2019 年,Andreev 等人在「ZkVM:Fast, Private, Flexible Blockchain Contracts」大會(huì)上首次提出 ZK-VM 的概念,作為零知識(shí)證明系統(tǒng)的一種實(shí)現(xiàn)方式。ZK-VM 的目標(biāo)是通過(guò)運(yùn)行虛擬機(jī)程序來(lái)生成零知識(shí)證明,驗(yàn)證程序執(zhí)行的正確性而不泄露輸入數(shù)據(jù)。


VM,(VirtualMachine,虛擬機(jī))是一種軟件模擬的計(jì)算機(jī)系統(tǒng),能夠執(zhí)行程序,類似于物理計(jì)算機(jī)。VM 通常用于創(chuàng)建獨(dú)立的操作系統(tǒng)環(huán)境,進(jìn)行軟件測(cè)試和開(kāi)發(fā)等。VM 或者 VM 抽象可以在大多數(shù)情況下等同理解為 CPU 抽象,它是指將計(jì)算機(jī)的處理單元(CPU)的復(fù)雜操作和架構(gòu)抽象成一組簡(jiǎn)單的、可操作的指令集架構(gòu)(ISA),用于簡(jiǎn)化計(jì)算機(jī)程序的設(shè)計(jì)和執(zhí)行。在這種抽象中,計(jì)算機(jī)程序可以通過(guò)虛擬機(jī)(VM)來(lái)運(yùn)行,這些虛擬機(jī)模擬真實(shí) CPU 的操作行為(Henderson, 2007)。


零知識(shí)證明(ZKP)通常需要通過(guò) CPU 抽象進(jìn)行執(zhí)行。設(shè)定是證明者在私有輸入上運(yùn)行公共程序,并希望向驗(yàn)證者證明程序正確執(zhí)行并產(chǎn)生了斷言的輸出,而不透露計(jì)算的輸入或中間狀態(tài)。CPU 抽象在這種情況下非常有用,因?yàn)樗试S程序在受控的虛擬環(huán)境中運(yùn)行,同時(shí)生成證明(Arun, Setty& Thaler, 2024)。


示例: 證明者希望證明其擁有一個(gè)哈希值的密碼,而不透露密碼:

密碼 → 哈希函數(shù) → 哈希值

私有 → 公共


一般情況下,證明者應(yīng)該能夠運(yùn)行執(zhí)行哈希操作的代碼,并生成允許任何人驗(yàn)證證明正確性的「證明」,即證明者確實(shí)擁有給定哈希值的有效前像。


生成這些 VM 抽象證明的系統(tǒng)通常稱為「zkVMs」。這個(gè)名稱其實(shí)具有誤導(dǎo)性,因?yàn)?ZKVM 不一定提供零知識(shí)。簡(jiǎn)而言之,ZKVM 是一種專注于零知識(shí)證明的虛擬機(jī),擴(kuò)展了傳統(tǒng) VM 的功能,可以通用化地降低了零知識(shí)電路的開(kāi)發(fā)門檻,能夠即時(shí)為任意應(yīng)用或計(jì)算生成證明 ( Zhang etal., 2023)。


2. 現(xiàn)有的 ZKVM 的分類


按照設(shè)計(jì)目標(biāo),主要分為三類:


1. 主流型 ZKVM


這些 ZKVM 利用現(xiàn)有的標(biāo)準(zhǔn)指令集架構(gòu)(ISA)和編譯器工具鏈,適用于廣泛的應(yīng)用和開(kāi)發(fā)環(huán)境。


· RISCZero(2021):使用 RISC-V 指令集,具有豐富的編譯器生態(tài)系統(tǒng)(B?gli, 2024)。


· PolygonMiden(2021):基于標(biāo)準(zhǔn) ISA,實(shí)現(xiàn)簡(jiǎn)便和高效的開(kāi)發(fā)(Chawla, 2021)。


· zkWASM(2022):zkWASM 實(shí)現(xiàn)了 WebAssembly(WASM)指令集的零知識(shí)證明,WASM 是一種廣泛采用的標(biāo)準(zhǔn)指令集(DelphinusLab, 2022 )。


2. EVM 等效型 ZKVM


· 這些 ZKVM 專門設(shè)計(jì)用于與以太坊虛擬機(jī)(EVM)兼容,能夠直接運(yùn)行以太坊的字節(jié)碼。


zkEVM 項(xiàng)目:多個(gè)項(xiàng)目致力于實(shí)現(xiàn)與 EVM 的字節(jié)碼級(jí)兼容,如 zkSync ( MatterLabs, 2020) 和 Polygon Hermez (Polygon Labs, 2021)。


3. 零知識(shí)優(yōu)化(零知識(shí)友好)型 ZKVM


這些 ZKVM 優(yōu)化了零知識(shí)證明的效率和性能,專為特定應(yīng)用場(chǎng)景設(shè)計(jì)。


· Cairo-VM(2018):簡(jiǎn)單且與 SNARK 證明兼容,其指令集特別設(shè)計(jì)為算術(shù)友好,便于在零知識(shí)電路中實(shí)現(xiàn)基本算術(shù)運(yùn)算,如加法、乘法等 (StarkWare, 2018)。


· Valida(2023):針對(duì)特定應(yīng)用進(jìn)行了優(yōu)化,例如通過(guò)優(yōu)化算法,減少了生成證明所需的計(jì)算資源和時(shí)間;輕量級(jí)設(shè)計(jì)使其適用于各種硬件和軟件環(huán)境 (LitaFoundation, 2023)。


· TinyRAM(2013):不依賴標(biāo)準(zhǔn)工具鏈:由于其簡(jiǎn)化和優(yōu)化的設(shè)計(jì),通常不支持 LLVM 或 GCC 工具鏈,只能用于小規(guī)模定制軟件組件 ( Ben-Sasson et al., 2013)。


當(dāng)前的普遍觀點(diǎn)是,更簡(jiǎn)單的 VM 可以轉(zhuǎn)換為每步門數(shù)更少的電路。這在特別簡(jiǎn)單且顯然對(duì) SNARK 友好的 VM(如 TinyRAM 和 Cairo-VM)設(shè)計(jì)中最為明顯。然而,這需要額外的開(kāi)銷,因?yàn)樵诤?jiǎn)單 VM 上實(shí)現(xiàn)現(xiàn)實(shí)世界 CPU 的原始操作需要許多原始指令(Arun, Setty& Thaler, 2024)。


3. 前端與后端范式


從程序設(shè)計(jì)視角,ZKP 系統(tǒng)一般可以劃分為前端 frontend 和后端 backend 兩個(gè)部分。ZKP 系統(tǒng)的 Frontend 部分的主要使用低級(jí)別語(yǔ)言來(lái)表示高級(jí)別語(yǔ)言,例如可以將一個(gè)一般地計(jì)算問(wèn)題使用較低級(jí)別的電路語(yǔ)言表示,如 R 1 CS 電路約束構(gòu)建計(jì)算等(比如 circom 使用 R 1 CS 描述其前端電路)。ZKP 系統(tǒng)的 Backend 部分即密碼學(xué)證明系統(tǒng),主要將 frontend 構(gòu)建低級(jí)別的語(yǔ)言描述的電路,轉(zhuǎn)換為生成證明和驗(yàn)證正確性等,比如常用的 backend 系統(tǒng)協(xié)議有 Groth 16 和 Plonk 等(Arun, Setty& Thaler, 2024 ;Zhang et al., 2023)。


通常,電路將逐步「執(zhí)行」計(jì)算程序的每一步(借助不受信任的「建議輸入」)。執(zhí)行 CPU 的一步概念上涉及兩個(gè)任務(wù):(1)識(shí)別該步驟應(yīng)執(zhí)行的基本指令,(2)執(zhí)行指令并適當(dāng)?shù)馗?CPU 狀態(tài)。現(xiàn)有前端通過(guò)精心設(shè)計(jì)的門或約束實(shí)現(xiàn)這些任務(wù)。這既耗時(shí)又容易出錯(cuò),也導(dǎo)致電路比實(shí)際需要的大得多(Arun, Setty& Thaler, 2024 ;Zhang et al., 2023)。


4.ZKVM 范式的優(yōu)缺點(diǎn)


優(yōu)點(diǎn):


1.利用現(xiàn)有的 ISA:例如,RISC-V 和 EVM 指令集,可以利用現(xiàn)有的編譯器基礎(chǔ)設(shè)施和工具鏈,無(wú)需從頭構(gòu)建基礎(chǔ)設(shè)施。可以直接調(diào)用現(xiàn)有的編譯器,將高層語(yǔ)言編寫的證人檢查程序轉(zhuǎn)換為 ISA 的匯編代碼,并受益于之前的審核或其他驗(yàn)證工作。


2.單一電路支持多程序:zkVM 允許一個(gè)電路運(yùn)行所有程序,直到達(dá)到某個(gè)時(shí)間限制,而其他方法可能需要為每個(gè)程序重新運(yùn)行前端。


3.重復(fù)結(jié)構(gòu)的電路:前端輸出具有重復(fù)結(jié)構(gòu)的電路,針對(duì)這些電路的后端可以更快地處理(Arun, Setty& Thaler, 2024 ;Zhang et al., 2023)。


缺點(diǎn):


1.通用性帶來(lái)的開(kāi)銷:為了支持所有可能的 CPU 指令序列,zkVM 電路需要為其通用性付出代價(jià),導(dǎo)致電路規(guī)模和證明成本的增加。


2.高成本操作:在 zkVM 中實(shí)現(xiàn)某些重要操作(如加密操作)非常昂貴。例如,ECDSA 簽名驗(yàn)證在真實(shí) CPU 上需要 100 微秒,在 RISC-V 指令上則需數(shù)百萬(wàn)條指令。因此,zkVM 項(xiàng)目包含手工優(yōu)化的電路和查找表,用于計(jì)算特定功能。


3.證明成本高:即使對(duì)于非常簡(jiǎn)單的 ISA,現(xiàn)有 zkVM 的證明者成本仍然很高。例如,Cairo-VM 的證明者每步需要加密提交 51 個(gè)域元素,這意味著執(zhí)行一個(gè)原始指令可能需要在真實(shí) CPU 上執(zhí)行數(shù)百萬(wàn)條指令,限制了其在復(fù)雜應(yīng)用中的適用性(Arun, Setty& Thaler, 2024 ;Zhang et al., 2023)。


六、零知識(shí)以太坊虛擬機(jī)的概述和發(fā)展


1. 背景


ZKEVM(零知識(shí)以太坊虛擬機(jī))和 ZKVM(零知識(shí)虛擬機(jī))都是應(yīng)用零知識(shí)證明(ZKP)技術(shù)的虛擬機(jī)。以太坊虛擬機(jī)(EVM)是以太坊區(qū)塊鏈系統(tǒng)的一部分,負(fù)責(zé)處理智能合約的部署和執(zhí)行。EVM 具有基于堆棧的架構(gòu),是一個(gè)計(jì)算引擎,提供特定指令集的計(jì)算和存儲(chǔ)(如日志操作、執(zhí)行、內(nèi)存和存儲(chǔ)訪問(wèn)、控制流、記錄、調(diào)用等)。EVM 的角色是應(yīng)用智能合約的操作后,更新以太坊的狀態(tài)。ZKEVM 專為以太坊設(shè)計(jì),主要用于驗(yàn)證智能合約執(zhí)行的正確性,同時(shí)保護(hù)交易隱私。ZKEVM 將 EVM 指令集轉(zhuǎn)換到 ZK 系統(tǒng)中執(zhí)行,每條指令都需提供證明,包括狀態(tài)證明和執(zhí)行正確性證明(?apko, Vukmirovi? & Nedi?, 2019)。


ZKEVM 目前比較主流的方案有 STARKWARE,ZkSync,Polygen-Hermez,Scroll 等,下面是對(duì)這個(gè)幾個(gè)項(xiàng)目的簡(jiǎn)介(?apko, Vukmirovi? & Nedi?, 2019):


STARKWARE :Ben-Sasson 等人(2018)創(chuàng)辦,致力于使用 STARK 零知識(shí)證明技術(shù)提升區(qū)塊鏈的隱私和擴(kuò)展性


zkSync:由 AlexGluchowski(2020)等人創(chuàng)立 Matter Labs,,提出基于 zk-rollups 的以太坊 Layer 2 擴(kuò)展解決方案。


Polygon-Hermez:Hermez 原先是獨(dú)立項(xiàng)目,于 2020 年發(fā)布。2021 年 8 月被 Polygon 收購(gòu)后成為 PolygonHermez,專注于高吞吐量的 zk-rollups 解決方案。


Scroll:Zhang 和 Peng(2021)創(chuàng)立,實(shí)現(xiàn)了更高的交易吞吐量和更低的 Gas 費(fèi)用,從而提高了以太坊的整體性能和用戶體驗(yàn)。


一般按照對(duì) EVM 的兼容級(jí)別可以劃分為(?apko, Vukmirovi? & Nedi?, 2019):


1.EVM-EVM-compatibility 智能合約功能級(jí)別兼容,如 STARKWARE, zkSync


2.EVM-equivalence,EVM 指令級(jí)別兼容(等同),如 polygen-Hrmez,scroll


基于零知識(shí)的以太坊系統(tǒng)改進(jìn)解決方案請(qǐng)見(jiàn)圖 1



2. ZKEVM 的工作原理


節(jié)點(diǎn)程序處理:節(jié)點(diǎn)程序處理和驗(yàn)證執(zhí)行日志、區(qū)塊頭、交易、合約字節(jié)碼、默克爾證明等,并將這些數(shù)據(jù)發(fā)送給 zkEVM 處理。


生成 ZK 證明:zkEVM 使用電路生成執(zhí)行結(jié)果的 ZK 證明(狀態(tài)和執(zhí)行正確性證明),這些電路功能主要使用 table 和特制 circuit 來(lái)實(shí)現(xiàn)。


聚合證明:使用聚合電路將大的證明生成更小的證明,如使用遞歸證明。


發(fā)送到 L1 合約:聚合證明以交易形式發(fā)送給 L1 合約執(zhí)行(?apko, Vukmirovi? & Nedi?, 2019)。


3. ZKEVM 的實(shí)現(xiàn)流程


獲取數(shù)據(jù):從以太坊區(qū)塊鏈系統(tǒng)獲取數(shù)據(jù),包括交易、區(qū)塊頭、合約等。


處理數(shù)據(jù):處理和驗(yàn)證執(zhí)行日志、區(qū)塊頭、交易、合約字節(jié)碼、默克爾證明等。


生成證明:使用電路生成 ZK 證明,確保每條指令的狀態(tài)更新和執(zhí)行正確性。


遞歸證明:將生成的大證明壓縮為更小的聚合證明。


提交證明:將聚合證明提交給 L1 合約,以完成交易驗(yàn)證(?apko, Vukmirovi? & Nedi?, 2019)。


4. ZKEVM 的特點(diǎn)


提升交易處理能力:通過(guò) L2 上的 ZKEVM 執(zhí)行交易,減少 L1 的負(fù)載。


隱私保護(hù):在驗(yàn)證智能合約執(zhí)行的同時(shí)保護(hù)交易隱私。


高效驗(yàn)證:使用零知識(shí)證明技術(shù),實(shí)現(xiàn)高效的狀態(tài)和執(zhí)行正確性驗(yàn)證(?apko, Vukmirovi? & Nedi?, 2019)。


七、零知識(shí)二層網(wǎng)絡(luò)方案概述與發(fā)展


1. 背景


以太坊區(qū)塊鏈?zhǔn)钱?dāng)前最廣泛采用的區(qū)塊鏈生態(tài)系統(tǒng)之一。然而,以太坊面臨嚴(yán)重的擴(kuò)展性問(wèn)題,導(dǎo)致使用成本高昂。零知識(shí)二層網(wǎng)絡(luò)方案(ZK Rollup)基于零知識(shí)證明(ZKP),是一種針對(duì)以太坊擴(kuò)容的二層網(wǎng)絡(luò)(Layer 2)解決方案,克服了 OptimisticRollups 交易最終確認(rèn)時(shí)間過(guò)長(zhǎng)的缺陷 ( Ganguly, 2023)。


2.ZK Rollup 的工作機(jī)制


ZK Rollup 允許在一筆交易內(nèi)實(shí)現(xiàn)可擴(kuò)展性。L1 上的智能合約負(fù)責(zé)處理并驗(yàn)證所有轉(zhuǎn)賬,理想情況下只生成一筆交易。這是通過(guò)在鏈下執(zhí)行交易來(lái)減少以太坊上的計(jì)算資源使用,并將最終的簽名交易重新放回鏈上進(jìn)行。這一步驟被稱為有效性證明(ValidityProof)。在某些情況下,可能無(wú)法在單一證明內(nèi)完成驗(yàn)證,需要額外的交易將 rollup 上的數(shù)據(jù)發(fā)布到以太坊主鏈上,以確保數(shù)據(jù)的可用性 ( Ganguly, 2023)。


在空間方面,使用 ZK Rollup 由于不需要像普通智能合約那樣存儲(chǔ)數(shù)據(jù),因此提高了效率。每筆交易僅需要驗(yàn)證證明,這進(jìn)一步確認(rèn)了數(shù)據(jù)的最小化,使得它們更便宜和更快 ( Ganguly, 2023)。


盡管 ZK Rollup 名稱中包含「ZK」(零知識(shí))的術(shù)語(yǔ),但它們主要利用零知識(shí)證明的簡(jiǎn)潔性來(lái)提高區(qū)塊鏈交易的處理效率,而不是主要關(guān)注隱私保護(hù) ( Ganguly, 2023)。


3. ZKRollup 的缺點(diǎn)與優(yōu)化


ZK Rollup(零知識(shí)匯總)作為以太坊擴(kuò)展性的 Layer 2 解決方案,雖然在提高交易處理效率方面表現(xiàn)優(yōu)異,但其主要問(wèn)題在于計(jì)算成本非常高。然而,通過(guò)一些優(yōu)化方案,可以顯著提高 ZK Rollup 的性能和可行性 ((?apko, Vukmirovi? & Nedi?, 2019)。


1. 優(yōu)化密碼算法的計(jì)算


優(yōu)化密碼算法的計(jì)算過(guò)程可以提高 ZK Rollup 的效率,減少計(jì)算時(shí)間和資源消耗。例如,Plonky 2 由 PolygonZero(前身為 MIR)提出,是一種去中心化的 ZK Rollup 解決方案。Plonky 2 是一種遞歸 SNARK,比其他以太坊兼容替代品快 100 倍,結(jié)合了 STARKs 和 SNARKs 的最佳特性:


Plonk 和 FRI:提供快速證明且無(wú)需信任設(shè)置。


支持遞歸:通過(guò)遞歸證明提高效率。


低驗(yàn)證成本:通過(guò) 64 位遞歸 FRI 與 Plonk 結(jié)合,實(shí)現(xiàn)高效證明。


2. 混合 Optimistic 和 ZK Rollup


例如,PolygonNightfall 是一種混合 Rollup,結(jié)合了 Optimistic 和 ZK Rollup 的特點(diǎn),旨在增加交易隱私并減少轉(zhuǎn)賬費(fèi)用(最多可減少 86% )。


3. 開(kāi)發(fā)專用 ZK EVM


專用 ZK EVM 是為提高 ZK Rollup 算法而設(shè)計(jì)的,可以優(yōu)化零知識(shí)證明過(guò)程。以下是幾種具體方案:


AppliedZKP:由以太坊基金會(huì)資助的開(kāi)源項(xiàng)目,實(shí)現(xiàn)了以太坊 EVM 原生操作碼的 ZK,使用了 halo 2、KZG 和 Barreto-Naehrig(BN-254)橢圓曲線配對(duì)等密碼算法。


zkSync:由 Matter Labs 開(kāi)發(fā)的 zkEVM,是一個(gè)自定義 EVM,實(shí)現(xiàn)了將合約代碼編譯成 YUL(Solidity 編譯器的中間語(yǔ)言),然后再編譯成支持的自定義字節(jié)碼,使用 Plonk 的擴(kuò)展版 ultraPlonk。


Polygon Hermez:自定義 EVM 兼容的去中心化 Rollup,將合約代碼編譯成支持的微指令集,使用 Plonk、KZG 和 Groth 16 證明系統(tǒng)。


Sin 7 Y zkEVM:實(shí)現(xiàn)了 EVM 原生操作碼的 ZK,并優(yōu)化了專用操作碼,使用 halo 2、KZG 和 RecursivePlonk。


Polygon Miden:基于 STARK 的通用零知識(shí)虛擬機(jī)。


4. 硬件優(yōu)化


硬件優(yōu)化可以顯著提升 ZK Rollup 的性能。以下是幾種硬件優(yōu)化方案:


DIZK(DIstributedZero Knowledge):通過(guò)在計(jì)算集群上分布執(zhí)行 zkSNARK 證明來(lái)進(jìn)行優(yōu)化。硬件架構(gòu)包括兩個(gè)子系統(tǒng),一個(gè)用于多項(xiàng)式計(jì)算(POLY),具有大尺寸數(shù)論變換(NTTs),另一個(gè)用于執(zhí)行橢圓曲線(ECs)上的多標(biāo)量乘法(MSM)。PipeMSM 是用于在 FPGA 上實(shí)現(xiàn)的流水線設(shè)計(jì) MSM 算法。


基于 FPGA 的 ZKP 硬件加速器設(shè)計(jì):包括多個(gè) FFT(快速傅里葉變換)單元和 FFT 操作的分解,多個(gè) MAC(乘加電路)單元,以及多個(gè) ECP(橢圓曲線處理)單元,以減少計(jì)算開(kāi)銷。基于 FPGA 的 zk-SNARK 設(shè)計(jì)減少了證明時(shí)間約 10 倍。


Bulletproof 協(xié)議的硬件加速:通過(guò) CPU-GPU 協(xié)作框架和 GPU 上的并行 Bulletproofs 實(shí)現(xiàn)(?apko, Vukmirovi? & Nedi?, 2019)。


八、零知識(shí)證明的未來(lái)發(fā)展方向


1. 加速計(jì)算環(huán)境的發(fā)展


零知識(shí)證明協(xié)議(如 ZKSNARKs 和 ZKSTARKs)在執(zhí)行過(guò)程中通常涉及大量復(fù)雜的數(shù)學(xué)運(yùn)算,這些運(yùn)算需要在極短的時(shí)間內(nèi)完成,對(duì)計(jì)算資源(如 CPU 和 GPU)提出了極高的要求,導(dǎo)致計(jì)算復(fù)雜性高、計(jì)算時(shí)間長(zhǎng)。此外,生成和驗(yàn)證零知識(shí)證明需要頻繁訪問(wèn)大容量數(shù)據(jù),對(duì)內(nèi)存帶寬提出了高要求。現(xiàn)代計(jì)算機(jī)系統(tǒng)的內(nèi)存帶寬有限,無(wú)法高效支持如此高頻的數(shù)據(jù)訪問(wèn)需求,導(dǎo)致性能瓶頸。最終,高計(jì)算負(fù)載導(dǎo)致高能耗,尤其是在區(qū)塊鏈和去中心化應(yīng)用中,需要持續(xù)進(jìn)行大量證明計(jì)算時(shí)。因此,盡管軟件優(yōu)化方案可以部分緩解這些問(wèn)題,但由于通用計(jì)算硬件的物理限制,難以達(dá)到硬件加速的高效率和低能耗水平。混合解決方案在保持靈活性的同時(shí),可以實(shí)現(xiàn)較高的性能提升 (Zhang etal., 2021)。


ZK-ASIC(專用集成電路)


2020 年期間多個(gè)項(xiàng)目出現(xiàn),旨在通過(guò)硬件如 GPU 或者 FPGA 加速優(yōu)化零知識(shí)證明(ZKP)的生成和驗(yàn)證過(guò)程,提高效率  (Filecoin, 2024; Coda, 2024;Gpu groth 16 prover, 2024; Roy et al., 2019; Devlin, 2024 ;Javeed& Wang, 2017)。


2021 年:Zhang 等人提出了一種基于流水線架構(gòu)的零知識(shí)證明加速方案,利用 Pippenger 算法優(yōu)化多標(biāo)量乘法(MSM),通過(guò)「解卷」快速傅里葉變換(FFT)減少數(shù)據(jù)傳輸延遲 (Zhang etal., 2021)。


ZKCoprocessor(協(xié)處理器)


Axiom(2022)提出 ZKCoprocessor 概念,即 ZK 協(xié)處理器。協(xié)處理器是指增強(qiáng) CPU 并提供浮點(diǎn)運(yùn)算、加密運(yùn)算或圖形處理等專門操作的單獨(dú)芯片。盡管隨著 CPU 變得越來(lái)越強(qiáng)大,該術(shù)語(yǔ)已不再常用,但 GPU 仍可視為 CPU 的一種協(xié)處理器,尤其是在機(jī)器學(xué)習(xí)背景下。


ZK 協(xié)處理器這一術(shù)語(yǔ)將物理協(xié)處理器芯片的類比擴(kuò)展到區(qū)塊鏈計(jì)算,允許智能合約開(kāi)發(fā)人員無(wú)狀態(tài)地證明現(xiàn)有鏈上數(shù)據(jù)的鏈下計(jì)算。智能合約開(kāi)發(fā)者面臨的最大瓶頸之一仍然是鏈上計(jì)算的高昂成本。由于每項(xiàng)操作都要計(jì)算 gas,因此復(fù)雜應(yīng)用邏輯的成本很快就會(huì)變得不可行。ZK 協(xié)處理器為鏈上應(yīng)用引入了一種新的設(shè)計(jì)模式,消除了必須在區(qū)塊鏈虛擬機(jī)中完成計(jì)算的限制。這使應(yīng)用程序能夠訪問(wèn)更多數(shù)據(jù)并以比以前更大的規(guī)模運(yùn)行(Axiom, 2022)。


2. ZKML 的提出和發(fā)展


ZKML 的概念


零知識(shí)機(jī)器學(xué)習(xí)(Zero-KnowledgeMachine Learning, ZKML)是將零知識(shí)證明(ZKP)技術(shù)應(yīng)用于機(jī)器學(xué)習(xí)中的一個(gè)新興領(lǐng)域。ZKML 的核心思想是允許在不泄露數(shù)據(jù)或模型細(xì)節(jié)的情況下驗(yàn)證機(jī)器學(xué)習(xí)計(jì)算結(jié)果。這不僅可以保護(hù)數(shù)據(jù)隱私,還能確保計(jì)算結(jié)果的可信性和正確性 ( Zhang etal., 2020 )。


ZKML 的發(fā)展


2020 年,張學(xué)者等人在 2020 年的 CCS 會(huì)議上首次系統(tǒng)地提出了 ZKML 的概念,展示了如何在不泄露數(shù)據(jù)或模型細(xì)節(jié)的情況下進(jìn)行決策樹(shù)預(yù)測(cè)的零知識(shí)證明。這為 ZKML 奠定了理論基礎(chǔ)。


2022 年,Wang 和 Hoang 進(jìn)一步研究并實(shí)現(xiàn)了 ZKML,并提出了一種高效的零知識(shí)機(jī)器學(xué)習(xí)推理管道,展示了如何在現(xiàn)實(shí)應(yīng)用中實(shí)現(xiàn) ZKML。研究表明,盡管 ZKP 技術(shù)復(fù)雜,但通過(guò)合理的優(yōu)化,可以在保證數(shù)據(jù)隱私和計(jì)算正確性的同時(shí),達(dá)到可接受的計(jì)算性能。


3.ZKP 擴(kuò)容技術(shù)相關(guān)發(fā)展


ZKThreads 的概念提出


2021 年,StarkWare 提出了 ZKThreads 的概念,旨在結(jié)合零知識(shí)證明(ZKP)和分片技術(shù),為去中心化應(yīng)用(DApps)提供可擴(kuò)展性和定制性,而不會(huì)產(chǎn)生碎片化問(wèn)題。ZKThreads 通過(guò)在基礎(chǔ)層直接回退,確保每一步的實(shí)時(shí)性,從而提高了安全性和可組合性。


ZKThreads 的主要在單鏈結(jié)構(gòu),rollup 流動(dòng)性問(wèn)題,和 Proto-Danksharding 三個(gè)方面進(jìn)行了優(yōu)化。


單鏈解決方案:在傳統(tǒng)的單鏈架構(gòu)中,所有交易都在一條鏈上進(jìn)行處理,導(dǎo)致系統(tǒng)負(fù)載過(guò)重,擴(kuò)展性差。ZKThreads 通過(guò)將數(shù)據(jù)和計(jì)算任務(wù)分配到多個(gè)分片中,顯著提升了處理效率。


ZK-rollups 解決方案:雖然 ZK-rollups 已經(jīng)顯著提高了交易處理速度和降低了成本,但它們通常是獨(dú)立運(yùn)行的,導(dǎo)致流動(dòng)性碎片化和互操作性問(wèn)題。ZKThreads 提供了一個(gè)標(biāo)準(zhǔn)化的開(kāi)發(fā)環(huán)境,支持不同分片之間的互操作性,解決了流動(dòng)性碎片化的問(wèn)題。


Proto-Danksharding 技術(shù):這是以太坊的一種內(nèi)部改進(jìn)方案,通過(guò)暫存數(shù)據(jù)塊來(lái)降低 zk-rollups 的交易成本。ZKThreads 在此基礎(chǔ)上進(jìn)一步改進(jìn),通過(guò)更高效的分片架構(gòu),減少了對(duì)臨時(shí)數(shù)據(jù)存儲(chǔ)的依賴,提高了系統(tǒng)的整體效率和安全性(StarkWare, 2021)。


ZK Sharding 的概念提出


此后,在 2022 年,NilFoundation 提出了 ZK Sharding 的概念,旨在通過(guò)結(jié)合零知識(shí)證明(ZKP)和分片技術(shù),來(lái)實(shí)現(xiàn)以太坊的擴(kuò)展性和更快的交易速度。這一技術(shù)旨在將以太坊網(wǎng)絡(luò)分成多個(gè)部分,以更便宜和更高效的方式處理交易。該技術(shù)包括 zkSharding,利用零知識(shí)技術(shù)生成證明,確保跨不同分片的交易在提交到主鏈之前是有效的。這種方法不僅提升了交易速度,還減少了鏈上數(shù)據(jù)的碎片化問(wèn)題,確保了經(jīng)濟(jì)安全性和流動(dòng)性。


4. ZKP 互操作性的發(fā)展


ZK State Channels


2021 年,ZK StateChannels 的概念由 Virtual Labs 提出,結(jié)合了零知識(shí)證明(ZKP)和狀態(tài)通道技術(shù),旨在通過(guò)狀態(tài)通道實(shí)現(xiàn)高效的鏈外交易,同時(shí)利用零知識(shí)證明來(lái)確保交易的隱私和安全。


ZK State Channels 替代的原有方案


1. 傳統(tǒng)狀態(tài)通道(StateChannels):


原有方案:傳統(tǒng)狀態(tài)通道允許兩個(gè)用戶通過(guò)鎖定資金在智能合約中進(jìn)行點(diǎn)對(duì)點(diǎn)(P2P)交易。由于資金已被鎖定,用戶之間的簽名交換可以直接進(jìn)行,不涉及任何 gas 費(fèi)用和延遲。然而,這種方法需要預(yù)定義的地址,且通道的開(kāi)閉需要鏈上操作,限制了其靈活性。


替代方案:ZK StateChannels 提供了無(wú)限參與者的支持,允許動(dòng)態(tài)進(jìn)入和退出,不需要預(yù)定義用戶地址。此外,通過(guò)零知識(shí)證明,ZK StateChannels 提供了即時(shí)的跨鏈訪問(wèn)和自驗(yàn)證的證明,解決了傳統(tǒng)狀態(tài)通道的靈活性和擴(kuò)展性問(wèn)題。


2. 多鏈支持:


原有方案:傳統(tǒng)狀態(tài)通道通常僅支持單一鏈上的交易,無(wú)法實(shí)現(xiàn)跨鏈操作,限制了用戶的操作范圍。


替代方案:ZK StateChannels 通過(guò)零知識(shí)證明技術(shù),實(shí)現(xiàn)了跨鏈的即時(shí)交易和資產(chǎn)流動(dòng),無(wú)需中間橋接,極大地提升了多鏈互操作性。


3. 預(yù)定義地址限制:


原有方案:在傳統(tǒng)狀態(tài)通道中,交易參與者的地址必須在通道創(chuàng)建時(shí)預(yù)定義,如果有新的參與者加入或離開(kāi),通道必須關(guān)閉并重新打開(kāi),這增加了操作復(fù)雜性和費(fèi)用。


替代方案:ZK StateChannels 允許動(dòng)態(tài)加入和退出,新的參與者可以隨時(shí)加入現(xiàn)有通道,而不影響當(dāng)前用戶的操作,極大地提高了系統(tǒng)的靈活性和用戶體驗(yàn)。


4.ZK Omnichain InteroperabilityProtocol


2022 年,ZKOmnichain Interoperability Protocol 由 Way Network 提出,旨在實(shí)現(xiàn)基于零知識(shí)證明的跨鏈資產(chǎn)和數(shù)據(jù)互操作性。該協(xié)議通過(guò)使用 zkRelayer、ZK Verifier、IPFS、Sender 和 Receiver 實(shí)現(xiàn)全鏈通信和數(shù)據(jù)傳輸。


Omnichain 項(xiàng)目專注于跨鏈互操作性,旨在提供一個(gè)低延遲、安全的網(wǎng)絡(luò),連接不同的區(qū)塊鏈。它通過(guò)引入標(biāo)準(zhǔn)化的跨鏈交易協(xié)議,使得各區(qū)塊鏈之間的資產(chǎn)和數(shù)據(jù)可以無(wú)縫轉(zhuǎn)移。這種方法不僅提高了交易的效率,還確保了跨鏈操作的安全性。


Way Network 可以看作是 Omnichain 概念的一種具體實(shí)現(xiàn),特別是在使用零知識(shí)證明技術(shù)來(lái)增強(qiáng)隱私性和安全性方面。Way Network 的技術(shù)架構(gòu)使得它能夠在保持去中心化和高效性的同時(shí),實(shí)現(xiàn)鏈間的無(wú)縫互操作。


總結(jié)來(lái)說(shuō),Omnichain 提供了跨鏈互操作性的總體框架,而 Way Network 則通過(guò)零知識(shí)證明技術(shù),為這一框架提供了更強(qiáng)的隱私保護(hù)和安全性。


九、結(jié)論


本文對(duì)零知識(shí)證明(ZKP)技術(shù)及其在區(qū)塊鏈領(lǐng)域的最新發(fā)展和應(yīng)用進(jìn)行了全面的文獻(xiàn)綜述。我們系統(tǒng)地審查了區(qū)塊鏈環(huán)境中的 ZKP,調(diào)查了適用于區(qū)塊鏈和可驗(yàn)證計(jì)算的最先進(jìn)的零知識(shí)論證方案,并探討了它們?cè)谀涿捅C芙灰滓约半[私智能合約中的應(yīng)用。本文列舉了這些經(jīng)過(guò)學(xué)術(shù)同行評(píng)審的方案和方法的優(yōu)缺點(diǎn),提供了這些方案的實(shí)際評(píng)估和比較的參考資料,強(qiáng)調(diào)了開(kāi)發(fā)人員在選擇特定用例的合適方案時(shí)需要具備的技能和知識(shí)。


此外,本文還展望了零知識(shí)證明在硬件加速、區(qū)塊鏈擴(kuò)展性、互操作性和隱私保護(hù)等方面的未來(lái)發(fā)展方向。通過(guò)對(duì)這些最新技術(shù)和發(fā)展趨勢(shì)的詳細(xì)分析,本文為理解和應(yīng)用零知識(shí)證明技術(shù)提供了全面的視角,展示了其在提升區(qū)塊鏈系統(tǒng)效率和安全性方面的巨大潛力。同時(shí),這項(xiàng)研究為后續(xù)關(guān)于 ZK 項(xiàng)目投資的研究奠定了堅(jiān)實(shí)的基礎(chǔ)。


參考文獻(xiàn)



鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請(qǐng)第一時(shí)間聯(lián)系我們修改或刪除,多謝。

主站蜘蛛池模板: 亚洲av无码国产精品色午友在线 | 在线观看免费精品国自产 | 色九九视频 | 香港一级a毛片在线播放 | 99热在线免费观看 | 99视频在线精品 | 国产福利在线小视频 | 国产a∨精品一区二区三区不卡 | 香蕉啪视频在线观看视频久 | 手机在线观看亚洲国产精品 | 国产成人8x视频网站入口 | 你懂得的在线观看免费视频 | 久久只有这里有精品 | 成人亚洲在线观看 | 亚洲 高清 成人 动漫 | 一级片色| 久久久久成人精品免费播放动漫 | 婷婷影院在线综合免费视频 | 国产成人综合亚洲怡春院 | 日本爽快片18禁免费看 | 免费1级做爰片1000部视频 | 欧美日中文字幕 | 亚洲精品成人a | 99国产精品高清一区二区二区 | 无码精品人妻一区二区三区漫画 | 一男一女一级毛片 | 日本三级成人午夜视频网 | 欧美成人鲁丝片在线观看 | 丰满人妻av无码一区二区三区 | 国语对白xxxx中国妞xxxx | 国产精品天天在线午夜更新 | 插我舔内射18免费视频 | 亚洲三级在线 | 欧美精品偷自拍另类在线观看 | 日韩免费高清一级毛片久久 | 久久精品国产99国产 | 人人爽人人爽人人片av免费 | 寝取在线 | 久久无码高潮喷水 | 国产免费看 | 国产精品女上位在线观看 |