新聞加密貨幣10 ETH 退款漏洞如何凍結 THORChain 十條鏈上的交易

10 ETH 退款漏洞如何凍結 THORChain 十條鏈上的交易

作者: Coindoo·

重點速覽

  • •10 月 31 日以太坊的一次單區塊重組,使存入 THORChain 的單筆 10 ETH 存款觸發 20 ETH 的支付——已記帳的兌換交易與存款本身均獲得退款。
  • •每個 THORChain 節點都記錄了重組,但針對該存款的自動覆核未能在觀察結果於 THORChain 鏈上定案並發出退款之前完成。
  • •自動償付能力檢查器暫停了 ETH 兌換,節點營運者約在兩分鐘內停止交易簽名,並出於預防目的暫停了十條鏈上的交易,包括 ATOM、BCH、BSC、BTC、DOGE、ETH、LTC、SOL、TRON 和 ZEC。
  • •收款人自願歸還了多付的 10 ETH,但 THORChain 曾警告,惡意行為者在重組期間重用交易 nonce,可能從其金庫獲得支付且無需歸還。
  • •這次暫停無意中延遲了歸因於北韓 TraderTraitor 組織的 64 億美元幣安盜竊案資金的洗錢進度;THORChain 未設定恢復時間,並指出 5 月約 1,070 萬美元的攻擊後,類似的修復與重啟耗時超過五週。
10 ETH 退款漏洞如何凍結 THORChain 十條鏈上的交易

跨鏈流動性協議 THORChain 在一次以太坊單區塊重組導致其金庫就單筆 10 ETH 存款重複支付後,凍結了十條區塊鏈上的交易。該協議讓使用者在它所連接的區塊鏈之間兌換資產:存款進入其金庫,節點營運者為離開金庫的支付進行簽名。THORChain 於 11 月 1 日在一則 X 貼文中說明事件經過,表示使用者已歸還多付的 10 ETH,核心開發者正在進行必要的修改。

重組移除了什麼

10 月 31 日 11:34 UTC,以太坊以一個競爭版本取代了一個較新的區塊。被捨棄的區塊中包含一筆存入 THORChain 金庫的 10 ETH 存款,而該協議的觀察者此前已看到並記帳了這筆存款。

如此新的區塊仍可能被取代。以太坊只有在大約兩個 epoch、約 13 分鐘之後,才會將區塊視為最終確認,且 THORChain 的說明中沒有任何跡象顯示已最終確認的歷史發生了改變。故障發生在 THORChain 內部——它在以太坊尚未結算該筆存款前就採取了行動。

隨後發生了兩筆支付。與已記帳存款綁定的兌換交易未能達到價格限制,因此 THORChain 退回了 10 ETH。接著,發送者在以太坊被接受鏈上的存款也獲得了退款。結果是:一筆 10 ETH 存款進入金庫,卻有 20 ETH 流出。

THORChain 自己的警告說明了單筆存款如何可能被重複計算。每個以太坊帳戶都使用 nonce 為交易編號。當原始轉帳隨區塊一起消失後,該 nonce 就可以在被接受的鏈上再次使用。THORChain 寫道,在任何外部重組期間,「惡意行為者可以使用相同的 nonce 發起一筆新交易」,並從其金庫獲得支付。

每個節點都看到了重組。退款仍然支付了出去。

問題不在於偵測。據 THORChain 稱,每個節點都記錄了這次重組,但旨在確認存款狀態的自動覆核,未能在 THORChain 在自己的鏈上將觀察結果定案之前完成。Bifrost 文件描述了當外部交易消失時,觀察結果應如何被撤銷。而在 10 月 31 日,這一撤銷未能在退款支付前發生。

該貼文並未說明覆核為何來不及完成,也未說明修復將改變什麼。這筆退款之所以被彌補,僅僅是因為收款人選擇歸還。正如 THORChain 對此漏洞的描述:它會支付給任何觸發漏洞的人,而圍繞未來重組安排交易時機的人,將沒有任何理由把錢送回來。

為何一個 10 ETH 漏洞凍結了十條鏈

