本文對零知識證明(ZKP)技術及其在區塊鏈領域的最新發展和應用進行了全面的文獻綜述。

作者:renking,ArkStream Capital

封面:Photo by Komarov Egor  on Unsplash

摘要

零知識證明(ZKP)在區塊鏈領域被廣泛視為是自分散式賬本技術以來最重要的科技創新之一,同時也是風險投資的重點領域。 本文對零知識證明技術近四十年的歷史文獻和最新研究都做了系統的綜述。

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

最後,本文展望了 ZK Coprocessor、ZKML、ZKThreads、ZK Sharding 和 ZK State Channels 等新興概念,並探討了它們在區塊鏈擴展性、互操作性和隱私保護方面的潛力。

通過分析這些最新技術和發展趨勢,本文為理解和應用零知識證明技術提供了全面視角,展示了其在提升區塊鏈系統效率和安全性方面的巨大潛力,為未來的投資決策提供了重要參考。

目錄

前言

一、零知識證明基礎知識

1. 概述

2. 零知識證明示例

二、非交互零知識證明

1.  背景

2. NIZK 的提出

3. Fiat-Shamir 變換

4.  Jens Groth 及其研究

5.      其他研究

三、基於電路的零知識證明

1. 背景

2. 電路模型的基本概念與特點

3. 零知識證明中的電路設計與應用

4. 潛在的缺陷和挑戰

四、零知識證明模型

1. 背景

2. 常見演算法模型

3. 基於線性 PCP 和離散對數問題的方案

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

5. 基於概率可檢驗證明(PCP)的零知識

6. 基於 CPC(通用證明構造)的設置階段進行分類

五、零知識虛擬機的概述和發展

1. 背景

2. 現有的 ZKVM 的分類

3. 前端與後端範式

4. ZKVM 范式的優缺點

六、零知識乙太坊虛擬機的概述和發展

1.  背景

2. ZKEVM 的工作原理

3. ZKEVM 的實現流程

4. ZKEVM 的特點

七、零知識二層網路方案概述與發展

1.  背景

2. ZK Rollup 的工作機制

3. ZK Rollup 的缺點與優化

八、零知識證明的未來發展方向

1. 加速計算環境的發展

2. ZKML 的提出和發展

3. ZKP 擴容技術相關發展

4. ZKP 互操作性的發展

九、結論

參考文獻

前言

在如今,互聯網正在進入 Web3 時代的進程中,區塊鏈應用(DApps)的發展迅速,幾乎每天都有新的應用湧現。 近幾年,區塊鏈平臺每天都承載著數百萬用戶的活動,處理著數十億筆交易。 這些交易產生的大量數據通常包括使用者身份、交易金額、帳戶地址和賬戶餘額等敏感個人資訊。 鑒於區塊鏈的開放性和透明性特點,這些存儲的數據對所有人都是開放的,因此引發了多種安全與隱私問題。

目前,有幾種加密技術可以應對這些挑戰, 包括同態加密、環簽名、安全多方計算和零知識證明。 同態加密允許在不解密密文的情況下執行運算,有助於保護賬戶餘額和交易金額的安全,但無法保護賬戶位址的安全。 環簽名提供了一種特殊的數位簽名形式,能夠隱藏簽名者的身份,從而保護帳戶位址的安全,但對賬戶餘額和交易金額的保護則無能為力。 安全多方計算允許在多個參與者之間分配計算任務,而無需任何參與者知曉其他參與者的數據,有效保護了賬戶餘額和交易金額的安全,但同樣不能保護賬戶位址的安全。 此外,同態加密、環簽名和安全多方計算無法在不洩露交易金額、帳戶地址和賬戶餘額的情況下用於驗證區塊鏈環境中證明者是否擁有足夠的交易金額(Sun et al., 2021)。

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

ZKP 這一特性使其在區塊鏈交易和加密貨幣應用中扮演核心角色,特別是在隱私保護和網路擴容方面,使得其不僅成為了學術研究的焦點,被廣泛認為是自分散式賬本技術——特別是比特幣——成功實施以來最重要的技術創新之一。 同時也是行業應用和風險投資的重點賽道(Konstantopoulos,2022)。

由此,諸多基於 ZKP 的網路項目相繼湧現,如 ZkSync、StarkNet、Mina、Filecoin 和 Aleo 等。 隨著這些專案的發展,關於 ZKP 的演算法創新層出不窮,據報導幾乎每周都有新演算法問世(Lavery, 2024;AdaPulse, 2024)。 此外,與 ZKP 技術相關的硬體開發也在迅速進展,包括專為 ZKP 優化的晶片。 例如,Ingonyama、Irreducible 和 Cysic 等專案已經完成了大規模的資金募集,這些發展不僅展示了 ZKP 技術的快速進步,也反映了從通用硬體向專用硬體如 GPU、FPGA 和 ASIC 的轉變(Ingonyama,2023;Burger,2022)。

這些進展表明,零知識證明技術不僅是密碼學領域的一個重要突破,也是實現更廣泛區塊鏈技術應用——尤其是在提高隱私保護和處理能力方面——的關鍵推動力(Zhou et al,2022)。

因此,我們決定系統地整理零知識證明(ZKP)的相關知識,以更好地輔助我們做出未來的投資決策。 為此,我們綜合審閱了關於 ZKP 相關的核心學術論文(依據相關性和引用次數進行排序); 同時,我們也詳細分析了該領域內領先的專案的資料和白皮書(根據其融資規模進行排序)。 這些綜合性的資料搜集和分析為本文的撰寫提供了堅實的基礎。

一、零知識證明基礎知識

1. 概述

1985 年,學者 Goldwasser、Micali 和 Rackoff 在論文《The Knowledge Complexity of Interactive Proof-Systems》中首次提出了零知識證明(Zero-Knowledge Proof,ZKP)和互動式知識證(Interactive Zero-Knowledge,IZK)。 該論文是零知識證明的奠基之作,定義了許多影響後續學術研究的概念。 例如,知識的定義是「不可行計算(unfeasible computation)的輸出」,即知識必須是一個輸出,且是一個不可行計算,意味著它不能是簡單的函數,而需是複雜的函數。 不可行計算通常可以理解為是一個 NP 問題,即可以在多項式時間內驗證其解正確性的問題,多項式時間指的是演算法運行時間可以用輸入大小的多項式函數來表示。 這是計算機科學中衡量演算法效率和可行性的重要標準。 由於 NP 問題的求解過程複雜,因此被認為是不可行計算; 但其驗證過程相對簡單,所以非常適合用於零知識證明驗證(Goldwasser, Micali & Rackoff,1985)。

NP 問題的一個經典例子是旅行商問題,其中要找到訪問一系列城市並返回起點的最短路徑。 雖然找到最短路徑可能很困難,但給定一個路徑,驗證這條路徑是否是最短的相對容易。 因為驗證一個具體路徑的總距離可以在多項式時間內完成。

Goldwasser 等人在其論文中引入了「知識複雜度」(knowledge complexity)這一概念,用以量化在互動式證明系統中,證明者向驗證者洩露的知識量。 他們還提出了互動式證明系統(Interactive Proof Systems,IPS),其中證明者(Prover)和驗證者(Verifier)通過多輪互動來證明某個語句的真實性(Goldwasser, Micali & Rackoff,1985)。

綜上,Goldwasser 等人總結的零知識證明的定義,是一種特殊的互動式證明,其中驗證者在驗證過程中不會獲得除語句真值外的任何額外資訊; 並且提出了三個基本特性包括:

1. 完備性(completeness):如果論證是真實的,誠實的證明者可以說服誠實的驗證者這一事實;

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

3. 零知識性(zero-knowledge):在證明過程完成後,驗證者只獲得 “證明者擁有此知識” 的資訊,而無法獲得任何額外內容(Goldwasser, Micali & Rackoff,1985)。

2. 零知識證明示例

為更好理解零知識證明及其屬性,以下是一個驗證證明者是否擁有某些私密資訊的示例,該示例分為三個階段:設置、挑戰和回應。

第一步:設置(Setup)

在這一步,證明者的目標是創建一個證據,證明他知道某個秘密數位 s,但又不直接顯示 s。 設秘密數位;

選擇兩個大的質數 p 與 q,計算它們的乘積 。 設質數 和 ,計算得到的;

計算,這裡,v 作為證明的一部分被發送給驗證者,但它不足以讓驗證者或任何旁觀者推斷出 s。;

隨機選擇一個整數 r,計算 併發送給驗證者。 這個值 x 用於後續的驗證過程,但同樣不暴露 s。 設隨機整數,計算得到的 。

第二步:挑戰(Challenge)

驗證者隨機選擇一個位 a(可以是 0 或 1),然後發送給證明者。 這個「挑戰」決定了證明者接下來需要採取的步驟。

第三步:回應(Response)

根據驗證者發出的 a 值,證明者進行回應:

如果,證明者發送(這裡 r 是他之前隨機選擇的數)。

如果 ,证明者计算  并发送。设验证者发送的随机位,根据 a  的值,证明者计算 ;

最后,验证者根据收到的 g  来验证  是否等于 。如果等式成立,验证者接受这个证明。当  时,验证者计算验证者计算 ,右侧验证  ;  当   时,验证者计算验证者计算 ,右侧验证 。

这里,我们看到验证者计算得到的  说明证明者成功地通过了验证过程,同时没有泄露他的秘密数字 s。在这里,由于 a 只可以取 0 或 1,仅有两种可能性,证明者依靠运气通过验证的概率(当 a 取 0 时)。但验证者随后再挑战证明者次,证明者不断更换相关数字,提交给验证者,且总能成功地通过验证过程,这样一来证明者依靠运气通过验证的概率 (无限趋近于 0),证明者确实知道某个秘密数字 s 的结论便得到证明。这一例子证明了零知识证明系统的完整性、可靠性和零知识性( Fiat& Shamir,1986)。

二、非交互零知识证明

1. 背景

