
硬核解讀:零知識證明(ZK) 為什麼重要?
TechFlow Selected深潮精選

硬核解讀:零知識證明(ZK) 為什麼重要?
ZK 的前景是美好的,它可以讓一些過去不可能的事情變成現實。
作者:Glaze & Fundamental Labs 研究團隊
如果你喜歡這篇研報,歡迎點贊收藏,分享給感興趣的朋友。這對我們有很大幫助。
TL;DR
ZK 的前景是美好的,它可以讓一些過去不可能的事情變成現實。近年來,ZK 領域發生了很多突破性的進展,例如更強的性能、可升級性和不需要信任初始化。這些改進都將 ZK 推向了應用階段。因此,如果我們要看到一個新的 ZK 證明系統,我們可以從以下維度進行評判:
一筆交易和十筆交易的證明時間
一筆交易和十筆交易的驗證時間
一筆交易和十筆交易打包後的證明大小
可信初始化
參考字符串長度
CRS 支持
SRS 支持
遞歸證明支持
能否抵抗量子計算機
安全性基於任何密碼學假設
ZKEVM 是 ZKRU 的下一個里程碑,ZKEVM 有三個階段:
共識級
字節碼級
語言級
ZKRU 剛剛進入應用階段,生態並不完善。開發者們還沒有發掘出 ZK 的所有潛力。人們仍不斷從這些前沿理論中得到啟發,以下是值得關注的方向:
充分利用高 TPS 和低手續費的應用程序
Layer2 之間的通信協議/應用程序
聚合流動性
開發工具/框架
基於雲的開發工具
具有獨特功能的跨 Layer2 Layer1 應用程序
不同的 ZKVM
ZK 橋
在其他鏈上應用 ZK
擁有遞歸功能的 Layer2
ZK 在 DAO 和社區治理中的應用
商業化 ZK 算法
芯片和雲計算
ZK 的應用聚焦在兩個方面:Rollup 和隱私。Rollup 比隱私有更好的前景。隱私在某種程度上和區塊鏈的開放精神相違背。另外,隱私可能有合規問題。在 Web2 時代,我們沒有看到隱私應用程序達到龍頭的位置。所有應用的隱私保護水平在不斷提高,但龍頭應用往往不是主打隱私的引用,而是易用性最強的應用。隱私是有代價的,大多數情況下犧牲了用戶最關心的易用性。
當我們看 ZK 隱私項目時,以下幾點較為重要:
ZK 只是技術,我們要專注產品力和團隊
ZK 是個複雜的技術,會拖慢開發進度
ZK 有利於 DAO 治理和身份認證
ZK 是機構上鍊的必備技術
直覺
一句話介紹 ZK(Zero Knowledge Proof):證明者(Prover)說服驗證者(Verifier)相信某些聲明是真的,但除了聲明是真的之外,驗證者沒有獲得其他信息。
ZK 是為匿名而設計的。試想我們可以證明我們的身份證號碼是有效的,但是驗證者並不能獲得我們的身份證號碼。這在信息過度索取的今天,具有重大意義。
讓我們來看一個更加生動的例子。小明和小紅在玩數獨。小紅想向小明證明她找到了數獨的答案,但同時又不透露這個答案,因為小明還沒解出這個數獨。你將如何設計這個證明?

我們把數獨寫到卡片上。每張卡片上有一個數字。將他們按照答案排列好,正面朝下。小明可以隨機選擇一列,一行或者一塊。小紅將拿出小明所選擇的那些卡片,隨機打亂後,將這些卡牌翻過來,正面朝上。如果這些卡牌是不重複的 1-9,那麼小明知道小紅解出了數獨的某一部分,但也或許是運氣。重複以上步驟,如果每次都是正確的。那麼就幾乎不可能是小紅運氣好,而是小紅真的知道答案。雖然小明得知小紅解出了數獨,但是小明仍舊不知道數獨的答案。

