2 月 26 日, Polygon zkEVM 一張預告主網上線的宣傳海報,卻引發了「以太坊」等效性一詞用法的爭論,Scroll 創始人 Ye Zhang 嚴正指出 Polygon zkEVM 不具備這一特性。從事後 Polygon Labs 負責人 Ryan Wyatt 的回應來看,這更像是團隊內部行銷人員和技術人員溝通不到位的結果。
這並非小題大做,何種程度上的有效性甚至會直觀關係到 Layer 1/Layer 2 性能和擴展性,就在此前 2 天,Solana 聯創 Toly 發文認為 ZK Layer 2s 不會是解決可擴展性的最佳方案。
2 月 27 日,而本次事件主角 Polygon 技術團隊也在積極回應關於 zkRollup 工作原理,解釋 zkRollup 的擴展性指向何處。
3 月 1 日,Solana 也宣布「改進網絡升級的計劃」,重新扛起以太坊殺手的大旗,但是其在經歷多次宕機後運作機制仍未根本革新,而更像是危機後的優化,也給高性能 Layer 1 取代以太坊一事蒙上了陰影。
本文將結合多位 Layer 1/Layer 2 創始人的推文,為大家揭示關於公鏈性能的大討論的來龍去脈。
緣起:關於 EVM 等效性的爭論
Polygon 的 zkEVM,嚴格來說是一種 zk VM 機制,通過映射的方式在 Layer 2 層面跟以太坊主網保持一致,zk 技術的引入是其稱為 zk VM 的原因,而在非嚴格意義上而言,只要能保持同步性,那麼稱為 zk EVM 便無傷大雅。
但根據 Scroll 創始人 Ye Zhang 的觀點,EVM 等效性並不完全等於以太坊等效性,因為後者至少還需要在數據存儲方面保持跟以太坊主網的一致。
從更廣泛的角度而言,目前的各類 Layer 2s 或者以太坊跨鏈橋都不能宣稱具備以太坊等效性,以太坊後續後更為模塊化,更為複雜的堆棧也會帶來更困難的兼容性。
可以舉一個簡單的例子來直觀理解二者的不同,Optimism 在產品規劃中涉及二者的區別,在其看來:
EVM 等效性:主要是從 dApp 開發者視角而言,其在 OVM 上的體驗和在以太坊主網開發 dApp 別無二致,因此 OVM 便具備 EVM 等效性;
以太坊等效性:主要是從協議開發者視角而言,需要在客戶端、通信層、共識層和執行層等方面和以太坊保持較高的一致性。
而在 EVM 等效性的爭論之餘,還應該注意到關於擴展性的爭執,這也是目前各類基於以太坊 Layer 2 和高性能 Layer 1 之間的爭奪焦點。
前因:Solana 對 ZK 擴展性的質疑
就在 Polygon zkEVM 預告上線的前兩天,即 2 月 24 日,Solana 聯創 Toly 便在推特發文質疑 ZK Layer 2s 對公鏈擴展問題的解決能力,以抵消公眾對 Solana 運作機制的質疑。
他的主要觀點如下:
- 數據實時上鍊需要保持穩定的順序執行能力;
- ZK 證明方案成立,前提是 ZK 生成證明時間+驗證時間的總和小於實時執行時間;
- ZK 方案無法做到實時處理大批量數據,只能進行間歇性的匯總,而無法保持鏈上狀態的實時性;
因此,ZK 方案更適合單次、低頻的場景,比如批量結算,而公鏈級的可擴展性還是需要 Solana。
但不湊巧的是,Solana 在 2 月 25 號發生嚴重的宕機事故,社區、工程師和驗證者在經歷兩次重啟後才重新恢復主網,而屋漏偏逢連夜雨,「好事者」趁機對 Solana 的機制產生質疑,推特用戶 DBCryptoX 認為「Solana 上 90-95% 的交易都包含驗證者消息和鏈上投票」。
Solana 使用 PoS 共識機制,其自稱為「歷史證明」(Proof of History)機制。PoH 使網絡能夠更快地運行,因為節點不需要通過通信來驗證一個區塊,PoH 使驗證者能夠精確確定某一時刻上的事件。
一方面,這種機制帶來了高度的統一性,帶來了遠超以太坊主網的 TPS,但另一方面確實會嚴重佔用鏈上區塊空間,一旦出現問題,則很難取得共識以恢復網絡。至少在 2021-2023 年間,每年均發生至少一次以上的主網宕機事件。
宕機事件為 Solana 的可擴展性貢獻了反面教訓。Solana 聯創 Toly 認為 ZK Layer 2 上的證明者(prover)無法做到實時執行,因此,最終 ZK Layer 2s 的鏈上執行將和既定順序不一致,為此,要麼用戶運行完整節點增加網絡負擔,要麼依賴少數誠實節點以提高效率而走向中心化。
但目前的事實證明,高性能 Layer 1 Solana 似乎也無法解決實時執行問題,畢竟,垮掉的網絡最後也會丟失既定順序,而強行恢復後的數據也會變成人為認定的「共識」,而非網絡本身的自發狀態。
後果:Polygon 的擴展性關鍵所在
Polygon zkEVM 先是遭遇 Solana 質疑,後是宣發出現烏龍事件,被質疑不專業和具有誤導性。因此其開發者 Jordi Baylina 跳出來承擔了對專業性的挑戰,集中在解釋證明者(prover)並非是 ZK Layer 2s 的限制因素,真正的阻礙者其實是 DA(數據可用性)。
首先是 zkRollup 的運作流程,如下圖所示,大致可分為三步:
保持網絡同步,無論是何種架構的 Rollup,只要涉及 Layer 2 上的數據,都需要為批量處理的消息進行有效性證明,以在最終回傳至 Layer 1 時可以得到確認,
聚合證明生成,需要使用 zk 證明方案(ZKP),並行處理可以加速這個過程,但批量證明的生成本身確實需要一些時間。甚至可以設計動態機制,網絡證明者的數量可以根據網絡需求進行增加或減少。
在 ZKP 運行後,會對數據生成一個完整的樹狀證明網絡,可以讓不同的服務器進行數據驗證,並將結果發送到 Layer 1 鏈上。
其次是成本問題,其中最關鍵的是證明成本,ZK 運作調用的軟硬件和時間都會被 TX(交易)費用納入計算因子,最終反映到網絡的 Gas Fee 上,而不同的算法,如 STARK/SNARK/FLONK 等會大幅優化網絡使用成本。而其中的關鍵還在於,數據的加載並不需要完全順序執行,以便於並行化處理。
因此,Solana 聯創 Toly 所認為的證明者(Prover)並不能阻礙 ZK 證明方案的運行,而真正的阻礙是數據可用性,需要 ETH 2.0 和 DankSharding、EIP4844 等方案來解決。
結論:擴展性究竟走向何方
圍繞 Polygon zkEVM 的爭論將繼續進行,其中的關鍵在於 zk EVM 究竟能在多大程度上解決當前的擴展性問題,這也是一眾 Layer 1/Layer 2s 接下來面臨大規模 dApp 和用戶量所直面的考驗。