零知识证明(ZKP)在传统概念中通常是交互式和在线的协议形式;例如,Sigma 协议通常需要三到五轮交互才能完成认证( Fiat& Shamir,1986)。然而,在诸如即时交易或投票等场景中,往往没有机会进行多轮交互,特别是在区块链技术应用中,线下验证功能显得尤为重要(Sun 等,2021)。

2. NIZK 的提出

1988 年,Blum、Feldman 和 Micali 首次提出了非交互式零知识(NIZK)证明的概念,证明了在无需多轮交互的情况下,证明者(Prover)与验证者(Verifier)仍可完成认证过程的可能性 。这一突破使得即时交易、投票以及区块链应用的实现变得可行 (Blum, Feldman & Micali, 1988)。

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

1. 設置

2. 計算

3. 驗證

設置階段使用計算函數,將安全參數轉換為公共知識(證明者和驗證者均可獲取),通常編碼在一個共同參考字元串(CRS)中。 這是計算證明並使用正確的參數和演算法進行驗證的方式。

計算階段採用計算函數、輸入和證明密鑰,輸出計算結果和證明。

在驗證階段,通過驗證金鑰來驗證證明的有效性。

他們所提出的公共參考字串(CRS)模型,即基於所有參與者共用一個字串來實現 NP 問題的非互動式零知識證明。 這種模型的運行依賴於 CRS 的可信生成,所有參與者必須能夠訪問相同的字串。 僅當 CRS 被正確且安全地生成時,依此模型實施的方案才能確保安全性。 對於大量參與者而言,CRS 的生成過程可能既複雜又耗時,因此儘管這類方案通常操作簡便且證明體積較小,其設置過程卻頗具挑戰(Blum, Feldman & Micali, 1988)。

隨後,NIZK 技術經歷了迅猛發展,湧現了多種方法將互動式零知識證明轉化為非互動式證明。 這些方法在系統的構建或底層加密模型的假設上各有不同。

3. Fiat-Shamir 變換

Fiat-Shamir 變換,又叫 Fiat-Shamir Heurisitc(啟發式),或者 Fiat-Shamir Paradigm(范式); 由 Fiat 和 Shamir 在 1986 年提出,是一種能夠將互動式零知識證明轉換為非互動式的方法。 該方法通過引入哈希函數來減少交互次數,並依託安全假設來保障證明的真實性及其難以偽造的特性。 Fiat-Shamir 變換使用公共密碼學哈希函數替代部分隨機性和交互性,其輸出從某種程度上可以視作 CRS。 儘管此協定在隨機預言機模型中被視為安全,但它依賴於哈希函數輸出對不同輸入的均勻隨機性和獨立性這一假設(Fiat & Shamir, 1986)。 Canetti、Goldreich 和 Halevi 在 2003 年的研究表明,雖然這種假設在理論模型中成立,但在實際應用中可能遇到挑戰,因此在使用時有失敗的風險(Canetti, Goldreich & Halevi, 2003)。 Micali 後來對此方法進行改進,將多輪交互壓縮為單輪,進一步簡化了交互流程(Micali, 1994)。

4.  Jens Groth 及其研究

Jens Groth 的後續研究極大推動了零知識證明在密碼學和區塊鏈技術中的應用。 2005 年,他、Ostrovsky 和 Sahai 三人一起共同提出了首個適用於任何 NP 語言的完美非交互零知識證明系統,即使面對動態/自適應對手也能保證通用組合安全(UC)。 此外,他們利用數論複雜性假設,設計了一種簡潔高效的非交互零知識證明系統,顯著減少了 CRS 和證明的體積(Groth & Sahai, 2005)。

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

5. 其他研究

在特定應用場景中,特定驗證者的非互動式零知識證明表現出了其獨特的實用價值。 例如,Cramer 和 Shoup 利用基於通用哈希函數的方法開發的公鑰加密方案,在 1998 年和 2002 年有效地抵禦了選擇性密文攻擊。 此外,在密鑰註冊模型中,成功開發了一種新的非互動式零知識證明方法,適用於解決所有 NP 類問題,關鍵在於參與者需要註冊他們自己的密鑰以進行後續驗證(Cramer & Shou, 1998, 2002)。

此外,Damgård、Fazio 和 Nicolosi 在 2006 年提出了改進已有 Fiat-Shamir 變換的新方法,允許在無需直接交互的情況下進行非互動式零知識證明。 在他們的方法中,驗證者首先需要註冊一個公鑰,準備後續加密操作。 證明者使用加法同態加密技術在不知情的情況下對數據進行運算,生成包含答案的加密資訊,作為對挑戰的回應。 這個方法的安全性基於「複雜性槓桿假設」,認為對於具備超常計算資源的對手,某些被認為難解的計算問題可能被解決(Damgård, Fazio &Nicolosi, 2006)。

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

Unruh 變換是 2015 年提出的一種 Fiat-Shamir 轉換的替代方案。 Fiat-Shamir 方法通常在面對量子計算時並不安全,並且對於某些協定可能產生不安全的方案(Unruh,2015)。 相比之下,Unruh 變換在隨機預言機模型(ROM)中,為任何互動式協定提供了對抗量子對手的可證明安全的非互動式零知識證明(NIZK)。 與 Fiat-Shamir 方法相似,Unruh 變換無需額外的設置步驟(Ambainis, Rosmanis & Unruh,2014)。

此外,Kalai 等人提出了一種基於私有資訊檢索技術的任意決策問題論證系統。 該方法採用多證明者互動式證明系統(MIP)模型,並通過 Aiello 等人的方法,將 MIP 轉換為一個論證系統 。 這一構造在標準模型中運行,不需要依賴隨機預言機假設。 這種方法被應用於一些基於「普通人證明(Proofs-for-Muggles)」的零知識論證中(Kalai, Raz & Rothblum, 2014)。

在這些技術基礎上,非互動式零知識證明(NIZK)已被廣泛應用於各種需要高度安全和隱私保護的領域,如金融交易、電子投票和區塊鏈技術等。 通過減少交互次數和優化證明生成與驗證過程,NIZK 不僅提高了系統的效率,還增強了安全性和隱私保護能力。 在未來,隨著這些技術的進一步發展和完善,我們可以預期 NIZK 將在更多領域中發揮重要作用,為實現更加安全和高效的資訊處理和傳輸提供堅實的技術基礎(Partala, Nguyen & Pirttikangas, 2020)。

三、基於電路的零知識證明

1. 背景

在密碼學領域,尤其是在處理需要高度並行化和特定類型的計算任務(如大規模矩陣運算)時,傳統的圖靈機模型展現出一定的局限性。 圖靈機模型需通過複雜的記憶體管理機制來類比無限長的紙帶,並且不適合直接表達並行計算和流水線操作。 相比之下,電路模型以其獨特的計算結構優勢,更適合於某些特定的密碼學處理任務(Chaidos, 2017)。 本文將詳細探討基於電路的零知識證明系統(Zero-Knowledge Proof Systems Based on Circuit Models),這類系統特彆強調使用電路(通常是算術電路或布爾電路)來表達和驗證計算過程。

2. 电路模型的基本概念与特点

在基于电路的计算模型中,电路被定义为一种特殊的计算模型,它能将任何计算过程转换为一系列的门和连线,这些门执行特定的逻辑或算术操作。具体而言,电路模型主要分为两大类:

算术电路:主要由加法和乘法门组成,用于处理有限域上的元素。算术电路适用于执行复杂的数值运算,广泛应用于加密算法和数值分析中。

逻辑电路:由与门、或门、非门等基本逻辑门构成,用于处理布尔运算。逻辑电路适合于执行简单的判断逻辑和二进制计算,常用于实现各类控制系统和简单的数据处理任务 ( Chaidos, 2017)。

3. 零知识证明中的电路设计与应用

在零知识证明系统中,电路设计的过程涉及将待证明的问题表达为一个电路,这一过程需要设计 zk 电路需要大量的 “逆向思维”:“如果一个计算的声称输出是真实的,则输出必须满足一定的要求。如果这些要求难以仅用加法或乘法建模,我们要求证明者进行额外工作,以便我们更容易地模型化这些要求。”  设计过程通常遵循以下步骤 ( Chaidos, 2017):

问题表示:首先将待证明的问题如密码学哈希函数的计算过程,转换为电路的形式。这包括将计算步骤分解为电路中的基本单元,如门和连线。

电路优化:通过技术手段如门合并和常数折叠,优化电路设计,减少所需的门数量和计算步骤,从而提高系统的运行效率和响应速度。

转换为多项式表示:为适配零知识证明技术,将优化后的电路进一步转换为多项式形式。每个电路元件和连接都对应于特定的多项式约束。

生成公共参考字符串(CRS):在系统初始化阶段,生成包括证明密钥和验证密钥在内的公共参考字符串,以供后续的证明生成和验证过程使用。

证明生成与验证:证明者根据其私有输入和 CRS,在电路上执行计算,生成零知识证明。验证者则可以根据公开的电路描述和 CRS,验证证明的正确性,而无需了解证明者的私有信息 ( Chaidos, 2017)。

零知识证明电路设计涉及将特定的计算过程转化为电路表示,并通过构建多项式约束来确保计算结果的准确性,同时避免泄露任何额外的个人信息。在电路设计中,关键任务是优化电路的结构并生成有效的多项式表示,这是为了提升证明生成与验证的效率。通过这些步骤实施,零知识证明技术能够在不泄露额外信息的前提下,验证计算的正确性,确保了隐私保护与数据安全性的双重需求得到满足 ( Chaidos, 2017)。

4.  潜在的缺陷和挑战

弊端包括:

1. 电路复杂性和规模:复杂计算需要庞大的电路,导致证明生成和验证的计算成本显著增加,尤其是在处理大规模数据时;

2. 优化难度:尽管技术手段(如门合并、常数折叠等)可以优化电路,但设计和优化高效电路仍然需要深厚的专业知识;