如果你還是有點疑惑,歡迎觀看這個視頻。UCLA 的計算機教授將以 5 種難度形式,解釋什麼是 ZK。
常見零知識證明流派
在介紹零知識證明流派之前,大家要注意我們常說的 ZK-SNARK 不是一種算法,而是一種流派。ZK-STARK 是一種具體零知識算法的名字。
我們最常見的可能是 ZK-SNARK。SNARK 的縮寫是 succinct non-interactive arguments of knowledge。SNARK 最特殊的點在於他的 N,非交互性。
簡潔性(Succinct):驗證所需要的計算資源遠遠小於重新跑一遍需要證明的程序。
非交互性(Non-interactive):證明者和驗證者不需要每一輪都溝通。他們只需要在一開始完成可信初始化(Trust Setup):其他驗證者也可以在可信初始化之後加入驗證。
Argument:如果證明者有著無比強大的算力,那麼他可以生成假證明。如果這種情況發生,主流的公私鑰加密模式也不再安全。
知識(Knowledge):證明者需要知道一些其他人不知道的秘密,才能生成證明。
ZK-SNARK 最大的問題在於它需要可信初始化(Truest Setup)。可信初始化會生成參考字符串(Reference String)。如果 RS 被洩露,那麼任何人都可以生成虛假證明。此外,如何設計多人參與的可信初始化也很具有挑戰性。RS 還只能被用於指定的程序。對於其他的程序,我們需要另外的可信初始化。因此 ZK-SNARK 不可能用於通用計算。另外一點,RS 不能升級。如果我們升級了程序,可信初始化要重新運行。
為了解決這一系列的問題,科學家們找到了兩個方向:
Transparent Setup:可信初始化生成公共參考字符串(Common Reference String)。CRS 是公開的,不需要保密。Fractal,Halo,ZK-STARK,SuperSonic 都是採取了這一條路線。這一條路線的問題是生成的證明佔用太多的存儲,來到了 kB 的量級。對於區塊鏈來說,存儲是非常昂貴的。
Universal Setup:可信初始化生成了結構化參考字符串(Structure Reference String),但它需要保密。SRS 讓可信初始化可以用於不同的程序,這讓通用計算的證明可能實現。Marlink,SuperSonic-RSA 和 Plonk 都採用了這條路線。
業界廣泛採用以下幾種算法:
Groth16:Zcash 一開始使用了這種算法。它是零知識證明中的跑分對照組,因為它具有證明快,生成的證明小的特點。它的缺點是需要可信初始化,並且一次可信初始化只能針對一個程序。它擁有最完善的工具鏈。
Sonic:支持 Universal Setup. SRS 的大小和程序大小成線性關係。生成的證明是固定大小,但是驗證需要消耗很多的計算資源。Sonic 讓通用計算的零知識證明變為可能。
Fractal:支持遞歸(Recursion)。生成的證明佔用較多空間。
Halo: 支持遞歸,但並不滿足簡潔性(Succinct)因為證明時間是非線性的。Halo2 是目前主流使用的證明系統。
SuperSonic:第一個實際的,可以應用的 Transparent ZK-SNARK。
Marlin:程序可以升級。性能處於 Sonic 和 Groth16 之間。
Plonk:程序可以升級;參與者按照順序加入可信初始化。這讓進行有很多人參與的可信初始化不那麼複雜;Plonk 使用 Kate commitments 而不是多項式承諾(ZK-SNARK 的第一步是將計算問題轉化為多項式問題)。許多現代化的零知識證明系統都構建與 Plonk 之上。Plonk 有著非常優秀的工具鏈。
如果你想挑幾個算法仔細研究,Groth16,Halo,Plonk 是最好的選擇。
CRS 是 Transparent Setup 路線中生成的公共參考字符串。SRS 是 Universal Setup 路線中生成的結構參考字符串。證明的大小將決定要佔用 Layer1 多少的存儲空間。證明和驗證的時間決定了計算資源的消耗。

Source: Comparing General Purpose zk-SNARKs
下圖是零知識證明算法的 Benchmark,基於這個實驗。

Source: Comparing General Purpose zk-SNARKs
以下有更多的 Benchmark 和算法對比:
Benchmarking Zero-Knowledge proofs with isekai | by Guillaume Drevon | Sikoba Network | Medium
Community Proposal: A Benchmarking Framework for (Zero-Knowledge) Proof Systems (zkproof.org)
總結以下,當我們看到一個新的 ZK 算法時候,以下指標是我們需要在意的:
一筆交易和十筆交易的證明時間
一筆交易和十筆交易的驗證時間
一筆交易和十筆交易打包後的證明大小
可信初始化
參考字符串長度
CRS 支持
SRS 支持
遞歸證明支持
能否抵抗量子計算機
安全性基於任何密碼學假設
ZK 在最近幾年走出實驗室,逐漸步入應用。ZK 兩個主要應用方向是 Rollup 和隱私。ZK 對於隱私產品的變革是顯而易見的,得益於 ZK 可以讓驗證者不獲得任何額外信息。Rollup 依賴於 ZK 的兩大特性:簡潔(Succinct)和遞歸(Recursion)。簡明的特性有助於驗證者節省大量的計算資源。驗證者不需要重新運行整個程序。遞歸特性有助於節省存儲空間。通過遞歸,區塊鏈可以保持一個固定的大小。這也有利於去中心化,因為這樣的區塊鏈節點在什麼樣的硬件上都可以跑起來。

ZK 應用開發流程
獨立開發一個 ZK 應用非常複雜,開發需要掌握以下技能:
算法,底層算數,優化技能。開發者需要這些技巧來解決一些有限域算術、多項式承諾和橢圓曲線問題。
ZK 證明系統,如 ZK-SNARKs、Plonkish 和如何可信初始化。開發人員需要選擇適當的 ZK 證明系統,並對其進行定製。
電路編程技能。開發者需要講常用密碼學算法編寫成電路,如 Merkle Tree 和 Hash。
應用和密碼學協議開發。
有效的開發工具可以加速開發過程,也可以降低複雜性。例如,像 Circom 這樣的工具可以解決底層代數和證明系統。開發人員可以忽略代數和 ZK 證明系統,專注於電路編程和應用開發。
Rollup 機制
Rollup 的想法很簡單。由於鏈上計算較為昂貴,因此 Rollup 希望安全地將計算移動到鏈下,並只在鏈上存儲計算結果。
哈希樹的狀態根存儲在 Rollup 合約中。Rollup 智能合約從 Layer2 提交的信息中更新狀態根。

