天天看點

Vitalik提及的ZK實時證明,可依靠ZK硬體加速實作?

作者:MarsBit

原文作者:夫如何

原文來源:Odaily星球日報

2024 香港 Web3 嘉年華期間,以太坊聯合創始人 Vitalik Buterin 發表演講《Reaching the Limits of Protocol Design》。在本次演講中,Vitalik 就如何提高 zk-snark 的效率展開闡述。

在演講中,Vitalik 指出目前區塊鍊的發展是以犧牲隐私性和可擴充性為前提的,zk-snark 所具備的屬性能夠對犧牲的隐私性和可擴充性進行補救。但目前 zk-snark 效率較低,在以太坊中,以太坊節點驗證一個區塊所需時間,約為 400 毫秒,而 zk-snark 驗證一個以太坊區塊的時間約為 20 分鐘,這導緻網絡雖然具備隐私性和可擴充性,但運作時間卻延長 3000 倍。是以想将 zk-snark 運作到現有區塊鍊網絡中,需要提供一種“實時證明”,如果證明生成時間降低,那麼在保證區塊鍊運作速度的同時,也能提升隐私性和可擴充性。

什麼方法能夠實作“實時證明”?為此Odaily星球日報将根據 Vitalik 在演講中所提供的思路進行解析,并對相應方案的項目進行簡短介紹。

zk-snark 實作“實時證明”的三個方向

在此之前,先科普一下 zk-snark,zk-snark 全稱為簡潔的非互動式零知識證明,為了更好的了解,我們分開解釋:

  • 零知識證明:即證明者(Prover)能夠在不向驗證者(Verifier)提供任何有用的資訊的情況下,使驗證者相信某個論斷是正确的。
  • 簡潔的:指交易驗證過程不涉及大量資料傳輸,且驗證算法簡單。
  • 非互動的:證明者與驗證者之間無需進行互動。

以下是 zk-snark 的運作流程圖。從圖中對 zk-snark 進行簡單解讀:

  1. 利用 Setup,使用随機數生成置信參數 F,生成證明密鑰 pk 和驗證密鑰 v
  2. 證明者輸入隐私輸入 W 和公開輸入 x,生成證明 π,并用私鑰 pk 簽名。π 通過橢圓曲線加密,隐藏了 W
  3. 驗證者驗證證明: 驗證者持有 v,輸入 x 和 π,确認證明者知道 W。驗證者無法得知 W
  4. 結果傳回: 如果驗證成功,則傳回 TRUE;否則傳回 FALSE。
Vitalik提及的ZK實時證明,可依靠ZK硬體加速實作?

通過上述以 Zcash 的 zk-snark 相關流程介紹,不難發現,zk-snark 在驗證證明時,所産生的步驟别不多,同時根據 zk-snark 的特性來看,驗證所耗時間并不多,根據相應的 zk-snark 相關統計,驗證證明時間一般不超過 80 毫秒,那麼影響 zk-snark 成為公鍊的運作阻礙的原因在于證明者提供的證明。

Vitalik提及的ZK實時證明,可依靠ZK硬體加速實作?

上圖為目前比較主流的 zk-snark 相關技術的彙總,從中不難發現,證明的大小、證明生成時間,驗證時間是衡量有關 zk-snark 技術的标準。抛開驗證時間來看,大多數 zk-snark 的證明無論從證明大小和生成時間來看,都與本文起始部分,Vitalik 用以太坊為例的标準不符,值得注意的是,上述大多數技術的所在公鍊并不具備智能合約的功能,也無法與以太坊區塊大小相提并論,所需證明尺寸和證明生成時間要求更高。