3. 特定计算任务的适应性:不同计算任务需要不同的电路设计,为每个具体任务设计高效电路可能耗时且难以推广;

4. 加密算法实现难度:实现复杂的密码学算法(如哈希函数或公钥加密)可能需要大量的逻辑门,使电路设计和实现变得困难;

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

解決方案和改進方向:

1. 電路壓縮技術:通過研究和應用高效的電路壓縮技術,減少所需邏輯門數量和計算資源;

2. 模組化設計:通過模組化設計電路,提高電路設計的複用性和可擴展性,減少為不同任務重新設計電路的工作量;

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

四、零知識證明模型

1. 背景

基於電路的零知識證明通用性較差,需要為特定問題開發新的模型和演算法,現有多種高級語言編譯器和低級電路組合工具去進行電路生成和設計演算法,相關計算的轉換可以通過手動電路構建工具或自動編譯器完成。 手動轉換通常能產生更優化的電路,而自動轉換對開發者更方便。 性能關鍵應用通常需要手動轉換工具(Chaidos, 2017;Partala, Nguyen & Pirttikangas, 2020;Sun 等,2021)。

本文將討論其中最著名的幾種。 總的來說,這些模型都是 zkSNARKs 技術的擴展或變體,每個都試圖在特定的應用需求(如證明大小、計算複雜性、設置需求等)中提供優化。

每種協定都有其特定的應用、優勢和局限性,特別是在設置要求、證明大小、驗證速度和計算開銷方面。 它們在各個領域得到應用,從加密貨幣隱私和安全投票系統到以零知識方式驗證的一般計算等(Čapko, Vukmirović & Nedić, 2019)。

2. 常見演算法模型

1. zkSNARK 模型:2011 年,由密碼學者 Bitansky 等人提出,作為 “零知識簡潔非互動式知識論證”(Zero-Knowledge Succinct Non-Interactive Argument of Knowledge)的縮寫,它是一種改進的零知識證明機制,如果存在可提取碰撞抗性哈希(ECRH)函數,那麼實現針對 NP 問題的 SNARK 是可能的,並展示了 SNARK 在計算委託、簡潔非互動式零知識證明以及簡潔雙方安全計算等多種情境中的適用性。 這項研究還表明,SNARK 的存在意味著 ECRH 的必要性,確立了這些密碼學原語之間的基礎性聯繫(Bitansky et al., 2011)。

zkSNARK 系統由設置、證明者和驗證者三部分組成。 設置過程生成證明金鑰(PK)和驗證金鑰(VK),使用預定義的安全參數 l 和 F-算術電路 C。 該電路的所有輸入和輸出均為域 F 中的元素。 PK 用於生成可驗證的證明,而 VK 用於驗證生成的證明。 基於生成的 PK,證明者使用輸入 x ∈ Fn 和證人 W ∈ Fh 生成證明 p,其中 C(x, W)= 0l。 這裡,C(x, W)= 0l 表示電路 C 的輸出為 0l,x 和 W 是電路 C 的輸入參數。 n、h 和 l 分別表示 x、W 和 C 輸出的維度。 最後,驗證者使用 VK、x 和 p 來驗證 p,根據驗證結果決定接受或拒絕該證明(Bitansky et al., 2011)。

此外,zkSNARK 還具備一些額外特性。 首先,驗證過程可以在短時間內完成,並且證明的大小通常只有幾個位元組。 其次,證明者和驗證者之間不需要同步通信,任何驗證者都可以離線驗證證明。 最後,證明者演算法只能在多項式時間內實現。 從那時起,已經出現了多種改進的 zkSNARK 模型,進一步優化了其性能和應用範圍(Bitansky et al., 2011)。

2. Ben-Sasson 的模型:Ben-Sasson 等人在 2013 年和 2014 年提出了一种针对冯·诺依曼 RISC 架构程序执行的一种新的 zkSNARK 模型。然后,基于所提出的通用电路生成器,Ben-Sasson 等人建立了一个系统,并展示了其在验证程序执行中的应用。该系统包含两个组件:用于验证算术电路可满足性的密码学证明系统,以及将程序执行转换为算术电路的电路生成器。该设计在功能和效率上均优于之前的工作,尤其是电路生成器的通用性和输出电路大小的加性依赖。实验评估表明,该系统可以处理多达 10,000 条指令的程序,并在高安全级别下生成简洁的证明,其验证时间仅为 5 毫秒。其价值在于为区块链和隐私保护智能合约等实际应用提供了高效、通用且安全的 zk-SNARKs 解决方案 ( Ben-Sasson et al., 2013, 2014)。

3. Pinocchio 模型:Parno 等人(2013)提出,是一個完整的非交互零知識論證生成套件(Parno et al., 2013)。 它包含一個高級編譯器,高級編譯器為開發者提供了一種將計算轉化為電路的簡便方法。 這些編譯器接受用高級語言編寫的代碼,因此新舊演算法都能輕鬆轉換。 然而,為生成合適大小的電路,代碼結構可能會有一些限制 。

Pinocchio 的另一個特點是使用了一種被稱為二次算術程式(Quadratic Arithmetic Programs,QAPs)的數學結構,可以高效地將計算任務轉換為驗證任務。 QAPs 能夠將任意算術電路編碼為多項式集合,並且只需要線性時間和空間複雜度來生成這些多項式。 Pinocchio 生成的證明大小為 288 位元組,不隨計算任務的複雜度和輸入輸出大小變化。 這大大減少了數據傳輸和存儲的開銷。 Pinocchio 的驗證時間通常為 10 毫秒,相比之前的工作,驗證時間減少了 5-7 個數量級。 對於某些應用,Pinocchio 甚至能夠實現比本地執行更快的驗證速度。 減少工作者的證明開銷:Pinocchio 還減少了工作者生成證明的開銷,相比之前的工作,減少了 19-60 倍(Parno et al.,2013)。

4. Bulletproofs 模型:2017 年 Benedikt Bünz 等人(2018)設計了新型非互動式 ZKP 模型。 不需要可信設置,且證明大小隨見證值大小呈對數增長。 Bulletproofs 特別適用於在保密交易中的區間證明,能夠通過使用最小的群和欄位元素數量證明一個值在某個範圍內。 此外,Bulletproofs 還支援區間證明的聚合,使得可以通過一個簡潔的多方計算協定生成一個單一的證明,大幅減少了通信和驗證時間。 Bulletproofs 的設計使其在加密貨幣等分散式和無需信任的環境中具有很高的效率和實用性。 Bulletproofs 嚴格意義上並非傳統的基於電路的協定,它們的簡潔性不如 SNARKs,驗證 Bulletproof 的時間比驗證 SNARK 證明更長。 但在不需要可信設置的場景中更高效。

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

3. 基於線性 PCP 和離散對數問題的方案

Ishai 和 Paskin(2007)提出利用加法同態公鑰加密減少互動式線性 PCP 的通信複雜性。 隨後 Groth 等人在 2006 年至 2008 年發表多篇研究提出了基於離散對數問題和雙線性配對的 NIZK 方案,實現了完美完備性、計算正確性和完美零知識。 該方案將陳述表示為代數約束滿足問題,使用類似 Pedersen 承諾的加密承諾方案實現次線性證明長度和非交互性,而無需 Fiat-Shamir 啟發式。 儘管需要較大的 CRS 和強加密假設「指數知識」,足夠長的 CRS 可實現常量證明長度。 驗證和證明代價較高,建議採用「類比可提取性」安全模型。 這個類型方案基於線性 PCP 和/或離散對數問題,但均不具備抗量子安全性(Groth, 2006, 2006, 2008; Groth & Sahai, 2007)。

6. Groth16 模型:是一種高效的非互動式零知識證明系統,由 Jens Groth 在 2016 年提出。 該協定基於橢圓曲線配對和二次算術程式(QAP),旨在提供簡潔、快速和安全的零知識證明 。

7. Sonic 模型:M. Maller 等人(2019)提出,基于 Groth 的可更新 CRS 模型,使用多项式承诺方案、配对和算术电路。需要可信设置,可通过安全多方计算实现。一旦生成 CRS,支持任意大小电路。

8. PLONK 模型:2019 年提出的一个通用的 zk-SNARK,使用排列多项式简化算术电路表示,使证明更简单和高效;它具有多功能性,并支持递归证明组合(Gabizon, Williamson & Ciobotaru, 2019)。PLONK 模型自称减少了 Sonic 的证明长度并提高了证明效率,但尚未通过同行评审。

9. Marlin 模型:一种改进式的 zk-SNARK 协议,将代数证明系统的效率与 Sonic 和 PLONK 的通用和可更新设置属性相结合,提供了证明大小和验证时间方面的改进 (Chiesa et al., 2019)。

10. SLONK 模型:Zac 和 Ariel 在 ethresear 一个文件里介绍的新型协议,一种 PLONK 的扩展,旨在解决特定的计算效率问题并增强原始 PLONK 系统的功能,通常涉及底层加密假设或实现的变化 (Ethereum Research, 2019)。

11. SuperSonic 模型:一种应用新颖的多项式承诺方案,将 Sonic 转换为无需可信设置的零知识方案。不具备抗量子安全性 (Bünz, Fisch & Szepieniec, 2019)。

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

“普通人证明”(Proofs-for-Muggles)是由 Goldwasser、Kalai 和 Rothblum 在 2008 年提出的一种新的零知识证明方法。该方法在原始交互证明模型中为多项式时间证明者构建交互证明,适用于广泛的问题。通过 Kalai 等人的转换,这些证明可以变为非交互式零知识证明(Kalai, Raz & Rothblum, 2014)。

12. Hyrax 模型:基于普通人证明,Wahby 等人(2018)首先设计了一个低通信、低成本的零知识论证方案 Hyrax,对证明者和验证者来说成本很低。在这个方案中,这个论证中没有受信任的设置。如果应用于批量语句,则验证时间与算术电路大小具有亚线性关系,且常数很好。证明者的运行时间与算术电路大小成线性关系,常数也很好。使用 Fiat-Shamir 启发式实现非交互性,基于离散对数问题,未实现抗量子安全。