Source: An Incomplete Guide to Rollups (vitalik.ca)

Source: An Incomplete Guide to Rollups (vitalik.ca)
ZK Rollup(ZKRU) 使用零知識證明來確保從 Layer2 提交的新狀態根是正確的。驗證者只需要驗證這個證明就可以確認新狀態根的正確性。驗證者並不需要一個個重新執行 Layer2 提交的交易。這大大節省了驗證者的工作量,提升了 TPS。這節省計算量的部分體現了零知識證明的簡潔特性。依賴於零知識證明的簡潔性,完備性,合理性,ZKRU 得以安全地提升 TPS。(完備性和合理性是證明系統的必備特性。完備性 Completeness:如果證明是有效的,驗證方一定會相信證明方的斷言。真的假不了;合理性 Soundness:虛假斷言不可能生成有效的證明。假的真不了。)
ZKRU 整體來說優於 Optimistic Rollup(OPRU)。OPRU 的 TPS 略差,並且需要更長的提款週期,因為它依賴於欺詐證明(Fraud Proof)。那麼等 ZKRU 全面鋪開以後,不就是 ZKRU 碾壓 OPRU 了嗎?並且 OPRU 目前的生態並不算過於領先。OPRU 並沒有坐以待斃,他們嘗試將 ZK 融入自家的解決方案來提升 TPS,解決原生提款週期過長的問題。例如,他們將 ZK 應用於狀態變化,這樣就可以縮短欺詐證明所需要的時間了。
角色
在 Rollup 的體系中,一共有三個角色:
用戶:用戶在 Layer2 提交交易。他們從 Layer1 充值資產至 Layer2
Rollup 節點:Rollup 節點負責維護 Layer2 網絡的正常運行。它們需要生成證明,執行交易,打包交易,參與欺詐證明
Layer1: Layer1 保證了 Layere2 的安全性,並負責共識的達成。大部分 Layer1 目前都是以太坊。

Source: Understanding rollup economics from first principles
經濟模型
經濟模型中最重要的就是成本和收入。對於 Layer2 來說,支出基本上是以下幾個:
生成證明的計算成本
切換狀態的計算成本
Layer1 交易手續費
Layer1 數據存儲成本
其中 Layer1 數據存儲成本最為昂貴。這張圖展示了數據的傳遞。首先用戶遞交交易給 Rollup 節點。Rollup 打包多筆交易並生成證明,存儲在 Layer1 中。

Source: Understanding rollup economics from first principles
這張圖展示了 Rollup 在 Layer1 上的支出已經它們的收入:

Source: L2Fees.info in 3/28/2022
Layer2 最常見的收入是手續費和 MEV。手續費基於網絡的情況,MEV 則取決於用戶的交易。Layer2 也會發行屬於自己的代幣,並且獎勵給 Rollup 節點。
常見 ZKRU
這張圖展示了常見 Layer2 以及他們的市場佔比。目前 Arbitrum 佔據市場半壁江山。

Source: https://l2beat.com/ on 3/28/2022
下圖展示了不同 Layer2 使用的不同技術:
狀態驗證(State Validation)
欺詐證明(Fraud Proofs):允許白名單執行者監控鏈上交易,並指出錯誤狀態。
零知識證明(ZK proofs (ST)):使用 ZK-STARKs 來證明狀態的正確性。
SN:ZK-SNARKs
僅在退出驗證(Exits Only):退出網絡時,狀態會被驗證。中間狀態並不會被驗證。
互動證明(INT):需要多筆交易來解決糾紛。
一輪(1R):只需要一輪證明來解決狀態糾紛。
數據可用性(Data availability)
鏈上(On chain):構建證明需要的所有數據都在鏈上。
外部數據委員會(External DAC): 構建證明需要的所有數據都不在鏈上。數據委員會負責保護和提供數據。
外部(External): 構建證明需要的所有數據都不在鏈上。
升級(Upgradability)
是(Yes): 可以隨時升級,不需要任何公告。
21 天延遲或無延遲(21 day or no delay): 有 21 天的延遲,除非安全委員會多籤通過了立即升級。
故障序列(Sequencer Failure)
L1 交易(Transact using L1):用戶可以在 L1 提交一筆交易來強制 L2 打包自己的交易。
強制交易/L1 退出(Force trade/ exit to L1):用戶可以在 L1 提交請求來強制 L2 打包自己的提款請求,但這意味著用戶需要找在系統之外找到交易對手方。
強制 L1 退出(Force exit to L1):用戶可以在 L1 提交請求來強制 L2 打包自己的提款請求。
構建區塊(Propose blocks(ZK)):用戶需要自行運行節點來構建區塊。這個區塊包含了用戶想要打包的交易。這要求用戶自行計算 ZK 證明。這對算力有很大要求。
L1 退出(Exit to L1):用戶只能在 L1 提交提款請求。
驗證失敗(Validation Failure)
逃生艙(Escape hatch(MP)):用戶可以在無需信任的情況下拿回押金。用戶需要提交資金的哈系樹證明。押金將會以上一次狀態中的平均價格退出。
構建區塊(Propose blocks):用戶需要自行運行節點來構建區塊。
Source: https://l2beat.com/ on 3/28/2022

