深夜、こんなツイートが目に入った…
どうやらモナコインで大規模なre-orgが発生したようだ。意図的なもので、セルフィッシュマイニングによると考えられている。取引所の中には受け取ったモナコインが消えて損害をだしたところもあるという噂。
難易度調整がブロック単位?なのも攻撃をやりやすくした要因との指摘も— ビッグストーン Bigstone (@bigstonebtc) 2018年5月17日
おおぉ!!!?これは不穏な…
re-org?セルフィッシュマイニング?
情報をたどる作業に取り掛かった。
re-orgとは、Reorganization/Reorgのこと。ブロックチェーンの「巻き戻し」を意味する。
ブロックチェーンというのは、その名の通りブロックがチェーン(鎖)のように繋がっていて、
そのそれぞれのブロックは、マイナー(採掘者)の承認を受けて、次のブロックへと進んでいく。
それが巻き戻されるというのは、おそらくいままでなかったことだ。
【概要】
– モナコインが攻撃を受けた
– 大規模なブロックチェーンの巻き戻しが複数回あった
– 海外にある取引所が金銭的な被害があった(約1000万円)
それに伴いモナコインを国内で扱う取引所は
モナコイン入金に必要な承認数を上げたり、入金を一時停止するなどの対策を採っていると思われる
何が起きた??
(深夜にも関わらず、情報を発信したり、解説してくださる方がいて感謝します
Block withholding attack=別名セルフィッシュマイニングについて簡単に解説しますね。
普通ブロックをほったらすぐブロードキャストします。無効になったらやだからね。でも次のブロックが掘るのが優位な場合、ブロードキャストせずにそのまま自分だけ掘り続けるというのもあり。— ビッグストーン Bigstone (@bigstonebtc) 2018年5月17日
モナへの攻撃の場合、ブロックをブロードキャストせずに自分だけで掘り進めます。当然、他の人もほっているわけなんですが、自分はうらで表のチェーンより先にほっていればOK。今回は6個も7個も先堀りしてたわけですね。
— ビッグストーン Bigstone (@bigstonebtc) 2018年5月17日
で、ターゲットの取引所にMONAを入金します。多分数確認とかで承認されるとおもうんで、そしたら他のコインに変えてすぐ引き出す。
その後に、自分でほってたブロックを一斉にブロードキャストします。するとそっちのほうが長くなるので、直近のチェーンの数ブロックが一気に無効に。— ビッグストーン Bigstone (@bigstonebtc) 2018年5月17日
ということで、取引所へ入金したMONAはなかったことになります。取引所としてはMONAが消えちゃった状態ですね。
それ以外にもその間にMONAの送金してたひとは、送金が消えちゃってます。— ビッグストーン Bigstone (@bigstonebtc) 2018年5月17日
んー、どうやら7ブロック戻ったレベルではないらしい。20ブロック以上戻っているのが複数回。10ブロックレベルも複数回。
モナコインの入金や受取には、相当数の確認をしたほうがいいかも。事実だとすると100くらい(コインベースTXくらい)待つくらいの慎重さが必要かも— ビッグストーン Bigstone (@bigstonebtc) 2018年5月17日
モナのアタック一通り取引所が対策したら、犯人、絶対他のコインでも試すこと模索するし、真似する人でるだろうな。
ハッシュパワー低く、承認間隔短いPoWコインに危機感感じる。で、危機感が伝搬して売りが入ると、難易度が下がってさらに攻撃しやすくなる。— Junya Hirano 平野淳也 (@junbhirano) 2018年5月17日
MONAの巻き戻しの概要。
合計8回
それぞれ巻き戻ったブロック数は、
24,23,22,16,10,10,9,8
です。
(某氏がブロックチェーンを調べた結果による) https://t.co/VJbKqJTXAm— ビッグストーン Bigstone (@bigstonebtc) 2018年5月17日
今回の話はコインチェック社でNEMが盗まれたのとはまったく違う話です。
犯人は、取引所にmonaを送って、すぐに別の通貨と交換。
このままだと犯人のmonaは本当は減るのですが、そのチェーンを追い抜いて、取引自体をなかったことにしてしまった。
なので、手元には交換した通貨と交換する前のmonaが残るということです。
monaの仕様を利用した、巧妙な犯行と言えるでしょう。
利便性とセキュリティ
ブロックタイムを短くして、ブロックサイズを大きくして、難易度調整を早くしてを追求すればスケーラビリティは上がるとおもうんだけど、セキュリティを犠牲にしているのは否めない。コインによってどちらを優先するかはあるけど、スケールもセキュリティも両方ってことはないんだとおもった。
— ビッグストーン Bigstone (@bigstonebtc) 2018年5月17日
私もまさにそう思います。
利便性とセキュリティはトレードオフだと思います。
承認時間短くするのは変数いじるだけで簡単なことですが
短いというのはそれだけ簡単にハッシュ値を見つけられるという事だから改竄しやすくなります。
これは根幹を揺るがすような事態なのか
実は、Block withholding attack:別名セルフィッシュマイニングというのは既知の問題で、BTC界隈では議論し尽くされていました。
もともとセルフィッシュマイニングは悪意を持ったマイナーにとって合理性がないと言われていました。
なぜなら、その攻撃によって価格が下がるなどが起きれば攻撃者は利益を得られなるからです。
しかし犯人は、怠惰な取引所を絡めた事で利益を出すことに成功してしまいました。
結論として、現実的にありえないと言われてた方法で今回monaがやられてしまいました。
BTCは2016ブロック毎に答えを見つけるまでの時間が平均して10分になるように難易度を調整しています。皮肉なことですが、今回のことで、BTCのチェーンがいかに強いかのを証明することにもなりました。
(これはBCHも同じですが、BCHはブロックを大きくして、承認を短くしたのでBTCのハッシュパワーで改竄されると、理論的には同様に改竄されてしまいます。理論的というだけで、考えにくいとはされています。
なぜモナコインが狙われた?
monaは1ブロック毎の承認をしています。
powの仕様では、ブロックが分岐した時には、長い方が正となります。
BTCだと3確認も入れば安全なのですが、ハッシュパワーの弱い時のmonaのブロックで3承認は全然安全じゃなかったということです。
普通に追い抜かされて、正しかった取引のチェーンは消されて、取引が行われる前の状態に巻き戻されてしまいました。
※ハッシュパワー:採掘作業量。その仮想通貨にどれだけのマイナーが集まっているか(人気かどうか)を示す指標になります。ハッシュレートが高いということは、より多くのマイナーによって取引の正常性が確認されるため、その通貨が安全で信頼できるということをあらわしています。
※pow:Proof of Work 仕事量に応じて採掘量が増える仕組み
※pos:Proof of Stake 保有数に応じて採掘量が増える仕組み
つまるところ、なにがいけなかった?
re-org自体は、POWの仕様です。
本来は取引所がリスク計算して、例えばmonaのハッシュパワーなら40承認くらいは必要だとかしなければいけなかったところを、Bitcoinと同じ6承認で入金確定にしてしまったのが敗因とも言えるかもしれません。
今回のことから学ぶ
このことからも、わかるように仮想通貨はつねにそれを狙う悪い人がいるということです。
しかし、これは仮想通貨に限った話ではないですよね。悪いことをしようと考えている人は常にどこにでもいます。
上でも書きましたがセルフィッシュマイニング自体は既知の問題で、POWの欠陥が発見されたといったことではありません。
そのへんは正しく理解して正しく怖がってください。
ーーーーーーーー追記(20180518 18:28)
仮想通貨少女というアイドルグループのMONA担当さんが書いた
図解がすごくわかりやすく、しかも可愛かったので、紹介しますね!
今回起きたモナコインへの攻撃を図解してみました!ビットコインなどにも使われるPOWで起きた事件なので他のコインにも起こりうる可能性があると思いますが、今後進化し続けるきっかけとして頑張ってほしいです!これからもモナコイン応援します🐱❣️
モナコイン担当(MONA)愛須もも pic.twitter.com/MtAXASRt4h
— 愛須もも♡星座百景☆青銅★仮想通貨少女MONA (@aisu_mo_mo) 2018年5月18日