引介


這是去中心化Rollup 訪談系列第三期,本集從“去中心化證明者網絡以及硬件加速” 的角度探討rollup 去中心化。我們邀請到了Scroll 聯合創始人Ye Zhang以及Cysic 聯合創始人Leo Fan ,針對ZK 電路、硬件加速具體是在加速什麼什麼、一個開放的去中心化證明者網絡是怎麼樣的、zk 生成的挖礦市場與比特幣的PoW 挖礦機制的區別等等這些社區關注的問題進行了討論。同時Ye 和Leo 都分別分享了他們團隊在prover 網絡和zk 硬件加速市場做的一些研究以及將來的部署。



Host: Franci


本期嘉賓:

  • Scroll 聯合創始人Ye Zhang, twitter @yezhang1998

  • Cysic 聯合創始人Leo Fan, twitter @leofanxiong


往期


第一期:如何去中心化Rollup?

  • Arbitrum 研究員Patrick McCorry


第二期:共享排序器和L2 共識

  • AltLayer Network 創始人Yaoqi Jia

  • Scroll 研究員Toghrul Maharramov

  • Starknet Exploration Lead Abdelhamid Bakhta


預告


第四期: 數據可用性和去中心化存儲

  • EthStorage 創始人Qi Zhou


收聽


點擊訂閱Podcast,了解更多:

https://ecnpodcast.fireside.fm/decentralized-rollups-series-3


Youtube:

https://www.youtube.com/watch?v=_cOqoStrRvQ


小宇宙:

https://www.xiaoyuzhoufm.com/episode/648f1f04a328ba2d981524e2


時間戳


- 00:46 Zhang Ye 介紹

- 01:27 Leo Fan 介紹

- 02:45 解釋零知識證明

- 05:27 zk-Rollup 中使用的zk 電路是什麼?

- 07:05 ZK 電路與硬件加速之間有關聯嗎?

- 09:10 硬件加速是在加速什麼?

- 12:16 Prover 在zk-Rollup 中扮演什麼角色?

- 14:48 介紹Scroll 在做的事情

- 16:19 去中心化prover 網絡,保證網絡的可靠性以及激勵市場提高proof 生成的效率

- 21:06 Scroll 目前對於去中心化prover 的計劃與進展

- 26:55 主要的硬件方案有哪些,Cysic 的路線圖

- 29:24 Scroll 會如何考慮硬件加速方案?

- 32:19 zkp 硬件加速市場的供給和需求

- 35:43 zk 生成的挖礦市場與比特幣的PoW 挖礦機制有什麼區別?

- 40:20 怎麼理解硬件加速有利於prover 網絡的去中心化?


嘉賓介紹


Ye

我叫Zhang Ye,是Scroll 的Co-Founder。我主要做的是ZK Research。具體而言就是ZK Hardware Acceleration (ZK 硬件研究),怎麼通過硬件去把prover 這個過程做快。以及一些crypto 和數學的一些算法,就是magical 背後的一些數學原理。最近專注在zkEVM,Scroll 要構建的一個zkEVM 的zk-Rollup Network,要和EVM 兼容,所以更focus 在應用上。以及其他的一些相關的協議研究。


Leo

我是Leo Fan,是Cysic 的Co-Founder。我之前是在Cornel 拿的PhD,是密碼學方向。我跟Ye 一樣,都是做這種算法研究的。我之前的research 偏後量子密碼的研究,然後最近幾年才開始做ZK 相關的算法研究,之類的。 Cysic 是要用硬件來加速零知識證明的“證明生成” 的過程,使這個不再成為大家的一個bottleneck。


訪談部分


零知識證明解讀

解釋零知識證明


Ye

從最基本的一些概念講起,先解釋一下零知證明這個概念。零知證明主要幹的一件事情就是,有兩個角色:一個叫Prover 證明者,一個叫Verifier 驗證者。證明者可以向驗證者證明某一個statement,而不洩露自己知道的一些秘密的一些消息。我給些具體例子,理解這個statement 究竟是什麼,這個information 可能是什麼。


