以太坊基金會(Ethereum Foundation)18 日發布文章,詳述該網路自 2019 年以來一個明顯的漏洞,可能引發主網遭 DoS 攻擊。不過該漏洞終於在今年 4 月柏林硬分叉中,透過 EIP2929 和 EIP2930 完成修復,攻擊效果估計大降 50 倍。
(前情提要:以太坊「柏林硬分叉」完成!卻遇客戶端共識錯誤;ETH續刷歷史新高達 2,548 美元)
(背景補充:以太坊柏林硬分叉|搞懂「Gas開銷計算」改變,新增「訪問清單」功能又如何使用?)
以太坊基金會本月 18 日發表的部落格文章指出,今年 4 月 15 日「柏林硬分叉」完成後,不只調整了 Gas 費用計算,更修復了過去兩年以來以太坊網路未解的「明顯、現存危險」。
據外媒《CoinTelegraph》19 日報導,該漏洞可能使主網以低於五位數的成本被擊垮。
以太坊基金會甚至坦言這自 2019 年 10 月以來就是「公開的祕密」,不過以往幾次無意間提及都沒有具體細節。既然如今已經被修復,官方評估威脅程度非常低,因此進行全面揭露以實現資訊透明化。
漏洞來源
首先,以太坊狀態由 Merkle Patricia Tree(又稱 Merkle Patricia Trie)組成,該數據結構經過改良,融合了默克爾樹和前綴樹兩種樹結構優點。概念上來說可以將以太坊網路的新帳戶比喻成一棵樹上新生長的葉片,而在樹根和每個葉片之間,有很多「中介」節點。
而隨著以太坊發展,自 2016 年 10 月以來 Gas 費用開始刻意被提高,以防止阻斷服務攻擊(DoS attacks),包含同年的 EIP150,以及 2019 年 12 月伊斯坦堡升級中具爭議性的 EIP1884 提案。
2019 年,以太坊安全研究人員 Hubert Ritzdorf、Matthias Egli 和 Daniel Perez 三人針對 EIP1884 引發的漏洞,發表了詳盡報告,指出隨著以太坊狀態成長,攻擊引起的延遲也會變得更久,使該網路可能遭受有效的 DoS 攻擊。
本月公告指出,攻擊會觸發隨機的 trie 查詢,並可能「導致分鐘範圍內的封鎖期」(lead to blocktimes in the minute-range)。
延伸閱讀:ETHFANS專欄|以太坊 12 月 7 日 「伊斯坦堡升級」內容解讀
問題解決
針對該漏洞,有兩種方法解決。一是透過以太坊協議層,最好不要破壞合約、不要懲罰「良好」行為,但仍要設法防止攻擊;二是透過軟體工程設計,更改客戶端的數據模型和結構。
因此 2020 年期間開發者提出了各種相關建議,但最終以太坊共同創辦人布特林(Vitalik Buterin)認為僅需針對特定條件增加 Gas 成本及維護訪問清單(Access List),並與 Martin Swende 合作,於同年 8 月提出了 EIP2929 和 EIP2930。
延伸閱讀:以太坊柏林硬分叉|搞懂「Gas開銷計算」改變,新增「訪問清單」功能又如何使用?
這兩項提案「僅針對尚未訪問者」提高 Gas 費用,以防止襲擊,且皆於今年 4 月的柏林分叉中推出。本月 18 日公告估計,經過該升級之後,攻擊的影響力從而降低了 50 倍。
📍相關報導📍
V神:加密貨幣市場正處於泡沫化;預言以太坊市值超越比特幣,其耗能確實該擔憂
519暴跌致「Gas均價暴漲210%」!Gas價格如何影響以太坊?EIP 1559能否改善現狀?
專欄觀點|以太坊的進化:新資本主義、三性資產與「挑戰比特幣的可能性」
讓動區 Telegram 新聞頻道再次強大!!立即加入獲得第一手區塊鏈、加密貨幣新聞報導。
LINE 與 Messenger 不定期為大家服務