X100のガバナンスの欠陥がフラッシュローンによる600万ドルの損失を引き起こす

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

攻撃者は、上院が管理する財務を持つトークンプロジェクトX100の2つのガバナンス席を取得し、10月24日に単一のブロックチェーン取引で財務取引を承認し、フラッシュローンを返済しました。

Arkadikoでは、ユーザーがボールト担保に対して借り入れを行う貸付プロトコルで、約5日間の投票が2日前に終了し、悪意のある契約がボールト資産に対する権限を持つことになりました。人々は決定的な投票の直前に投票トークンを購入し、投票が閉じると提案が発効しました。

これらの事件は、資金のコミットメント、投票資格、承認された行動の実行の間に異なるギャップを露呈しています。X100トークンは1年間ロックされるべきであり、長期のトークンロックは権限を遅延させることなくコストを課すことができます。

一方で、長い投票は通知を提供しつつ、遅れて購入することを許可することができます。どちらも、決定が実行可能になった後の応答時間を自動的に作成することはありません。

X100のロックされたステークが即時の権限を購入

X100のフリーザー契約は、凍結されたXトークンを保持し、上院の候補者をランク付けするために使用されるステークを供給します。そのロック条件は1年、3年、または5年ですが、上院の資格は現在凍結されている金額を使用し、最低ステーク年齢はありません。

最初の10月24日の攻撃では、2つのヘルパー契約がそれぞれ19,000.000001 Xを1年の条件で凍結しました。彼らは登録し、ランキングに入り、提案7を実行するための2票を供給しました。彼らは単一の取引でステーク、投票、実行を完了しました。

ガバナンスの締切は強制的な待機期間を提供しませんでした。提案がオープンな間、現在ランク付けされている上院席の過半数が実行を承認することができました。3つの席のうち2つを保持することで、ヘルパーたちは即座に行動するための十分な権力を持っていました。

承認されたスワップは、攻撃者が作成したプールに400,000の財務Xを送信しました。フリーザーはわずか35.675313 USDTを受け取り、攻撃者はそのプールからトークンを抽出し、返済に使用する現金を得るためにXを販売しました。

ステークは凍結されたままであり、財務の抽出とトークン販売からの現金が返済を資金提供したため、攻撃者は最初に購入したステークを回収する必要はありませんでした。

攻撃は約194万USDTを借り入れ、元本とそのプレミアムを返済しました。返済後、約475万USDTが最初の最終受取人に到達しました。

ChainBountyの寄稿者Philipparkは、3人の選ばれた受取人に支払われた484.8万USDTを調整しました。その小計には、売れ残ったXとその変動価値は含まれておらず、選ばれた支払いを測定しています。

フリーザーはまた、重要な制約を保持していました:実行後、そのX残高はユーザーが凍結した総額をカバーしなければなりませんでした。ロックされた元本のその量を保護することは、外部プールの流動性やトークンの市場価値を保護することにはなりませんでした。

Arkadikoの投票は遅れた資金を受け入れた

Arkadikoの提案12は、10月17日20:35 UTCに提出され、10月22日16:04 UTCに実行されました。そのガバナンス契約は、外部の提案者に720ビットコインブロックの投票間隔を与え、一般的には5日間と説明されています。

ルールは、提案するために0.25%の適格DIKO供給を必要とし、過半数に達するために5%の参加を必要とし、賛成票が反対票よりも多いことを要求しました。供給計算は、初期配分契約で保持されているDIKOを差し引きました。

これらの閾値と投票ルールは、トークン所有者が提案の前にトークンを保持している必要はありませんでした。提案するウォレットは、10月22日15:03:46 UTCにスワップを行い、15:06:47に投票を行いました。約457.3万DIKOをコミットしました。提案は同じ賛成票の合計とゼロの反対票で閉じました。

Bitqueryは、投票トークンの購入を約51,000ドルと推定しています。その追跡は、投票ウォレットに送信されたSTXの77%が以前のStackSwapの収穫から来ていることを示しています。