假設你在一個班級裡面,老師發一道數學題,比如說解一個方程,然後A 把這個方程給解出來了,B 沒有解出來。 A 呢希望向B 炫耀說我解出來這個解。一個直接的方法就是他直接把這個結果告訴B,但是這樣的話,B 也會知道這個方程的解,所以他達不到“既不洩露這個方程的解,又向B 證明知道這個方程的解”的目的。所以這就是一個典型的案例,通過零知識證明A 可以向B 證明,我知道這個方程的解,然後同時不洩露這個方程的解具體是什麼。


然後用一個更blockchain 的例子,哈希。比如說哈希的output 是0,A 可以向B 證明說我知道某一個輸入,一個pre-image (預映射),使得hash 這個preimage 輸出是0。因為之前的話,你可能需要proof of work,需要很多的算力才能找到這個preimage,才能找到這個0 的mapping (映射)。 A 可以向B 炫耀說我知道這個pre-image,但不洩露具體的內容是什麼。


或者更blockchain 的一些案例,零知識證明可以增加區塊鏈隱私這個特性。因為blockchain 的公開這個透明性也帶來很多隱私的問題。比如我給你發的每筆交易都需要廣播到一個公開的網絡裡面。因為那筆交易需要包含A 給B 發了多少錢,每一筆交易都是都是公開透明的。這樣有好處也有壞處,壞處就是沒有任何的匿名性可言。你給一個人發了一筆錢以後,你立刻知道他的地址對應的很多link。那麼通過零知識證明,你可以給一筆交易attach 一個proof,證明該筆交易是有效的,而不洩露這筆交易的具體內容。


之後的話,就像zk-Rollup 這樣的應用,又可以給區塊鏈增加這個可擴展性。它可以把很多筆交易打包在一起,生成一個證明。


這大概就是零知識證明的概念和一些應用。


zk-Rollup 中使用的zk 電路是什麼?


Ye

具體什麼叫零知識證明的電路呢?這有關你究竟是怎麼使用零知識證明。剛才介紹零知識證明的概念,你可以證明一個東西而不洩露其中的秘密。接下來就是你怎麼真的去給一個program 生成這種證明呢?這就牽扯到零知識證明的具體計算過程。


比如說剛才的方程也好,或者說hash 也罷,他都是在證明一個function 的input。在起始的input 之下,得到了某一個output。所以相當於,你要證明這整個program 的運行是對的,但是你需要給他生成一個比較數學、比較crypto 的一個密碼學的proof。


那首先,比如說我們傳統地寫一個program,可能用C++ 或各種high-level 語言去寫。同樣地,對ZK 而言也是一樣的,如果你要給一個程序生成一個proof,那你首先需要把這個程序通過ZK 的語言(他不是C++,他是一種特殊ZK 的語言),把它( encode) 編碼出來。


然後這個具體語言是一個非常數學,有點類似彙編,但是更數學的一個語言。只能包含比如說乘法、加法和一些最基本的一些門操作。然後去把你原始的program 用這種格式表示出來。然後當你把這個程序用這個特定的ZK 電路這個語言給寫出來以後,你再運行一套密碼學的算法就可以生成證明。


簡而言之,如果你要想給一個program 生成證明,那這個program 再用ZK 這個語言重新寫出來,這種encoding 的方式就叫ZK 的電路。


zk 電路與硬件加速之間有關聯嗎?


Ye

這是一個很好的問題,因為經常大家提到電路的時候會想到芯片,或者說一種物理上的電路。但其實ZK 的電路是一種代數電路,它是program 的一種代數的編碼。所以你可以理解為,ZK 電路就是一堆數學的A 乘B 等於C 這樣的東西。它和你拿到一塊電路板這種是完全不一樣的。


但是也有一些相似的地方,比如你寫ZK 電路的時候,也要從基本的門電路開始搭。因為很有限,只能用加法、乘法和一些基本的框架搭,然後它有自己的layout。所以如果仔細思考的話,有很多相似的地方,但是具體計算過程完全不一樣。


