記事

Mt.Goxはどのようにしてコインを盗まれたのか?(サイバー攻撃の解説)

Mt.Goxがサイバー攻撃をうけて、保有するビットコインの大半を失ったという噂がされている。どうやらこれは本当のことのようである。コインの盗難にあったのだ。

さて、このサイバー攻撃の内容についてだが、簡単に説明しておく。

正確には、Transaction mutabilityという問題だ。

簡単にいうと、このバグを突くと、ビットコインが正しくおくられたのに、送った側からみると、あたかも送られてないように見せかけることができる。

これを使うと、相手をだますことが出来る。

例えば私が犯罪者で、Mt.Goxからビットコインを盗もうとする。

まず、私はMt.Goxの口座から、自分のビットコインを、自分の財布に送金する。これ自体はたんなる預けていた自分のコインの引き出しにすぎない。

ここで、わたしはその引き出しトランザクションに手を加える。

すると、送金は成功しているのに、Mt.Gox側からみると、送金が失敗したようにみえてしまうのだ。

そこで、私はMt.Goxに通知する。

「取引がうまく承認されなかったみたいです(実際こういうことはたまにある)。届いてないので、もう一回おくってもらえないでしょうか?」

Mt.Goxは、もう一回送る。実際は届いているのに。

「おかしいですね。今度もとどいてないです。もうっかいやってみてください」

そして3回めの送金を行う。

これを繰り返す。実際の送金はおこなわれているのに、相手は送金失敗とおもっているから、彼らは残高がある限りまた送金を繰り返してくれる。

そして、問題に気づいた時、Mt.Goxの口座はからっぽだ。

しかし、なぜGoxはこのような手口に引っかかったのか。

ひとつは、Goxの財布ソフトウェアがこの問題に対処しなかったことだ。Transaction mutability自体は2011年頃に、ビットコインの開発者によって問題がされ、注意するように呼びかけがなされた。他の財布は概ねこの問題に対処したが、しかし、Goxはこの問題を放置した。

財布ソフトを修正していれば、この不正なトランザクション自体を正しく検出できたはずだが、彼らはそれを行わず、不正なトランザクションを認識することができなかった。

次に、それでも、原理的には、再送金を行わなければ、このような問題は発生しないはずだ。しかし、Goxのシステムは、これを確認せずに、自動的に再送金を行なっていた模様だ。

さらにそれでも、もし顧客のビットコインが顧客別に分別管理されていれば、顧客の残高以上のものは引き出せない。しかし、Goxでは、顧客のコインはまとめられプールして管理されていた。

さらに、それでも、引き出しシステムが自動的にアクセスできるオンライン上のビットコインプールはごく少量にとどめるのが普通だ。そのようなオンラインにあるコインはホットウォレットとよぶ。それとは別に大半のコインは、ネットとは切り離された場所に、外部からアクセス出来ない形で保管するのだ常識だ(コールドウォレット)。Goxのコールドウォレットは実質的には完全にオフラインではなかったようだ。

このような何十にもわたるミスが原因である。ビットコインコミュニティは、Mt.Goxのずさんなシステムとその管理体制を強い口調で非難している。

本件は、ビットコインの暗号やハッシュ関数といったアルゴリズムが破られた関わる問題ではないため、その点は区別して記述したほうがよいだろう。

<テクニカル>

ビットコインのシステムでは、送金したい人が送金トランザクションをつくり、それをネットワーク全体に通知する。採掘者はその送金を過去のデータと照らし合わせ、二重使用がないかをチェックして承認する。

送金者が送金データ2回をネットワークに流してしまうことはよくおこっており、その場合2重使用として検出され、最初の送金が有効になり、後のほうは弾かれて無効になる。過去の2重使用が承認されたことはない。

Transaction mutabilityを突くと、同じ送金データをコピーして、別の送金IDを付与することができるのが大きな違いだ。ただ、その場合でも、採掘により、2重支払いは検出される。しかし、採掘者は、ここが重要だが、オリジナルの送金取引ではなく、コピーされたほうを承認してしまうのだ。そして、オリジナルの送金取引は、送金できなかったという形で送金者にエラーが戻ってくる。

正しい財布の実装であれば、このエラーを検出し、どの送金が正しくなされ、どれが失敗したのかをチェックすることができる。mt.Goxの財布はこれが判別できなかった。

<注>

なお、Transaction mutabilityに関するバグfixはすでにMt.goxでおこなわれたようだ。そしてこのバグfixの過程で、かれらは始めて失われたコインの総額を計算することができ、顧客のコインがすべて失われたという結論に至ったと推測される。

なお、現在、関係者の掲示板などでは、mt.Goxのコインの盗難は、Transaction mutabilityだけではなく、もっとずさんなMt.Goxのシステムに、もっとずさんなレベルのセキュリティーホールがあったという噂もでている。これについては、いずれ判明するとおもわれる。

あわせて読みたい

「ビットコイン」の記事一覧へ

トピックス

ランキング

  1. 1

    非正規の貧民が"アベノミクス死ね"の理由

    ニャート

  2. 2

    "クックドゥ"めぐり議論勃発"向上心が無い"

    キャリコネニュース

  3. 3

    英EU離脱 始まりはキャメロン氏の"火遊び"

    新潮社フォーサイト

  4. 4

    よしのり氏"マスコミの若者信仰は病気"

    小林よしのり

  5. 5

    ムネオ議員"民進党よ、貴方達も同じ認識か"

    鈴木宗男

  6. 6

    朝日&東大の選挙アンケートが低レベルすぎ

    長谷川豊

  7. 7

    民進・岡田代表が安倍総理に「公開質問状」

    民進党

  8. 8

    "民主主義という病い"は世界中で流行る難病

    小林よしのり

  9. 9

    安田純平さん解放のために何ができるのか

    篠田博之

  10. 10

    英のEU離脱とスコットランド独立への茨の道

    SYNODOS

ランキング一覧

ログイン

ログインするアカウントをお選びください。
以下のいずれかのアカウントでBLOGOSにログインすることができます。

コメントを書き込むには FacebookID、TwitterID のいずれかで認証を行う必要があります。

※livedoorIDまたはYahoo!IDでログインした場合、ご利用できるのはフォロー機能、マイページ機能、支持するボタンのみとなります。