Paradigm研究:零知識證明挖礦將成下一片藍海


撰文:Georgios Konstantopoulos,Paradigm研究合夥人

編譯:Amber

簡介

零知識密碼學是計算機科學領域在近50年間最引人注目的創新之一。 零知識證明(以下簡稱ZKPs)的一系列「先天優勢」使其成為了各種區塊鏈擴容和隱私解決方案的重要組成部分,包括像StarkNet這樣的ZK rollups,像Aztec這樣的隱私ZK rollups,以及像Mina、Filecoin和Aleo這樣的一層公鏈等等,都應用了該科技。

雖然受制於龐大的數學計算需求量導致ZKPs的生產速度緩慢且昂貴。 但隨著以現場可程式設計陣列(以下簡稱FPGA)和專用集成電路(以下簡稱ASIC)為代表的特殊硬體的普及和落地,ZKPs的效率將得以大幅提升,提升幅度甚至可能達到1000倍之多。

隨著個性化且高性能的隱私計算需求日益增長,使用ZKPs證明的語句複雜性將進一步新增。 囙此也只能通過使用專門的硬體來避免證明生成速度進一步下降,以便更及時地生成證明結果。

這意味著這個「產業鏈」將迎來變革,就像那些服務於比特幣網絡的礦工一樣,這些為了支持ZKPs高效運行的特殊硬體操作者將得到相應的補償,一個完整的ZK挖礦和證明行業將就此出現。 業餘愛好者們可以在他們自己的CPU上生成證明,亦或是使用GPU以及FPGA。 當然這個完整鏈條的成熟還需要相當一段時間的演變。

零知識證明為什麼重要?

零知識證明有兩個主要的用例:

1、外包可驗證的計算

假設你有一些計算需求,由於你所使用的平臺(如你的筆記型電腦、樹莓派甚至乙太坊等)的限制,完成這些計算的時間成本過於昂貴甚至由於算力不足根本無法完成。 這時候你就必須依靠協力廠商服務來運行該計算,一般來說,這些服務都可以快速且平價地返回給你該計算的輸出(例如AWS的Lambda函數或像Chainlink這樣的Oracle服務等)。

但是,通常情况下你只能默認計算已經被正確執行,而一旦算力提供方輸出了一個錯誤或者無效的計算結果,這就可能會造成災難性的後果。

ZKPs的價值就體現在其允許協力廠商提供者也輸出一個計算完整性的證明,保證你收到的輸出是正確的。

2、隱私計算

如果你有一個計算需求在本地運行並不昂貴,但你想隱藏它的一部分,怎麼辦? 例如,如果我想讓你知道我知道第1000個斐波那契數,但不告訴你這個數位,或者讓你相信我已經支付了一筆錢,但不向你透露金額或我的身份,怎麼辦?

ZKPs就可以讓你有選擇地隱藏計算語句相關的部分或全部輸入內容。

上述兩個用例都已經以很多種形式體現在加密貨幣行業的方方面面。

二層擴展:可驗證的計算與ZKPs允許一層公鏈將交易處理外包給鏈外高性能系統(又稱二層)。 這使得區塊鏈可以在安全性不受影響的前提下進行擴展。 舉例來說,StarkWare正在建立一個可擴展的智慧合約平臺,StarkNet,其中就使用了一個用於特殊用途的虛擬機器,運行ZK友好的程式碼。 而Aztec的二層應用支持隱私運行,不會洩露用戶交易的任何資訊。

隱私公鏈:像Aleo、Mina和Zcash這樣的一層公鏈允許交易人使用ZKPs來隱藏發送者、接收者或金額等資訊,可以是默認的(Aleo),也可以是選擇加入(Mina和Zcash)。

去中心化的存儲:Filecoin使用ZKPs(在GPU上運行)來證明網絡中的節點正確存儲數據。

區塊鏈壓縮:Mina和Celo使用ZKPs將同步到鏈的最新狀態所需的區塊鏈資料壓縮成一個小證明。

鑒於上述情况,可以說,隨著加密貨幣採用率的提高,ZKPs的市場需求也會同步增長,以適應用戶對效能和隱私的需求新增。

ZKPs從根本上為可擴展的私人支付以及智慧合約平臺的加速發展提供了可能,但是其高昂的計算成本在一定程度上限制了其大規模採用的行程。

ZKPs為什麼會很慢,我們要如何讓其快起來?

基於ZKPs證明一個計算首先需要將其從經典描述「翻譯」成ZK友好的格式。 這可以通過手動重寫程式碼來完成,以使用像Arkworks這樣的低級庫,或者使用像Cairo或Circom這樣的專用語言將其編譯成原語來生成證明。

更昂貴和複雜的操作會導致需要花費更長的證明生成時間。 此外一些對ZK不友好(例如SHA等)操作也會導致在普通電腦上的證明生成時間會變得非常長,而這種情況時常發生。

一旦你的計算變成了ZK友好的形式,你就能選擇一些輸入並將其發送到一個證明系統。 比如以其論文作者的名字命名的Groth16、GM17,或是名字更具創意的PLONK、Spartan以及STARK等。 這些證明系統都接受以ZK友好格式表達的計算。 根據不同的證明系統,證明的生成過程可能有所不同,但瓶頸實際上存在共性,即:

