X100 治理缺陷導致 600 萬美元損失,因為閃電貸款

By: cryptoslate.com|2026/10/28 02:10:15

一名攻擊者在 X100 上獲得了兩個治理席位,這是一個由參議院管理的財庫代幣項目,並在 10 月 24 日批准了一項財庫交易,並在單一區塊鏈交易中償還了閃電貸款。

在 Arkadiko,一個用戶以保證金借貸的協議中,約五天的投票提前兩天結束,讓一個惡意合約獲得了對保證金資產的控制權。人們在決定性投票前不久購買了投票代幣,當選票關閉時,提案生效。

這些事件揭示了在投入資金、獲得投票資格和執行批准行動之間的不同缺口。X100 代幣應鎖定一年,因此長期的代幣鎖定可以施加成本而不延遲權限。

同時,冗長的投票可以提供通知,同時仍然允許晚期購買。兩者都不會自動創造在決策可執行後的反應時間。

X100 的鎖定股份獲得了即時權限

X100 的 Freezer 合約持有凍結的 X 代幣,並提供用於排名參議院候選人的股份。其鎖定條款為一年、三年或五年,但參議院的資格使用當前凍結的數量,沒有最低股份年齡。

在 10 月 24 日的第一次攻擊中,兩個輔助合約各自凍結了 19,000.000001 X,根據一年期的條款。他們註冊、進入排名,並提供了執行提案 7 的兩票支持。他們在單一交易中完成了股份、投票和執行。

治理截止日期沒有強制的等待期。在提案保持開放的情況下,目前排名的參議院席位的多數可以授權執行。持有三個席位中的兩個使輔助者擁有足夠的權力立即行動。

批准的交換將 400,000 財庫 X 發送到攻擊者創建的池中。Freezer 僅收到 35.675313 USDT,然後攻擊者從該池中提取代幣並出售 X 以獲得用於償還的現金。

股份保持凍結,而來自財庫提取和代幣銷售的現金資助了償還,因此攻擊者不需要首先回收所購買的股份。

此次攻擊借入了約 194 萬 USDT,並償還了本金及其溢價。償還後,約 475 萬 USDT 到達第一個最終收款人。

ChainBounty 的貢獻者 Philippark 對 484.8 萬 USDT 進行了對賬,這些款項支付給三個選定的收款人。該小計不包括未售出的 X 及其變動價值,測量選定的支付。

Freezer 還保留了一個重要的約束:執行後,其 X 餘額必須覆蓋用戶凍結的總金額。保護這一鎖定本金的數量並未保護外部池的流動性或代幣的市場價值。

Arkadiko 的投票接受了晚期資金

Arkadiko 的提案 12 於 10 月 17 日 UTC 時間 20:35 提交,並於 10 月 22 日 UTC 時間 16:04 執行。其治理合約給予外部提案者 720 個比特幣區塊的投票間隔,通常描述為五天。

規則要求 0.25% 的合格 DIKO 供應量來提案,5% 的參與率以達到法定人數,並且贊成票必須多於反對票。供應計算減去在初始分配合約中持有的 DIKO。

這些門檻和投票規則並不要求代幣持有者在提案之前持有代幣。提案錢包在 10 月 22 日 UTC 時間 15:03:46 進行了一次交換,並在 15:06:47 進行了一次投票。它承諾了約 457.3 萬 DIKO。提案以相同的贊成票總數和零反對票結束。

Bitquery 估計投票代幣的購買約為 51,000 美元。其追蹤還顯示 77% 的發送到投票錢包的 STX 來自早期的 StackSwap 獲得。

攻擊者在多個交易和日期中投入資金,因此 Arkadiko 的案例與 X100 的單一交易借貸和償還有實質性區別。晚期購買是關鍵,因為它在已開放的投票中成為可用的投票權力。

當投票結束時,變化隨之執行。該決定與合約獲得其權限之間不存在單獨的等待期。

經批准的惡意合約在其提現和 USDA 鑄造功能中缺乏呼叫者授權。提案 12 將其登記為具有鑄造權限的金庫操作合約。成功的呼叫在 UTC 時間 16:06 移除了 sBTC,並在 16:09 移除了 stSTX,這是在啟動後的幾分鐘內。

Bitquery 估計 Arkadiko 的損失約為 109 萬美元:大約 78 萬美元的 stSTX,13.5 萬美元的 sBTC 和 17.3 萬美元的 STX,這些是通過出售未擔保的 USDA 獲得的。
X100 的攻擊者在一筆交易中行動,儘管有一年的代幣鎖定,而 Arkadiko 則在投票後執行,沒有單獨的延遲。

在 10 月 22 日的回應線程中,Arkadiko 表示已禁用惡意合約並暫停治理、金庫贖回和清算。它表示受影響的 stSTX 和 sBTC 金庫無法修改,因為其擔保品不可用。

在 10 月 27 日 UTC 時間 07:57,提案 14 "AIP 32.2 -- 恢復金庫操作" 被執行,將金庫操作入口設置為 Arkadiko 的合法 v1-3 合約。

退出窗口需要一個出口

要求較舊的質押或使用來自早期快照的投票權力可能會防止新獲得的代幣立即合格,而執行延遲將使批准與資產移動分開。

如果每個相關行動都必須通過該延遲,X100 的確切序列將無法在一筆交易中自我融資並償還其貸款。

使用長期資本的攻擊者可以等待,但對於已批准合約可以做什麼的限制仍然是一個單獨的問題。

OpenZeppelin 的治理文檔將歷史投票權和執行時間鎖描述為不同的機制。

將這一區別應用於這些事件使測試成為一個問題,即新獲得的資本何時獲得權限,該權限可以移動什麼,以及在執行之前剩餘多少可用時間。

X100 的凍結 X 在其鎖定到期之前通常無法解凍,因此執行延遲不會消除該提現限制。

Arkadiko 的合法關閉金庫功能提供了一個有條件的退出:活躍的擁有者償還債務,支付穩定費,並在操作啟用時提取擔保品。這需要必要的資金和可用的擔保品。

大約五天的提案窗口提供了對擬議變更的提前通知。最終投票在很久以後到達,並且關閉立即啟動了合約。將整個投票視為保證的後批准提現窗口將模糊危險何時變得可執行。

-- 價格

--
--
--

本內容僅供參考,不構成任何金融、投資、法律或稅務建議。文中提及的任何活動、獎勵、線上活動或相關資訊,不應被視為對購買、出售或交易任何加密資產的推薦、招攬或邀請。加密資產具有高波動性,存在價值損失風險。WEEX服務、產品及相關活動的可用性可能因地區而異。用戶在參與前有責任確保符合當地適用法律法規。

猜你喜歡

iconiconiconiconiconiconiconiconicon
客戶服務:@weikecs
商務合作:@weikecs
量化做市商合作:[email protected]