13. Libra 模型:第一个具有线性证明者时间、简洁证明大小和验证时间的 ZKP 模型。在 Libra 中,为了减少验证的开销,零知识机制通过一种可以掩盖证明者响应的轻微随机多项式的方法来实现。此外,Libra 需要一次性受信任的设置,这只依赖于电路的输入大小。Libra 具有出色的渐近性能和证明者的卓越效率。其证明大小和验证时间的性能也非常高效 (Xie et al., 2019)。

就证明者算法的计算复杂性而言,Libra 优于 Ben-Sasson 的模型、Ligero、Hyrax 和 Aurora。此外,Libra 的证明者算法的计算复杂性与电路类型无关(Partala, Nguyen & Pirttikangas, 2020)。

14. Spartan 模型:Srinath Setty(2019)提出的旨在提供高效证明而不需要受信任设置的零知识证明系统;使用 Fiat-Shamir 转换实现非交互性。它以其轻量级设计和有效处理大电路的能力而闻名。

5. 基于概率可检验证明(PCP)的零知识

Kilian(1992)構建了第一個用於 NP 的互動式零知識論證方案,實現了多對數通信。 該方案使用了抗碰撞哈希函數、互動式證明系統(IP)和概率可檢驗證明(PCP)。 證明者和驗證者(作為隨機演算法)通過多輪通信,驗證者測試證明者對陳述的知識。 通常只考慮單邊錯誤:證明者總能為真實陳述辯護,但驗證者可能以低概率接受虛假陳述。 2000 年,Micali 使用 Fiat-Shamir 轉換將方案轉化為單消息非互動式方案。 以下實現可被視為採用了這種方法:

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

同年,Ben-Sasson 等人創辦 StarkWare Industries ,並開發了第一個基於 ZK-STARKs 的可擴充性解決方案 StarkEx。 根據乙太坊的官方文檔,其可通過 Fiat-Shamir 範式在隨機預言機模型中實現非互動性。 該構造具有抗量子安全性,但其安全性依賴於關於 Reed-Solomon 碼的非標準加密假設。 ZK-STARKs 具有與 ZK-SNARKs 相同的特性,但包括以下優點:a)可擴充性:驗證過程更快。 透明性:驗證過程是公開的。 較大的證明大小:需要更高的交易手續費(StarkWare Industries,2018,2018)

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

17. Succinct Aurora 模型:Ben-Sasson 等人(2019)於同一篇論文中提出:Aurora 協定的擴展,提供了更優化的證明大小和驗證過程。 它保持了 Aurora 的透明設置和安全功能,同時增強了效率。

18. Fractal 模型:Chiesa 等人(2020)提出,一種預處理 SNARK,使用遞歸組合提高效率和可擴充性。 它利用對數證明大小和驗證時間,特別適用於複雜計算。

6. 基於 CPC(通用證明構造)的設置階段進行分類

第一代(G1)- 每個電路需要單獨的受信任設置。 zkSNARK, Pinocchio 和 Groth16

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

第三代(G3)- 不需要受信任設置的證明系統。 Bulletproofs,STARKs,Spartan,Fractal,Supersonic ,Ligero, Aurora 和 Succinct Aurora(Čapko, Vukmirović & Nedić, 2019;Partala, Nguyen & Pirttikangas, 2020)。

五、零知識虛擬機的概述和發展

1. 背景

前面介紹的部分更多的是零知識證明 ZKP 在密碼學中的發展,接下來我們簡單介紹一下它在計算機領域的發展。

2019 年 , Andreev 等人在 “ZkVM: Fast, Private, Flexible Blockchain Contracts” 大会上首次提出 ZK-VM  的概念,作为零知识证明系统的一种实现方式。ZK-VM  的目标是通过运行虚拟机程序来生成零知识证明,验证程序执行的正确性而不泄露输入数据。

VM,(Virtual Machine,虚拟机)是一种软件模拟的计算机系统,能够执行程序,类似于物理计算机。VM 通常用于创建独立的操作系统环境,进行软件测试和开发等。VM 或者 VM 抽象可以在大多数情况下等同理解为 CPU 抽象,它是指将计算机的处理单元(CPU)的复杂操作和架构抽象成一组简单的、可操作的指令集架构(ISA),用于简化计算机程序的设计和执行。在这种抽象中,计算机程序可以通过虚拟机(VM)来运行,这些虚拟机模拟真实 CPU 的操作行为(Henderson, 2007)。

零知识证明(ZKP)通常需要通过 CPU 抽象进行执行。设定是证明者在私有输入上运行公共程序,并希望向验证者证明程序正确执行并产生了断言的输出,而不透露计算的输入或中间状态。CPU 抽象在这种情况下非常有用,因为它允许程序在受控的虚拟环境中运行,同时生成证明(Arun, Setty & Thaler, 2024)。

示例:  证明者希望证明其拥有一个哈希值的密码,而不透露密码:

密码 →  哈希函数 →  哈希值

私有 →  公共

一般情况下,证明者应该能够运行执行哈希操作的代码,并生成允许任何人验证证明正确性的 “证明”,即证明者确实拥有给定哈希值的有效前像。

生成这些 VM 抽象证明的系统通常称为 “zkVMs”。这个名称其实具有误导性,因为 ZKVM 不一定提供零知识。简而言之,ZKVM 是一种专注于零知识证明的虚拟机,扩展了传统 VM 的功能,可以通用化地降低了零知识电路的开发门槛,能够即时为任意应用或计算生成证明 ( Zhang et al., 2023)。

2.  现有的 ZKVM 的分类

按照设计目标,主要分为三类:

1. 主流型 ZKVM

这些 ZKVM 利用现有的标准指令集架构(ISA)和编译器工具链,适用于广泛的应用和开发环境。

• RISC Zero(2021):使用 RISC-V 指令集,具有丰富的编译器生态系统(Bögli, 2024)。

• Polygon Miden(2021):基于标准 ISA,实现简便和高效的开发(Chawla, 2021)。

• zkWASM(2022):zkWASM 实现了 WebAssembly(WASM)指令集的零知识证明,WASM 是一种广泛采用的标准指令集(Delphinus Lab, 2022 )。

2. EVM 等效型 ZKVM

这些 ZKVM 专门设计用于与以太坊虚拟机(EVM)兼容,能够直接运行以太坊的字节码。

• zkEVM 项目:多个项目致力于实现与 EVM 的字节码级兼容,如 zkSync ( Matter Labs , 2020) 和 Polygon Hermez (Polygon Labs , 2021)。

3. 零知識優化(零知識友好)型 ZKVM

這些 ZKVM 優化了零知識證明的效率和性能,專為特定應用場景設計。

• Cairo-VM(2018):簡單且與 SNARK 證明相容,其指令集特別設計為算術友好,便於在零知識電路中實現基本算術運算,如加法、乘法等(StarkWare, 2018)。

• Valida(2023):針對特定應用進行了優化,例如通過優化演算法,減少了生成證明所需的計算資源和時間; 輕量級設計使其適用於各種硬體和軟體環境(Lita Foundation, 2023)。

• TinyRAM(2013):不依賴標準工具鏈:由於其簡化和優化的設計,通常不支援 LLVM 或 GCC 工具鏈,只能用於小規模定製軟體元件(Ben-Sasson et al., 2013)。

當前的普遍觀點是,更簡單的 VM 可以轉換為每步門數更少的電路。 這在特別簡單且顯然對 SNARK 友好的 VM(如 TinyRAM 和 Cairo-VM)設計中最為明顯。 然而,這需要額外的開銷,因為在簡單 VM 上實現現實世界 CPU 的原始操作需要許多原始指令(Arun, Setty & Thaler, 2024)。

3. 前端與後端範式

從程式設計視角,ZKP 系統一般可以劃分為前端 frontend 和後端 backend 兩個部分。 ZKP 系統的 Frontend 部分的主要使用低級別語言來表示高級別語言,例如可以將一個一般地計算問題使用較低級別的電路語言表示,如 R1CS 電路約束構建計算等(比如 circom 使用 R1CS 描述其前端電路)。 ZKP 系統的 Backend 部分即密碼學證明系統,主要將 frontend 構建低級別的語言描述的電路,轉換為生成證明和驗證正確性等,比如常用的 backend 系統協定有 Groth16 和 Plonk 等(Arun, Setty & Thaler, 2024;Zhang et al., 2023)。

通常,電路將逐步「執行」計算程式的每一步(藉助不受信任的」建議輸入 “)。 執行 CPU 的一步概念上涉及兩個任務:(1)識別該步驟應執行的基本指令,(2)執行指令並適當地更新 CPU 狀態。 現有前端通過精心設計的門或約束實現這些任務。 這既耗時又容易出錯,也導致電路比實際需要的大得多(Arun, Setty & Thaler, 2024;Zhang et al., 2023)。

4. ZKVM 范式的優缺點

優點:

1. 利用現有的 ISA:例如,RISC-V 和 EVM 指令集,可以利用現有的編譯器基礎設施和工具鏈,無需從頭構建基礎設施。 可以直接調用現有的編譯器,將高層語言編寫的證人檢查程序轉換為 ISA 的彙編代碼,並受益於之前的審核或其他驗證工作。

2. 單一電路支援多程式:zkVM 允許一個電路運行所有程式,直到達到某個時間限制,而其他方法可能需要為每個程式重新運行前端。

3. 重複結構的電路:前端輸出具有重複結構的電路,針對這些電路的後端可以更快地處理(Arun, Setty & Thaler, 2024;Zhang et al., 2023)。

缺點:

1. 通用性帶來的開銷:為了支援所有可能的 CPU 指令序列,zkVM 電路需要為其通用性付出代價,導致電路規模和證明成本的增加。

