クリプト

【解説】モナコインが攻撃された!?Selfish mining,Block withholding attackってなに?

ぴゅーぱ's icon'
  • ぴゅーぱ
  • 2018/05/17 23:18
Content image


こんにちは!ぴゅーぱです。


Monacoinのブロックチェーンが攻撃を受けたようです。

日本の取引所各社も以下のように対応しています。





今回はこの攻撃方法について解説したいと思います。


モナコインになにが起こったのか

各取引所が言うように、モナコインにreorg(巻き戻し)が発生しました。

数回に渡り、数~十数ブロック分の取引データが破棄され新たなチェーンで上書きされました。攻撃者は所持するモナコインを取引所に送金し、他通貨に交換後上書きを行うことで不正な取引を行ったようです。

被害者は存在しないモナコインを受け取ってしまった取引所です。今のところ日本の取引所の被害は報告されていません。


ブロックチェーンの基本ルールと51%攻撃

最も有名なブロックチェーンの攻撃方法に「51%攻撃」があります。

これは、全てのマイナーのハッシュパワー(採掘の能力=計算能力)の半分以上を占めるとブロックチェーンへの攻撃が可能になるというものです。

ブロックチェーンの基本ルールとして「一番長い鎖を正規のチェーンとして認める」というものがあります。普通はブロックが改竄されたとしても改竄した者以外が正規のチェーンを伸ばすため改竄は起こらないのですが、他のマイナーの総力を合わせても改竄者の計算能力に追い付かないとどうなるでしょう。

Content image

上図のように改竄されたブロックが含まれたチェーン(紫)のほうが長くなり、そちらが正規のチェーンとなってしまいます。これが「51%攻撃」と呼ばれるもので、ブロックチェーンの安全性を脅かすものです。



攻撃の手法・原因

※確定情報ではないため、手法・原因として考えられているものを紹介します。判明次第追記・修正を行うことをご了承ください。


今回Monacoinは51%以上のハッシュパワーを持っている人物によって攻撃をうけたわけではないようです。ではどのような方法でブロックチェーンを攻撃したのでしょう。


・Selfish mining

実はハッシュパワーが51%に満たなくてもSelfish miningという手法を用いることでブロックチェーンを攻撃できる可能性があることが分かっています。

通常ブロックが採掘されたとき、マイナーはネットワークの参加者に報告(ブロードキャスト)しますが、あえて報告せずに隠しておきます。そして他の参加者がそのブロックを採掘している最中に次のブロックを先に採掘することで、他よりも優位にチェーンを伸ばしていくことができます。追い付かれそうになればいままで発掘したブロックをブロードキャストすることで、長いチェーンである攻撃者の発掘したチェーンが正規のチェーンとして認められます。

この手法を用いることで、全体の33%ほどのハッシュパワーでも高い確率でチェーンを伸ばしていくことが可能です。


Block withholding attack

Bitbankをはじめ、Block withholding attackという表現が用いられていますが、Selfish miningと同じ意味で用いられているようです。この事件に関する文章では同じものだと考えてよさそうです。


・ハッシュアルゴリズムの変更

モナコインはライトコインをもとにつくられたという背景があるためハッシュアルゴリズムは当初Scryptというものが採用されていました。しかしASIC耐性をつけるためにLyra2REv2というGPUで効率的に採掘ができるアルゴリズムへ変更されました。GPUマイニングはマイナーを分散化させることは可能ですが、他のアルゴリズムでも採掘できるため、ASICに比べそのコインに執着する必要がないので攻撃の可能性を高める心配があります。


・難易度調整アルゴリズム

ブロックが安定して採掘されるために、ハッシュレートに応じてマイニングの難易度は変更されます。ビットコインだと2016ブロック毎に変更されますが、モナコインは毎ブロック難易度が変化します。急激に難易度が上昇すると採掘効率が落ちるためマイナーの減少が起こることがあります。この瞬間に多大なパワーを注ぐことで占有率をあげることができます。



reorgに対する対策

現状取引や決済でreorgへの対策をするには承認数(confirmations)を引き上げるほかにないようです。

