【ITニュース解説】わずか約39円分のビットコインから約461億枚の「偽BTCトークン」が作られる、2つのバグでマイナス手数料を悪用
2026年09月16日に「GIGAZINE」が公開したITニュース「わずか約39円分のビットコインから約461億枚の「偽BTCトークン」が作られる、2つのバグでマイナス手数料を悪用」について初心者にもわかりやすく解説しています。
ITニュース概要
「Symbiosis」のBitcoin Bridgeで、わずか約39円のビットコインから約461億枚もの偽トークンが不正発行された。これは、攻撃者を管理者扱いするバグと、マイナス手数料で入金額が増えるバグの組み合わせが悪用されたためだ。
ITニュース解説
仮想通貨の世界で、また一つ大きな事件が発生した。わずか約39円相当のビットコインを元手に、約461億枚もの「偽のビットコイン連動トークン」が不正に生成されたというニュースは、システムエンジニアを目指す皆さんにとって、ソフトウェアの設計や開発における重大な教訓を提示している。この事件は、ブロックチェーン技術が関わる複雑なシステムにおいて、いかに小さなバグが甚大な被害をもたらしうるかを示している。
まず、事件が起こった背景にある技術について簡単に説明する。仮想通貨は、ブロックチェーンと呼ばれる分散型台帳技術の上で成り立っている。ビットコインはその代表格だ。しかし、ビットコインのブロックチェーンと、それ以外の多くのブロックチェーンは独立しており、直接的に互換性がない。そこで必要になるのが、異なるブロックチェーン間で仮想通貨を交換する「クロスチェーンプロトコル」や、その仕組みの一部である「ブリッジ」だ。今回の事件は「Symbiosis」というプロジェクトが提供する「Bitcoin Bridge」で発生した。
このブリッジの目的は、ビットコインブロックチェーン上のビットコイン(BTC)を、別のブロックチェーン上で使えるようにすることにある。具体的には、ユーザーがビットコインをブリッジに預け入れると、ブリッジはそのビットコインをロックし、それと等価な「ビットコイン連動トークン」を別のブロックチェーン上で発行する。今回のケースでは、その連動トークンが「syBTC」と呼ばれるものだった。これにより、ユーザーはビットコインそのものを移動させることなく、別のブロックチェーンの特性(例えば、より高速な取引や、特定の分散型アプリケーションの利用)を享受できる。syBTCは、預けられたビットコインに裏付けられているため、本来であれば常にビットコインとほぼ同じ価値を持つはずだ。
しかし、今回の事件ではこの仕組みが悪用された。約39円分のビットコインを預け入れた攻撃者が、本来はあり得ない約461億枚ものsyBTCを不正に発行してしまったのだ。この途方もない量の不正発行を可能にしたのは、ソフトウェアに存在した「2つの致命的な不具合(バグ)」が組み合わさった結果だった。
1つ目のバグは「攻撃者を管理者として扱ってしまう」というものだ。システムにおける管理者とは、そのシステムの最も重要な操作権限を持つユーザーを指す。例えば、システムの機能設定を変更したり、新しいユーザーの権限を付与したり、今回のようにトークンの発行を制御したりする権限だ。通常、これらの権限は厳重に保護され、限られた信頼できる人間や特定のプログラムのみが行使できるよう設計されている。しかし、このブリッジのソフトウェアには、攻撃者が特定の操作を行うことで、本来管理者しか持たないはずの特権的な操作を、自分自身で行えてしまう欠陥があった。これにより、攻撃者はシステムのセキュリティを突破し、トークンの発行プロセスを自由に操れる状態になったと考えられる。
そして、2つ目のバグが、この管理者権限の乗っ取りと組み合わさることで、さらに恐ろしい結果を引き起こした。それは「マイナスの手数料」を引くことで入金額が逆に増えてしまうというバグだ。通常、システムが提供するサービスを利用する際、ユーザーは手数料を支払う。この手数料は、取引額の一部から差し引かれるのが一般的だ。例えば、1000円の取引で10円の手数料がかかれば、ユーザーの手元には990円が残る。手数料が「マイナス」になるという状況は、システム設計上、本来は絶対に発生しないはずだ。しかし、このブリッジのソフトウェアは、何らかの計算ミスや検証の不備によって、この「マイナスの手数料」を有効にしてしまった。
具体的なメカニズムとしては、攻撃者が少量のビットコインを預け入れる際に、このマイナスの手数料を適用したと考えられる。システムが「手数料を引く」処理を行う際に、その手数料が負の値であったため、結果的に「入金額から負の値を引く」という計算になり、実質的には入金額に値が「加算」されてしまった。さらに、この加算される値は、システムの内部処理のバグにより、非常に大きな金額として認識されたと推測される。管理者権限を悪用してこのマイナスの手数料を適用することで、わずか約39円のビットコインが、システム上では約461億枚ものsyBTCを発行するに足る「架空の預け入れ額」として認識され、実際にその分のsyBTCが生成されてしまったのだ。
この事件は、仮想通貨の世界における信頼性を大きく揺るがすものだ。不正に発行されたsyBTCが市場に流通すれば、本来のsyBTCの価値が希薄化し、保有者全体に損害を与える可能性がある。また、システム全体の信頼が失墜し、Symbiosisプロジェクトだけでなく、他のクロスチェーンプロトコルやブリッジに対しても疑念が生じる。
システムエンジニアを目指す皆さんにとって、この事件は、開発プロセス全体を通じてどれほど細心の注意が必要かを示す好例だ。特に、金融資産を扱うシステムでは、設計段階での厳密な要件定義、実装段階でのコードレビュー、そしてテスト段階での徹底的な脆弱性検査が不可欠である。一つ一つの計算ロジック、権限管理の仕組み、エラーハンドリングなど、あらゆる側面にわたって「ありえない」状況を想定し、それが本当に発生しないか、発生した場合にどう対処されるかを検証する必要がある。今回の事件は、わずかな設計ミスやコーディングのバグが、想像を絶する規模の経済的損失や信頼の喪失に直結することを、改めて私たちに突きつけている。