作者 | Richard Lee
01
為什麼「公鏈宕機」值得重視?
Web 3.0以同時結合了Web 1.0的開放性和Web2.0的經濟效益著稱,是加密圈對下一代互聯網浪潮的統稱。這一舊術語重新成為熱詞,除了它給加密經濟賦予的合法性外,更因為它象徵了區塊鏈和加密技術的大規模採用。
公鏈賽道在2021年迎來爆髮式發展,Solana的登場是原因之一:號稱每秒數萬的TPS,致力於給用戶帶來更快、更低廉的鏈上使用體驗。SBF、美國銀行等多個名人或機構都將Solana看作促進大規模加密採用的門戶。
在鏈上應用有望進一步出圈的未來,公鏈作為最底層的基礎設施,其安全與穩定性至關重要。以Solana為代表的新公鏈計劃向以太坊發起挑戰,並成為很多新用戶進入加密行業的第一站,但相繼遭遇宕機等尷尬狀態,反映出這些新公鏈在快速發展過程中也逐漸暴露出自身的弊端。
上述公鏈網路動輒癱瘓長達數小時的現象如不能及時得到解決,勢必將給新入場的主流用戶帶來糟糕的使用體驗和印象,成為制約加密經濟大規模發展的重要瓶頸。
畢竟,公鏈作為分散式節點維護的去中心化網路,如果還像基於中心化伺服器的平台一樣頻頻宕機、卡頓,如何令主流人群信服?
02
流量失控:新公鏈們「停擺」根因
「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 將共識消息也作為一種特殊的事務消息在驗證節點間傳遞,大量的消息堵塞導致了共識消息無法正常傳遞,而使得共識無法正常進行。
國內知名公鏈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日出現網路中斷現象,但從官方公告來看,這與流量失控沒有直接關係,主要還是與該網路由於仍在測試階段而特意保持的較高中心化程度有關。
據悉,首次事故的原因是其Sequencer存在bug,而最近一次掉線則是由於主Sequencer節點出現硬體故障,同時備份Sequencer未能及時生效,導致網路「罷工」數小時。
「雖然我們通常有冗餘,可以讓備份 Sequencer 無縫控制,但由於正在進行軟體升級,這些功能未能生效。結果就是,Sequencer 停止處理新事務。」Offchain Labs稱。
據悉,序列器(Sequencer)是Arbitrum 開發團隊 Offchain Labs運營的一個全節點。序列器具有一定特權,可控制收件箱中每筆交易的排序,來保證用戶的交易結果能夠立即被確定。
Offchain Labs在上述公告中表示,一旦 Arbitrum 完全去中心化,最有力的保證就會到來。
03
提高「作惡」門檻是最終解嗎?公鏈穩定性的未來在哪裡?
事實上,在一定動機激勵下,編寫腳本、開掛作弊,是互聯網用戶長期以來的自然行為,隨著鏈上交互的增多,「交易泛濫」和「機器人」困擾不可避免地會進入區塊鏈空間。
同期網路運行狀態遭遇惡評的還有Polygon網路。1月初,因Polygon上的P2E遊戲Sunflower Farmers火爆,參與玩家發送了大量事務請求,一時間內該款鏈游的智能合約Gas消耗,一度佔據了整個Polygon網路的41.8%,導致Polygon上的其他類型交易被暫時擱置,網路呈現高度擁堵狀態,平均Gas價格數日內上漲近7倍。
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表示這是因為大區塊的設定導致驗證節點需要較多
技術改進和去中心化程度提高,就能保障公鏈網路運行的穩定性嗎?
針對這一問題,也有網友效仿區塊鏈「可擴展性」的「不可能三角」,提出了「交易質量」的選擇困境:交易泛濫(spam)、抗審查性(censorship resistance)和低費用(low fees)三者之間,實現其二,剩下的另一目標就必定不能實現。
實際是否如此,在上述項目團隊實施改進措施前,尚屬未知。
但無論如何,公鏈宕機現象都給予啟示:未來很長一段時間內,公鏈作為底層基礎設施都還處在早期階段,還需迎接在網路穩定性、生態完善性等層面的更多考驗,特別是需要採取更多措施應對交易激增等特殊情況,避免對普通用戶的使用體驗造成負面影響。
冷萃財經原創,作者:awing,轉載請註明出處:https://www.lccjd.top/2022/01/31/%e8%b0%83%e6%9f%a5%ef%bc%9a%e6%96%b0%e5%85%ac%e9%93%be%e4%bb%ac%e4%b8%ba%e4%bd%95%e9%a2%91%e7%8e%b0%e5%ae%95%e6%9c%ba%e4%ba%8b%e6%95%85%ef%bc%9f/?variant=zh-tw
文章評論