HashQuark 、DODO、Mask Network、EigenPhi 以及安比實驗室就「如何規避和優化 BSC 網絡宕機、節點服務緩慢、黑客攻擊頻繁等問題」展開了深度討論。

整理:Zoe Zhang

對於任何公鏈來說,安全都是重中之重的問題。新興公鏈中雖不乏佼佼者,但網絡性能及安全方面仍有優化空間,即使是自去年 9 月上線以來就表現亮眼的 BSC 也無法避免。過去幾個月裏,BSC 出現了多次網絡停止和黑客攻擊的事件,給 BSC 帶來不少的負面影響。有人說 DeFi 協議本身有問題,也有人說項目代碼重合度高,社區的熱烈討論進一步推動了我們的思考。

2021 年 6 月 8 日,在由 Hash Global、Mask Network 主辦,鏈聞、Winkrypto 聯合主辦了一場主題爲「BSC 迭代演進之路」的 Meetup 閉門會活動圓桌對話環節中,鏈聞研究總監潘致雄、HashQuark CMO Dora、DODO 聯合創始人兼 CEO 雷達熊、Mask Network 創始人兼 CEO Suji Yan、EigenPhi 聯合創始人程顯峯以及安比實驗室合約安全總監孫志鵬圍繞「如何規避和優化 BSC 網絡宕機、節點服務緩慢、黑客攻擊頻繁等問題」話題展開深度討論。

本文爲該場圓桌討論的精彩內容集錦,內容有所編輯。

潘致雄:更早之前 BSC 網絡還出現了網絡停機問題,這些問題的根本原因是什麼?當時給各個協議帶來的影響有多大?

Dora:Hash Quark 作爲身處戰鬥一線的節點,發現雖然在 BSC 大面積擁堵期間面臨較大壓力,但我們的服務器沒停過,所以 BSC 網絡宕機、停機的說法其實並不存在。究其原因,我們可以從 BSC 發展路徑以及它的機制設計上來看這個問題。

第一,相對以太坊來說,BSC 設置了更大的區塊,出塊速度更快,性能更優越。我認爲正是因爲 BSC 好用又便宜,用的人多,才導致了堵。

第二,很多人會覺得 BSC 21 個節點機制會有中心化問題,但 BSC 服務器的要求和成本非常高,Hash Quark 運營了大概 40 條公鏈的節點,BSC 服務器硬件要求以及投入成本可以排進前五,高門檻保障了節點平穩運行。另外一方面,隨着硬件不斷的升級,BSC 的性能也有提升的空間。

潘致雄:大家的項目都部署在 BSC 上了嗎?

雷達熊:DODO 在 BSC 上的業務此前也受到比較大的影響,廣播節點和驗證節點不同步導致區塊延遲,網絡節點受到比較大的衝擊,直到 BSC 更新節點服務器後問題才解決。

經歷過這件事情之後,我認爲物理世界是有限制的,不要以對任何鏈產生過高的期待。隨着 BSC 發展規模的擴大,誰也無法保證可用性。現在我們在接每一條新鏈時都會做很多準備,這是從 BSC 身上吸取的經驗。我們相信 BSC 未來能夠很好的解決這類問題,發展的越來越穩。

Suji Yan:BSC 的問題誰都可以在上面寫代碼,誰都敢在上面寫代碼,就可能會導致節點資源浪費在沒有意義的地方,所以從另一個角度來說,Gas 費貴一點也不是沒有好處。現在每次看到很多大項目即將上線我們就很緊張,擔憂他們大概要在主網上做什麼測試以及將會出現什麼狀況,這是我們的一些經驗,其實還是很脆弱的。

大家覺得 BSC 比較中心化,但在我眼中,BSC 和以太坊都有中心化的弊端。

90 年代的時候大家都在做網頁,沒有人做服務器,後來導致大面積網頁陷入癱瘓等問題,後來才發展成爲一個服務器鏈條產業的。我認爲隨着公鏈的深化發展,不管是多節點公鏈還是少節點公鏈,像 PoS 或者 BSC 這樣的公鏈很有可能會進入到大型提供商自建機房的階段,自己把客戶端代碼重新全部讀一遍,或者像安比實驗室這樣查驗一遍。

潘致雄:補充問一下 Dora,BSC 遇到這些問題之後,具體採取哪些措施?

