仮想通貨関連ブログ PC版イメージ 仮想通貨関連ブログ スマホ版イメージ

51%攻撃とセルフィッシュマイニング(block withholding attack)

2018年5月、モナコインを狙った攻撃が発生しました。今までは、取引所へのハッキングが目立っていました。しかし、取引所から詐取するためにブロックチェーン本体を攻撃した例として注目を集めています。

ブロックチェーンを攻撃する方法として、インターネット上で言及されるのは、主に51%攻撃セルフィッシュマイニング(block withholding attack)です。

この2つは似ていますが、異なる点もあります。そこで、攻撃者はどのように行動するのか、それに対し、私たちはどのように行動できるのか、考察します。

この攻撃は仮想通貨のルール違反をしていない

最初に一つ確認すべき点があります。それは、51%攻撃も、セルフィッシュマイニングも、PoW通貨(プルーフ・オブ・マイニングをする仮想通貨)のルールに基づいた行動だということです。ルールを曲げていません。

よって、本来ならば非難されるべき行動ではないのかもしれません。

しかし、これら攻撃の目的が「攻撃対象の仮想通貨の価値を下げること」「取引所の財産を奪うこと」であるために、問題視されています。

マイニングの詳細については、別記事「ビットコインの採掘(マイニング)とブロック認証」でご確認ください。

51%攻撃の概要

では、51%とは何か?を確認しましょう。セルフィッシュマイニングとの区別を意識して考察します。

ビットコインの場合、およそ10分ごとにブロックが作られます。モナコインの場合は、およそ90秒ごとです(仮想通貨ごとに異なります)。そして、世界中のコンピュータ(ノード)がマイニングしますので、ほぼ同時に複数のマイニングが成功する場合があります(下図)。

マイニング成功のイメージ

この場合、マイニングに成功した人は、それぞれ「自分のブロックを採用しよう!」と正当性を主張します。その結果、どちらのブロックが採用されるか?ですが、その後のブロックが長くなった方を正当とみなします。

そして、マイニングしたブロックが承認されるためには、全世界でマイニングに投入されたマイニング計算量の過半数を得る必要があります。

不正なブロックが正当性を主張するには

そこで、ブロックを不正に作ってそれを正当だと主張するには、全世界のマイニング計算量の51%を確保すれば良いということになります。常に全世界の51%の能力を投入し続ければ、不正なブロックを正当扱いできます。

ビットコインのマイニングに投入されている計算量は途方もない数字です。しかし、アルトコインならば、この51%攻撃を成功させることができるでしょう。

セルフィッシュマイニング(block withholding attack)の概要

次に、セルフィッシュマイニング(block withholding attack)を確認しましょう。51%攻撃と似ていますが、少し違う点もあります。

下の図は、ほぼ同時にマイニングに成功したことを示しています。ところが、セルフィッシュマイニングの場合、マイニングに成功したことをしばらく公開しません。

セルフィッシュマイニング図(非公開マイニング)

公開しないで、ひたすら自分だけでマイニングし続けます。公開していませんから、他のコンピュータ(ノード)は、セルフィッシュマイニングされていることに気づきません。

その間に、セルフィッシュマイニングする人は、自分のブロックチェーンが本物よりも長くなるように頑張って計算し続けます。

この攻撃は、全世界の計算量の51%の能力があると、実行しやすいです(51%攻撃)。しかし、必須というわけではありません。30%台でも可能です。

ただし、計算力が過半数を下回っている場合、正当なブロックよりも長いブロックを作るのは大変です。たまたま早く計算できたという運も必要になります。

セルフィッシュマイニングのブロックが正当性を主張するには

そして、自分のブロックチェーンが正当な物よりも長くなったところで、そのチェーンを公開します。

すると、「長いブロックチェーンが正当である」というルールが適用されます。すなわち、多くの人が正当だと信じていたブロックが「存在しなかった」ことになり、今までの送金情報が全てキャンセルされます。

代わって、セルフィッシュマイニングで作られたブロックが正当とみなされます。

セルフィッシュマイニング図(公開マイニング)

51%攻撃とセルフィッシュマイニングの違い

以上から、51%攻撃とセルフィッシュマイニングの主な違いが分かります。

51%攻撃

  • マイニングに成功したことを始めから公開する攻撃と、公開しない攻撃がある。
  • 世界中のマイニング能力の51%以上を必要とする。

セルフィッシュマイニング(block withholding attack)

  • マイニングに成功したことは、しばらく非公開。
  • 世界中のマイニング能力の51%未満でも可能。

攻撃方法その1:double spending

