零知識證明技術應用越來越廣,隱私證明,計算證明,共識證明等等。在尋找更多更好的應用場景的同時,很多人逐步發現零知識證明證明性能是個瓶頸。Trapdoor Tech 團隊從 2019 年開始深入研究零知識證明技術,并一直探索高效的零知識證明加速方案。GPU 或者 FPGA 是目前市面上比較常見的加速平臺。本文從 MSM 的計算入手,分析 FPGA 和 GPU 加速零知識證明計算的優缺點。
ZKP 是擁有未來廣泛前景的技術。越來越多的應用開始采用零知識證明技術。但 ZKP 算法比較多,各種項目使用不同的 ZKP 算法。同時,ZKP 證明的計算性能比較差。本文詳細分析了 MSM 算法,橢圓曲線點加算法,蒙哥馬利乘法算法等等,并對比了 GPU 和 FPGA 在 BLS 12 _ 381 曲線點加的性能差別。總的來說,在 ZKP 證明計算方面,短期 GPU 優勢比較明顯,Throughput 高,性價比高,具有可編程性等等。FPGA 相對來說,功耗有一定的優勢。長期看,有可能出現適合 ZKP 計算的 FPGA 芯片,也可能為 ZKP 定制的 ASIC 芯片。
ZKP 是個零知識證明技術的統稱(Zero Knowledge Proof)。主要由兩種分類:zk-SNARK 以及 zk-STARK。zk-SNARK 目前常見的算法是 Groth 16 ,PLONK,PLOOKUP,Marlin 和 Halo/Halo 2 。zk-SNARK 算法的迭代主要是沿著兩條方向: 1/ 是否需要 trusted setup 2/ 電路結構的性能。zk-STARK 算法的優勢是毋需 trusted setup,但是驗證計算量是對數線性的。
Mark Cuban:Ripple在XRP訴訟中明確表示并非所有買家都是投資者:金色財經報道,推特用戶MackAttackXRP在社交媒體中稱,Mark Cuban表示,Ripple在XRP訴訟中明確表示并非所有買家都是投資者。Mark Cuban強調了瑞波幣的影響力,消除了“每個加密貨幣買家都應該被貼上投資者標簽”的觀念。[2023/7/24 15:54:55]
就 zk-SNARK/zk-STARK 算法的應用來看,不同項目使用的零知識證明算法相對分散。zk-SNARK 算法應用中,因為 PLONK/Halo 2 算法是 universal(無需 trusted setup),應用可能越來越多。
以 PLONK 算法為例,剖析一下 PLONK 證明的計算量。
PLONK 證明部分的計算量由四部分組成:
1/ MSM - Multiple Scalar Multiplication。MSM 經常用來計算多項式承諾。
2/ NTT 計算 - 多項式在點值和系數表示之間變換。
3/ Polynomial 計算 - 多項式加減乘除。多項式求值(Evaluation)等等。
Jump Trading某地址昨晚轉出32.4萬ETH,還持有131萬枚:金色財經報道,據推特用戶余燼監測,Jump Trading旗下持有大量ETH的地址昨晚轉出了32.4萬ETH(約5.93億美元)。該地址自去年9月最高持有205萬枚ETH以來,就一直在流出,目前持倉已下降為131萬枚ETH,而最近一次轉出為今年2月11日轉出11萬枚ETH。[2023/5/27 9:46:15]
4/ Circuit Synthesize - 電路綜合。這部分的計算和電路的規模 / 復雜度有關。
Circuit Synthesize 部分的計算量一般來說判斷和循環邏輯比較多,并行度比較低,更適合 CPU 計算。通常來講,零知識證明加速一般指的是前三部分的計算加速。其中,MSM 的計算量相對來說最大,NTT 次之。
MSM(Multiple Scalar Multiplication)指的是給定一系列的橢圓曲線上的點和標量,計算出這些點加的結果對應的點。
比如說,給定一個橢圓曲線上的一系列的點:
Given a fixed set of Elliptic curve points from one specified curve:
[G_ 1, G_ 2, G_ 3, ..., G_n]
報告:GUSD資產儲備5.62億美元,債券以短期為主:4月5日消息,美國合規交易平臺Gemini發布了旗下穩定幣Gemini dollar (GUSD) 透明度報告。報告顯示,GUSD由現金和現金等價物以1:1的比例支持,資產儲備包括國庫債券、政府貨幣市場基金和現金存款,分別為2.34億美元、5060萬美元以及2.79億美元,總資產價值5.62億美元;其中國庫債券是短期債券,為了在當前利率環境下最大限度地降低投資組合的“久期風險”,未來將把單個T-Bill頭寸限制在三個月內。[2023/4/5 13:46:38]
以及隨機的系數:
and a randomly sampled finite field elements from specified scalar field:
[s_ 1, s_ 2, s_ 3, ..., s_n]
MSM is the calculation to get the Elliptic curve point Q:
Q = \sum_{i= 1 }^{n}s_i*G_i
行業普遍采用 Pippenger 算法對 MSM 計算進行優化。深入看看 Pippenger 算法的過程的示意圖:
研究:政府對Meta公司用戶數據最感興趣:金色財經報道,Meta、蘋果、谷歌和微軟經常被指控收集和出售其用戶的個人數據。根據Surfshark 的一項新研究表明,全球政府對此類個人用戶數據的請求正在增加。該研究的重點是從 2013 年到 2021 年的時間段,其中 2020 年同比增長 38% 最為突出,其次是 2021 年增長 25%。
Meta、微軟、蘋果和谷歌是調查期間考慮的四家大型科技公司,其中 Meta 是政府當局最感興趣的賬戶。Meta 托管的五個帳戶中有兩個在研究期間被請求 (660 萬)。 60% 的請求來自美國和歐洲當局。美國要求每 100,000 名用戶的帳戶數量是歐盟所有國家加起來的兩倍多。[2023/3/30 13:35:42]
Pippenger 算法的計算過程分成兩步:
1/ Scalar 切分為 Windows。如果 Scalar 是 256 bits,并且一個 Window 是 8 bits,則所有的 Scalar 切分為 256/8 = 32 個 Window。每一層的 Window,采用一個「Buckets」臨時存放中間結果。GW_x 就是一層上的累加結果的點。計算 GW_x 也比較簡單,依次遍歷一層中的每個 Scalar,根據 Scalar 這層的值作為 Index,將對應的 G_x 加到相應的 Buckets 的位上。其實原理也比較簡單,如果兩個點加的系數相同,則先將兩個點相加后再做一次 Scalar 加,而不需要兩個點做兩次 Scalar 加后再累加。
Aptos生態錢包Martian集成Twitter,支持發送代幣和NFT:2月2日消息,Aptos生態錢包Martian發推宣布集成Twitter,用戶可以通過Twitter在Aptos網絡上發送代幣和NFT,并將在Twitter上推出NFT購買和列表服務。Aptos NFT項目或DAO可以在Twitter上開展活動,并直接使用Martin錢包支持的代幣或NFT來獎勵社區。[2023/2/2 11:42:41]
2/ 每個 Window 計算出來的點,再通過 double-add 的方式進行累加,從而得到最后的結果。
Pippenger 算法也有很多變形優化算法。不管怎么說,MSM 算法的底層計算就是橢圓曲線上的點加。不同的優化算法,對應不同的點加個數。
你可以從這個網站看看具有「short Weierstrass」形式的橢圓曲線上點加的各種算法。
http://www.hyperelliptic.org/EFD/g 1 p/auto-shortw-jacobian-0.html#addition-madd-2007-bl
假設兩個點的 Projective 坐標分別為(x 1, y 1, z 1) 和 (x 2, y 2, z 2) ,則通過如下的計算公式可以計算出點加的結果 (x 3, y 3, z 3)。
詳細給出計算過程的原因是想表明整個計算過程絕大部分是整數運算。整數的位寬取決于橢圓曲線的參數。給出一些常見的橢圓曲線的位寬:
BN 256 - 256 bits
BLS 12 _ 381 - 381 bits
BLS 12 _ 377 - 377 bits
特別注意的是,這些整數運算是在模域上的運算。模加 / 模減相對來說簡單,重點看看模乘的原理和實現。
給定模域上的兩個值:x 和 y。模乘計算指的是 x*y mod p。注意這些整數的位寬是橢圓曲線的位寬。模乘的經典算法是蒙哥馬利乘法(Montgomery Muliplication)。在進行蒙哥馬利乘法之前,被乘數需要轉化為蒙哥馬利表示:
蒙哥馬利乘法計算公式如下:
蒙哥馬利乘法實現算法又有很多:CIOS (Coarsely Integrated Operand Scanning),FIOS(Finely Integrated Operand Scanning),以及 FIPS(Finely Integrated Product Scanning)等等。本文不深入介紹各種算法實現的細節,感興趣的讀者可以自行研究。
為了對比 FPGA 以及 GPU 的本身的性能差別,選擇最基本的算法實現方法:
簡單的說,模乘算法可以進一步分成兩種計算:大數乘法和大數加法。理解了 MSM 的計算邏輯的基礎上,可以選擇模乘的性能(Throughput)來對比 FPGA 和 GPU 的性能。
在這樣的 FPGA 設計下,可以估算出整個 VU 9 P 能提供的在 BLS 12 _ 381 橢圓曲線點加 Throughput。一個點加(add_mix 方式)大約需要 12 個模乘。FPGA 的系統時鐘為 450 M。
在同樣的模乘 / 模加算法下,采用同樣的點加算法,Nvidia 3090 的點加 Troughput(考慮到數據傳輸因素)超過 500 M/s。當然,整個計算涉及到多種算法,可能存在某些算法適合 FPGA,有些算法適合 GPU。采用一樣的算法對比的原因,想對比 FPGA 和 GPU 的核心計算能力。
基于上述的結果,總結一下 GPU 和 FPGA 在 ZKP 證明性能方面的比較:
越來越多的應用開始采用零知識證明技術。但 ZKP 算法比較多,各種項目使用不同的 ZKP 算法。從我們的實踐工程經驗來看,FPGA 是個選項,但是目前 GPU 是個性價比高選項。FPGA 偏好確定性計算,有 latency 以及功耗的優勢。GPU 可編程性高,有相對成熟的高性能計算的框架,開發迭代周期短,偏好需要 throughput 場景。
IOSG Ventures
企業專欄
閱讀更多
金色財經
SevenUp DAO
金色圖覽
LK Venture
金色薦讀
區塊律動BlockBeats
文章作者:JOEL JOHN、SAURABH 文章編譯:Block unicorn我一直在閱讀雅各布·布朗諾斯基的《人的升華》.
1900/1/1 0:00:00Opside 是一個去中心化的ZK-RaaS (ZK-Rollup as a Service)平臺,也是業內領先的ZKP(零知識證明)挖礦網絡.
1900/1/1 0:00:00作者:Paul Veradittakit, Pantera Capital合伙人;翻譯:金色財經xiaozouEigenLayer正在建設一種稱為restaking.
1900/1/1 0:00:00作者:Scaling Labs 比特幣不僅僅是加密貨幣 在加密貨幣領域中,比特幣(BTC)被廣泛認知為最大且最安全的區塊鏈.
1900/1/1 0:00:002023年6月6日,美國SEC對幣安和趙長鵬提出起訴,隨后幣安官方對美國SEC的起訴作出了回應.
1900/1/1 0:00:00作者:Shuyao 來源:IOSG我花了一個月時間參與 Vitalik 的社會學實驗,你所了解的Zuzalu,不一定都是事實。比起海邊的加密會議,Zuzalu 更像是一個古希臘城市.
1900/1/1 0:00:00