以太坊開發者修補 Glamsterdam 升級的一處漏洞,該瑕疵原本可能讓操作員把質押服務準備給新驗證者的 ETH 領走。網路在週一合併;目前沒有資金損失。
(前情提要:以太坊 Glamsterdam 升級無限延期!ChainSecurity 揪出 13 個受影響合約)
(背景補充:以太坊 Glamsterdam 升級 10/6 上測試網,開發者警告:假 builder 能癱瘓鏈)
以太坊開發者成功修補 Glamsterdam 升級裡的一處漏洞,這個瑕疵原本可能讓有心人把質押服務準備給新驗證者的 ETH 整筆領走。整個修補過程一度卡關,最後在測試延期空出的時間裡翻盤過關,目前沒有傳出任何資金損失。
要理解問題出在哪,得先看 Glamsterdam 想拆開的兩件事。目前把交易打包成區塊的 builder,與質押 ETH 來挑選、確認區塊的 validator,兩種角色在某些環節綁在一起;升級後兩者被拆成獨立身分,而且都能存入 ETH,帳務理應分開記錄。
錢是怎麼憑空消失的
漏洞出現在升級本身處理「還沒入帳的待處理存款」的時候。
研究員 Avsetsin(列名於 Lido 的 GitHub 組織)推演出一個情境:操作員先以某把公鑰註冊為 builder,若質押服務接著用同一把公鑰存入 ETH、準備啟動驗證者,當時的草稿規則會把兩筆存款都記到 builder 名下。Avsetsin 寫道「操作員可以把協議的資金領走」,更麻煩的是驗證者根本沒被建立,質押服務因此拿不出能證明、進而追回款項的證據。
他進一步檢查 Lido、Origin 與 Rocket Pool 各自會受到什麼影響,並自稱這是「快速的 AI 研究」。他強調「這些是條件式的程式碼發現,不是已確認的實際攻擊」,既有的檢查只要拒絕先前的 builder 存款,就能擋下這條路徑,事後也沒有任何損失回報。
先被打回票,再翻盤過關
修補提案其實一度被關閉。維護以太坊共識規範的 Justin Traglia 在 10 月 19 日寫下「客戶端目前的支援度不足」,因此暫緩這項變更;客戶端指的是驗證者用來參與網路的各種軟體程式。進一步檢視後提案重新開啟,Avsetsin 在 10 月 23 日補上測試,Traglia 隨後於週一將它合併。
新規則改以提款憑證來排序待處理的存款,提款憑證決定一筆存款最終能流向何處;如此一來,即使 builder 使用了同一把金鑰,驗證者存款仍會留在驗證者名下。這項變更如今已納入以太坊共識規範,但各客戶端團隊還得把它實作進自家軟體才算完成。
Glamsterdam 其實已在 Sepolia 測試網跑過一輪,但 10 月 26 日在第二個測試網 Hoodi 的上線被延後,主網排程得等 Hoodi 的新日期出爐才有著落。
質押服務、客戶端與主網時程的三重考驗
這次修補的意義,在於 Glamsterdam 把 builder 與 validator 拆成獨立身分之後,「同一把金鑰、兩種身分」的邊界一下子變多,這類帳務混淆的風險只會隨著架構拆分而上升。
值得注意的是,問題由質押服務端的 Lido 社群成員發現,而不是核心客戶端團隊,顯示升級風險的外部審視正逐漸由大型質押協議補位;對照動區先前報導的 ChainSecurity 揪出 13 個受影響合約、以及 Hoodi 測試網延期,Glamsterdam 目前累積的安全債,似乎集中在「存款與入帳」這條路徑上。
後續有幾個具體觀察點。其一是各客戶端是否真的把新的存款排序規則實作完成,這會決定主網能否排程;其二是 Hoodi 的新上線日期何時拍板,因為 Glamsterdam 得先在 Hoodi 跑過一輪,主網時程才有著落;其三則是質押服務會不會調整金鑰註冊流程,從源頭避免 builder 與 validator 共用同一把公鑰。
📍相關報導📍
以太坊 Glamsterdam 升級緊急修補 Prysm,Sepolia 測試網 Gas 上限升至 2 億
以太坊研究員提「解耦共識」草案 EIP-8453!交易定案從 16 分鐘縮至 4 分鐘,跨鏈成本有望下降
以太坊敲定年底前上線「Glamsterdam升級」!ePBS 上鏈、Gas 重定價,企圖重建 ETH 信仰

