深度調查:新公鏈們為何頻現宕機事故?


邁入1月,Solana、Harmony、Arbitrum等多條公鏈/Layer2出現停止出塊的網絡宕機現象,以太坊側鏈Poygon則出現嚴重擁堵現象,用戶反映長時間內無法發起交易或提幣。

上述公鏈多以「高性能」作為主打口號,但卻在相近時間內不約而同開始「罷工」。在此之前,Solana、Arbitrum、BSC、Fantom也已多次暴露出類似問題。

新公鏈集體停擺,反映的是一場廣泛存在、影響深遠的基礎設施危機。鏈捕手通過採訪當事方Harmony團隊,以及Conflux等國內公鏈的專業人士,試圖還原這場危機,並釐清值得重視和深思的問題。

一、為什麼「公鏈宕機」值得重視?

Web 3.0以同時結合了Web 1.0的開放性和Web2.0的經濟效益著稱,是加密貨幣圈對下一代互聯網浪潮的統稱。這一舊術語重新成為熱詞,除了它給加密貨幣經濟賦予的合法性外,更因為它像徵了區塊鍊和加密貨幣技術的大規模採用。

公鏈賽道在2021年迎來爆發式發展,Solana的登場是原因之一:號稱每秒數万的TPS,致力於給用戶帶來更快、更低廉的鏈上使用體驗。 SBF、美國銀行等多個名人或機構都將Solana看作促進大規模加密貨幣採用的「門戶」。

在鏈上應用有望進一步出圈的未來,公鏈作為最底層的基礎設施,其安全與穩定性至關重要。以Solana為代表的新公鏈計劃向以太坊發起挑戰,並成為很多新用戶進入加密貨幣行業的第一站,但相繼遭遇宕機等尷尬狀態,反映出這些新公鏈在快速發展過程中也逐漸暴露出自身的弊端。

上述公鍊網絡動輒癱瘓長達數小時的現像如不能及時得到解決,勢必將給新入場的主流用戶帶來糟糕的使用體驗和印象,成為製約加密貨幣經濟大規模發展的重要瓶頸。畢竟,公鏈作為分佈式節點維護的去中心化網絡,如果還像基於中心化服務器的平台一樣頻頻宕機、卡頓,如何令主流人群信服?

二、流量失控:新公鏈們「停擺」根因

「DDoS攻擊」是項目方在解釋網絡性能下跌時,最常用到的術語之一。 DDoS攻擊的全稱是「distributed denial-of-service attack」,指的是通過使用多個來源的流量,讓流量超出系統的處理範圍,從而使真實用戶無法及時獲得所需的網絡服務或資源。攻擊者通常通過向某一網絡發送超出網卡處理能力的流量,或向某一應用發送超出其管理能力的請求數量,來達到效果。

據區塊鏈白帽黑客組織Halborn介紹,傳統DDoS的做法通常是造成系統中的固定單點故障,比如一台Web 服務器出現故障,訪問者可能無法訪問由其運營的網站。也因此,對DDoS 攻擊的抵抗力通常是區塊鏈技術的主要賣點之一——區塊鍊網絡中沒有一個節點是必不可少的,單一節點下線並不會導致整個網絡癱瘓。

不過這並不意味著區塊鏈就能免受DDoS的影響。 Halborn指出,攻擊者可以發送大量垃圾交易(spam),讓其充斥整個區塊鍊網絡,從而減少「合法用戶」的使用機會和空間資源。在真實場景中,通常所謂的「攻擊」不是真的有預謀的「攻擊」,而是在熱門項目IDO、GameFi交易或市場大行情下,真實用戶借助計算機程序「開掛」,實施的作弊行為。

那麼,持續提高節點服務器的內存容量,可以解決這一問題嗎?答案是否定的。這由大多數區塊鍊網絡共有的特性決定:大多數區塊鏈都有固定容量,它們會定期創建具有特定大小限制的區塊,節點在打包區塊時,任何不適合當前塊的內容都將存儲在「內存礦池」中,等候下一個區塊打包。

因此,這一根本屬性也決定了公鍊網絡都需面對的普遍問題:特殊情況下,可能觸發如洪水般氾濫的交易請求。

如何應對這一難題,以及應對措施是否有效,是考察各大網絡近期表現的重要指標。

Solana用戶可能對「交易氾濫」的體驗最為熟悉。追溯至去年9月14日,Solana全網中斷17小時,所有鏈上服務都無法使用,官方後續報告稱是由於去中心化社交網絡協議Grape Protocol 在Raydium 平台上的IDO活動火熱,許多用戶通過編寫的機器腳本發送大量交易,這些交易造成「內存溢出」,導致驗證節點崩盤,最終整個網絡無法達成「共識」而離線(也即,無法產出新區塊)。

