你近期在 Solana 上的交易也總是失敗嗎?當前生態充斥許多垃圾交易,從而加劇惡性迴圈。本文源自 nishil 所著文章,由 Foresight News 整理、編譯及撰稿。
(前情提要:SOL跌破$170》FTX折價66%「超便宜」賣給機構會帶崩市場?鎖倉期有多久?)
(背景補充:生態大爆發的 Solana,能否撼動以太坊地位?)
相信不少使用者還不清楚,為什麼最近他們在 Solana 上的交易總是失敗?讓我們從最基礎的內容開始分析 —— 從使用者的角度來看,當我們進行交易時,基本上會發生三件事:
- 交易成功執行,沒有任何錯誤;
- 執行失敗,譬如支付了 Gas 費,但執行過程中返回錯誤,這通常發生在未滿足執行條件的情況下,例如嘗試 Mint 的代幣已經鑄造完畢,或者由於價格波動導致滑點超過設定值等;
- 未送達交易,此類交易不會出現在任何地方,說明交易尚未到達「區塊領導者」(Block Leader,指某個時間段裡負責處理交易的驗證者)那裡,這正是許多使用者當前遇到的情況,這屬於網路層問題,而非共識 / 執行層面的問題;
你可能會疑惑,網路層是什麼?
放心,稍後我們就會討論這些未送達的交易,以及它們為何是當前 Solana 擁堵的主要原因。在此之前,讓我們來聚焦那些失敗的交易,因為理解為什麼失敗的交易不是主要問題這一點,很重要。
如果仔細觀察,你可能會驚訝地發現,這些失敗交易中只有大約 8% 來自真實使用者,其餘的都是鏈上機器人執行套利交易失敗的案例:套利者會向 Solana 大量傳送垃圾交易,因為與成功套利帶來的回報相比,傳送垃圾交易的成本微不足道。
例如,他們可以每天多次向 Solana 傳送垃圾交易,這將花費他們幾百美元(因為 Solana 的費用很低),而他們只需要完成一筆交易就可以賺取高達 10 萬美元的利潤。
因此,重要的一點是,這些失敗的交易並不意味著 Solana 的活躍度出現問題 ——Solana 網路正在按預期執行,所以這些失敗的交易只是由於 Bot 們的交易條件不滿足而最終導致的,並不是目前 Solana 使用者體驗不佳的主要原因。
事實上,自去年 11 月以來,Solana 的交易失敗率一直保持在 50% 左右,如果你回顧一下我上面列出的失敗與成功圖表,你會發現之前的情況也差不多。
那現在就讓我們討論一下過去幾天 Solana 擁堵的主要原因 ——「未送達的交易」,正如前面提到的,這些交易未能到達「區塊領導者」,並且由於網路層的問題而被丟棄。
網路層是網際網路的通訊層,用於在不同的連線之間傳送資料包,例如:TCP(傳輸控制協議)、UDP(使用者資料報協議)、QUIC(由Google設計)等。
而 Solana 最近剛剛升級 QUIC 作為其網路層,它有助於在使用者和「區塊領導者」之間建立連線,而且由於 Solana 具有持續的區塊生產能力並且沒有記憶體池,因此丟失連線將意味著交易不會寫入區塊。
QUIC 使「區塊領導者」能夠根據特定標準切斷某些使用者的連線或限制其速率,因此,「區塊領導者」現在可以在鏈上需求高企時放棄某些連線,也就是說,這種新架構可防止 Solana 在網路活動增加時停止執行 —— 雖然網路這時可能會非常擁擠,但至少不會停下來。
所以你可能會問,如果 QUIC 的一切都設計得如此好,為什麼 Solana 現在這麼糟糕?
因此問題是,即使「區塊領導者」現在可以限制某些連線,但具體「要限制哪些連線」的邏輯卻執行得很差,而且存在缺陷。
為了更好地理解,讓我們想像一下,如果正常情況下每個「區塊領導者」都有 X 個可以對話的連線,那在活動高峰期,「區塊領導者」就會開始接收 10-100 倍數量的連線請求……
這時「區塊領導者」可以選擇放棄某些連線,但是問題在於,這些連線目前並不是根據一組既定的標準被丟棄(比如丟棄所有費用低於 X 的連線),而是被隨機丟棄……
所以本質上,要想你的交易被打包,你必須比其他人傳送更多垃圾交易,而且由於有多個機器人會向網路傳送連線請求,普通使用者建立連線和完成交易變得越來越困難。
這就是主要問題的要點,Firedancer、Anza、Solana 等團隊正在努力修復網路層,這些更新正在陸續推出,一些主要更新據說將在未來幾周內推出。
這就能解決問題了嗎?Solana 會再次騰飛嗎?並不完全是,導致未來還有很長的路要走的原因有三個:
- 無法保證當前的修復措施在防止 Solana 下次出現擁堵問題方面會有多大效用,只有等到實際應用時才能知道效果如何;
- Jump Crypto 的 Firedancer 可能確實能解決這些問題,但它要到今年年底才會釋出;
- 網路垃圾交易問題,也即 Solana 的交易經濟學存在諸多問題,無法阻止惡意使用者傳送垃圾交易來濫用網路;