記事

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

    石原慎太郎氏と障害者殺傷事件

    マガジン9

  3. 3

    韓国経済失速の隠れた要因は

    新潮社フォーサイト

  4. 4

    "子供の教育"で作る静かな保育園

    キャリコネニュース

  5. 5

    北朝鮮庶民が欲しいグッズBest5

    高英起

  6. 6

    北方領土解決はトップの決断のみ

    THE PAGE

  7. 7

    小池百合子氏の知られざる素顔

    中田宏

  8. 8

    数百年も遅れる日本人の国籍感覚

    WEDGE Infinity

  9. 9

    "残業少ない程いい会社"は本当?

    PRESIDENT Online

  10. 10

    韓国"2800円以上の接待"を禁止へ

    メディアゴン

ランキング一覧

ログイン

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

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

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