這是去中心化 Rollup 訪談系列第三期,Scroll 共同創辦人 Ye Zhang 以及 Cysic 共同創辦人 Leo Fan 在本期展開對談,探索 ZK 電路、不同的硬體方案以及證明者網路與硬體加速市場的未來,本文提供全程逐字稿已及時間戳,方便讀者迅速了解內容。
(前情提要:L2|全面分析主流ZK項目:StarkNet、zkSync Era、Scroll..構建Web3未來)
(背景補充:Layer2決戰以太坊》OP、Arbiturm、ZK-Sync、Starkware、Scroll..優劣分析)
這是去中心化 Rollup 訪談系列第三期,本集從 「去中心化證明者網路以及硬體加速」 的角度探討 rollup 去中心化。我們邀請到了 Scroll 共同創辦人 Ye Zhang 以及 Cysic 共同創辦人 Leo Fan,針對 ZK 電路、硬體加速具體是在加速什麼什麼、一個開放的去中心化證明者網路是怎麼樣的、zk 生成的挖礦市場與比特幣的 PoW 挖礦機制的區別等等這些社群關注的問題進行了討論。同時 Ye 和 Leo 都分別分享了他們團隊在 prover 網路和 zk 硬體加速市場做的一些研究以及將來的部署。
時間戳
– 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 在 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 證明生成
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 慢慢地去把它做得越來越快。
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 可能需要算幾個小時。這個在大家看來就是完全不實用的一個方法。但如果用硬體加速的話可能這個時間會縮短到幾分鐘或者幾秒鐘。
📍相關報導📍
ZK Rollup 新星|Scroll 宣布Q3上線主網!估值達18億美元