イベントレポート
仮想通貨モナコインへの攻撃が明らかにしたこと、今後すべきこと
脅威はあるが、対策もある
2018年6月4日 12:07
2018年5月中旬に仮想通貨(暗号通貨)Monacoin(モナコイン)への攻撃があり、一般メディアでもニュースに取り上げられて話題となった。同時期に別の仮想通貨であるVergeとBitcoin Goldへの攻撃も発生した。この問題をめぐり一般社団法人ブロックチェーン推進協会(BCCC)が6月1日に説明会を開催した。今回の記事では、説明会の内容紹介を通して、モナコインやほかの仮想通貨への攻撃により「何が明らかになったのか」、「今後はどうするべきか」を中心に考えていきたい。
まず説明会を聴講した上で筆者の結論を先に述べておきたい。今回、明らかとなったことは「仮想通貨のブロックチェーンへの直接攻撃を仕掛ける何者か」という脅威が存在することだ。ただし、被害を受ける可能性が高いのはハッシュレート(ハッシュ計算能力)が低い下位の仮想通貨と、運営体制が甘い一部の海外の仮想通貨交換所だ。Bitcoin(ビットコイン)やEthereumのように上位の仮想通貨や、KYC(本人確認)が厳重な日本の仮想通貨交換所、それに個人ユーザーが直接被害を受ける可能性は低い。また攻撃への対策は「入金の承認数を上げること」であることが分かっているので、過度に恐れる必要はない。今後は攻撃への監視体制の議論や、仮想通貨のアルゴリズムの見直しなどの動きが出てくる可能性があるだろう。
3種類の仮想通貨が相次ぎ攻撃される
BCCCの説明会では、カレンシーポート代表取締役CEOの杉井 靖典氏とKeychain共同創業者のジョナサン・ホープ氏が解説を行った。
事実関係についてはジョナサン・ホープ氏によるサマリーを引用する。今回発生したのは、次の3つの事件だ。
- Bitcoin Gold(BTG)への51%攻撃。5月16~19日にかけて発生。被害額は推定1800万ドル(約20億円)。
- Verge(XVG)のバグを突いたTime Warp攻撃。4月と、5月22日、5月29日に発生。被害額は推定270万ドル(2億9000万円)。
- モナコイン(Mona)へのセルフィッシュ・マイニング攻撃(Block withholding attack)。5月13~15日に発生。被害額は推定9万ドル(980万円)。
注:金額は1ドル=109.13円として換算し有効数字2桁で四捨五入した。
3件の事件を見ると、被害額はモナコインへの攻撃が最も少ない。ただし3種の仮想通貨の中で日本の仮想通貨交換所が取り扱うのはモナコインだけだ。また話題性も大きかったこともあり、今回の記事ではモナコインを中心に説明する。
杉井氏はモナコインへの攻撃について「消失」という言葉は不適切だとし、「未確定の受領資産を早期払いしてしまった事件(ダブルスペンド(二重消費)事件)」と表現する。また、一部報道で使われた「改ざん」という用語も正しくないと指摘した。
杉井氏は、モナコイン攻撃事件の概要を「仮想通貨の二重支払いへの対策が不十分であった交換所が、十分な資産受領確認期間を経ずに入庫判定をしてしまい、一方犯人は即座に法定通貨に出金申請し、それに応じてしまった」と要約した。
なお、bitFlyer代表取締役社長加納 裕三氏も、ツイート中でモナコインへの攻撃に関連して「改ざん」と表現することは勘違いだとしている。加納氏は改ざん不可能性(immutability)とファイナリティ(決済の確定性)という別の種類の概念を混合しないよう注意喚起している。杉井氏は加納氏のツイートも引用しつつ「僕も同意見です」と述べた。
ジョナサン・ホープ氏も「今回の攻撃ではユーザーのコイン(仮想通貨)がなくなった訳ではなく、ブロックチェーンが壊された訳でも、データが消失した訳でもない」と強調した。起きたことは「ブロックのファイナリティに関する攻撃を受け、仮想通貨交換所に影響が出た」ことだと指摘した。
一方、杉井氏は、GPU(Graphics Processing Unit)でEthereumのマイニングを行っていたマイナーのごく一部がモナコインへの攻撃に参加すると、モナコインの攻撃に必要なハッシュレート(ハッシュ計算能力)が確保できることを指摘した。これは、何種類もの仮想通貨(オルトコイン)が乱立している状況ならではの新たなリスクといえる。
ジョナサン・ホープ氏は、Webサイト「crypto51.app」掲載の数字を引用した。最もハッシュレートが大きなビットコインに比べると、Bitcoin Goldのような下位の仮想通貨はわずかなハッシュレートで攻撃できてしまう。このサイトでは51%攻撃のコストを示しているが、Ethereumに比べるとBitcoin Goldやモナコインは100分の1のコストで51%攻撃ができてしまう。上位の仮想通貨と下位の仮想通貨の格差は非常に大きいことに注意する必要がある。
さらに、ジョナサン・ホープ氏は攻撃者が攻撃と同時に高レバレッジの空売り(ショート)を仕掛け、相場下落とともに買い戻した可能性も示唆した。
モナコインが受けたセルフィッシュ・マイニング攻撃とは
ここでモナコインが受けた「セルフィッシュ・マイニング攻撃(Block withholding attack)」について説明しておきたい。この手法は2013年に論文として公表されており(“Majority is not Enough: Bitcoin Mining is Vulnerable”)、仮想通貨分野の技術に詳しい人には知られていた。51%攻撃(ハッシュレートの過半数を使い攻撃する手法)よりも低いハッシュレート(最大33%)で攻撃が可能となることが特色である。
まず、「承認数」の説明が必要となる。ビットコイン、それに今回攻撃を受けたモナコインなど仮想通貨を仮想通貨交換所などに入金する際には、ブロックチェーンのブロックがある個数生成された段階で「入金」を確定する。例えば「6個ブロックを生成した」ことを6承認(6-confirmation)と表現する。ビットコインの場合は3~6承認(所要時間約30分~60分)で入金が確定したと見なす場合が多い。モナコインは18~24承認(所要時間約27分~36分)で入金確定と見なす。
ブロックチェーンが正常に動作している場合は上記の承認数で問題ない。しかし、今回起きたような攻撃を受けている場合には、この承認数のままでは二重消費されてしまう危険がある。
次に、ブロックチェーンの分岐と再編成の説明が必要だ。ビットコインやモナコインでは、PoW(Proof of Work:作業証明)の仕組みに従って多数のマイナーが計算競争を行っている。計算競争の勝者はブロックを新規に生成する権利を得る。ここで、計算競争に勝ったマイナーが同時に二者現れた場合には、新規のブロックが二系統現れてチェーンは二つに分岐する。このようなブロックチェーンの分岐は日常的に発生しており正常な動作の一部だ。この分岐をどのように解決するかというと、最長のチェーンを正しいチェーンと認め、最長でないチェーンの内容は吸収して再編成(reorg)する。
今回モナコインが受けたセルフィッシュ・マイニング攻撃(Block withholding attack)では、マイナーの一者として活動している攻撃者が、計算競争に勝ったことをほかのマイナーに知らせずにブロックを生成し続け、最長のチェーンを密かに育てる。この最長のチェーンをあるタイミングで公開すると、ブロックチェーンはこの最長のチェーンを正とするので再編成(reorg)が発生する。
再編成そのものは正常な動作で、誰かの取引が失われることは原則としてない。ただし、密かに育てたチェーンによる再編成を攻撃者が悪用することで二重消費が可能となる。攻撃者はターゲットに定めた仮想通貨交換所に送金を行い、それをほかの仮想通貨もしくは法定通貨に交換した上で出金する。その後、ブロックチェーン再編成を悪用して最初の送金を「なかったこと」にしてしまい、別の送金先(例えば自分が管理している別のアドレス)に送金する。攻撃者の手元には送金したはずの仮想通貨が残り、しかも仮想通貨交換所から出金したお金も得られる。一方で仮想通貨交換所は入金が取り消されるので損害を受ける。
この問題への対策は簡単で、入金に必要となる承認数を増やすことだ。承認数が増えるほど最長のチェーンを育てて攻撃するコストも増え、攻撃者にとって割が合わなくなるからだ。
実際に、今回のモナコインへの攻撃を受けて、日本国内でモナコインを取り扱っているbitbank、bitFlyer、BitTrade、Zaif、フィスコはいずれも承認数を上げて再度の攻撃に備えた。
脅威の存在が明らかになったが対策はある
今回の説明会を受けて、記事冒頭で触れた結論の内容を改めて説明しておきたい。
(1)脅威の存在が明らかになった。
説明会で杉井氏が指摘したことは、ハッシュレート下位の仮想通貨に対しては、潜在的なリスクが存在することである。
PoW(Proof of Work)を活用する仮想通貨がビットコインだけだった時期には、「不正をするより正常なマイニングに参加した方がメリットがある」インセンティブにより正常な運営が保たれるとされていた。ところが、多数の仮想通貨が乱立してハッシュレートの格差が生じ、また仮想通貨交換所を対象とした二重消費攻撃が起きたことで、この前提が変わった。
Ethereum、Bitcoin Gold、モナコインなどはいずれも汎用のGPUを用いてマイニングする。ここで問題は、Bitcoin GoldやモナコインはEthereumの100分の1程度のハッシュレートしかないことだ。
例えばEthereumに使われていたハッシュレートの1%足らずを集中させれば、モナコインやBitcoin Goldへのセルフィッシュ・マイニング攻撃や51%攻撃が実現できてしまう。そして今回、このような種類の脅威が存在することは今回明らかになった。1,000種類を越える仮想通貨が存在するが、その中でハッシュレートが下位にあり、PoWを採用する仮想通貨には潜在的な脅威があると考えた方がよい。
(2)個人ユーザーの防衛策は入金確認と交換所選び
今回の攻撃は、3件とも被害者は仮想通貨交換所だ。個人ユーザーの被害は報告されていない。
個人ユーザーとして攻撃に備えるとすれば、まずKYC(本人確認)がしっかりしている交換所を選ぶことだろう。今回のような「二重消費」攻撃で狙われるのは、(a)ハッシュレートが下位の仮想通貨と、(b)KYCが甘く、入金後にすぐ別の通貨(仮想通貨、あるいは法定通貨)に換えて出金できる便利な仮想通貨交換所、この両者の組み合わせといえる。
そして、個人ユーザーが他者からの送金を受け付ける場合は、金額、利用する仮想通貨のハッシュレート、相手への信頼度などに応じて、承認数を多めに取るようにした方がいいだろう。
(3)対策は短期的には入金の承認数を上げること
セルフィッシュマイニング攻撃にせよ51%攻撃にせよ、入金の承認数(承認するまでに生成されるブロック数)を上げれば、攻撃を成功させるコストは跳ね上がる。今回のモナコインの攻撃でも、最大24ブロックまでの攻撃である。一方、モナコインの攻撃に際してZaifやbitFlyerは30承認(30ブロック生成)、bitbankは一時的に100承認まで入金の承認数を引き上げた。このような対応をすることで、攻撃の成功確率は劇的に下がる。
(4)将来はプロトコルの改善も視野に
ジョナサン・ホープ氏は、説明の中で「PoWと他のアルゴリズムを組み合わせることでセキュリティを向上できる」ことの可能性に触れた。実際、モナコインの開発者Watanabe氏は、モナコインのプロトコルを改善して攻撃への耐性を持たせる方向性について発言している。
杉井氏は、モナコインでは難易度調整が1ブロックごとに行われるが、これがセルフィッシュ・マイニングの攻撃者にとって有利だったのではないかとの意見を述べた。この点も今後議論となる可能性がある。
今後は、仮想通貨交換所の間で、通常のサイバーセキュリティー上の情報はもちろん、セルフィッシュ・マイニング攻撃や51%攻撃のようなブロックチェーン上の脅威の情報を共有する仕組みが必要ではないかとの議論が出てくる可能性もあるだろう。
以上、説明会の内容を報告し、筆者なりの結論を述べた。
仮想通貨の多くは確率的なファイナリティを持つ。仮想通貨を使うということは確率的な挙動に合意した上で価値を託すことでもある。今回の攻撃のような確率現象を悪用した脅威は理解しにくく怖いと感じる人もいるかもしれないが、対策はある。過度に心配することはない。