為此,Vitalik 在本次演講中對 zk-snark“實時證明”的實作,提供三個解決優化方向。

  • 并行化和聚合:通過并行計算和證明聚合,提高驗證大塊區塊的效率。每個計算步驟都可以進行獨立證明,然後将這些證明進行聚合,減少驗證過程中的計算時間和資源消耗。這可以通過利用并行計算和分布式系統的特性來實作,以加速大規模區塊的驗證過程。
  • 硬體設計改進:設計專門用于 SNARK 計算的 ASIC,以提高計算效率。類似于挖礦中使用的 ASIC,SNARK ASIC 可以通過定制化的硬體結構和優化的算法來加速 SNARK 計算過程,進而實作更快的驗證速度和更低的成本。
  • 算法改進:進一步優化 snark 算法,包括 Groth 16、查找表、 64 位 snark、 32 位 stark 等,以提高算法的效率和可擴充性。此外,還可以研究開發更加高效的哈希函數和簽名算法,使其更适合于 snark 的計算,進一步提高驗證速度和資源使用率。

Vitalik 提倡第一個解決方向——并行計算和證明聚合,需要對相關公鍊和 zk-snark 運作流程進行優化,例如此前 zk-snark 算法中 Plonk 算法的遞歸屬性,不過并行計算和證明聚合目前并未有更好的解決方案可以解決相應問題。

至于算法改進,目前在 zk-snark 領域,從性能上來看,主流依舊是 Groth 16 算法,随後出現的 zk-snark 算法多是為解決可信設定問題,在運作速度和證明生成時間上并無更多進展,并且 zk-snark 算法中,可信設定約簡單,運作速度越快,但安全性也越差。為此以安全性為前提,zk-snark 提升速度還需持續建設。

上述兩個解決方向主要以理論為支撐,這需要很長時間才能有所突破,那抛開理論,能否通過其他方式快速實作“實時證明”嗎?硬體設計改進或許是達成目标的最佳捷徑。

ZK 硬體加速或能盡快實作“實時證明”

從前文關于 zk-snark 性能的内容中,不難發現,真正限制 zk-snark 性能在于證明的生成,其中證明大小和電路規模決定證明生成時間。目前,大多數項目的複雜度越來越高,其證明大小和電路規模也在不斷提升,生成證明的算力也在不斷增加,為此 ZK 硬體加速項目應運而生。

ZK 硬體加速主要在證明生成中的多項式類型 NTT 任務和橢圓曲線 MSM 任務提供算力支援,主要這兩項任務的運作邏輯簡單,且大部分計算邏輯重複,并且可以進行可并行計算。

ZK 硬體和挖礦硬體相差不大,依舊是 GPU、FPGA 以及 ASIC 三種。不過 ZK 硬體加速領域目前比較常見的是 GPU/FPGA 方案,該方案比較容易實作,相關配件更易擷取,不過相比于前兩者,ASIC 潛力更大,也是 ZK 硬體加速領域目前增長點之一。

目前 ZK 硬體加速項目采用兩種方式為相關 ZK 項目提供算力服務,包括硬體出售和 SaaS 算力服務。硬體出售顧名思義,和比特大陸一樣出售礦機;SaaS 算力服務,更像提供一個算力市場,ZK 項目可以在市場上購買算力來幫助項目生成 ZK 證明。

目前 ZK 硬體加速領域比較小衆,若不是 Vitalik 在演講中提到,想必大多數人并不太清楚有哪些項目存在。為此Odaily星球日報對該闆塊項目進行整理,闆塊項目較少,其中Cysic、Ingopedia、Supranational、Ulvantanna以及Auradine為目前較為知名的項目。

其中 Cysic 目前關注度較高,其推出 FPGA/ASIC 硬體加速在算力性能上較為突出,同時還有算力市場為客戶提供算力支援服務;Auradine 比較綜合,其主推的是比特币礦機,同時提供相應 ZK 算力硬體,不過 ZK 硬體并不是其主打産品;Ulvantanna 主打利用 FPGA 叢集為 ZK 項目提供算力支援,值得一提的是,Web3知名資本 Paradigm 是其投資者;Supranational 項目比較奇特,推特和官網的更新截止在去年 5 月,不确定目前是否運作;Ingopedia 提供基于 GPU 和 FPGA 兩種硬體加速服務。