ZK 電路比較強大的一點是因為,它是一些數學上的東西,比如它可以驗證A 乘B 等於C 等等這樣的一些數學的關係。但物理電路更多是你從一個input 運行通過一個芯片,然後得到你的結果。


所以這是一個區別。比如說你要在電路里面做A 除以B 等於C,你可能要寫一個除法器,你要真的輸入A、輸入B,然後除法,得到C。但是你在寫ZK 電路時,只用假設上天給了你A、B、C 三個witness,你只要證明B 乘C 等於A 就可以了。這個就是ZK 電路和物理電路的一個區別。


硬件加速是在加速什麼?


Ye

然後通常大家講的硬件加速,其實不是加速ZK 電路這個過程,因為ZK 電路只是你的原始程序的另一種表示方式。就是你原始有個哈希,我現在用ZK 電路寫了一個哈希,它還是一段程序,它只是用ZK 電路寫出來的一個程序而已。


但你實際運行的是什麼呢?是你把這個程序/這個ZK 的電路作為input,去跑一個密碼學的算法—— ZK 的算法。這個算法本身需要很長的時間,比如說幾個小時或者說上天。它可能在運行橢圓曲線,多項式的一些計算,因為這是一個具體的密碼學算法,它要把這個電路變成一個proof。然後這個過程非常的密集,而且需要的時間很多。這時候才需要一個加速器,去加速生成proof 的這個過程,而不是寫電路的過程。


所以寫電路你更多可以想像成一種program 的pre-processing,它要預處理這個program 變成一個電路。因為只有當你拿到這個ZK 電路的時候,你才可以給它生成proof。但實際加速的是這個生成proof 的過程,就是假設你已經有ZK 電路,然後你要寫一個proof。這時候你需要一個ASIC,需要GPU 去把整個計算proof 的這個過程給生成出來。


所以這就是區別,你加速的是這個已經有了ZK 電路以後生成證明的過程。


Leo

ZK 裡面的電路就相當於我們用另外一種表達方式,來表達ZK 可以理解的這樣一個數學的抽像模型。然後把這個數學抽象的模型拿去用相應的back-end,再生成相應的proof。在這個back-end 生成proof 的時候是需要硬件加速的,就是ZK 的電路跟我們的硬件加速實際上是兩個不同的事情。只是說我們可以通過硬件加速來提高整個ZK 證明生成的效率。


Ye

剛才忘記補充一點,最初問題是說,如果不同的ZK 電路能不能用同一套加速,肯定是可以的。因為不同的ZK 電路,比如說不同的哈希、不同的程序,都是你要把它寫成不同的電路。所以說只是ZK 電路不一樣。


但是就像Leo 說的,其實它加速的過程是有了電路以後生成證明的過程。但生成證明那個算法是一個deterministic (確定性) 的一個crypto 的算法。也就是說它處理任何的電路都是同一套算法,所以你相當於用ASIC 加速了這個生成證明的過程,但是不同的電路都是你不同的輸入。相同的加速器是可以加速不同的ZK 電路的。


Prover 網絡的中心化和去中心化

Prover 在zk-Rollup 中扮演什麼角色?


Ye

我先簡單介紹一下zk-Rollup 大概解決了什麼問題。它解決了以太坊的擴容問題。以太坊是一個P2P 的網絡,非常的去中心化,裡面的每個交易需要傳到每個節點,每個節點都需要執行一遍。但是越去中心化,效率就越低,因為它的節點成千上萬,可能每個節點都要算相同的計算。這樣的話會導致整個網絡非常昂貴,而且處理交易很有限。