大數向量的乘法,特別是變基和定基多標度乘法(以下簡稱MSM); 或者

快速傅裡葉變換(以下簡稱FFT)和反FFT(儘管有無FFT證明系統的科技)。

在同時存在FFT和MSM的系統中,生成證明的時間中大概70%會花在MSM上,剩下的時間則用於FTT計算。 MSM和FFT都很慢,但也並非毫無優化的可能。 先看問題:

對於MSM來說,可以通過在多執行緒運行來進行加速。 然而,即使在數百個內核上,如果每個元素向量達到2的25次方個(即3300萬個元素,對於像zkEVM這樣的應用來說,這是一個保守的複雜度估計),乘法最終仍然需要花費大量的時間。 這就可能會導致設備「爆記憶體」。 簡而言之,MSM需要大量的記憶體,即使在多執行緒的情况下仍然很慢。

FFT很大程度上依賴於算灋運行時數據的頻繁重組。 這使得它們很難通過在一個計算集羣中有效分配負載來加速,這類計算在硬體上運行時需要大量的頻寬。 重組意味著你需要「隨機」加載和卸載部分數據,例如,在記憶體為16GB或更少的硬體晶片上加載一個> 100GB的數据集。 雖然硬體上的操作非常快,但通過介面加載和卸載數據的時間會導致操作速度大幅减慢。

簡單來說:

MSM的記憶體訪問需求是可預測的,可以實現大量的並行化,但由於原始的計算量和記憶體需求非常大,其成本仍然很高。

FFT的記憶體訪問是隨機的,這一點對硬體並不友好,而且自然很難在分佈式基礎設施上運行。

我們在解决大型MSM和FFT的緩慢性方面看到的最有希望的工作是PipeZK。 在他們的論文中,作者描述了一種使用Pippenger算灋跳過重複計算來讓MSM變得更加高效的方法。 他們還描述了一種「unroll」FFT的方法,這樣就可以在不進行大量數據重組的情况下進行計算,記憶體的訪問模式會變得可預測,這可以有效提升硬體的計算效率。

假設上述方法解决了每種算灋的基本瓶頸問題,那麼問題就來了。 能够同時優化MSM和FTT算灋並讓ZKP生成效率大幅提升的硬體是什麼樣的呢?

硬體的選擇

上述加速科技可以在多種硬體技術上實現,包括但不限於GPU、FPGA以及ASIC等。 但哪一個是最好的選擇呢?

在回答這個問題之前我們要先明確一點,ZKPs仍然處於發展的早期,系統參數(如FFT寬度或參數的數據體積)或證明系統的選擇上仍然沒有實現標準化。 正因為如此,FPGA的兩個覈心特性讓其在當前的大環境中相比ASIC更具吸引力。

「多次寫入」對比「一次性寫入」:ASIC上的業務邏輯是一次性寫入的。 如果任何ZKP邏輯發生變化,你就需要從頭再來。 而FPGA可以實現秒級的重新重繪,這意味著可以在具有不相容的證明系統的多個鏈上重新使用相同的硬體(例如,因為他們想跨鏈選取MEV),硬體可以適應ZK「元」的變化靈活。

更成熟的供應鏈:ASIC的設計、製造和部署通常需要12至18個月乃至更長的時間。 相比之下FPGA供應鏈要成熟許多,像Xilinx這樣頭部的供應商允許從網站上下訂大量的零售訂單並在16周內到達。 這使得以FPGA為中心的業務能够對其產品有一個更緊湊的迴響回路,並能更靈活地通過購買和部署更多的FPGA來隨時擴大業務規模。

而隨著機器學習和電腦視覺領域科技的發展,未來FPGA的效能甚至有望超越GPU,而與GPU相比,FPGA還存在兩個很明顯的優勢:

硬體成本:頂級FPGA(領先的工藝節點、時鐘頻率、能耗比和記憶體頻寬)比頂級GPU便宜約3倍。 而全球內GPU供不應求的狀況進一步加劇了這個問題。

能耗比:FPGA的能效比GPU高10倍以上,很大的原因是GPU需要連接到主機設備上才能運行,而主機設備往往要消耗大量的電能。

鑒於上述情况,我們預計市場上的獲勝者將是那些專注於FPGA而不是ASIC或GPU的公司。 然而,如果只有一個或幾個ZK L1或L2最終「壟斷」了市場,且ZK證明系統穩定在一個單一的實現方案上的話,ASIC戰勝FPGA的可能性會更大。 但從現時的情况來看,即便會發生,可能也需要等到很多年以後。

結論

在剛剛結束的2021年裏,比特幣礦工的淨收入超過150億美元,乙太坊礦工的收入更是超過了170億美元。 零知識證明最終會成為網絡上計算完整性和隱私的重要實現手段,在這種情況下,「ZK礦工」的市場規模有望媲美PoW挖礦市場。

而綜上所述,至少在當前的背景下,FPGA硬體可以更好地解决ZKPs證明生成低效且昂貴的現狀,在這條新賽道的硬體競逐中,FPGA相比GPU和ASIC暫時處在領先的位置之上。

以太坊開發者:非六月合併,建議別投資挖礦設備https://news.cnyes.com/news/id/4853345
朋友平時是做現貨還是合約