では、これらの方法で、どのように攻撃しましょうか。二重払い(double spending)を例にして確認しましょう。

下の図で、上が不正なブロックです。非公開ですので、誰もその存在を知りません。世界中のマイナー(採掘者)と戦い続けるのは大変ですので、一瞬で決着をつけたいです。

そこで、以下の行動をします。

  • STEP1:自分の仮想通貨を、ある取引所に送る。
  • STEP2:取引所に入金した仮想通貨を別の仮想通貨に交換し、出金する。
二重払いイメージ図(別通貨に換金・出金)

セルフィッシュマイニング(block withholding attack)のブロックが、正当なブロックよりも長くなったら、次の行動に移します。

すなわち、非公開のブロックを公開します。すると、正当なブロックの長さの方が短いので、正当なブロックの取引は全て消滅します(初めから存在しなかったことになります)。

二重払いイメージ図(ブロック公開)

これは、取引所にとっては大変なことです。

と言いますのは、正当なブロックの取引が消滅したと言っても、それは攻撃を受けた仮想通貨に限った話です。別の仮想通貨に交換されて出金された部分については、有効です。

取引所は損害を受けてしまいます。

一方、攻撃を仕掛けた側は、取引所に送金した仮想通貨を、別の場所への送金に変更できます。自らの仮想通貨を失うことなく、取引所から別の仮想通貨を盗むことに成功しました。

攻撃方法その2

51%攻撃の場合は、別の攻撃も可能になります。不正なブロックを常に公開して承認し続ければ、以下の行動が可能になります。

  • 他のユーザーの送金を妨害
  • マイニング報酬を全て獲得

ただし、こんなことが現実にしばしば起きると、その仮想通貨の信頼性が失われて価値がなくなってしまいます。価値がなくなってしまえば、攻撃者も損になります。そこで、51%攻撃が起きる可能性はあるけれども現実的でない、と考えられてきました。

しかし、それが現実になった、ということです。

攻撃する理由

では、攻撃者は、なぜ攻撃を仕掛けるのでしょうか。理由は、少なくとも2つあるでしょう。

理由1:政治的な理由

自分が損してでも、特定の仮想通貨の信頼を失わせて、世界から消滅させてやろうという場合です。この場合、経済合理性とは異なる視点で動いていますので、「そんなことしたら損じゃないか!」という反論は通用しないということになります。

理由2:経済的な理由

攻撃を仕掛けて自分が儲けると、仮想通貨の信頼度にダメージを与える可能性を承知しつつも、攻撃を仕掛ける場合です。その仮想通貨のコミュニティが崩壊しない程度に、攻撃を仕掛けます。

そして、獲得した仮想通貨を別の仮想通貨に交換してしまえば、攻撃対象となった仮想通貨がどうなっても影響ありません。

攻撃者の工夫

さらに、攻撃者は工夫を凝らします。例えば、ある時からずっと51%攻撃を実行し続けるとしましょう。下の図の通りです。

51%連続攻撃イメージ図

例えば、右上の部分で51%攻撃を継続的に実行するとします。すると、怒ったコミュニティが、51%攻撃の直前部分からハードフォークするかもしれません。ハードフォークされたら、全く儲かりません。

なぜなら、51%攻撃で作ったブロックが全て無効になり、51%攻撃が水の泡になるからです。

そこで、少し51%攻撃を仕掛けて、しばらく休んで、再び少しだけ攻撃を仕掛けて、休んで…と繰り返します。すると、ハードフォークしよう!となっても、攻撃の休憩中に正当にマイニングした人は、猛烈に反発するでしょう。

やっとの思いで正当にマイニングしたのに、ハードフォークで無効にされたのではたまらん!というわけです。

こうして、攻撃者から見れば、敵であるはずの正当なマイナー(採掘者)を自分の味方にできます。

私たちの防御方法

では、このような攻撃に対して、私たちはどうすれば良いでしょうか。マイニングのルールに基づいた行動ですので、根本的な解決方法はありません。

できそうなのは、「入金してから、ブロックがたくさんできるのを待って、次の行動をする」ことです。

というのは、攻撃者はコストを支払って攻撃しています。長期間連続して攻撃し続けるのは資金的に大変です。よって、短期間に送金を繰り返さないという方針を採用するだけで、リスクが大きく減少するでしょう。

各取引所も、入金を有効とみなすためのブロック数を引き上げることで、攻撃に備えています。

法制度・ 仮想通貨のリスク 記事一覧

ブログトップ
×
仮想通貨チャート一覧&価格一覧(リアルタイムレート)
×