zk-Rollup 核心思想是說我可以把一大堆的交易從layer 1 拿到線下來。然後我可以生成一個ZK proof,這個proof 可以證明一萬條交易是對的,就是生成一個小的proof 證明一萬條交易是對的。這樣的話,我們不用把這一萬條交易發在以太坊網絡裡面,我們只需要把這一萬條交易發在Scroll 的網絡裡面,然後Scroll 去生成一個proof。只要把這個小小的proof 以及一些其他的一些數據遞交上鍊,以太坊只要驗證完這個proof 就可以知道這一萬條交易都是對的。


這樣相當於以太坊的整個網絡不是在算一萬條交易,而是在驗證一個非常小的proof,所以它比之前會會高效非常多。假設以太坊一秒鐘只能處理十條交易,但每一條交易都是在驗證一個proof,而每一個proof 又可以證明一萬個交易是對的。那相當於你可以把它可擴展性提高一萬倍。當然這個是比較淺顯易懂的說法,還有很多具體的問題。但是這就是核心思想,把一堆交易生成一個proof,把proof 上鍊,然後讓每個節點去做驗證。


那這時prover 扮演什麼角色呢?首先zk-Rollup 需要一個出塊節點,比如說需要接受這一萬條交易,出塊;然後需要一個證明節點,prover 需要去把這一萬個交易生成一個proof。它主要是證明zk-Rollup 網絡每個塊的有效性,然後為之生成proof。


這個prover 可以是中心化的,也可以是去中心化的。但目前來說,大部分都是相對來說比較中心化,因為它可以用很多GPU。算proof 是一個比較確定性的一個過程,就是我有塊,然後你跑這個算法,然後幫我算出來就好了。它是一個相對來說比較固定的一個過程,所以說它通過比如分佈式,或者說一些其他集群等等方式都可以生成出來的。


介紹Scroll 在做的事情


Ye

Scroll 想做的事情就是搭建一個ZKEVM 的zk-Rollup。什麼是ZKEVM 呢?我剛才提到的,我們要給一萬條交易生成一個proof。那麼回到了之前提到的怎么生成一個proof 呢?首先要把你要證明的那個程序用ZK 的語言去表達出來。 ZKEVM 其實就是用ZK 的語言把Etherian Virtual Machine (EVM) 這個東西用ZK 語言寫了一點。因為很久以前大部分的人做zk-Rollup 生成proof,它只能給特定的用例,比如DEX 給轉賬生成證明,所以你只要把轉賬的邏輯編碼成ZK 語言就好了。


但是我們現在想做的事情是一個通用型的網絡,而且我們不希望那些寫合約,寫solidity 的人去用ZK。所以說我們構建了一個EVM 的ZK 版本。這樣的話對開發者而言所有的體驗和以太坊是一模一樣的。他們依舊面臨的是EVM,但是我們實際是會把EVM 的邏輯寫成ZK 語言。然後在證明的時候,證明所有的EVM 交易都是對的。


更簡單的理解就是Scroll 是一個吞吐量更高,更快、更便宜,但是安全性和以太坊一樣的一個網絡。它的神奇在於我們可以接受交易,然後生成proof。而不是說把它廣播,然後讓節點形成共識這樣。所以prover 在裡面扮演一個證明每個塊有效性的作用。


去中心化prover 網絡,保證網絡的可靠性以及激勵市場提高proof 生成的效率


Ye

這是一個很好的問題。為什麼我們一定要去中心化證明者市場呢?就像你說的,其實我們自己算也是完全可以的,並且目前大家都是這樣做的。但為什麼我們一定要想做這樣一個網絡呢?有這些好處:


首先它保證了網絡可靠性。因為zk-Rollup 核心思想就是如果scroll 或者layer2 要把整個網絡關掉,不再運行節點、處理交易。用戶依舊有能力去生成proof,把錢從layer1 提現出來,擁有這樣一個能力。如果說我們prover 由於中心化,導致宕機了,或者出現很多的問題,這時整個網絡的可靠性和魯棒性是形成問題的。所以相當於如果你有很多去中心化的備份的話,就是相當於永遠有prover 在幫你生成proof。