而根據Solana Status公告,Solana網絡從去年12月初出現、延續至今的擁堵現象,也與「9·14」宕機事件暴露的問題有關。 Solana Status是Solana基金會運營的發佈網絡性能公告的推特賬戶。

據區塊鏈公司Laine分析,近期市場行情波動性大,DeFi項目中的許多槓桿倉位都達到清算標準。執行DeFi清算的人會收到獎勵,任何人都可以申請充當清算人。因此這也開創了一個市場,許多人競相清算來爭奪賞金,其中有不少人使用的是自行開發的自動化程序(也即通常所說的「機器人」),為了確保能「贏得」比賽,這些「機器人」會發送幾十次、甚至上百次相同的交易請求。

「我們看到每秒有接近200萬個事務(交易或其他類型的請求)到達同一節點,其中90%以上是完全相同的重複。」Solana聯合創始人Anatoly Yakovenko 1月27日凌晨在Twitter Space活動中表示。

針對宕機原因,邊界智能研究院院長胡智威則進一步向鏈捕手錶示,由於Solana 將共識消息也作為一種特殊的事務消息在驗證節點間傳遞,大量的消息堵塞導致了共識消息無法正常傳遞,而使得共識無法正常進行。

深度調查:新公鏈們為何頻現宕機事故?

Solana TPS的結構組成 來源:solana beach

「同時Solana 的一些特性被針對性的利用導致了網絡宕機。例如為了並發處理事務的寫入鎖定(write-lock)在很多重要地址上被鎖定,使得事務變成順序執行而非並發,極大的影響了對消息的處理能力;節點為處理分叉,不斷保留了可能的分叉信息,導致內存溢出等。」胡智威說。

國內知名公鏈Conflux的CTO 伍鳴向鏈捕手分析,在Solana網絡中交易過多導致網絡擁塞的情況下,區塊的轉發(廣播)延遲就會增加,賬本隨之容易出現分叉;當賬本分叉情況嚴重時,共識算法的壓力就會增加,如果處理不好,最終就會導致系統徹底崩盤。

「這裡面一個很重要的問題是,節點不應該無節制地轉發成本很低的垃圾交易,Solana應該是在這方面的流控(流量控制)沒有做好。」伍鳴表示。

Anatoly Yakovenko也在上述Twitter Space活動中承認了該問題。他稱,主要問題在於,原先的程序設計中,「重複交易檢查」是在簽名驗證之後進行,因此所有的重複數據都必須先經過簽名驗證,才會被檢查是否屬於「垃圾交易」。此外,在節點客戶端升級前,Solana用於刪除重複數據、清除網絡冗餘的程序運行得非常緩慢,需耗時幾百微秒。

為避免下次大行情期間,「機器人」交易再度干擾網絡,Anatoly Yakovenko 稱接下來將在Solana 主網beta 的1.9 版本中引入「實際的流量控制(actual flow control)」。

另一條熱門公鏈Harmony也面臨類似問題。 1月15日,Harmony網絡中斷數小時,團隊官方將基礎gas費提高到30 gwei,來提高發送垃圾交易的門檻。

Harmony社區發布的事後分析顯示,網絡的領導節點(leader node)收到了大量垃圾流量(spam),再加上驗證節點的舊版客戶端對高流量情況的處理不佳,內、外部的因素綜合導致了這一「宕機」事故的發生。

Harmony CTO Rongjian Lan 對鏈捕手錶示,點對點網絡(p2p)數據包重複發送,造成了p2p網絡的擁堵,正常的共識消息無法順利發送,網絡因此無法達成「共識」。其中內部原因在於,Harmony p2p網絡的參數存在潛在bug,因而發生了上述現象。

「新的Web3基建需要更好的流量監測和流量限制的機制,才能杜絕網絡被濫用。」Rongjian Lan稱,Harmony對p2p網絡協議層參數進行優化後,將開展長期性的系統改良工程,在共識、網絡和RPC層都進行優化。

此外,以太坊二層擴容網絡Arbitrum One曾分別在去年9月14日和今年1月9日出現網絡中斷現象,但從官方公告來看,這與流量失控沒有直接關係,主要還是與該網絡由於仍在測試階段而特意保持的較高中心化程度有關。

據悉,Arbitrum One首次事故的原因是其Sequencer存在bug,而最近一次掉線則是由於主Sequencer節點出現硬件故障,同時備份Sequencer未能及時生效,導致網絡「罷工」數小時。

「雖然我們通常有冗餘,可以讓備份Sequencer 無縫控制,但由於正在進行軟件升級,這些功能未能生效。結果就是,Sequencer 停止處理新事務。」Offchain Labs稱。

據悉,序列器(Sequencer)是Arbitrum 開發團隊Offchain Labs運營的一個全節點。序列器具有一定特權,可控制收件箱中每筆交易的排序,來保證用戶的交易結果能夠立即被確定。