Source: https://l2beat.com/ on 3/28/2022
Ethhub 列出了 ZKRU 的幾個主要優缺點:
優點
降低用戶手續費
優於 OPRU 的性能, 手續費,提款週期
區塊可以並行運算,有利於去中心化
更高的 TPS
更短的提款週期,優於欺詐證明
缺點
計算證明需要大量的資源
ZKRU 的可信初始化較為中心化
量子計算可能會損害安全性
安全假設包含不可驗證的信任
目前大部部分 ZKRU 只支持支付和有限的功能。zkSync 是 Gitcoin 的支付層。ZKRU 大多使用自定義虛擬機,並不兼容 EVM。例如,StarkEx + Cairo 和 zkSync 1.0 + Zinc。
ZKEVM 是 ZKRU 的下一個里程碑。ZKEVM 可以劃分為三個等級:
共識級:ZKEVM 和主網上的 EVM 等價。生成的狀態根是通用的。以太坊在未來計劃實現主網上的 ZKEVM。
字節碼級:ZK 證明系統在這個階段非常重要,需要對 EVM 友好。字節碼級的 ZKEVM 生成的狀態根與 EVM 的狀態跟格式不一樣,因為 ZKEVM 採用不一樣的密碼學算法。EVM 使用的那些對於 ZK 證明系統不友好。Scroll 和 Hermez 採用這個解決方案。
語言級:在這個級別,並沒有真正的 ZKEVM。一個轉譯器將 Solidity 編寫的智能合約或者字節碼轉譯成自定義虛擬機可以執行的格式。zkSync 和 Starkware 都是採用這個解決方案。這個方案的缺陷是,並不能兼容 EVM 的所有功能。
以太坊基金會的 Justine Drake 計劃在 2022 年底看到可用的字節碼級 ZKEVM,但會有以下限制:
與主網相比,較小的 Gas Limit。
中心化節點由於生成證明需要大量的算力。用戶將在 2023 年使用他們的 GPU 生成證明。2024 年,ASIC 將投入使用。節點運營者將從 CPU 到 GPU,FPGA,最後到 ASIC。
由於 ZKEVM 的工程複雜度,ZKEVM 會存在 Bug。
為了進一步降低手續費,一些 ZKRU 正在實現 Volition,將數據存儲的地方從以太坊到鏈下。
市場上目前有 16 個 ZKRU,其中 7 個發行了代幣,總市值 150 億美金,佔加密貨幣總市值的 0.67%。
Polygon
Polygon 目前在實現 4 個 ZK 產品:
Miden:實驗性質的 ZKRU 通用計算平臺,TPS 1k+ ,15 min 提款,5 秒產出 1 個塊,隱私交易。
Nightfall:Nightfall 是一個 ORU,集成了 ZK 來實現隱私交易。一筆交易需要 9k Gas,110 TPS,為安永會計師事務所設計。
Zero:通用 ZKRU 計算平臺,支持遞歸。只需要 0.17s 就可以生成證明。證明大小 45 kB。一個賬戶只佔用 5 bits。
zkSync
zkSync 由 Matter Labs 創立於 2019/12 基於 Plonk 開發。目前 zkSync 支持支付功能以及有限的智能合約功能。智能合約需要用 Zinc 進行開發。
zkSync 2.0 測試網在 2022/2 上線,兼容 EVM。Matter Labs 將大部分 OPCODE 電路化實現在不修改證明系統的前提下,實現 EVM 兼容。目前 zkSync 2.0 並不支持 ADDMOD,SMOD,MULMOD,EXP,CREATE2 和 KECCAK256。在這種解決方案下,Solidity 成為了一等公民。
zkSync 2.0 的 Gas Price 是根據以太坊主網 Gas Price 和 ZK 證明成本動態變化的。受以太坊主網 Gas Price 影響的原因是 zkSync 會將數據打包存儲到以太坊主網。
為了進一步降低手續費,提高 TPS,zkSync 計劃發佈 ZKPorter。用戶可以選擇將他們的賬戶數據存儲在 ZKPorter 上來降低手續費。如果一個賬戶數據存儲在 ZKPorter 上,則它所有的交易都將由 ZKPorter 確保數據可用性,交易不再能提交到以太坊主網上。
以下是關於 zkSync TVL 和資金種類的圖表。大部分 zkSync 上的資金都是穩定幣。