第二點。像我說的,計算是確定性的,它不同於proof of work,它沒有隨機性,你只要把這個東西做快就好了。但是我們希望能夠形成一種正循環,希望社區永遠越build 越好。因為proof 生成得越快,將來在layer1 提現的時間會越短,最終確定性會越短。所以我們希望把這個proof 的時間做得越來越短。


而當且僅當構建一個prover 的開放市場時,大家才會湧入。比如說像Cysic 或者其他ASIC 的公司,他們都在構建越來越好的Zk prover。當越來越多人去構建越來越好的硬件,最後就會幫我們的平台去完善。因為假設這不是一個開放市場,只有我們自己產生proof 的話,那做到一個程度可能已經沒有動機,或者說我們永遠需要雇傭更好的人去完善設計,去縮短最終確定性時長、減少開銷。


但我們一旦把證明者市場打開,會激勵更多的人把這個東西做的更快。我覺得這是一種正向的激勵,有利於把你的proof 做的越來越快,甚至比如說有ASIC 以後可能能做一些更crazy 的事情。所以就相當於激勵把這個做快十倍再快十倍,因此會創造更多更新的一些可能性。


Leo

我覺得Ye 剛才已經總結很好。現在ZK 是整個區塊鏈裡面非常火的話題,有各種各樣的應用,整個ZK prover 的需求實際上是很大的。其實Cysic 從一開始也是open design 的。我們也是時不時會發布一些我們的數據,然後吸引整個社區大家一起來構建更好的ZK 硬件,從而來幫助這些ZK 項目,讓他們不再有性能上面的瓶頸。


現在我們預估整個的市場雖然還很早期,但是我們是非常樂觀的,我們覺得這是一個非常大的市場。這也是我們一開始投入那麼多,先做FPGA,後面變成ASIC 的最重要的一個原因。


Scroll 目前對於去中心化prover 的計劃與進展


Ye

我們目前第一階段的關注點還是推出我們的主網版本。就是我們先把我們的ZKEVM 和zk-Rollup 構建出來,然後先有一版穩定運行的主網版本。


同時我們團隊自己內部在構建一些非常快的GPU 方案,我們計劃會把這個東西開源,然後任何人都可以去跑這個GPU。並且我們其實已經發布了兩篇學術論文,一篇是關於怎麼用ASIC 加速ZK,以及我們也跟一些學術機構合作,華中科大、清華以及其他的學校合作。有一些開源的GPU 論文,所以大家可以隨時去看這個架構怎麼設計。我們目前優化的方向就是怎麼去把我們ZKEVM 用GPU 加速特別快。並且為了讓prover 比較去中心化,我們優化的目標是如何能把我們的prover 算法能適用到非常廉價的GPU上。因為比如說很早以前大家用1080,然後後面可能又有2080,後來有越來越好的GPU。我們現在的一個優化目標就是如何能讓1080 這些更便宜的GPU 也可以運行我們的prover 算法。這樣的話,可能就會有更多的人能參與進來,這就是我們一個大的目標。


關於對prover 這塊的具體計劃,現在有一些high level 的設計理念:我們不希望永遠是最快的那一個prover 會贏。因為它是一個確定性的算法,如果有人用ASIC,有人用一種神奇的硬件,它能打敗其他所有人的速度的話,那它永遠會拿走所有的獎勵。但這樣的話,你的系統會變成一個比較脆弱的狀態。相當於你永遠依賴於最快的一個prover,如果有一天這個prover 離開你的生態,那對它來說是一個非常嚴重的破壞。我們是希望有更多備份。所以我們的設計理念是在一個時間窗口內,你可以相對合理地去提交proof,只要你在這個時間線內提交就好。所以你用ASIC 或一些其他的方式,可以節省你的能耗和一些成本。然後我們慢慢過渡,把這個時間窗口慢慢縮短,隨著整個算力提升等等。這是我們的設計哲學。


但具體的計劃我們還在製定,先保證穩定運行我們的網絡,然後再去慢慢地讓一些去中心化實體加入進來,之後再去把它完全打開。但我們的GPU 之後所有人都可以訪問和直接用,而且性能非常的好,並且也有開源的文檔去支撐。


