2017年10月にビットコインのハードフォークによって新たに誕生した「ビットコインゴールド(Bitcoin Gold)」が51%攻撃によって取引記録が改ざんされ、1800万ドル日本円にして約20億円もの流出被害が報じられている。

51%攻撃とは、早い話が仮想通貨ネットワークにおけるマイニング(採掘)を51%、すなわち半分以上、支配できる高性能なサーバーを大量に確保した上でマイニングを行い、取引データをもう1つ発行してブロックチェーンに植え付けること。

データが二重になるということは、その間に取引されたコインの取引記録も2つ存在することとなり、うまくやれば1つは自分のものにすることができる。

なぜ新しい通貨や草コインが51%攻撃(50%攻撃)の標的になるのか?

このような51%攻撃は”草コイン”と呼ばれる名前があまり知られていない流通量の少ない仮想通貨や、新しく発行された仮想通貨市場が狙われるケースが多く、今回のビットコインゴールドのケースもその隙を突いた攻撃であると認識できる。

新しく発行された仮想通貨が狙われる理由としては、マイニング専用のASIC(マシンを高速化するための集積回路)の進化によって従来よりもマイニングの際の消費電力が半分以下に抑えられる仕様になっていることから、仮にコストをかけて長いブロックを造成しても消費電力が大幅に抑えることから不正を働いても利益を得られることが挙げられる。

51%攻撃は別名で「二重支払い攻撃(double spending Attack)」とも呼ばれ、前述したように先にマイニングの権利を掌握した悪意のある団体や個人が行うのだが、一般的に51%のシェアを支配するためには膨大な電気代などのコストがかかるのと、ブロックチェーンの改ざんが不可能に近いことから実行するメリットがないのでする者はいないとされてきた。

日常的に行われている1つ1つの仮想通貨取引はマイニングよって計算されてブロックに記録されていき、それが最終的にブロックチェーンの一部になる。マイニングする際に重要となるもう1つの要素が計算速度であり、計算速度が遅いと仮想通貨メリットのでもある送金処理に時間がかかってしまう。

よってシステムの設計上、処理速度が速いマシンが優先されてマイニングを行う決定権をにぎってしまうので、例えばビットコインのような発行枚数が多い(=流通量の多い)通貨において51%ものマイニングシェアをにぎるためには、多くの他者と示し合わせて結託でもしないかぎりは不可能であり、このあたりの懸念は現在まであまり考えられていない。

ビットコインを例にあげれば発行限度枚数2100万枚のうち、発行できる残りの枚数があと400万枚といわれ、これはそれだけ需要があることを意味し、需要があるということはいっそうマイニングが求められる。

ただ、マイニングは仮想通貨のシステム上、流通しているコインの価値を一定に保つために発行枚数が定数に到達すればマイニング報酬がおよそ半分近くまで下がっていくようになっている。そうなるとコストとマイニングで生み出される利益との採算がとれないために流通量の多いコインにおいて51%攻撃などを仕掛ける攻撃者もメリットが得られないことから不可能と締めくくられる。

51%攻撃を防ぐ手段はないのか?

ビットコインを含めた仮想通貨は暗号通貨とも呼ばれるとおり、デジタル通貨の取引記録に暗号データというオブラートに包んで取引が行われる。

マイニングはそのオブラートをはがす作業、すなわち複雑な暗号データ(ハッシュ関数)を高速で計算してオブラートの中身であるデジタル通貨の取引を記録としてブロックチェーンにつなげていくため、高スペックで高性能なマシンが要求される。

話はくどくなるが、高性能なマシンを24時間365日稼働させるには膨大な維持コスト(主に計算にかかるマシンの電気代)が必要となり、また、マシンを格納しておくための空調環境(主に冷却装置)が整った場所も必要になる。

しかし、前述した草コインのような流通量が少ない仮想通貨や新しく発行された通貨では、それ相応のスペックのマシンや設備さえ保有していれば実行することも可能とみられている。これについてはマシンが年々高性能化されているくことからマイニングコストの軽減をのぞむことが可能であり、攻撃者は今後も増加するとみられている。しかしながら現在のところこのような状況を打破する術はなく、現時点では不可能と言われている。

現在、多くの仮想通貨が次々に発行されているが、ほとんどといって良いほど運用にブロックチェーンが用いられている。ブロックチェーンは今回の51%攻撃のようなシステム上の問題が指摘されているので今後の対応に注目してみたい。

具体的にどのような手口で改ざんが行われたのか?

今回のビットコインゴールドにおける改ざん行為の具体的な手順として、以下のように報じられている。

  1. 攻撃者はまず、取引所の自らの口座にコインを預け入れる

      1. その預け入れたコインをすぐに引き出す

        1. 表面的にはマイニング権を取得してマイニングを正規に行う一方、裏では偽の長いチェーンを高速で造成

          1. 裏で造成した偽の長いチェーンを送信する

            1. その取引自体を無かったこと(取り消し)にする(表のブロックをもとに戻す)=改ざん

              1. 引き出したコインを口座からウォレットに送る

              なお、今回の攻撃者は51%攻撃によって22ブロック分もの取引を最初の状態に戻すことに成功しているとのこと。今後のBTGの対策としては、確認するために必要なブロック数を50以上に設定しなおす方向で話を進めているとのこと。

              スポンサーリンク