Source: Dune on 3/28/2022

Source: Dune on 3/28/2022
Starkware
Starkware 在 2018/5 由 Zcash 核心團隊成員創立。
Starkware 有兩個產品:StarkEx,StarkNet。
StarkEx 是一款 SaaS 產品,為項目方提供 ZKRU 解決方案。目前客戶包含 dYdX,DeverseFi,Immutable,Sorare。dYdX 每週有 4k 活躍用戶。

Source: Layer 2 Public Dashboard · Metabase (dydx.exchange)

Source: Layer 2 Public Dashboard · Metabase (dydx.exchange)
StarkNet 是更加開放的 ZKRU 相比於 StarkEx,任何人都在可以在上面部署合約。StarkNet 目前不兼容 EVM。StarkNet 使用 Cairo 來編寫智能合約。
Starkware 也在推進 ZKEVM。他們用了和 zkSync 不一樣的解決方案。他們使用 Warp 來將 Solidity 編寫的智能合約轉譯成 Cairo。這個解決方案並不如 zkSync 的解決方案,對 Solidity 的兼容性較差。
StarkNet Alpha 兼容 ZKEVM 在 2021/11 上線。目前每日交易數量為 1033(數據來自區塊瀏覽器)。
Loopring
Loopring 是一個基於 ZKRU 的交易所,提供低手續費的交易體驗,可以達到 2k TPS。
Loopring 在 2018 發行了代幣 $LRC。目前市值為 13 億美金。Loopring 總共有 65k
用戶,每天用戶增長數為 167,每日交易量為 10896(數據來自區塊瀏覽器)。
dYdX 是 Loopring 強力的競爭對手。在未來,當 ZKEVM 正式投入應用,會湧現出一大批 DEX,因為 Solidity 的開發速度比開發 Layer2 快很多。新的項目 Fork 也很快。整個交易所的競爭將非常激烈。
ZKRU 中的機會
在過去,我們經常聽到一些高 TPS,低手續費的鏈標榜自己為以太坊殺手。隨著時間的推移,大部分以太坊殺手殺死了自己。剩下的鏈都找到了自己的發展方向,如 DeFi,GameFi。這些鏈也有了自己的特色應用和完整的生態。
現在開發一條高 TPS,低手續費的鏈不難,難就難在生態和特色應用。因此我們不能只關注紙面性能數據,而要注重用戶,生態和特色應用。
Layer2 具有的特點是高 TPS,低手續費,完整的生態。雖然不少 Layer2 ZKEVM 主網還沒上線,但是已經和很多項目達成了合作。
Moonbeam 目前的狀態就很像一條 Layer2。它背靠 Polkadot,和大 DeFi 項目有合作,有完整的 DeFi 生態和跨鏈橋,但是缺少特色應用。下圖是 Moonbeam 的 TVL 圖。

