詳解zk-SNARKs 在Filecoin 網絡中的應用

zk-SNARKs 為一方提供了向另一方證明他們知道秘密而不洩露秘密本身的能力,允許與區塊鏈中未知和不受信任的各方進行安全、私密的交互。

撰文:大有IPFS 研究院

zk-SNARKs(零知識簡潔非交互式知識論證),為一方提供了向另一方證明他們知道秘密而不洩露秘密本身的能力。 zk-SNARKs 允許與區塊鏈中未知和不受信任的各方進行安全、私密的交互。

**Filecoin 網絡目前每天生成600 - 700 萬個zk-SNARK 證明,每個證明包含超過1 億個算術約束。 **為了實現這一目標,我們—— 協議實驗室改進並大量優化了現有的snark 生成工具,使其能夠擴展以滿足我們前所未有的需求。

**Filecoin 是迄今為止最大的zk-SNARK 網絡。 **

幾個方面:

  • Filecoin 的可信設置支持高達2^27 = ~134M 約束的電路。
  • Filecoin 的大型單個電路有> 100M 的限制。
  • 為了滿足Filecoin 的安全要求,一些證明將多達10 個單獨的zk- snark 捆綁成一個大的證明。
  • Filecoin 還擴展並部署了對zk-SNARK 聚合的研究,以允許將數千個單獨的證明壓縮為單個證明。

所有這些都有助於Filecoin 證明生產中更多信息的能力。

Tau 的力量與建立信任

為了支持Filecoin 所需的限制數量,我們運行了一個新的Tau 權力儀式,在Zcash 運行的儀式上增加了64 倍的支持數量。這使我們能夠生成超過1 億個約束的證明,僅受分佈的參數大小的限制。

為了支持我們的大型電路的第二階段( 特定電路) 可信設置,我們實現了一些技術,以顯著減少RAM 使用,允許並行性,並減少I/O 開銷- 以便允許使用實用硬件的各方在儀式舉行的7 週內參與。

使用基於GPU 的證明程序

zk- snark 的生成很快成為瓶頸,因此昂貴的部分是使用OpenCL 和CUDA 在GPU 上實現的。由於支持證明生成的核心操作具有高度並行性,因此我們利用現代通用GPU 計算將其從CPU 中卸載。

**這允許更高的吞吐量,同時也創造了經濟效率。 **通過將可並行工作轉移到相對便宜的並行處理器上,我們可以為用於創建數據挖掘者的高順序和內存密集型工作保持主內存和CPU 空閒。

低電平域算法是生成和驗證zk- snark 時執行的大多數操作的基礎。 **blst 庫在彙編和C 語言中實現了關鍵部分,以從CPU 中獲得最後的性能。 **為了確保這些優化不會損害安全性,該代碼( 甚至彙編語言!) 正在由Galois 進行正式驗證。

更強大的批量驗證

為了提高多個zk- snark 的驗證速度,實現了批量驗證。這是Zcash 規範附錄B2 中描述的一種技術,但尚未使用。這允許減少需要執行的Miller 循環( 驗證過程中最昂貴的操作) 的數量,從而在一次查看多個驗證時大大減少。

儘管批處理驗證有幫助,但我們需要更快的驗證,所以我們實現了SnarkPack。這允許我們將許多zk- snark 聚合到一個組合證明中。 **這種優化不僅在規模上將驗證時間減少了10 倍以上,而且還通過減少必須提交給鏈的每個證明的平均字節數來減少鏈帶寬。 **

為了實現這一點,我們在內部產品論證的基礎上進行了研究,並與作者合作擴展了它,以支持我們的需求,而不需要新的可信設置。我們通過使用兩個現有的power of Tau 可信設置來調整技術以安全地應用,從而實現了這一點。 **這是一個很好的例子,說明我們在歷史上必須克服障礙,以實現突破性的規模。 **

大有IPFS 研究院將持續關注圍繞Filecoin 項目的最新消息。

無論您是新手還是資深從業者,大有IPFS 研究院將為您提供創新的觀點和深入的分析。我們秉承開放、包容的精神,歡迎您的加入,共同學習和成長。

查看原文
本頁面內容僅供參考,非招攬或要約,也不提供投資、稅務或法律諮詢。詳見聲明了解更多風險披露。
  • 讚賞
  • 留言
  • 分享
留言
0/400
暫無留言
交易,隨時隨地
qrCode
掃碼下載 Gate.io APP
社群列表
繁體中文
  • 简体中文
  • English
  • Tiếng Việt
  • 繁體中文
  • Español
  • Русский
  • Français (Afrique)
  • Português (Portugal)
  • ไทย
  • Indonesia
  • 日本語
  • بالعربية
  • Українська
  • Português (Brasil)