另外想補充的一點就是我們有三個價值導向:neutrality (中立性)、openness (開放性) 以及community driven (社區導向)。我覺得去中心化prvoer 是community driven 和openness 的一部分。


以太坊網絡很強是因為它有一個非常巨大的社區,我們也一樣,我們希望構建我們自己真正的社區。比如說Cysic 他們這個硬件是我們生態系統的一部分。我們會主動的去辦很多workshop 和出一些教程去去幫助大家理解我們用的zk 工具棧。這樣會有更多的項目,甚至100 個下一代的zk 項目都用相同的zk tooling,這樣他們也可以從我們這個prover 網絡或者說這一代的硬件獲益。不光是幫我們在build,而是我們在build 一個很大的community,所有的zk 應用只要用同一套工具棧,可能將來都能用相同的ASIC、相同的GPU。我們相當於在給一個社區build 一個大的框架和網絡。這個是我們一個大的目標,但具體的timeline 還在討論。


解讀zk 證明硬件加速

為什麼需要加速zk 證明生成


Leo

我們一開始做Cysic 的原因就是來自於我之前在Algorand 的做的事情。我在Algorand 做了Algorand state proof,它本質上還是一個zk proof,可以用在cross-chain bridge。當我去年三四月份做完整個的PoC 之後,我就發現整個證明生成的時間實在是太長了,差不多幾分鐘。我試了很多軟件或者算法的優化都不能解決這個問題。所以我當時就想到用硬件來加速整個證明生成。因為Algorand 希望整個證明生成在三十秒左右的樣子,在其他方法不奏效的情況下,就只能用硬件來提升整個的效率。這其實跟密碼學裡面的一些過程很像,密碼學裡面有個很著名的算法叫RSA encryption。 RSA 一開始用當時的計算機跑也很慢,所以當時RSA 這三個人出來就做了一個定制的硬件來去加速這個東西,其實同樣的想法可以用到ZKP 裡面來。在ZKP 用這種通用的硬件算得很慢時,我們就需要為他設計一些專用的硬件來推動整個社區的發展。


主要的硬件方案有哪些,Cysic 的路線圖


Leo

其實我們做Cysic 也是從Ye 的一篇文章裡邊吸取了很多靈感。主要的方式有CPU、GPU、FPGA 以及ASIC。 CPU 就是比較通用的一個硬件,一般來說來說它算東西挺慢的,除非你用很多core,比如說192-core CPU。當然這樣的話,一般人是不太具備這個能力的。


第二就是GPU,GPU 跟FPGA 都是屬於能夠很快進入市場的。其實硬件裡邊主要有兩個衡量標準:一個是performance per dollar,另一個就是performance per watt。


Performance per dollar 是指你一開始需要花費多少的資本去購置這個硬件。在這方面的話,其實GPU是好於FPGA 的,你在付相同情況下。因為FPGA 由於自身的硬件的一些限制,他是沒辦法輸出那麼高的performance。所以GPU 在初期進入市場是一個非常不錯的選擇。這也是Ye 他們in-house design所選擇的一個方向。


但是Cysic 的目標是做ASIC,為ZKP 來設置一個通用的ZKP 加速器。但在做ASIC 之前,是需要在FPGA 上面做很多測試和prototyping 的事情。所以這個就是我們現在所專注的一個方向。雖然單個的FPGA 打不過GPU,但我們可以把很多FPGA 連在一起,就可以比GPU 高性能很多倍。然後我們在FPGA 上面也可以做很多各種測試,可以幫助我們後面的ASIC 設計。


Performance per watt 就是說,你如果去跑這些硬件的話,你收到的整個電費賬單是多少。在這一方面,FPGA 跟GPU 是在同一個level 上面的。但是ASIC 實際上在這兩點都可以跑過FPGA 跟GPU 的,在出貨量達到一定的情況下。這個就是現在的整個硬件的技術路線的概括。