Source: Defillama on 3/29/2022
因此完整的生態對於 Layer2 是不夠的,Layer2 還需要發掘出它的特色。
特色應用
能夠充分利用 Layer2 長處的特色應用將是 Layer2 之間競爭的關鍵。目前我們發現的是類似 dYdX 的交易所可以充分利用低手續費,高 TPS 。另一個有潛力的應用便是鏈遊,他們的需求與交易所類似,也是低手續費,高 TPS。
跨 Layer2 應用
Layer2 們共享同一個 Layer1,因此構建跨 Layer2 應用將安全的多。我們期待看見開發者利用這個特性,實現一些具有創新的應用。這些應用將不能被複制到跨鏈生態中,因為只有 Layer2 才共享同一個 Layer1。例如 Starkware 提出了聚合跨鏈流動性的構想,所有流動性存儲在 Layer1,但是可以在 Layer2 中進行使用。
開發組件
開發 ZK 應用是複雜的,開發者需要了解代數,證明系統,電路編寫和協議開發。因此他們需要一些合適的開發工具來加速開發,做適當的抽象,省去一些底層的開發。
除此之外,定製化 Layer2 也將在未來有絕佳的市場。這類型的開發框架可能類似 Cosmos SDK 和 Polkadot 的 Substrate。
當一個應用變得熱門,它不可避免的需要佔據更多的計算資源。為了降低手續費,它可以選擇做一條自己的鏈,遷移到 Layer2 和自己定製一條 Layer2.
Axie Infinity 便面臨著一樣的問題。在那個時候,Layer2 還不成熟,定製 Layer2 的成熟方法也根本不存在。因此 Axie Infinity 只能自己開發一條鏈,來自定義手續費。這帶來了幾個問題:
不能和以太坊共用生態
無法享受以太坊的流量
跨鏈橋安全性
在不遠的未來,遷移到 Layer2 或許是一個不錯的選擇,但是在 Layer2 開發終將面臨一樣的問題。應用並沒有完全的自主性,還是會面臨一些限制,所以最有前景的選擇是定製化做一條 Layer2。如果那時候跨 Layer2 非常的成熟,Layer2 和以太坊的交互也很方便,定製化的 Layer2 的使用體驗將無比絲滑。
與以太坊結合
Layer2 如何與 Layer1 結合也是一個有意思的方向。只有 Layer2 和 Layer1 良好結合,用戶才更容易從 Layer1 遷移到 Layer2。這包含了更好的資產橋和通訊協議。
不同的 VM
ZKEVM 是 ZKRU 的下一個里程碑。ZKEVM 分為三個級別:
語言級別:在這個級別,其實並不存在 ZKEVM 。我們有一個 ZK 友好的自定義 VM 和一個轉譯器。轉譯器將 Solidity 編寫的智能合約翻譯成這個自定義 VM 可以執行的形式。zkSync 和 Starkware 都採用這個形式。這個形式的好處是開發速度快,但是無法兼容 EVM 的所有功能。
字節碼級別:在這個級別我們有一個完全兼容的 ZKEVM 。我們的證明系統對於 EVM 非常友好。缺點是這一級別生成的狀態根和主網 EVM 的狀態根根式不一樣。Scroll 和 Hermez 正在實現這一級別的 ZKEVM ,預計在年底可以推出。
共識級別:共識級別的 ZKEVM 運行在主網上,這一級別的 ZKEVM 和 EVM 別無二樣。
除了 ZKEVM ,我們可能也會看到其他虛擬機,例如 ZKWASM 等。
Layer2 在其他鏈
zkLink 在 Solana 推出了 Groth16。ZKRU 在其他鏈上或許也有機會。ZKRU 可以賦予項目更大的自由,以及隱私性。對於企業來說,他們有必要保護客戶的隱私。因此 Layer2 也是讓這些企業上鍊的一個機會。
ZK 橋
目前大家都在努力實現一個無需信任的跨鏈橋,但所有的橋都需要相信第三方。雖然這些橋都要求參與者抵押資產,但我們很難具體計算作惡的成本和收益。ZK 可以應用在跨鏈橋中,用來生成交易證明。這樣我們就不需要相信預言機所傳遞的信息,只需要對證明進行驗證就好。目前 ZK 跨鏈橋的問題在於如何生成區塊的證明,而且擴展性堪憂。不同的鏈需要開發不同的電路來生成對應的區塊證明。
ZK 商業算法
商業算法廣泛出現在專業領域,例如線性求解器,GPT-3等。如果 ZK 始終維持著高入門門檻,開源便不能幫助其降低開發和維護成本,因為沒有人有能力來為其做貢獻。在這種情況下,便會出現 ZK 商業算法。目前大部分 ZK 從業者擁有 Ph.D. 學位。
定製化芯片
隨著更多的用戶流入 Layer2,Layer2 將捕獲更多的價值。礦工們也將進行軍備競賽,購買性能更強大的礦機。在以太坊的路線圖中,未來將集成 ZKEVM 。Filecoin 目前也投入了 ZK,礦工需要是生成證明。這也就是說礦工必須需要一枚可以快速生成零知識證明的芯片。
縱覽以太坊和比特幣礦機,一開始礦工們使用觸手可得的 CPU 和 GPU 進行挖礦。在這個階段,軟件開發者需要為算法適配硬件加速。在這之後 FPGA 出現了。FPGA 具有更好的能耗比,更強的性能,並且是可編程的。用戶可根據算法的不同,對 FPGA 進行編程,來適應算法。ASIC 最後出現,因為它的設計,量產需要更長的時間。ASIC 具有最好的能耗比,最強的性能,但是缺點是生產週期長,並且不具備可編程性。
未來是屬於 ASIC 還是 FPGA 將取決於這些 Layer2 會不會頻繁切換證明系統。每年都有更好的證明系統被開發出來。如果 Layer2 頻繁進行切換證明系統,只能適用於單一計算任務的 ASIC 將被迫不斷推出新產品,但同時 Layer2 切換證明系統也會帶來很多工程化上的問題,例如重新適配 ZKEVM。
遞歸
遞歸可以使區塊鏈有更小的體積。更小的體積意味著節點可以運行在低端設備中。這非常有利於去中心化。簡潔的特性使區塊鏈可以無副作用的提升 TPS。因此遞歸和簡潔將可以打破區塊鏈的不可能三角:安全性,去中心化和 TPS。
隱私
ZK 已經被用於很多隱私項目中。例如,Tornado Cash,Zcash,Dark Forest。保護隱私分為三個階段:
交易隱私:用戶可以隱藏他們的交易。
通用計算隱私:目前以太坊上的所有計算過程都是公開的。任何人都可以看到輸入,輸出,和狀態轉換。通用計算隱私將隱藏這些計算過程。
函數隱私:有時調用函數的名稱會洩露信息。例如,mint() 往往意味著鑄造代幣。函數隱私將隱藏函數的調用記錄。
目前隱私賽道的總市值約為 100 億美元,約佔整個加密貨幣市場的 0.45%。每日交易量約為 10 億美元。
Tornado Cash
Tornado Cash 是一個基於智能合約的隱私交易工具。它可以用來匿名轉賬,現在支持以太坊, BSC,Polygon,Optimism,Arbitrum,Gnosis 和 Avalanche。
存款,獲得憑證,提款。用戶就可以完成一筆隱私轉賬。在新版 Nova 中,用戶可以選擇任意的提取金額。ZK 用於生成提款憑證。
下圖展示了 Tornado Cash 的 TVL 和用戶增長。