2. 高成本操作:在 zkVM 中實現某些重要操作(如加密操作)非常昂貴。 例如,ECDSA 簽名驗證在真實 CPU 上需要 100 微秒,在 RISC-V 指令上則需數百萬條指令。 因此,zkVM 專案包含手工優化的電路和查找表,用於計算特定功能。

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

六、零知识以太坊虚拟机的概述和发展

1.  背景

ZKEVM(零知识以太坊虚拟机)和 ZKVM(零知识虚拟机)都是应用零知识证明(ZKP)技术的虚拟机。以太坊虚拟机(EVM)是以太坊区块链系统的一部分,负责处理智能合约的部署和执行。EVM 具有基于堆栈的架构,是一个计算引擎,提供特定指令集的计算和存储(如日志操作、执行、内存和存储访问、控制流、记录、调用等)。EVM 的角色是应用智能合约的操作后,更新以太坊的状态。ZKEVM 专为以太坊设计,主要用于验证智能合约执行的正确性,同时保护交易隐私。ZKEVM 将 EVM 指令集转换到 ZK 系统中执行,每条指令都需提供证明,包括状态证明和执行正确性证明(Čapko, Vukmirović & Nedić,  2019)。

ZKEVM 目前比较主流的方案有 STARKWARE,ZkSync,Polygen-Hermez,Scroll 等,下面是对这个几个项目的简介(Čapko, Vukmirović & Nedić,  2019):

STARKWARE :Ben-Sasson 等人(2018)创办,致力于使用 STARK 零知识证明技术提升区块链的隐私和扩展性

zkSync:由 Alex Gluchowski(2020)等人创立 Matter Labs,,提出基于 zk-rollups 的以太坊 Layer 2 扩展解决方案。

Polygon-Hermez:Hermez 原先是独立项目,于 2020 年发布。2021 年 8 月被 Polygon 收购后成为 Polygon Hermez,专注于高吞吐量的 zk-rollups 解决方案。

Scroll:Zhang 和 Peng(2021)创立,实现了更高的交易吞吐量和更低的 Gas 费用,从而提高了以太坊的整体性能和用户体验。

一般按照对 EVM 的兼容级别可以划分为(Čapko, Vukmirović & Nedić,  2019):

1. EVM-EVM-compatibility 智能合约功能级别兼容,如 STARKWARE, zkSync

2. EVM-equivalence,EVM 指令级别兼容(等同),如 polygen-Hrmez,scroll

基于零知识的以太坊系统改进解决方案请见图 1

圖 1 基於零知識的乙太坊系統改進解決方案

2. ZKEVM 的工作原理

節點程序處理:節點程式處理和驗證執行日誌、區塊頭、交易、合約位元組碼、默克爾證明等,並將這些數據發送給 zkEVM 處理。

生成 ZK 證明:zkEVM 使用電路生成執行結果的 ZK 證明(狀態和執行正確性證明),這些電路功能主要使用 table 和特製 circuit 來實現。

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

發送到 L1 合約:聚合證明以交易形式發送給 L1 合約執行(Čapko, Vukmirović & Nedić, 2019)。

3. ZKEVM 的實現流程

獲取數據:從乙太坊區塊鏈系統獲取數據,包括交易、區塊頭、合約等。

處理數據:處理和驗證執行日誌、區塊頭、交易、合約位元組碼、默克爾證明等。

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

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

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

4. ZKEVM 的特點

提升交易處理能力:通過 L2 上的 ZKEVM 執行交易,減少 L1 的負載。

隱私保護:在驗證智慧合約執行的同時保護交易隱私。

高效驗證:使用零知識證明技術,實現高效的狀態和執行正確性驗證(Čapko, Vukmirović & Nedić, 2019)。

七、零知識二層網路方案概述與發展

1.  背景

乙太坊區塊鏈是當前最廣泛採用的區塊鏈生態系統之一。 然而,乙太坊面臨嚴重的擴展性問題,導致使用成本高昂。 零知識二層網路方案(ZK Rollup)基於零知識證明(ZKP),是一種針對乙太坊擴容的二層網路(Layer 2)解決方案,克服了 Optimistic Rollups 交易最終確認時間過長的缺陷(Ganguly, 2023)。

2. ZK Rollup 的工作機制

ZK Rollup 允許在一筆交易內實現可擴充性。 L1 上的智慧合約負責處理並驗證所有轉帳,理想情況下只生成一筆交易。 這是通過在鏈下執行交易來減少乙太坊上的計算資源使用,並將最終的簽名交易重新放回鏈上進行。 這一步驟被稱為有效性證明(Validity Proof)。 在某些情況下,可能無法在單一證明內完成驗證,需要額外的交易將 rollup 上的數據發佈到乙太坊主鏈上,以確保數據的可用性(Ganguly, 2023)。

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

儘管 ZK Rollup 名稱中包含「ZK」(零知識)的術語,但它們主要利用零知識證明的簡潔性來提高區塊鏈交易的處理效率,而不是主要關注隱私保護(Ganguly, 2023)。

3. ZK Rollup 的缺點與優化