Scroll 會如何考慮硬件加速方案?


Ye

其實Leo 剛才有大概提到,我們其實之前做過很多ASIC 或者GPU 的研究。但是最終,至少我們in-house 的方案,或者說開源出去的方案會是GPU 方案。


因為構建ASIC 和FPGA 是需要非常特殊的專業知識和技能,你需要選FPGA 版本的型號;需要知道怎麼流片;需要知道整個供應商、整個供應鍊等等硬件公司去做的事情。一個軟件公司很難處理這些工作。你需要研發成本,你需要各種的一次性成本。


但是GPU 不一樣,我們軟件的工程師只要寫一些代碼,你只要有GPU 都可以去跑這個東西。所以這是我們的設計哲學,我們想重用更多,甚至比如說以太坊礦工的一部分GPU,一起來生成proof。所以最後我們in-house 綜合考慮成本、多少人有這些設備,以及時間線(FPGA 和ASIC 的時間線會比較長),決定選擇GPU 這個方案。並且GPU 的性能已經足夠好了,所以我們短期會選GPU。


但是只要有ASIC 和FPGA,他們想接我們網絡的話,我們是非常歡迎的。現在有非常多家探索GPU 方向的,比如說Supranational;然後有探索ASIC 的,像Cysic、Accseal 等等;還有做FPGA 的Ulvantanna、Ingonyama 等等。這些方案都是我們生態的一部分,我們都會給支持。如果他們有一些prover 基準測試程序這樣的問題,我們都會去幫忙回答。最終這些都是開放的。


但據我們目前的願景來看,其實跟Leo 的結論很相似,就是FPGA 很適合過渡期。因為單個FPGA 是很難打過單個GPU 的,但是多個FPGA 互聯是可以打過GPU 的。但是FPGA 又很貴,而ASIC 跟多個FPGA 互聯的性能很相似,但是留一次片可能需要上千萬美金,需要等到明年中,需要很長的時間。所以就是為什麼從實用性的角度,我們希望先用GPU,然後最終大家會從社區,或者說不同公司所構建的越來越好的方案,通過ASIC 慢慢地去把它做得越來越快。


Prover 網絡和硬件加速市場的未來展望

zkp 硬件加速市場的供給和需求


Leo

Cysic 的目標是要做一個ZK prover DAO,這個DAO 裡邊會有各種各樣的硬件去參與。這個DAO 會跟很多ZK 的項目進行合作,所以說需求端就是這些ZK 項目。然後供給端就是這些prover,Cysic 已經聯繫了20 多家之前的一些礦場,他們其實是有這個設施去提供整個證明生成服務的,但是他們並沒有這種研發的經驗。所以Cysic 一開始會給這些礦場提供Cysic 的一些硬件,讓他們加入整個DAO,給整個ZK 社區提供這樣的一個服務。


這其實對於整個ZK prover DAO 來說是一個jump start,因為Cysic 就不需要自己花太多的時間以及太多的精力去設置各種各樣的去中心化prover,可以依賴於這些其他的、以及已有的設施來參與整個的證明生成的服務。當然在Cysic 整個的ZK prover DAO 裡面,不僅僅會有ASIC,也會有很多GPU 在裡面。這其實也是符合整個社區對去中心化prover 的一個想法。


現在Cysic 的主要的合作方很大的一部分都來自於擴容,然後還有做layer1 的隱私的鏈,以及做跨鏈橋接的。還有一些做ZK indexer 的,像Axiom 和HyperOracle,他們用ZKP 來提高整個index 的效率。最後還有一些做ZKML 的,就是ZK 和機器學習的結合。這還在比較早期的一個階段,這大概就是Cysic 在區塊鏈裡邊的一些partner。


這種zk 生成的挖礦市場與比特幣的PoW 挖礦機制有什麼區別?


Leo

我覺得這個取決於我們的合作方。就像Ye 他們的Scroll,他們有一個去中心化的設計理念在裡邊,也就是說並不要求大家誰快誰就可以拿到整個獎勵。他們是希望大家在一個時間窗口內生成一個證明,然後你就有機會去拿到獎勵。我覺得這是一個非常好的一個去中心化的想法。