Source: Dune on 3/28/2022

Source: Dune on 3/28/2022
下圖展示了 $TORN 的價格。$TORN 是 Tornado Cash 的治理憑證以及提供流動性的獎勵。

Source: Trading View 3/28/2022
Zcash
Zcash 是一個使用 ZK-SNARK 來實現隱私交易的區塊鏈。與基於智能合約的 Tornado Cash 不同,Zcash 使用了一條鏈來實現隱私。
下圖展示了 Zcash 鏈上每日交易量。

Source: Zcash Transactions Chart on 3/28/2022
下圖是 $Zcash 的價格走勢。

Source: Trading View 3/28/2022
Zecrey
Zecrey 是一個支持以太坊、Polygon、BSC、Near 和 Avalanche 的隱私支付應用。它處於保護隱私的第一層,交易隱私。Zecrey 提供一個瀏覽器錢包,用戶可以用它匿名轉賬,交易代幣。這些匿名性都由 Zecrey Layer2 保證。因此用戶需要先將錢存到 Zecrey Layer2 中才可以使用這些匿名功能。 Zecrey Layer2 是 ZKRU 基於 Plonk。Zecrey 還支持資產跨鏈。目前 Zecrey 每日交易量大約為 10 筆(數據來自區塊瀏覽器)。

Source: Zecrey
Suterusu
Suterusu 是一個支持以太坊、BSC、Fantom 和 Polygon 的隱私支付應用。它使用 Layer2 來保護用戶的交易隱私。它還有一個跨鏈橋,可以在以太坊和 BSC 之間轉移 $SUTER。未來它計劃推出 NFT 匿名轉賬以及匿名拍賣。Suterus 採用 ZK-ConSnark,這種算法不需要信任設置。
Suterusu 共有 15k 用戶以及 24k 筆轉入。目前用戶增速非常緩慢。Suterusu 的市值大約 1000 萬美金。

Source: Suterusu
Dark Forest
Dark Forest 是一款多人網絡遊戲。玩家需要佔領更多的星球,獲得更多的資源。玩家可以向其他星球輸送能量來佔領它們。星球的位置是保密的。玩家需要利用哈希碰撞自己找到這些星球。ZK 被用來證明與位置有關的操作:
行星初始化
行星資源的轉移
在 Dark Forest v0.6 第一輪中,有 1700 名玩家參加。其中 700 人得到了進入下一輪的機會。在第一輪中,玩家們一共提交了 200 萬筆交易,花費了大約 1.5 萬億 Gas。假設它是在以太坊上,Gas Price 是 80,那麼這些玩家的手續費總共是 120 ETH。
Stealth Airdrop
Stealth Airdrop 允許用戶匿名地領取空投。用戶首先使用他們滿足空投領取條件的錢包來生成零知識證明,接著他們可以用其他錢包和這份證明來獲得空投代幣。
Stealth Airdrop 代表了 ZK 在治理方面的運用。在現實世界的治理中,我們也廣泛應用匿名這個特性。例如在投票中,如果你發現有影響力的人物都投了贊成票,你也會受其影響,更有可能投出贊成票。因此匿名投票可以幫助用戶獨立投票。
在 2021 年,以太坊基金會對於 ZK 的資助主要集中在 ZKEVM 和治理方面。以太坊基金會主要資助了兩個項目,其中一個就致力於解決投票賄賂問題。
A16Z 也實現了類似的東西 a16z/zkp-merkle-airdrop-contract。
zkProof of Buffiness
這個項目在 ETHDanver 上發佈。用戶可以生成 ZK 證明來展示他們擁有一個 Buffiness,而不透露他們的個人身份信息。這是 ZK 在身份認證相關的應用。