THORChain 的自動償付能力檢查器發現了缺口並暫停了 ETH 兌換。約兩分鐘內,節點營運者也停止了 ETH 交易簽名,從而阻止金庫對外支付。隨後他們出於預防目的暫停了其他鏈上的交易,因為 nonce 警告涵蓋任何已連接鏈上的重組,而不僅限於以太坊。

截至 11 月 1 日貼文時,THORChain 各項服務的狀態:

  • **交易暫停:**ATOM、BCH、BSC、BTC、DOGE、ETH、LTC、SOL、TRON、ZEC
  • **交易正常:**AVAX、BASE、RUNE、XRPL
  • **對外支付:**10 月 31 日的狀態數據顯示,大多數被暫停的鏈上簽名仍然啟用,因此待處理的支付仍可離開,而新兌換則保持封鎖。

交易狀態依 THORChain 11 月 1 日的貼文;簽名狀態依 10 月 31 日回報的 THORChain 狀態 API。

這份名單已經變動過一次。10 月 31 日晚間,The Defiant 報導稱,THORChain 的狀態 API 顯示 13 條外部鏈中有 12 條的交易已暫停。到 11 月 1 日的貼文時,其中三條已重新啟用。THORChain 並未說明為何這三條率先恢復。

這一切都不影響底層網路本身。比特幣、以太坊及其他鏈仍在持續出塊;暫停只是限制了 THORChain 願意為各鏈處理的內容。

從某個角度看,這次事件顯示了安全機制在正常運作。檢查器在無需人工介入的情況下觸發,支付在幾分鐘內停止,風險敞口保持在 10 ETH。今年 5 月,一次攻擊從金庫竊取約 1,070 萬美元後,同樣的檢查也曾不得不暫停交易與簽名。但檢查器無法修復觀察邏輯,這就是為什麼在金庫恢復完整之後,暫停範圍反而擴大而非縮減。

三票即可暫停,四票才能推翻

這類暫停屬於運營設定,THORChain 的治理文件允許一小群節點修改它們。一項設定至少需要三張活躍節點的贊成票,且票數必須超過所有競爭值;平手時維持現行設定。

這一門檻此前曾在公開場合受到考驗。2025 年 2 月 Bybit 被盜資金的洗錢過程中,三名驗證者投票暫停 ETH 交易,其他節點營運者幾乎立即推翻了該投票。THORChain 在 11 月 1 日的說明中也指出,暫停某條鏈並不會讓節點取得金庫資產的控制權。停止活動與為轉帳簽名是兩種獨立的權力。

THORChain 不願對洗錢者使用的暫停手段

9 月 28 日,面對凍結 Bitget 遭駭資金的呼籲,THORChain 在 X 上寫道,網路暫停是一項旨在保護協議的緊急安全措施,並拒絕對那些資金使用此手段。而這次的重組漏洞恰恰屬於此類緊急情況,且其觸發的暫停仍然攔住了洗錢者。

將 64 億美元幣安盜竊案歸因於北韓 TraderTraitor 組織的Chainalysis於 11 月 1 日表示,THORChain「在無意中延遲了從幣安竊取的大量資金的洗錢進度」。這一延遲來自同一個令普通使用者困擾的特性:被暫停的鏈不會處理任何人的兌換。Coindoo 關於 FBI 呼籲加密基礎設施營運者採取行動的報導,涵蓋了直接封鎖這些交易的相關努力。

兌換恢復前必須完成的事

THORChain 的開發者文件警告不要向被暫停的鏈發送資金,因為交易可能一直閒置無法處理,直到暫停解除。11 月 1 日的貼文未給出恢復時間。節點營運者將在判斷安全後重新啟用各條鏈。

有三件事能表明漏洞已真正修復而非僅被暫停:THORChain 公布其處理外部重組方式的變更、節點營運者升級至該版本,以及 ETH 簽名與交易在被暫停的鏈上一同恢復。5 月的攻擊之後,這一過程從緊急修補到完整修復並重啟交易,耗時超過五週。這只是該流程的參考,而非本次事件的時間表。

被歸還的 10 ETH 已了結 10 月 31 日的支付。重新啟用 ETH 簽名,將是營運者相信 THORChain 能應對下一次重組的首個公開訊號。