
何が起きたか
MAYAChain は、異なるチェーンのネイティブ資産どうしを中央集権的な取引所を介さずに交換するためのクロスチェーン流動性ネットワークで、THORChain のフレンドリーフォークとして構築されている。CACAO は各流動性プールを結ぶ共通資産として機能する。
チームの暫定ポストモーテムによれば、攻撃は2026年8月18日の約17:30 UTC に、単一の MsgDeposit トランザクションで始まった。このトランザクションには 23 個のメッセージが含まれていた。チームはこれを、trade account と送金処理のロジックを貫く「6件の欠陥の連鎖」と表現している。
順序はこうである。まず、すでに実行済みの一部の払い出しを、MAYAChain が実行済みと認識できなかった。この認識の失敗が、盗難検知の仕組みを誤って発火させる。盗難検知は、失われたとみなされた分をプールへ補填するためのスラッシュ補助(slash subsidy)と組になっており、この補助には上限が設けられていなかった。結果として、準備金がおよそ 168,000 CACAO しか保有していないにもかかわらず、流動性の薄いプールへおよそ 4,945 万 CACAO が計上された。送金自体は失敗したが、水増しされた残高はすでに保存済みで、ネットワークはそのプールが余分なトークンを保有しているものとして扱い続けた。
攻撃者はその歪んだプールへ少額を預け入れ、プール持分の 99.93% を取得したうえで、Asgard モジュールから 4,887 万 CACAO を引き出した。その後、MAYAChain のプールに置かれていた BTC・ETH などへ交換した。
金額は二種類ある。攻撃者が直接得たのはおよそ165万ドルで、内訳は外部チェーンへ移されたおよそ136万ドル(約2.2億円)と、オンチェーンに残ったおよそ29万1,000ドル(約4,627万円)。創業者 AaluxxMyth は 20 BTC(およそ140万ドル)と、その他およそ30万ドル相当と述べている。一方、CACAO の売却と裁定によってプール全体が被った損失は、およそ1,090万ドル(約17.3億円)と推計されている。この二つは異なる量なので、足し合わせてはならない。CACAO は攻撃前におよそ 0.115 ドルで取引されており、その後およそ88〜89%下落した。
チームは検知から数時間以内にチェーンを全停止し、BTC スワップを含むクロスチェーン処理を止めた。8月21日時点で停止または保守状態が続いており、6件すべての欠陥の修正が進められている。攻撃者にはホワイトハット報奨の提示が行われている。
同種事例との比較と、設計上の一般化
同じ8月には、tx(旧 Coreum)と XRP Ledger を結ぶブリッジが、入金検証の欠陥によっておよそ 199,900 XRP を失っている。オフチェーンのリレーヤーまたは会計層が、正当な入金の証明として受け入れるべきでないものを受け入れた、という構造は Maya のそれと重なる。
この二つに共通するのは、資産の保管場所と、その保管量を記録する帳簿が別物であるという点である。Maya の Asgard は、他チェーンのネイティブ資産を実際に保管する側であり、プールの残高はそれを参照する帳簿にあたる。THORChain 系の設計では、この二層が一致していることが安全性の前提になる。帳簿の側だけを書き換えられれば、保管側の実資産を正当な引き出しとして持ち出せる。攻撃者が最終的に BTC や ETH を得られたのは、帳簿上の CACAO 残高が Asgard の実残高に対する請求権として機能したからである。したがって、この種の設計で監視すべきは帳簿の内部整合性ではなく、帳簿と保管の差である。
一般化すると、三つの層で同じ誤りが起きている。
第一に、補償・スラッシュ・リベートといった「例外時に価値を発行する」ロジックが、発行元の実残高を参照していない。Maya の補助は、準備金が 168,000 CACAO しか持たないときに 4,945 万 CACAO を計上した。上限を持たない補償ロジックは、それを発火させる検知ヒューリスティックの精度に、プロトコル全体の健全性を委ねることになる。検知は必ず誤る前提で、発行額の上限を発行元の実残高に固定しておくのが正しい設計である。
第二に、失敗した操作が状態変更を残している。送金は失敗したのに、水増しされた残高は永続化された。これは前週に公表された cosmos/evm の事案と同型で、そこでも「一つの値が複数の経路で書かれ、片方だけが更新される」ことが根本にあった。失敗経路でのロールバックは、成功経路のテストでは検出されない。テストが成功パスに偏っている限り、この種の欠陥は残り続ける。
第三に、単一トランザクションに複数メッセージを詰められる設計は、攻撃者に「一つの原子性境界の内側で複数の状態遷移を連鎖させる」自由を与える。個々のメッセージが単体では不変条件を破らなくても、23 個の組み合わせは破る。不変条件の検査をメッセージ単位で行い、コミットをトランザクション単位で行っている実装には、この隙間が構造的に存在する。
想定される落とし穴
第一に、これは「無から資産を作る」型の攻撃に見えるが、総供給量は増えていない。増えたのは特定プールの記録上の残高であり、実際に抜き取られたのは Asgard モジュールに実在した資産である。総供給量の監視だけでは検知できない。監視すべきは、プールの記録残高と、それを裏付ける準備金・モジュール残高の差である。
第二に、被害額の報道が 165 万ドルから 1,090 万ドルまで幅を持つのは、集計対象が違うからである。攻撃者の取得額、プールの経済的損失、CACAO 建ての名目額は別の量である。しかも CACAO の価格が攻撃中に暴落したため、どの時点の価格で評価するかによって数字が動く。社内報告で単一の数字だけを引くと、後で別の数字に出会ったときに整合しない。
第三に、攻撃者自身の売却が CACAO の価格を崩したことで、結果的に抜き出せた額が抑えられた。これは防御が働いた結果ではなく、薄い流動性の副作用である。「損失が小さかったから設計は妥当だった」という読み方は成り立たない。
第四に、チェーンの全停止は被害拡大を止めたが、停止中はユーザーの資産も動かせない。クロスチェーン処理を止めるということは、他チェーン側で進行中の処理が片側だけ完了する可能性を生むということでもある。Maya に接続しているインテグレーターは、停止期間中に片側だけ成立したスワップの有無を確認する必要がある。
第五に、ホワイトハット報奨による返還交渉は成功例(2023年の Euler Finance、およそ1億9,700万ドル)も失敗例もある。返還を前提に復旧計画を立てると、交渉が不調に終わったときに計画全体が組み直しになる。
【技術インサイトとアクション】
- 例外時に価値を発行するロジック(補償、スラッシュ補助、リベート、保険的な補填)は、発行額の上限が発行元の実残高に固定されていなければ、それを起動する検知ヒューリスティックの誤りがそのまま無制限の発行になる。検知は必ず誤るので、上限は検知の外側に置かなければならない。これは Maya 固有ではなく、スラッシュや補償を実装しているすべてのプロトコルに当てはまる。 [プロトコル開発者] 次のリリースまでに、自プロトコル内で条件付きに価値を発行・移転するすべての経路を列挙し、各経路の発行上限が「検知結果」ではなく「発行元アカウントの実残高」に束縛されているかを確認し、束縛されていない経路を修正対象として起票する。
- 失敗した操作が状態変更の一部を残す設計は、成功パスに偏ったテストでは検出されない。今回も、送金が失敗したにもかかわらず水増し残高だけが永続化された。同じ構造は cosmos/evm の事案にも現れており、業界横断の共通欠陥と見てよい。 [コントラクト・チェーン開発者] 9月中に、外部呼び出しや送金が失敗しうる箇所を列挙し、失敗時に会計上の副作用が残らないことを検証するテストケースを追加する。成功パスのテストカバレッジではなく、失敗パスのカバレッジを指標にする。
- 単一トランザクションに複数メッセージを許す設計では、不変条件の検査単位とコミット単位を一致させないかぎり、個別には正当な操作の組み合わせで不変条件が破れる。 [プロトコル・監査担当] 不変条件の検査をトランザクション終端(コミット直前)にも配置し、複数メッセージを含むトランザクションを対象としたファジングを、復旧前のテスト計画に組み込む。
【引用:出典】
- Maya Protocol(暫定ポストモーテムおよび創業者 AaluxxMyth の公式X投稿)(2026年8月18日〜19日): https://decrypt.co/375976/maya-protocol-halts-network-bitcoin-exploit
- PrimeXBT(Maya Protocol Halts Network After Six-Bug Exploit、準備金 168,000 CACAO と 4,945万 CACAO 計上の記述)(2026年8月): https://primexbt.com/news/maya-protocol-halts-network-after-six-bug-exploit-drains-1-7-million-cacao-plung/
- crypto.news(Maya Protocol suffers $1.7 million exploit, halts network、23メッセージ構成の記述)(2026年8月18日): https://crypto.news/maya-protocol-suffers-1-7-million-exploit-halts-network/
- Cryptopolitan(Maya Protocol loses $1.7M in sophisticated six-bug exploit、時系列と金額の整理)(2026年8月): https://www.cryptopolitan.com/maya-protocol-loses-1-7m-bug-exploit/
- Shattered(Maya Protocol Hack Drains $1.7M, CACAO Crashes 88%、攻撃時刻とホワイトハット報奨、tx/XRP Ledger ブリッジ事案との比較)(2026年8月21日): https://shattered.io/maya-protocol-hack-cacao-crash-2026/
本記事は公開情報に基づく技術解説であり、投資助言を目的としたものではありません。