Source: zkPoB
總結
隱私市場較小。隱私項目很早就出現了。Zcash 始於2016 年。然而,整個隱私市場只佔加密貨幣市場的 0.45%。起步晚的 Layer2 也遠超隱私市場。
將會受益於更高的隱私標準。在不犧牲易用性的情況下,用戶會追求更好的隱私保護。特別是在手機行業,谷歌和蘋果正在推動更嚴格的隱私標準。歐盟也提出保護消費者隱私的法規。像 Let's Encrypt 這樣提供 SSL 證書的基礎設施公司更嚴格的意思標準中受益。在未來,當 ZK 因為更好的隱私保護而會被這些巨頭公司採用時,ZK 基礎設施將有巨大的機會。
ZK 是金融機構入駐的必備條件。一些機構在嘗試上鍊,他們有責任保護好客戶的隱私。因此 ZK 在這個場景下將成為區塊鏈的標配,來提供隱私功能。
有利於 DAO 治理和身份。匿名在民主治理有著重要應用。ZK 可以實現匿名投票,讓投票者獨立思考,不被他人的決定所幹擾。身份驗證也可以從 ZK 中受益。用戶可以在不顯示其實際地址的情況下展示其資產。
忽略 ZK,專注於產品的易用性。ZK 可以更好地保護隱私,但一個產品並不全是 ZK。ZK 是一種技術,我們更需要強調產品的易用性。通常,更好的隱私保護並不意味著易用性,但易用性是最關鍵的。因此,要更加關注易用性、市場和團隊。
另一個有趣的項目
ZKRepel
ZKRepel 在 GR13 中成功母子 5000 萬美金。ZKRepel 是要給在線 Playground,開發者可以快速體驗如何編寫電路,並生成證明。ZKRepel 比較像早期的 Remix。
大環境上,我們看到了從本地開發到雲開發的範式轉變。在這之中有一些著名的產品,如Codesandbox,Codepen,Codespaces。有了這些產品,開發人員可以在任何地方任何時間使用他們的開發環境。開發者也可以快速建立新的開發環境。Github 提出面對日益複雜的軟件開發,開發環境作為基礎設施是必不可少的。Github 內部開發環境已經遷移到了自家的 Codespaces。
目前沒有關於 ZK 開發者數據的明確統計。從 Github 上的數據來看,ZK 開發者比 Solidity 開發者少了 500 多倍。

Source: ZKRepel
更多的 ZK 項目

Source: How to fund your ZK Project?
以下項目專門自主或者投資 ZK 項目。
ZKTech Gitcoin Grants: 第一輪中為 19 個項目中匹配了 10 萬美元。
0xPARC Grants:支持以太坊和其他去中心化平臺在應用層面的創新。
zkDAO:由 zkSync 和 BitDAO 支持的新推出的 2 億美元基金,以支持 zkSync 生態。2 億美元中的 7.5% 將用於Grants。
Polygon ZK基金
Aztec Grants:目前的重點是跨鏈橋、工具和分析。
Harmony ZK 基金:專注於 ZK 和隱私研究的 1000 萬美元基金。
ZK Validator::專注於 ZK 的基金。過往投資有 Aztec, Penumbra, Ironfish, Anoma, zkSync, Aleo, Diversfi。
Aleo 推出的 ZPrice
Nil Foundation:致力於數據庫和密碼學方面的項目。
總結
ZK 的前景是美好的,它可以讓一些過去不可能的事情變成現實。近年來,ZK 領域發生了很多突破性的進展,例如更強的性能、可升級性和不需要信任初始化。這些改進都將 ZK 推向了應用階段。因此,如果我們要看到一個新的 ZK 證明系統,我們可以從以下維度進行評判:
一筆交易和十筆交易的證明時間
一筆交易和十筆交易的驗證時間
一筆交易和十筆交易打包後的證明大小
可信初始化
參考字符串長度
CRS 支持
SRS 支持
遞歸證明支持
能否抵抗量子計算機
安全性基於任何密碼學假設
ZKEVM 是 ZKRU 的下一個里程碑,ZKEVM 有三個階段:
共識級
字節碼級
語言級
ZKRU 剛剛進入應用階段,生態並不完善。開發者們還沒有發掘出 ZK 的所有潛力。人們仍不斷從這些前沿理論中得到啟發,以下是值得關注的方向:
充分利用高 TPS 和低手續費的應用程序
Layer2 之間的通信協議/應用程序
聚合流動性
開發工具/框架
基於雲的開發工具
具有獨特功能的跨 Layer2 Layer1 應用程序
不同的 ZKVM
ZK 橋
在其他鏈上應用 ZK
擁有遞歸功能的 Layer2
ZK 在 DAO 和社區治理中的應用
商業化 ZK 算法
芯片和雲計算
ZK 的應用聚焦在兩個方面:Rollup 和隱私。Rollup 比隱私有更好的前景。隱私在某種程度上和區塊鏈的開放精神相違背。另外,隱私可能有合規問題。在 Web2 時代,我們沒有看到隱私應用程序達到龍頭的位置。所有應用的隱私保護水平在不斷提高,但龍頭應用往往不是主打隱私的引用,而是易用性最強的應用。隱私是有代價的,大多數情況下犧牲了用戶最關心的易用性。
當我們看 ZK 隱私項目時,以下幾點較為重要:
ZK 只是技術,我們要專注產品力和團隊
ZK 是個複雜的技術,會拖慢開發進度
ZK 有利於 DAO 治理和身份認證
ZK 是機構上鍊的必備技術
歡迎加入深潮 TechFlow 官方社群
Telegram 訂閱群:https://t.me/TechFlowDaily
Twitter 官方帳號:https://x.com/TechFlowPost
Twitter 英文帳號:https://x.com/BlockFlow_News