攻撃者は複数の取引と日付にわたって資金をコミットしたため、ArkadikoのケースはX100の単一取引の借入および返済とは本質的に異なります。遅れた購入は、すでにオープンな投票中に使用可能な投票権となったため、重要でした。

投票が終了すると、変更が実行されました。その決定と契約が権限を受け取る間に、別の待機期間は存在しませんでした。

承認された悪意のある契約は、その引き出しおよびUSDA発行機能において呼び出し者の認可を欠いていました。提案12は、ミント権限を持つ金庫運営契約として登録されました。成功した呼び出しは、16:06 UTCにsBTCを、16:09にstSTXを削除しました。これは、アクティベーションの数分後のことです。

Bitqueryは、Arkadikoの損失を約109万ドルと推定しています。これは、約78万ドルのstSTX、13万5000ドルのsBTC、そして裏付けのないUSDAを売却して得た17万3000ドルのSTXを含みます。 X100の攻撃者は、1年のトークンロックにもかかわらず、1回の取引内で行動しましたが、Arkadikoは投票後に別の遅延なしで実行されました。

10月22日の応答スレッドで、Arkadikoは悪意のある契約を無効にし、ガバナンス、金庫の償還、および清算を一時停止したと述べました。影響を受けたstSTXおよびsBTCの金庫は、その担保が利用できないため、変更できないと述べました。

10月27日07:57 UTCに、提案14「AIP 32.2 -- 金庫運営の復元」が実行され、金庫運営のエントリがArkadikoの正当なv1-3契約に設定されました。

出口ウィンドウには出口が必要

古いステークを要求するか、以前のスナップショットからの投票権を使用することで、新たに取得したトークンが即座に資格を得るのを防ぐことができ、実行の遅延が承認と資産の移動を分離することができたでしょう。

すべての関連アクションがその遅延を通過する必要があった場合、X100の正確なシーケンスは自己資金を調達し、1回の取引でローンを返済することはできなかったでしょう。

長期資本を使用する攻撃者は待つことができますが、承認された契約が何を行うことができるかに関する制限は別の問題です。

OpenZeppelinのガバナンス文書は、歴史的な投票権と実行タイムロックを異なるメカニズムとして説明しています。

これらの事件にその区別を適用すると、新たに取得した資本が権限を得るタイミング、その権限が何を移動できるか、そして実行前にどれだけの利用可能な時間が残っているかが問題となります。

X100の凍結されたXは、そのロックが成熟する前に通常は解除できないため、実行の遅延はその引き出し制限を消去することはありません。

Arkadikoの正当な金庫閉鎖機能は条件付きの出口を提供します。アクティブな所有者が債務を返済し、安定性手数料を支払い、運営が有効になったときに担保を引き出します。それには必要な資金と利用可能な担保が必要です。

約5日間の提案ウィンドウは、提案された変更の事前通知を提供しました。最終投票ははるかに遅れて到着し、閉鎖は即座に契約をアクティブ化しました。全体の投票を承認後の引き出しウィンドウとして扱うことは、危険が実行可能になった時期を曖昧にするでしょう。

--価格

--
--
--

本コンテンツは、一般的な情報提供のみを目的としたものであり、金融、投資、法律、または税務に関する助言を構成するものではありません。ここに記載されているイベント、報酬、オンラインキャンペーン、またはそれらに関連する情報は、暗号資産の購入、売却、取引、その他いかなる取引の推奨、勧誘、または招待とみなされるべきではありません。暗号資産は価格変動が非常に大きく、損失が発生する可能性があります。WEEXのサービス、プロダクト、および関連イベントの提供状況は、地域によって異なる場合があります。お客様は、ご自身の参加が適用される現地の法令を遵守していることを自ら確認する責任を負うものとします。

関連記事

iconiconiconiconiconiconiconicon
カスタマーサービス:@weikecs
事業提携:@weikecs
定量取引・MM:[email protected]
VIPプログラム:[email protected]