Dora:其實 BSC 本身並沒有被 DDOS 攻擊,所以我們也沒有特別緊急的。但是有一個數據可以分享一下:

作爲最早一批 BSC 做節點的團隊,目前我們的 BSC 節點一共做了 18 次客戶端升級,其中有 16 次都是發生在 4 月和 5 月上旬,也就是 BSC 最擁堵的這一段時間。這一段時間技術同事們壓力很大,經常半夜收到短信,就要爬起來升級客戶端,非常感謝所有同事的團結努力幫助我們一起讓度過難關。

潘致雄:5 月份 BSC 網絡超過 10 個項目遭遇黑客攻擊產生連鎖效應,涉及閃電貸等問題,導致這一問題的本質原因是什麼?

孫志鵬:我認爲可能是因爲各個項目之間代碼互相 Copy,導致漏洞也在這些項目之間傳播,造成一個項目被攻擊、多個項目接連被攻擊的現象。

除此以外,造成 BSC 在 5 月接連爆出黑客攻擊的原因,和很多開發者對於無論是閃電貸還是對於 DeFi 協議間相互組合的風險意識較爲薄弱有重要關係。另外,目前可能有些工具可以輔助幫助快速發現類似的漏洞,這加快了這些漏洞被利用的速度,但是閃電貸在這裏只是降低了攻擊門檻,提高了攻擊收益。

程顯峯:我一直對智能合約上的攻擊持悲觀態度,例如現在 2021 年,windows 平臺依舊有病毒。面對無窮無盡的組合去防範風險非常難,從另一個角度來說,大家覺得攻擊是不好的東西,但攻擊反向推動了智能合約的進步。

閃電貸既是核武器也是核能,它雖然展現了更高的效率、更好的資金槓桿以及更有效率的資金使用率,但同時它也有很大的破壞力。

Suji Yan:攻擊還包括與人相關的問題,即用 DAO 攻擊別人。在 DAO 治理模型中,雖然鏈上是透明的,但是 DAO 的治理投票機制也存在風險,例如,Gitcoin 社區通過提案投票將 Vitalik Buterin 捐贈的 49 萬億枚 AKITA 兌換爲 ETH,對於 AKITA 來說造成了影響。這是新的風險,DAO 的風險,有控票現象而且不講道理。經濟體系很大的時候不要太相信自治投票。

潘致雄:Suji Yan 聊到了一個關於攻擊的新思路。

雷達熊:我認爲在構建 DeFi 項目的代碼時開發者應該思考經濟學相關的問題,開發者除了技術知識還需要掌握相關的經濟學知識。

潘致雄:接下來聊一下,既然存在這麼多問題,對我們未來的開發有什麼建議?無論從安全審計上還是經濟學,如何儘可能地避免?有沒有緩解的方案?

雷達熊:很多項目因爲尋求創新而開發複雜的系統,但這種創新會帶來整體風險的增加,建議開發者用簡單的代碼讓系統變得簡單。能用簡短代碼寫完,不要多加很多東西,這是我對開發者的一些建議。

Suji Yan:我建議不要太相信自己投票機制,現在大部分的自己投票的體系都很脆弱,經濟體系很大的時候,容易出現很多問題。

原來我非常反對留後門這種行爲,我認爲不應該有這種東西。但我現在覺得應該留一個後門,然後設計某個機制讓這個後門不要被濫用,這對於項目後期的優化發展比較重要。

程顯峯:我很同意這個觀點。很多開發者覺得代碼即法律,但經驗不可能覆蓋到未來的所有情形,法律本身是不可能做到盡善盡美的,一般的合同都有一個未盡適宜等等,換句話說法律都有後門,經濟模型的設計更是如此。我們不要寫死,留一點改變空間。因爲很多時候,開發者認爲自己已經設計的很完備了,但總有人能找到漏洞。

孫志鵬:對開發者的建議有兩方面:一是開發者真正去了解一下漏洞深入原理,提高後續的代碼安全性;二是藉助專家的力量。另外,建議開發者適當放慢節奏,很多項目從開發到上線,時間太短了。相反,我個人最喜歡的 Uniswap 核心代碼,不僅代碼極簡,而且有非常詳細的測試用例,甚至還帶有形式化驗證,非常值得學習。

Dora:我對用戶的建議就是永遠不要考驗人性,大家對於參與的項目應該做一個基本的盡調,當你發現這個項目裏面有不合理設計的時候,應該保持懷疑和警覺的態度。