承認数とは簡単にいうとその取引が含まれたブロックとその後ろにいくつブロックが連なっているかということです。実際にビットコインを送金し、ブロックチェーンエクスプローラでTxIDなどを確認したことがある方は以下のような画面を見たことがあると思います。

Content image

0承認や1承認で送金を認めてしまうともしそのチェーンが破棄されたとき正しく送金が行われないことになってしまうため、ビットコインでは通常6承認をもって送金が反映されるようになっています。そのためビットコインのブロック生成間隔が10分にもかかわらず、実際の送金は10分×6承認で1時間ほどかかるのです。

今回のモナコインでは10以上のブロックが巻き戻ったりしているようなので、相応に承認数を引き上げなければなりません。モナコインのブロック生成時間は約90秒で送金の速さも特徴でしたが、問題が解決されるまではこの利便性は失われそうです。



まとめ

改めてパブリックブロックチェーンの運用の難しさを思い知った事件でした。

他の通貨でも同様なことが起こりうるため、PoWを採用する通貨は特に気を付けなければなりません。

また、今回この記事を書くにあたって自分の知識だけでは不十分と思いいくつか文献等を探してみたのですが、海外の英語論文ばかりで日本語での情報がほとんど見つかりませんでした。日本では仮想通貨の投資が多く行われているにもかかわらずこの状況というのは少し危機感を覚えます。

非常にセンシティブな問題ですので、もし誤りがあれば@cryptoera_pupaまで連絡をいただけると幸いです。



[参考]

Siamak SolatMaria, Potop-Butucaru「ZeroBlock: Timestamp-Free Prevention of Block-Withholding Attack in Bitcoin

Nicolas T. Courtois, Lear Bahack「On Subversive Miner Strategies and Block Withholding Attack in Bitcoin Digital Currency

日経×Tech「ビットコインは本当に安全なのか、理論研究が示す意外な落とし穴



☆☆過去の人気記事☆☆

【ALISのライバル誕生】日本発SNSのTrueNewsとTorueトークンの考察

【まだ流行追ってんの?】ALISの本当の使い方、稼ぎ方教えます。

【解説】ALISの「いいね」への報酬の仕組みは?もうバズっている記事へのいいねは損?


↓私の他の記事とTwitterはこちらから↓

https://alis.to/users/pupa

@cryptoera_pupa

公開日:2018/05/17
獲得ALIS:36.59
ぴゅーぱ's icon'
  • ぴゅーぱ
  • @pupa
「分かりにくいことを分かりやすく」をモットーに記事を書いていきたいと思います。Twitterはこちら@cryptoera_pupa

投稿者の人気記事
コメントする
コメントする
こちらもおすすめ!
Eye catch
クリプト

約2年間ブロックチェ-ンゲームをして

Like token Tip token
61.20 ALIS
Eye catch
クリプト

クリプトスペルズで入手したMCHCを引き出す方法

Like token Tip token
196.20 ALIS
Eye catch
クリプト

Polygon(Matic)で、よく使うサイト(DeFi,Dapps)をまとめてみた

Like token Tip token
235.30 ALIS
Eye catch
クリプト

Eth2.0のステークによるDeFiへの影響を考える。

Like token Tip token
43.10 ALIS
Eye catch
クリプト

コインチェックに上場が決まったEnjin Coin(エンジンコイン)コインを解説

Like token Tip token
21.49 ALIS
Eye catch
クリプト

UNISWAPでALISをETHに交換してみた

Like token Tip token
39.40 ALIS
Eye catch
クリプト

Uniswap v3を完全に理解した

Like token Tip token
18.92 ALIS
Eye catch
クリプト

【初心者向け】$MCHCの基本情報と獲得方法

Like token Tip token
31.32 ALIS
Eye catch
クリプト

ジョークコインとして出発したDogecoin(ドージコイン)の誕生から現在まで。注目される非証券性🐶

Like token Tip token
38.31 ALIS
Eye catch
クリプト

スーパーコンピュータ「京」でマイニングしたら

Like token Tip token
1.06k ALIS
Eye catch
クリプト

Bitcoin史 〜0.00076ドルから6万ドルへの歩み〜

Like token Tip token
947.13 ALIS
Eye catch
クリプト

【初心者向け】JPYCを購入して使ってみました!

Like token Tip token
30.03 ALIS