ZK Rollup(零知识汇总)作为以太坊扩展性的 Layer 2 解决方案,虽然在提高交易处理效率方面表现优异,但其主要问题在于计算成本非常高。然而,通过一些优化方案,可以显著提高 ZK Rollup 的性能和可行性 ( (Čapko, Vukmirović & Nedić,  2019)。

1.  优化密码算法的计算

優化密碼演算法的計算過程可以提高 ZK Rollup 的效率,減少計算時間和資源消耗。 例如,Plonky2 由 Polygon Zero(前身為 MIR)提出,是一種去中心化的 ZK Rollup 解決方案。 Plonky2 是一種遞歸 SNARK,比其他乙太坊相容替代品快 100 倍,結合了 STARKs 和 SNARKs 的最佳特性:

Plonk 和 FRI:提供快速證明且無需信任設置。

支援遞歸:通過遞歸證明提高效率。

低驗證成本:通過 64 位遞歸 FRI 與 Plonk 結合,實現高效證明。

混合 Optimistic 和 ZK Rollup

例如,Polygon Nightfall 是一種混合 Rollup,結合了 Optimistic 和 ZK Rollup 的特點,旨在增加交易隱私並減少轉賬費用(最多可減少 86%)。

2. 開發專用 ZK EVM

專用 ZK EVM 是為提高 ZK Rollup 演算法而設計的,可以優化零知識證明過程。 以下是幾種具體方案:

AppliedZKP:由乙太坊基金會資助的開源項目,實現了乙太坊 EVM 原生操作碼的 ZK,使用了 halo2、KZG 和 Barreto-Naehrig(BN-254)橢圓曲線配對等密碼演算法。

zkSync:由 Matter Labs 開發的 zkEVM,是一個自定義 EVM,實現了將合約代碼編譯成 YUL(Solidity 編譯器的中間語言),然後再編譯成支援的自定義位元組碼,使用 Plonk 的擴展版 ultraPlonk。

Polygon Hermez:自定義 EVM 相容的去中心化 Rollup,將合約代碼編譯成支援的微指令集,使用 Plonk、KZG 和 Groth16 證明系統。

Sin7Y zkEVM:實現了 EVM 原生操作碼的 ZK,並優化了專用操作碼,使用 halo2、KZG 和 RecursivePlonk。

Polygon Miden:基於 STARK 的通用零知識虛擬機。

3. 硬體優化

硬體優化可以顯著提升 ZK Rollup 的性能。 以下是幾種硬體優化方案:

DIZK(DIstributed Zero Knowledge):通過在計算集群上分佈執行 zkSNARK 證明來進行優化。 硬體架構包括兩個子系統,一個用於多項式計算(POLY),具有大尺寸數論變換(NTTs),另一個用於執行橢圓曲線(ECs)上的多標量乘法(MSM)。 PipeMSM 是用於在 FPGA 上實現的流水線設計 MSM 演算法。

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

Bulletproof 協議的硬體加速:通過 CPU-GPU 協作框架和 GPU 上的並行 Bulletproofs 實現(Čapko, Vukmirović & Nedić, 2019)。

八、零知識證明的未來發展方向

1. 加速計算環境的發展

零知識證明協定(如 ZKSNARKs 和 ZKSTARKs)在執行過程中通常涉及大量複雜的數學運算,這些運算需要在極短的時間內完成,對計算資源(如 CPU 和 GPU)提出了極高的要求,導致計算複雜性高、計算時間長。 此外,生成和驗證零知識證明需要頻繁訪問大容量數據,對記憶體頻寬提出了高要求。 現代計算機系統的記憶體頻寬有限,無法高效支援如此高頻的數據訪問需求,導致性能瓶頸。 最終,高計算負載導致高能耗,尤其是在區塊鏈和去中心化應用中,需要持續進行大量證明計算時。 因此,儘管軟體優化方案可以部分緩解這些問題,但由於通用計算硬體的物理限制,難以達到硬體加速的高效率和低能耗水準。 混合解決方案在保持靈活性的同時,可以實現較高的性能提升(Zhang et al., 2021)。

ZK-ASIC(专用集成电路)

2020 年期间多个项目出现,旨在通过硬件如 GPU  或者 FPGA 加速优化零知识证明(ZKP)的生成和验证过程,提高效率  (Filecoin,2024; Coda,2024; Gpu groth16 prover, 2024; Roy et al.,2019; Devlin,2024;Javeed & Wang,2017)。

2021 年:Zhang 等人提出了一种基于流水线架构的零知识证明加速方案,利用 Pippenger 算法优化多标量乘法(MSM),通过 “解卷” 快速傅里叶变换(FFT)减少数据传输延迟 (Zhang et al., 2021)。

ZK Coprocessor(协处理器)

Axiom(2022)提出 ZK Coprocessor 概念,即 ZK 协处理器。协处理器是指增强 CPU 并提供浮点运算、加密运算或图形处理等专门操作的单独芯片。尽管随着 CPU 变得越来越强大,该术语已不再常用,但 GPU 仍可视为 CPU 的一种协处理器,尤其是在机器学习背景下。

ZK 協處理器這一術語將物理協處理器晶元的類比擴展到區塊鏈計算,允許智慧合約開發人員無狀態地證明現有鏈上數據的鏈下計算。 智慧合約開發者面臨的最大瓶頸之一仍然是鏈上計算的高昂成本。 由於每項操作都要計算 gas,因此複雜應用邏輯的成本很快就會變得不可行。 ZK 協處理器為鏈上應用引入了一種新的設計模式,消除了必須在區塊鏈虛擬機中完成計算的限制。 這使應用程式能夠訪問更多數據並以比以前更大的規模運行(Axiom, 2022)。

2. ZKML 的提出和發展

ZKML 的概念

零知識機器學習(Zero-Knowledge Machine Learning, ZKML)是將零知識證明(ZKP)技術應用於機器學習中的一個新興領域。 ZKML 的核心思想是允許在不洩露數據或模型細節的情況下驗證機器學習計算結果。 這不僅可以保護數據隱私,還能確保計算結果的可信性和正確性(Zhang et al., 2020)。

ZKML 的發展

2020 年,張學者等人在 2020 年的 CCS 會議上首次系統地提出了 ZKML 的概念,展示了如何在不洩露數據或模型細節的情況下進行決策樹預測的零知識證明。 這為 ZKML 奠定了理論基礎。

2022 年,Wang 和 Hoang 進一步研究並實現了 ZKML,並提出了一種高效的零知識機器學習推理管道,展示了如何在現實應用中實現 ZKML。 研究表明,儘管 ZKP 技術複雜,但通過合理的優化,可以在保證數據隱私和計算正確性的同時,達到可接受的計算性能。

3. ZKP 擴容技術相關發展

ZKThreads 的概念提出

2021 年,StarkWare 提出了 ZKThreads 的概念,旨在結合零知識證明(ZKP)和分片技術,為去中心化應用(DApps)提供可擴展性和定製性,而不會產生碎片化問題。 ZKThreads 通過在基礎層直接回退,確保每一步的即時性,從而提高了安全性和可組合性。

ZKThreads 的主要在單鏈結構,rollup 流動性問題,和 Proto-Danksharding 三個方面進行了優化。

單鏈解決方案:在傳統的單鏈架構中,所有交易都在一條鏈上進行處理,導致系統負載過重,擴展性差。 ZKThreads 通過將數據和計算任務分配到多個分片中,顯著提升了處理效率。

ZK-rollups 解決方案:雖然 ZK-rollups 已經顯著提高了交易處理速度和降低了成本,但它們通常是獨立運行的,導致流動性碎片化和互操作性問題。 ZKThreads 提供了一個標準化的開發環境,支援不同分片之間的互操作性,解決了流動性碎片化的問題。

Proto-Danksharding 技術:這是乙太坊的一種內部改進方案,通過暫存數據塊來降低 zk-rollups 的交易成本。 ZKThreads 在此基礎上進一步改進,通過更高效的分片架構,減少了對臨時數據存儲的依賴,提高了系統的整體效率和安全性(StarkWare, 2021)。

ZK Sharding 的概念提出

此後,在 2022 年,Nil Foundation 提出了 ZK Sharding 的概念,旨在通過結合零知識證明(ZKP)和分片技術,來實現乙太坊的擴展性和更快的交易速度。 這一技術旨在將乙太坊網路分成多個部分,以更便宜和更高效的方式處理交易。 該技術包括 zkSharding,利用零知識技術生成證明,確保跨不同分片的交易在提交到主鏈之前是有效的。 這種方法不僅提升了交易速度,還減少了鏈上數據的碎片化問題,確保了經濟安全性和流動性。

4. ZKP 互操作性的发展

ZK State Channels

2021 年,ZK State Channels 的概念由 Virtual Labs 提出,结合了零知识证明(ZKP)和状态通道技术,旨在通过状态通道实现高效的链外交易,同时利用零知识证明来确保交易的隐私和安全。

ZK State Channels 替代的原有方案

1.  传统状态通道(State Channels):

原有方案:传统状态通道允许两个用户通过锁定资金在智能合约中进行点对点(P2P)交易。由于资金已被锁定,用户之间的签名交换可以直接进行,不涉及任何 gas 费用和延迟。然而,这种方法需要预定义的地址,且通道的开闭需要链上操作,限制了其灵活性。

替代方案:ZK State Channels  提供了无限参与者的支持,允许动态进入和退出,不需要预定义用户地址。此外,通过零知识证明,ZK State Channels  提供了即时的跨链访问和自验证的证明,解决了传统状态通道的灵活性和扩展性问题。

多链支持:

原有方案:传统状态通道通常仅支持单一链上的交易,无法实现跨链操作,限制了用户的操作范围。

替代方案:ZK State Channels  通过零知识证明技术,实现了跨链的即时交易和资产流动,无需中间桥接,极大地提升了多链互操作性。

预定义地址限制:

原有方案:在传统状态通道中,交易参与者的地址必须在通道创建时预定义,如果有新的参与者加入或离开,通道必须关闭并重新打开,这增加了操作复杂性和费用。

替代方案:ZK State Channels  允许动态加入和退出,新的参与者可以随时加入现有通道,而不影响当前用户的操作,极大地提高了系统的灵活性和用户体验。

ZK Omnichain Interoperability Protocol

2022 年,ZK Omnichain Interoperability Protocol 由 Way Network 提出,旨在实现基于零知识证明的跨链资产和数据互操作性。该协议通过使用 zkRelayer、ZK Verifier、IPFS、Sender 和 Receiver 实现全链通信和数据传输。

Omnichain 项目专注于跨链互操作性,旨在提供一个低延迟、安全的网络,连接不同的区块链。它通过引入标准化的跨链交易协议,使得各区块链之间的资产和数据可以无缝转移。这种方法不仅提高了交易的效率,还确保了跨链操作的安全性。

Way Network 可以看作是 Omnichain 概念的一种具体实现,特别是在使用零知识证明技术来增强隐私性和安全性方面。Way Network 的技术架构使得它能够在保持去中心化和高效性的同时,实现链间的无缝互操作。

總結來說,Omnichain 提供了跨鏈互操作性的總體框架,而 Way Network 則通過零知識證明技術,為這一框架提供了更強的隱私保護和安全性。

九、結論

本文對零知識證明(ZKP)技術及其在區塊鏈領域的最新發展和應用進行了全面的文獻綜述。 我們系統地審查了區塊鏈環境中的 ZKP,調查了適用於區塊鏈和可驗證計算的最先進的零知識論證方案,並探討了它們在匿名和保密交易以及隱私智能合約中的應用。 本文列舉了這些經過學術同行評審的方案和方法的優缺點,提供了這些方案的實際評估和比較的參考資料,強調了開發人員在選擇特定用例的合適方案時需要具備的技能和知識。

此外,本文還展望了零知識證明在硬體加速、區塊鏈擴展性、互操作性和隱私保護等方面的未來發展方向。 通過對這些最新技術和發展趨勢的詳細分析,本文為理解和應用零知識證明技術提供了全面的視角,展示了其在提升區塊鏈系統效率和安全性方面的巨大潛力。 同時,這項研究為後續關於 ZK 項目投資的研究奠定了堅實的基礎。

參考文獻

Ames, S., Hazay, C., Ishai, Y. and Venkitasubramaniam, M. (2017) 'Ligero', Proceedings of the 2017 ACM SIGSAC Conference on Computer and Communications Security, pp. 2087-2104. DOI: https://doi.org/10.1145/3133956.3134104.

AdaPulse (2024) 'The Convergence of Zero-Knowledge Proofs and Decentralized Systems: Part 1', AdaPulse. Available at: https://adapulse.io/the-convergence-of-zero-knowledge-proofs-and-decentralized-systems-part-1 (Accessed: 30 June 2024).

Ambainis, A., Rosmanis, A. and Unruh, D. (2014) 'Quantum attacks on classical proof systems: The hardness of quantum rewinding', in Proceedings of the IEEE 55th Annual Symposium on Foundations of Computer Science (FOCS 2014), pp. 474-483.

Andreev, O., et al. (2019) 'ZkVM: Fast, Private, Flexible Blockchain Contracts'. Available at: https://cathieyun.github.io/presentations/zkvm.html (Accessed: 30 June 2024).

Arun, A., Setty, S. and Thaler, J. (2024) 'Jolt: SNARKs for Virtual Machines via Lookups', in Joye, M. and Leander, G. (eds) Advances in Cryptology – EUROCRYPT 2024, Lecture Notes in Computer Science, vol. 14656. Cham: Springer. Available at: https://doi.org/10.1007/978-3-031-58751-1_1 (Accessed: 30 June 2024).

Axiom (2022) 'What is a ZK Coprocessor?'. Available at: https://blog.axiom.xyz (Accessed: 30 June 2024).

Bögli, R. (2024) 'Assessing RISC Zero using ZKit: An Extensible Testing and Benchmarking Suite for ZKP Frameworks'. Masters thesis, OST Ostschweizer Fachhochschule.

Burger, E. (2022) 'Decentralized Speed: Advances in Zero Knowledge Proofs', a16z. Available at: https://a16z.com/decentralized-speed-advances-in-zero-knowledge-proofs/ (Accessed: 30 June 2024).

Blum, M., Feldman, P. and Micali, S. (1988) 'Non-interactive zero-knowledge and its applications', Proceedings of the Twentieth Annual ACM Symposium on Theory of Computing (STOC '88), pp. 103-112. DOI: https://doi.org/10.1145/62212.62222.

Bootle, J., Cerulli, A., Chaidos, P., Groth, J. and Petit, C. (2015) 'Efficient zero-knowledge arguments for arithmetic circuits in the discrete log setting', EUROCRYPT 2016: Advances in Cryptology, Lecture Notes in Computer Science, vol. 9666, pp. 327-357. Available at: https://link.springer.com/chapter/10.1007/978-3-662-49896-5_12 (Accessed: 30 June 2024).

Bayer, S. and Groth, J. (2012) 'Efficient zero-knowledge argument for correctness of a shuffle', EUROCRYPT 2012: Advances in Cryptology, Lecture Notes in Computer Science, vol. 7237, pp. 263-280. Available at: https://link.springer.com/chapter/10.1007/978-3-642-29011-4_16 (Accessed: 30 June 2024).

Bitansky, N., Canetti, R., Chiesa, A. and Tromer, E. (2011) 'From Extractable Collision Resistance to Succinct Non-Interactive Arguments of Knowledge, and Back Again',Cryptology ePrint Archive. Available at: https://eprint.iacr.org/2011/443.pdf (Accessed: 30 June 2024).

Bünz, B., Bootle, J., Boneh, D., Poelstra, A., Wuille, P. and Maxwell, G. (2018) 'Bulletproofs: Short Proofs for Confidential Transactions and More', Cryptology ePrint Archive. Available at: https://eprint.iacr.org/2017/1066.pdf (Accessed: 30 June 2024).

Bünz, B., Fisch, B. and Szepieniec, A. (2019) 'Transparent SNARKs from DARK Compilers', Cryptology ePrint Archive. Available at: https://eprint.iacr.org/2019/1229 (Accessed: 28 June 2024).

Ben-Sasson, E., Chiesa, A., Genkin, D., Tromer, E. and Virza, M. (2013) 'SNARKs for C: Verifying Program Executions Succinctly and in Zero Knowledge (extended version)', Cryptology ePrint Archive. Available at: https://eprint.iacr.org/2013/507.pdf (Accessed: 30 June 2024).

Ben-Sasson, E., Chiesa, A., Garman, C., Green, M., Miers, I., Tromer, E. and Virza, M. (2014) 'Succinct Noninteractive Zero Knowledge for a Von Neumann Architecture', in Proceedings of the 23rd USENIX Security Symposium, pp. 781-796.

Ben-Sasson, E., Chiesa, A., Garman, C., Green, M., Miers, I., Tromer, E. and Virza, M. (2014) 'Zerocash: Decentralized Anonymous Payments from Bitcoin', in Proceedings of the 2014 IEEE Symposium on Security and Privacy.

Ben-Sasson, E., Bentov, I., Horesh, Y. and Riabzev, M. (2018) 'Scalable, Transparent, and Post-Quantum Secure Computational Integrity', Cryptology ePrint Archive. Available at: https://eprint.iacr.org/2018/046.pdf (Accessed: 30 June 2024).

Ben-Sasson, E., Chiesa, A., Riabzev, M., Spooner, N., Virza, M. and Ward, N. (2019) 'Aurora: Transparent Succinct Arguments for R1CS', Cryptology ePrint Archive. Available at: https://eprint.iacr.org/2018/828.pdf (Accessed: 3 May 2024).

Chaidos, P.I.P. (2017) Zero Knowledge Protocols and Applications. Doctor of Philosophy Dissertation. University College London, Security & Crime Science.

Chawla, V. (2021) 'Polygon Unveils ZK-Rollup Solution Miden to Scale Ethereum', Crypto Briefing. Available at: https://cryptobriefing.com/polygon-unveils-miden (Accessed: 30 June 2024).

Chiesa, A., Hu, Y., Maller, M., Mishra, P., Vesely, P. and Ward, N. (2019) 'M: Preprocessing zkSNARKs with Universal and Updatable SRS'. [online] Available at: https://eprint.iacr.org/2019/1047.pdf (Accessed: 30 June 2024).

Coda Protocol (n.d.) 'Gpu groth16 prover'. Available at: https://github.com/CodaProtocol/gpu-groth16-prover-3x (Accessed: 30 June 2024).

Chiesa, A., Ojha, D. and Spooner, N. (2020) 'FRACTAL: Post-Quantum and Transparent Recursive Proofs from Holography'. [online] Available at: https://eprint.iacr.org/2019/1076.pdf (Accessed: 3 May 2024).

Čapko, D., Vukmirović, S. and Nedić, N. (2019) 'State of the Art of Zero-Knowledge Proofs in Blockchain', Faculty of Technical Sciences, University of Novi Sad, Novi Sad, Serbia. Available at: dcapko@uns.ac.rs, srdjanvu@uns.ac.rs, nemanja.nedic@uns.ac.rs (Accessed: 30 June 2024).

Cramer, R. and Shoup, V. (1998) 'A practical public-key encryption scheme secure against adaptive chosen ciphertext attack', in Advances in Cryptology – CRYPTO’98, pp. 13-25. Springer.

Cramer, R. and Shoup, V. (2002) 'Universal hash proofs and a paradigm for adaptive chosen ciphertext secure public-key encryption', in Advances in Cryptology – EUROCRYPT 2002, pp. 45-64. Springer.

Canetti, R., Goldreich, O. and Halevi, S. (2003) 'On the random-oracle methodology as applied to length-restricted signature schemes'. [online] Cryptology ePrint Archive. Available at: https://eprint.iacr.org/2003/150 (Accessed: 28 Jun. 2024).

Devlin, B.S. (n.d.) 'Fpga snark prover targeting the bn128 curve'. Available at: https://github.com/bsdevlin/fpga_snark_prover (Accessed: 30 June 2024).

Damgård, I., Fazio, N. and Nicolosi, A. (2006) 'Non-Interactive Zero-Knowledge from Homomorphic Encryption', in Theory of Cryptography Conference (TCC 2006), Lecture Notes in Computer Science, vol. 3876, pp. 41-59. Available at: https://iacr.org/archive/tcc2006/38760041/38760041.pdf (Accessed: 28 Jun. 2024).

Ethereum Research (2019) 'SLONK—a simple universal SNARK'. [online] Available at: https://ethresear.ch/t/slonk-a-simple-universal-snark/6420 (Accessed: 28 Jun. 2024).

Filecoin Project (n.d.) 'bellperson: Gpu parallel acceleration for zk-snark'. Available at: https://github.com/filecoin-project/bellperson (Accessed: 30 June 2024).

Fiat, A. and Shamir, A. (1986) 'How To Prove Yourself: Practical Solutions to Identification and Signature Problems', in Advances in Cryptology — CRYPTO’ 86, pp. 186–194. DOI: https://doi.org/10.1007/3-540-47721-7_12.

Feige, U., Fiat, A. and Shamir, A. (1986) 'Zero-Knowledge Proofs of Identity', in Proceedings of the 19th Annual ACM Symposium on Theory of Computing (STOC 1986), pp. 210-217. DOI: 10.1145/12130.12146.

Ganguly, P. (2023) Zero-Knowledge Proofs Origination and Early Twenty-First Century Use Cases. Master of Science (Computer Science) thesis, New York University, Tandon School of Engineering. UMI Dissertation Publishing, ProQuest CSA, 789 E. Eisenhower Parkway, P.O. Box 1346, Ann Arbor, MI 48106-134.

Goldreich, O. (2004) 'Zero-Knowledge Twenty Years After Its Invention', Electronic Colloquium on Computational Complexity (ECCC), Report No. 63. Available at:https://eccc.weizmann.ac.il/report/2004/063/ (Accessed: 30 June 2024).

Goldwasser, S., Micali, S. and Rackoff, C. (1985) 'The knowledge complexity of interactive proof-systems', Proceedings of the seventeenth annual ACM symposium on Theory of computing - STOC ’85. DOI: https://doi.org/10.1145/22145.22178.

Groth, J. and Sahai, A. (2005) 'Perfect Non-Interactive Zero Knowledge for NP'. [online] Available at: https://eprint.iacr.org/2005/290.pdf (Accessed: 27 June 2024).

Groth, J. (2006) 'Simulation-sound NIZK proofs for a practical language and constant size group signatures', ASIACRYPT 2006: Advances in Cryptology, Lecture Notes in Computer Science, vol. 4284, pp. 444-459. Available at: https://link.springer.com/chapter/10.1007/11935230_29 (Accessed: 30 June 2024).

Groth, J., Ostrovsky, R. and Sahai, A. (2006) 'Fully concurrent non-malleable zero-knowledge', EUROCRYPT 2006: Advances in Cryptology, Lecture Notes in Computer Science, vol. 4004, pp. 214-235. Available at: https://link.springer.com/chapter/10.1007/11761679_14 (Accessed: 30 June 2024).

Groth, J. and Sahai, A. (2007) 'Efficient non-interactive proof systems for bilinear groups', SIAM Journal on Computing, vol. 41, no. 5, pp. 1193-1232. Available at: https://epubs.siam.org/doi/10.1137/080725386 (Accessed: 30 June 2024).

Groth, J. (2008) 'Sub-linear zero-knowledge arguments for linear algebra', CRYPTO 2008: Advances in Cryptology, Lecture Notes in Computer Science, vol. 5157, pp. 192-206. Available at: https://link.springer.com/chapter/10.1007/978-3-540-85174-5_11 (Accessed: 30 June 2024).

Groth, J. (2011) 'Minimizing Non-interactive Zero-Knowledge Proofs Using Fully Homomorphic Encryption', Journal of Cryptology, 24(4), pp. 591-623.

Groth, J., Ostrovsky, R. and Sahai, A. (2012) 'New techniques for non-interactive zero-knowledge', Journal of the ACM, 59(3), pp. 1-35. Available at: https://dl.acm.org/doi/10.1145/2220357.2220361 (Accessed: 30 June 2024).

Groth, J. (2016) 'On the Size of Pairing-based Non-interactive Arguments'. [online] DOI: https://doi.org/10.1007/978-3-662-49896-5.

Groth, J., Kohlweiss, M. and Pintore, F. (2016) 'One-time simulation-sound QA-NIZK arguments and applications to ring signatures', ASIACRYPT 2016: Advances in Cryptology, Lecture Notes in Computer Science, vol. 10031, pp. 102-132. Available at: https://link.springer.com/chapter/10.1007/978-3-662-53887-6_4 (Accessed: 30 June 2024).

Groth, J. and Maller, M. (2017) 'Snarky signatures: Minimal signatures of knowledge from simulation-extractable SNARKs', CRYPTO 2017: Advances in Cryptology, Lecture Notes in Computer Science, vol. 10402, pp. 581-612. Available at: https://link.springer.com/chapter/10.1007/978-3-319-63715-0_20 (Accessed: 30 June 2024).

Gabizon, A., Williamson, Z.J. and Ciobotaru, O. (2019) 'PLONK: Permutations over Lagrange-bases for Oecumenical Noninteractive arguments of Knowledge', Cryptology ePrint Archive. Available at: https://eprint.iacr.org/2019/953 (Accessed: 30 June 2024).

Goldwasser, S., Kalai, Y. and Rothblum, G. (2008) 'Delegating Computation: Interactive Proofs for Muggles'. [online] Available at: https://www.microsoft.com/en-us/research/wp-content/uploads/2016/12/2008-DelegatingComputation.pdf (Accessed: 30 June 2024).

Henderson, F. (2007) 'Introduction to Virtual Machines', Proceedings of the Linux Symposium. Available at: https://www.kernel.org/doc/ols/2007/ols2007v1-pages-1-10.pdf (Accessed: 30 June 2024).

Ingonyama (2023) 'Hardware Review: GPUs, FPGAs and Zero Knowledge Proofs', Ingonyama. Published on: May 4, 2023. Available at: https://www.ingonyama.com/blog/hardware-review-gpus-fpgas-and-zero-knowledge-proofs (Accessed: 30 June 2024).

Ishai, Y. and Paskin, A. (n.d.) 'Evaluating Branching Programs on Encrypted Data', Theory of Cryptography, pp. 575–594. DOI: https://doi.org/10.1007/978-3-540-70936-7_31.

Kalai, Y.T., Raz, R. and Rothblum, R.D. (2014) 'How to delegate computations: The power of no-signaling proofs', Proceedings of the Annual ACM Symposium on Theory of Computing, New York, NY, USA, pp. 485-494.

Javeed, K. and Wang, X. (2017) 'Low latency flexible FPGA implementation of point multiplication on elliptic curves over GF(p)', International Journal of Circuit Theory and Applications, 45(2) , pp. 214-228. DOI: 10.1002/cta.2359.

Kilian, J. (1992) 'A note on efficient zero-knowledge proofs and arguments (extended abstract)', Proceedings of the 24th Annual ACM Symposium on Theory of Computing, pp. 723-732.

Konstantopoulos, G. (2022) 'Hardware Acceleration for Zero Knowledge Proofs', Paradigm. Available at: https://www.paradigm.xyz/2022/04/zk-hardware (Accessed: 30 June 2024).

Lita Foundation (2023) 'Announcing Lita's Valida C Compiler & zkVM'. Available at: https://www.lita.foundation (Accessed: 30 June 2024).

Lavery, S. (2024) 'Compact and Secure Zero-Knowledge Proofs for Quantum-Resistant Cryptography from Modular Lattice Innovations', Cryptology ePrint Archive. Available at: https://eprint.iacr.org/2024/652 (Accessed: 30 June 2024).

Maller, M., Bowe, S., Kohlweiss, M. and Meiklejohn, S. (2019) 'Sonic: Zero-Knowledge SNARKs from Linear-Size Universal and Updateable Structured Reference Strings', Cryptology ePrint Archive. Available at: https://eprint.iacr.org/2019/099 (Accessed: 28 June 2024).

Matter Labs (2020) 'Introducing zkSync: The missing link to the mass adoption of Ethereum',Matter Labs Blog. Available at: https://blog.matter-labs.io/introducing-zksync-the-missing-link-to-the-mass-adoption-of-ethereum (Accessed: 30 June 2024).

=nil; Foundation (2023) 'zkSharding for Ethereum'. Available at: https://nil.foundation/zksharding (Accessed: 30 June 2024).

Partala, J., Nguyen, T.H. and Pirttikangas, S. (2020) 'Non-Interactive Zero-Knowledge for Blockchain: A Survey', IEEE Access. Received November 27, 2020, accepted December 13, 2020, published December 21, 2020, current version December 31, 2020. DOI: 10.1109/ACCESS.2020.3046025.

Parno, B., Howell, J., Gentry, C. and Raykova, M. (2013) 'Pinocchio: Nearly practical verifiable computation', Security and Privacy – S&P 2013, pp. 238-252. IEEE.

Polygon Labs (2021) 'Deep Dive on Polygon Hermez: Bringing Scalability to Ethereum Using zk-Technology'. Available at: https://polygon.technology/blog/polygon-unveils-miden (Accessed: 30 June 2024).

Polygon Technology (2021) 'Polygon Miden: A STARK-Based zk-Rollup'. Polygon Community Forum. Available at: https://forum.polygon.technology/t/polygon-miden-deep-dive-a-stark-based-zk-rollup/299 (Accessed: 30 June 2024).

Roy, S.S., Turan, F., Jarvinen, K., Vercauteren, F. and Verbauwhede, I. (2019) 'FPGA-based high-performance parallel architecture for homomorphic computing on encrypted data', 2019 IEEE International Symposium on High Performance Computer Architecture (HPCA), pp. 387-398. DOI: 10.1109/HPCA.2019.00051.

RISC Zero (2021) 'zkVM Overview', RISC Zero Developer Docs. Available at: https://dev.risczero.com/api/zkvm (Accessed: 30 June 2024).

Setty, S. (2019) 'Spartan: Efficient and general-purpose zkSNARKs without trusted setup',Cryptology ePrint Archive. Available at: https://eprint.iacr.org/2019/550 (Accessed: 30 June 2024).

Sun, X., Yu, F.R., Zhang, P., Sun, Z., Xie, W. and Peng, X. (2021) 'A Survey on Zero-Knowledge Proof in Blockchain', IEEE Network, 35(4), pp. 198-205. DOI: 10.1109/ACCESS.2020.3046025.

StarkWare Industries (2018) 'StarkEx Documentation'. Available at: https://docs.starkware.co/starkex/index.html (Accessed: 30 June 2024).

StarkWare Industries (2018) 'About Us'. Available at: https://starkware.co (Accessed: 30 June 2024).

StarkWare (2018) 'Cairo Programming Language'. Available at: https://www.cairo-lang.org (Accessed: 30 June 2024).

StarkWare (2021) 'ZKThreads: A canonical ZK sharding framework for dApps'. Available at: https://starkware.co/zkthreads (Accessed: 30 June 2024).

Unruh, D. (2015) 'Non-interactive zero-knowledge proofs in the quantum random oracle model', in Oswald, E. and Fischlin, M. (eds) Advances in Cryptology. Berlin, Germany: Springer, pp. 755-784.

Ventre, C. and Visconti, I. (2009) 'Co-sound Zero-Knowledge with Public Keys', Lecture Notes in Computer Science, pp. 287–304. DOI: https://doi.org/10.1007/978-3-642-02384-2_18.

Virtual Labs (2021) 'ZK State Channel vs. State Channel'. Available at: https://docs.virtual.tech (Accessed: 30 June 2024).

Way Network (2022) 'ZK Omnichain Interoperability Protocol'. Available at: https://way.network (Accessed: 30 June 2024).

Wang, H. and Hoang, T. (2022) 'ezDPS: An Efficient and Zero-Knowledge Machine Learning Inference Pipeline', arXiv.org. DOI: https://doi.org/10.48550/arXiv.2212.05428.

Wahby, R.S., Tzialla, I., shelat, a., Thaler, J. and Walfish, M. (2018) 'Doubly-efficient zkSNARKs without trusted setup', Cryptology ePrint Archive. Available at: https://eprint.iacr.org/2017/1132.pdf (Accessed: 28 June 2024).

Xie, T., Zhang, J., Zhang, Y., Papamanthou, C. and Song, D. (2019) 'Libra: Succinct Zero-Knowledge Proofs with Optimal Prover Computation', Cryptology ePrint Archive. Available at: https://eprint.iacr.org/2019/317 (Accessed: 28 June 2024).

Zhou, Y., Wei, Z., Ma, S. and Tang, H. (2022) 'Overview of Zero-Knowledge Proof and Its Applications in Blockchain', in Sun, Y., Cai, L., Wang, W., Song, X. and Lu, Z. (eds) Blockchain Technology and Application. CBCC 2022. Communications in Computer and Information Science, vol. 1736. Singapore: Springer. Available at: https://doi.org/10.1007/978-981-19-8877-6_5 (Accessed: 30 June 2024).

Zhang, B., Lu, G., Qiu, P., Gui, X. and Shi, Y. (2023) 'Advancing Federated Learning through Verifiable Computations and Homomorphic Encryption', Entropy, 25(11), p. 1550. Available at: https://doi.org/10.3390/e25111550(Submission received: 11 September 2023 / Revised: 1 November 2023 / Accepted: 4 November 2023 / Published: 16 November 2023).

Zhang, Y., Wang, S., Zhang, X., Dong, J., Mao, X., Long, F., Wang, C., Zhou, D., Gao, M. and Sun, G. (2021) 'PipeZK: Accelerating Zero-Knowledge Proof with a Pipelined Architecture', IEEE Xplore. DOI: https://doi.org/10.1109/ISCA52012.2021.00040.

Zhang, J., Fang, Z., Zhang, Y. and Song, D. (2020) 'Zero Knowledge Proofs for Decision Tree Predictions and Accuracy', Proceedings of the 2020 ACM SIGSAC Conference on Computer and Communications Security. DOI: https://doi.org/10.1145/3372297.3417278.

免責聲明:作為區塊鏈資訊平臺,本站所發佈文章僅代表作者及嘉賓個人觀點,與 Web3Caff 立場無關。 文章內的資訊僅供參考,均不構成任何投資建議及要約,並請您遵守所在國家或地區的相關法律法規。