這個市場並不會像之前比特幣挖礦或者以太坊挖礦一樣,變成一家獨大。比如說比特大陸拿走超過半數的市場。這個市場不會是這個樣子,它會是一個去中心化的方案,大家在這個市場裡面得益於這些ZK 項目的繁榮。大家做prover 也會從裡邊獲得很不錯的利潤,它並不會是一家通吃的方案。


Ye

在我看來PoW 和ZK 生成證明的最大區別,還是回到了我們前面說的,ZK 算法是一個確定性的算法。我們可以強行設置時間窗口,它還是一算完就結束了。你可以想像為,ZK 證明我們希望達到的結果是,比如說現在有一萬個prover,每個人都在做一些有用的工作,比如說給一萬個區塊同時生成proof,從而攤銷你的成本、增大吞吐量。因為相當於有一萬個人在並行做這件事情。但是proof of work 更像是一萬個人在卷,第一個生成的人就先出一個塊。所以一萬個人大部分的工作都被浪費了。所以這是一個很明顯的區別,我們的能耗和成本可能連以太坊的零點零幾都不到。


而且硬件要求完全不一樣,因為proof of work 在算哈希、算很多無用功,這會導致之前以太坊的礦機可能都是弱CPU 強GPU 這麼一個無腦的模式,但ZK 是一個正二八經的算法。所以這是導致proof of work 對機器的需求和ZK 需求最大的一個差異。我們也需要很好的CPU,而且這個CPU 需要有很大的內存,這個是機器選型上的區別。因為proof of work 就是你接入一個網絡,用GPU 去跑哈希,然後平行地去算就好。但ZK 的話,prover 上面你需要有用CPU 的,然後你再去用GPU 去做一部分的計算,它類似於一個帶有CPU 的處理器,是一個整體。


所以說這是機器選型上的一個區別,就是依舊很大,你需要一個非常好的CPU 才能去處理這些計算。但是傳統的挖礦可能就是一個GPU 的一個機器。總結就是:隨機性和確定性;浪費和較少浪費;無用功和有用功。就像我剛才說的機器的選型上,可能zk 對CPU 的要求會更高。不過這得取決於哪個網絡,可能之前Filecoin 等等已經對CPU 也有一定的要求。


Leo

我可以稍微補充一點,提供一些數據支持。就像Ye 說的之前算哈希這些東西,它其實每個芯片都很小。比如說在比特大陸的礦機裡面,它有幾百顆這樣的芯片。所以整個礦機的能耗非常高,都是在3000 萬到4000 萬左右的樣子。


如果算zk 的話,整個芯片相當於大很多,但是整個機器裡面的芯片就很少。在整個算的過程中,芯片跟內存有各種各樣的交互。所以我們預估整個機器的能耗差不多就在400 到500 萬左右,其實就跟單卡的GPU 是一個差不多的狀態。


怎麼理解硬件加速有利於prover 網絡的去中心化?


Ye

現在有更好的硬件供應商去生產更好的ASIC,可能大家進入這個網絡的成本會降低。包括我們開源算法以後,大家可能家裡有GPU 或者什麼東西就可以去跑這個網絡。相當於硬件加速可以降低成本、降低功耗,這樣是有利於把進入prover 市場這個門檻降低的,到時會有越來越多人去做這個事情。而且對於整個網絡的吞吐量、穩定性、可靠性以及魯棒性也都是有好處的。


Leo

我想補充的就是,如果有了硬件加速,可以在很短的時間內產生一個相對來說很複雜的一個proof 的話,這對於大家去開拓新的應用也是有很多好處的。比如說之前要算一個幾層的神經網絡,用zk 可能需要算幾個小時。這個在大家看來就是完全不實用的一個方法。但如果用硬件加速的話可能這個時間會縮短到幾分鐘或者幾秒鐘。