銘文導致 zkSync 網路當機?為何核心開發者反倒慶祝技術突破?

 zkSync 生態第一個銘文專案 Sync 於 17 日開放鑄造,不過當日區塊鏈瀏覽器顯示異常且部分用戶用戶頻
這篇文章 銘文導致 zkSync 網路當機?為何核心開發者反倒慶祝技術突破? 最早出現於 鏈新聞 ABMedia。 

zkSync 生態第一個銘文專案 Sync 於 17 日開放鑄造,不過當日區塊鏈瀏覽器顯示異常且部分用戶用戶頻繁交易失敗,普遍被認為是 zkSync Era 網路當機;然而加密研究員 Haotian 提出不同的看法,指出網路完全正常運作,並非如外界所誤解。

銘文鑄造使 zkSync 當機?

銘文熱潮蔓延至 zkSync,17 日該生態出現首個銘文專案 Sync,開放提供給所有人鑄造,該專案預計未來將開設銘文交易所與鑄造服務。

不過當日 zkSync 網路傳出災情,大量交易短時間內湧入,區塊鏈瀏覽器上顯示異常,而部分用戶錢包送出交易頻繁失敗,社群一度認為 zkSync 網路已因為此次銘文鑄造而癱瘓。

延伸閱讀:各大公鏈銘文市場熱潮帶來對網路效能真實的壓力測試

zkSync 實際上正常運作

在事發過後,zkSync 開發人員 Anthony Rose 在推特表示網路並非當機,完全以正常機能運作,甚至 TPS 超乎平日表現,那麼為什麼參與用戶會面臨上述問題?加密研究員 Haotian 提出了幾點解釋,並認為本次事件反倒體現 zkSync 效能與彈性。

Metamask 與 zkSync 設計落差

首先需要先知道 zkSync 打包出塊的工作原理。在 zkSync 網路中,用戶簽署交易後,交易資訊會送到排序器,依照燃料費用排序打包成區塊,並將區塊證明資訊上鏈至 Ethereum 主網完成最終性確認。

用戶簽署交易的環節,大部分會透過 Metamask 等錢包端發起交易,而排序器接收交易資訊進入等待的環節,等待時間短則幾秒長則幾分鐘,如果等待時間較長,MetaMask 內部機制就會認定該筆交易已經失敗,然後前端返回交易失敗的字樣。

這並不代表交易真的失敗,只是因為 Metamask 的 RPC 回饋邏輯和 zkSync的排序器排隊打包交易邏輯差異所致。這也是為什麼一些明明 MetaMask 顯示失敗的交易,在等待一段時間後,後端伺服器顯示又成功的原因。如果使用者不用錢包,直接使用後端程式碼呼叫 zkSync 的 RPC,就不會存在回應時間逾時以及提示失敗的問題。

因此本次事件的交易失敗屬於錢包體驗端問題,和 zkSync 網路的處理能力無關。

多筆交易同時提交造成 API 調用錯誤

而排序器依照交易燃料費排序的環節,也可能讓用戶產生誤解。

當用戶發出交易時,每一筆交易都會從 nonce 值為 0 開始疊加,如果交易還在排隊狀態,用戶又發起了一筆 nonce 值為 1 的新交易,需要等待 nonce 值為 0 的交易完成並成功打包至區塊才可以執行 nonce 值為 1 的新交易。

推測當時用戶在 MetaMask 看到上一筆交易顯示失敗後,同時又提交新的交易,很可能新提交的交易由於錢包端和 zkSync API 調用問題,有一部分交易最終並沒有成功提交到 RPC 的等待序列中而被跳過了 (因為 nonce 值可能重疊),實際上 zkSync 主網路只收到了其中一部分的交易資訊。

因此 MetaMask 錢包的 RPC 回應時間邏輯問題和用戶著急向鏈上疊加交易的行為,都會造成大量的交易失敗。

區塊鏈瀏覽器 RPC 介面延遲

針對區塊鏈瀏覽器異常問題,Haotian 表示 zkSync 網路並未當機,只是區塊鏈瀏覽器前端顯示異常。因為瀏覽器同樣需要透過 zkSync 的 RPC 介面讀取最新數據,介面回應可能因大量交易而有延遲使瀏覽器顯示異常。

最終,區塊鏈瀏覽器讀取資料同步速度跟不上排隊交易激增的速度,這是瀏覽器前端的問題,與 zkSync 區塊鏈的運作沒有關係。通常等交易速度適當放緩瀏覽器抓取到新資料後,問題就會解決。

當遇到區塊鏈瀏覽器當機的時候,可以透過其他同步 zkSync 區塊資料的瀏覽器來交叉驗證,例如: https://hyperscan.xyz

zkSync 實際運轉效能如何?

在所謂當機傳聞爆出後,zkSync 的官方工作人員 @anthonykrose 卻在推特上頻頻發出 TPS 刷新的捷報。zkSync TPS 飆到 187.9 的峰值,而正常情況下 TPS 只有 50 至 100 左右,這說明大量的新交易湧入,zkSync 網路其實扛住了壓力。

本次事件確實為未來數千甚至上萬的 TPS 做了一次充分的「壓力測試」。

另一方面,ZK-Rollup 擁有一個特殊機制 — 交易量越大的同時燃料費則越便宜。因為將零知識證明上鏈的成本被更多交易分攤,zkSync 的燃料費在當下也確實更加便宜。

根據 growthepie 數據,當日 zkSync 的燃料費平均值降低 5.2%,平均在 0.19 美元左右,確實佐證了 ZK-Rollup 在未來使用者增加時,將可以享有更好的使用這體驗。

銘文帶給 layer2 壓力測試

根據 Dune 數據顯示, 由於 Sync 銘文鑄造,當日新增了五百萬筆交易,共有 65,575 個用戶參加,以結果來說確實是一次有效果的壓力測試,

若能正確理解背後的技術原理,會發現其實 zkSync 實際上表現良好。銘文事件並非傳言中把 Layer2 性能打回了原型,反倒讓團隊得到進一步優化性能的市場經驗,而不再執著於實驗環境的 TPS 測量,長遠來看對產業將有更健康的發展。

Haotian 認為應該給 Layer2 更多的信心。

這篇文章 銘文導致 zkSync 網路當機?為何核心開發者反倒慶祝技術突破? 最早出現於 鏈新聞 ABMedia