以太坊備受期待的 Pectra 更新在 Sepolia 測試網路上遇到了因漏洞導致空塊挖掘而出現的中斷。該更新於 3 月 5 日推出,幾個小時後就遇到了問題,因為開發人員注意到他們的 geth 節點上有錯誤訊息。
根據以太坊開發者 Marius van der Wijden 的詳細報告,該團隊在上週三 UTC 7:30 左右在測試網路上發現了存款合約中發生的意外行為。合約並沒有觸發預期的存款事件,而是發出了錯誤的轉帳事件。
「硬分叉上線後不久,我們告訴 Jim McDonald 發送存款來測試 Pectra 中添加的執行觸發提款功能,然後我們在 geth 節點上看到錯誤訊息,並開始看到大量空塊被開採,」van der Wijden 解釋道。
據報道,錯誤訊息為:“無法解析存款資料:存款長度不正確:我想要 576,我有 32。”這意味著使用存款合約代幣執行了意外的 ERC-20 轉賬,破壞了鏈的預期行為。
未知攻擊者利用錯過的邊緣情況
Wijden 表示,開發人員迅速採取行動實施修復,但被忽視的邊緣情況導致未知攻擊者利用該系統。攻擊者向存款地址發送了零代幣轉賬,並成功再次觸發相同的錯誤,導致空塊繼續挖掘。
「我們檢查了存款合約,並確認沒有人可以啟動存款功能(因為它是代幣門,我們只將代幣分發給 Sepolia 的受信任方)。然而,我們錯過了 ERC20 規範中的一個邊緣情況,」開發人員指出。
最初,開發人員懷疑錯誤來自受信任的驗證器,但後來意識到該交易來自透過水龍頭資助的新帳戶。以太坊團隊隨後開始協調修復的實施,而不會分裂鏈條。
Wijden 表示,倉促發布可能會導致網路碎片,因為未更新的節點將無法連接到固定鏈。避免危機後,他們計劃在世界標準時間 14:00 聯合發射,這給了團隊時間準備。
開發者進一步調查後發現了缺陷:ERC-20標準並未禁止零代幣的轉移。這意味著任何人,無論擁有多少代幣,都可以發送零代幣移動。這就是導致沉積事件的原因。
正如開發商所描述的,在協調修復之前三個半小時, 塞波利亞會產生「許多」空塊。為了同時恢復正常運營,開發人員刪除了觸發漏洞的交易,並用更有利可圖的交易取代。
開發人員實施了一個私人解決方案來遏制攻擊
以太坊團隊實施了一個私有解決方案,可以過濾與存款合約互動的交易。考慮到懷疑攻擊者正在監視開發人員的聊天,他們決定不立即公佈修復程序。
「解決方案是僅過濾直接引用存款合約的交易。如果我們公開了修復程序,攻擊者就能夠透過從另一個合約呼叫該合約來繞過我們的緩解措施。這些內部呼叫仍然會觸發事件,但在創建區塊時不容易過濾,」 Wijden報告。
一旦大約 10% 的網路節點被更新,完整的區塊就開始再次出現。這允許鏈在整個補丁準備部署的同時運行。
世界標準時間 14:00,所有節點更新到包含最終修復的新版本。幾個區塊後,攻擊者的交易被成功破壞,確認所有節點營運商都已實施修補程式。該事件並未影響以太坊主網,因為該問題特定於 Sepolia 的代幣門存款合約。
這影響了所有節點,因為這是 Sepolia 上倉儲合約的規格和實施之間的衝突
- MariusVanDerWijden (@vdWijden) 2025 年 3 月 9 日
當社群媒體用戶詢問時
以太坊價格戰持續:市場活動疲軟
以太坊仍顯示疲軟跡象,上週價值下跌超過 10%。以市值計算的第二大代幣目前徘徊在 2,000 美元大關附近,這是三個月來的低支撐位,市場觀察人士預計該水平還會更低。
根據市場技術指標,ETH處於持續下跌趨勢,高點和低點不斷下降,移動均線看跌。如果以太坊未能守住 2,000 美元,分析師警告稱,下一個主要支撐位將在 1,800 美元至 1,700 美元之間。
儘管相對強度指數 (RSI) 為 30.45,表明可能出現短期反彈,但 2,200 美元的阻力位是代幣在 24 小時內未能突破的水平。
Cryptopolitan Academy:即將推出:2025 年透過DeFi賺取被動收入的新方式。