Offchain Labs在上述公告中表示,一旦Arbitrum 完全去中心化,最有力的保證就會到來。

三、提高「作惡」門檻是最終解嗎?公鏈穩定性的未來在哪裡?

事實上,在一定動機激勵下,編寫腳本、「開掛」作弊,是互聯網用戶長期以來的自然行為,隨著鏈上交互的增多,「交易氾濫」和「機器人」困擾不可避免地會進入區塊鏈空間。

同期網絡運行狀態遭遇「惡評」的還有Polygon網絡。 1月初,因Polygon上的P2E遊戲Sunflower Farmers火爆,參與玩家發送了大量事務請求,一時間內該款鏈遊的智能合約Gas消耗,一度佔據了整個Polygon網絡的41.8%,導致Polygon上的其他類型交易被暫時擱置,網絡呈現高度擁堵狀態,平均Gas價格數日內上漲近7倍。

深度調查:新公鏈們為何頻現宕機事故?

Polygon 近三個月平均Gas價格走勢 來源:Polygonscan

Polygon長期為「交易氾濫」所困,網絡擁堵現像不時發生。此前在去年10月,Poygon已經將節點客戶端的最低gas 價格調高30倍(由1 Gwei 調至30 Gwei),以應對海量的「垃圾交易」。

這一應對方式與Harmony採取的應急措施一致。但調高基礎gas 價格一方面提高了用戶「開掛」的成本,另一方面也會給用戶體驗帶來影響。

對於項目方的這一慣用操作,伍鳴對鏈捕手分析表示,調高基礎gas作為一種「流控」方式肯定是有效的,這一措施的本質是降低了系統所能支撐的吞吐率。

但他也指出,「如果想要做得更好,需要在系統本身下功夫,提高系統自身能支持的最大吞吐率,就會涉及到共識算法、網絡轉發算法、存儲和執行優化等多方面的改進。」

Solana聯合創始人Anatoly Yakovenko 披露的「流量控制」改進中,就涉及到引入新的協議機制。 Anatoly Yakovenko 稱,新升級中將引入按質押權重的qos 流控機制,這一機制由「Quic Protocol」實現,據稱這一協議由谷歌開發,已有5-6年的歷史。通過這一協議,Solana可以對發件人實施「評級」限制。其中,如何決定如何在不同的區塊之間分配帶寬是開發團隊最需攻克的命題——這一過程需要驗證者接收來自網絡其餘部分的消息流,並根據這些消息的來源權重,對服務質量和擁塞控制進行優先級排序。

Anatoly Yakovenko在推特表示,上述「流控」措施將在接下來4-5週內推出。

胡智威則表示,對於流量攻擊,公鏈還可以採取對於驗證人的網絡流量保護措施,如採用哨兵節點(注:能夠在主節點發生故障時通過一系列的機制實現選主從切換,實現故障轉移的節點)。對於TPS 更高的解決方案,除了在本鏈進行優化外,還可以考慮跨鏈+應用專有鏈的擴展處理方式。

而這也是BSC正在探索的方案。近日,BSC官方在其年度總結中承認其運行機制存在諸多挑戰,包括「網絡擁塞和節點運營商面臨管理其完整節點以與最新區塊同步的困難」,這導致BSC在去年曾多次短期宕機情況。

對此,BSC表示這是因為大區塊的設定導致驗證節點需要較多存儲空間和時間來同步區塊,將在2022年向多鍊和跨鏈發展,推出BSC 應用側鏈(BAS) 和BSC 分區鏈(BPC) ,以減少主鏈的數據存儲量。

深度調查:新公鏈們為何頻現宕機事故?

BSC今年的技術規劃 來源:BSC博客

技術改進和去中心化程度提高,就能保障公鍊網絡運行的穩定性嗎?

針對這一問題,也有網友效仿區塊鏈「可擴展性」的「不可能三角」,提出了「交易質量」的選擇困境:交易氾濫(spam)、抗審查性(censorship resistance)和低費用(low fees)三者之間,實現其二,剩下的另一目標就必定不能實現。

深度調查:新公鏈們為何頻現宕機事故?

實際是否如此,在上述項目團隊實施改進措施前,尚屬未知。

但無論如何,公鏈宕機現像都給予啟示:未來很長一段時間內,公鏈作為底層基礎設施都還處在早期階段,還需迎接在網絡穩定性、生態完善性等層面的更多考驗,特別是需要採取更多措施應對交易大幅上漲等特殊情況,避免對普通用戶的使用體驗造成負面影響。

作者: Richard Lee

(Loners Liu/Hunter He 對本文亦有貢獻)

資訊來源:由0x資訊採集自互聯網。版權歸作者“鏈捕手”所有,未經許可,不得轉載

Total
0
Shares
Related Posts