“實時證明”,真正去中心化的前置環節。

作者:夫如何

原創: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。

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

上圖為目前比較主流的 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 星球日報對該板塊項目進行整理,板塊專案較少,其中 CysicIngopediaSupranationalUlvantanna  以及 Auradine  為目前較為知名的專案。

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

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