原文作者:Haotian
編者文:最近,隨著銘文的火爆,各大公鏈在短時湧入了天量的交易。這無疑是對公鏈的「大考」。而在這次考驗中,zkSync 無論是TPS峰值,還是 GAS 穩定性等都完美經受住了考驗。關於這個主題,加密研究員 Haotian 從技術的角度在x 上發表了自己的看法,BlockBeats 整理如下:
在zkSync 鏈上刻銘文,短時湧入的天量交易,確實是一次Layer2 公鍊性能的「壓力測試」,不過結果並非「宕機」,恰恰相反,這是一次@zksync的公開練兵,結果是TPS 峰值、GAS 穩定性等都完美經受了考驗。
乍聽,是不是有點反直覺?接下來,用技術邏輯,我來給大家澄清一下:
zkSync 打包出塊的工作原理,簡單而言:用戶構造交易進入zkSync Sequencer 的排序序列,然後Sequencer 根據Gas Fee 高低排序打包進區塊,然後再把區塊傳入Proof 系統驗證,最後Submit 到主網完成finality 狀態確認。
p>
1)用戶建構交易環節:大部分用戶都會透過Metamask 等錢包端發起交易,而透過錢包端向zkSync 發送交易,交易會先進入RPC 遠端呼叫伺服器裡,然後Sequencer 接收這些交易進入排隊序列。這裡的排隊時間短則幾秒,長則幾分鐘,人如果等待時間較長,MetaMask 就會認定該筆交易已經失敗,然後前端返回交易失敗的提示。
然而,這並不意味著交易真是失敗了,而只是因為Metamask 的RPC 回應時間和反饋邏輯和zkSync 的Sequencer 排隊打包交易邏輯存在「不相容」所致。 這正是為何,一些明明 MetaMask 顯示失敗的交易,在等待一段時間後,後端伺服器顯示又成功的原因。
如果使用者不走錢包管道,直接使用後端程式碼呼叫zkSync 的RPC,就不會存在回應時間逾時以及提示失敗的問題,體驗相對而言會很絲滑。這確實會讓一些可使用後端程式碼指令的「科學家」取得了優勢,但本質上屬於錢包體驗端的問題,和 zkSync 鏈的處理能力無關。
2)Sequencer 公平排序環節:當使用者短時向RPC 佇列發出交易時,每一筆交易都會從nonce 值為0 開始疊加,如果上一筆交易還在排隊狀態,nonce 為0,這時用戶又發起了一筆新交易nonce 為1,zkSync 的Sequencer 會根據time 來給這些交易分配nonce,然後按照順序排序。
但倘若,用戶在MetaMask 前段看到上一筆交易顯示失敗後,同時又提交新的交易,很可能新提交的交易由於錢包端和zkSync API 介面呼叫的問題,有一部分交易最終並沒有成功提交到RPC 的排隊序列中。 用戶以為提交了很多交易,實際上 zkSync 只收到了其中一部分,而只要他們收到就會去排序處理。
這麼看,用戶看到MetaMask 回饋交易失敗,不停提交新交易的行為也會造成大量交易失敗,因為根本就沒有提交到zkSync 鏈的後端,只是你在前端以為自己提交了。
整體而言,MetaMask 錢包的RPC 回應時間邏輯問題和使用者急著向鏈上疊加交易的行為,都會造成大量的交易「失敗」,如果清楚zkSync 的後台交易處理工作流程的話,相對更容易避開這些優化體驗問題。
zkSync 鏈並未「宕機」,只是瀏覽器前端顯示問題,因為瀏覽器會透過zkSync 的RPC 介面拉取最新數據,但是介面回應會有延遲,大量新交易會使回應變慢。
總之,瀏覽器的拉取資料同步速度跟不上排隊交易激增的速度,這是瀏覽器前端的問題,與鏈的運作沒有關係。 通常等交易速度適當放緩,瀏覽器可以抓取到新資料後,問題就會解決。
遇到瀏覽器不work 的時候,可以透過其他同步zkSync 區塊資料資訊的瀏覽器來交叉驗證,例如: https:/ /hyperscan.xyz
1)在所謂宕機傳聞爆出後,zkSync 的官方工作人員@anthonykrose在推特卻頻頻發出 TPS 刷新捷報。 實際上,zkSync TPS 飆到了 187.9 的峰值,正常情況下,TPS 只有 50-100 左右,這說明大量的新交易湧入,zkSync 其實抗住了壓力。 這確實也給未來數千甚至上萬的 TPS 做了一次充分的「壓力測試」。
2)ZK-Rollup 的特殊機制決定了,處理的交易量越大,Gas 費就越便宜,事實上,zkSync 的Gas 費確實更加便宜了,因為交易成本也被分攤了,根據growthepie 數據顯示,近24 小時,zkSync 的Gas 平均值還降低了5.2%,平均在$0.19 左右,這個數據每個人的體驗可能不一樣,但綜合鏈的運作數據,確實是便宜了。 佐證了 ZK-Rollup 的更流暢體驗需要將現有的使用者規模提升到一個量級。
根據 dune 數據顯示,Sync 的銘文鑄造,14 小時新增了 5M 筆交易,已有 65575 個 Holder 參加。誠然,zkSync 官方已經知道了這場社區發起的「壓力測試」活動,也緊急採取措施來確保 zkSync 鏈的有序進行。
這個數據對 zkSync 確實是較好的壓力測試實驗,其正向影響大於負向。 長遠看,銘文事件並非傳言中把 Layer2 性能打回了原型,反倒給 Layer2 的進一步性能優化提供了實踐經驗。
不過據我了解,除了Sync 之外,還有其他銘文正在鑄造,雖不及Sync 那麼fomo,但也給此壓力測試添了一把火。
Anyway,結果整體而言是好的,大家若釐清zkSync 後台排序出區塊的技術邏輯,再撥開其中存在的「體驗不良」誤會,就應該懂得,一切運作安好,我們得給layer2 多一點信心。
原文連結
歡迎加入律動 BlockBeats 官方社群:
Telegram 訂閱群:https://t.me/theblockbeats
Telegram 交流群:https://t.me/BlockBeats_App
Twitter 官方帳號:https://twitter.com/BlockBeatsAsia