ビットコインゴールドの51%攻撃やモナーコインのブロックチェーンの脆弱性?などハッキング関連のニュースが続きましたね。更に6月に入ってZenCash(ZEN)も51%攻撃で約6000万円という額を不正に抜き盗られたそうです。
先月5月13〜15日に発生したと思われるモナーコインへのハッキングについての顛末が分かったのでご紹介します。
今回のモナーコインのハッキングはセルフィッシュマイニング攻撃(Block withholding attack)を受け被害額は推定980万円と言われています。
■モナーコインハッキングの真相
モナコインを保有しているユーザーへの直接的な被害はなくモナコインが略奪されたとか消失あるいは改ざんされた訳ではない。(一部報道で改ざんと表現している)
皆さんご存知の通り、ブロックチェーンは改ざんされにくいシステムとなっており、ブロックが書き換えられた訳でもないということです。
PoW(Proof of Work)の仕組みを悪用したということです。
実際に被害を被ったのはモナーコインを扱う取引所でした。
では、どのように不正を働いたのでしょうか?
通常PoWではマイナーの承認作業(暗号計算)で最初に解いたマイナーが新しいブロックを生成する権利を持ちます。実際には同時に2者現れることもあります。
この時ルールとして分岐した場合は長い方のチェーンを有効とするように決められています。
ここで、(暗号計算競争で一番になったブロック生成者をハッカーという表現で決めつけています、悪しからず)
1.ハッカーはマイナーとして暗号計算を最初に達成しブロックを生成する権利を得ました。
2.ハッカーはブロック生成を他のマイナーに通知せずローカルで通常通りブロックを生成していきます。
3.その間に自分のモナーコインを出金します。(取引所からモナーコインが抜け、送金先に支払います)
4.ハッカーは自分が行動したモナーコインの取引履歴が書かれていない最初の状態のブロックを元に戻します。
5.マイニングで権利を得たブロックのチェーンが他の同時にできたブロックより長いことを確認してブロックチェーンに戻します。
6.結果的に取引所は出金したはずのモナーコインが抜かれているにも関わらず取引がキャンセルされていますが実際には出金しています。
ハッカーには出金したモナーコインと取引所でキャンセルされたモナーコインが戻っています。これで、二重にモナーコインを受け取ったことになります。
通常取引所ではブロック承認数の数でトランザクションを確定します。
今回この承認数が少ない取引所を狙い完全に認証される迄に、その間にハッカーは他のウォレットに送金を行ったということです。
実際には取引所側がこの承認数を多くすればこのような問題が起きにくくなるわけです。
モナコインの場合18〜20承認前後で承認されていたそうです。
取引所はユーザーに迅速なサービスをという事が裏目に出たようですね。
その後、各取引所はこの承認数を30承認以上まで引き上げたそうです。
■草コインのPoWに注意
このような攻撃を受けるのはハッシュレートが低く、かつPoW(Proof of Work)を採用しているコインです。
したがって極小のマイナーコインでPoWを採用しているコインは信頼度が落ちるという事になってしまいます。
ビットコインゴールドの51%攻撃もマイナーが少ないコインでは、既にビットコインやイーサリアムをマイニングしているマイナーから見ると「赤子の手をひねる」ようなものだったのかも知れませんね。
ただ、今回のモナーコインにおける事象は故意に(ハッキングを)行ったのか、あるいは偶発的な事象か、現段階では定かではありませんが、モナーコイン(のブロックチェーン)のバグを否定することもできません。
今回のような消失事件が公開され、それに対するセキュリティーが確保されればそのコインに対する信頼度も上がって行くのではないでしょうか。
PoWの信頼性をより強固な手法としてPoS(proof of stake)を採用しているコインも増えています、LISKはそのPoSを更に強固なシステムDPoSを作っています。
(LISKとは参照:https://bitcoin-fx.jp/?p=958)
また時価総額第2位のEthereum(イーサリアム)も現在のPoWからPoSに切り替える計画だそうです。
このように、プルーフ・オブ・ワークを使った時価総額の低いコインは投資をする際に気をつけなければなりませんね!
この記事が少しでも役に立てば幸いです。