Monacoin-1

モナコインへの攻撃について(Block withholding attack)

レポート「アルトコイン図鑑」では30種類以上のコインの概要と見通しを解説(詳しく)

Monacoin-1

モナコインが攻撃にあい、大規模なブロックチェーンの再編成(巻き戻し)と、取引所が金銭的な被害にあったことが明らかになりました。

攻撃の手口と、この攻撃から考えられる示唆についてまとめます。

この攻撃は、Block Withholdig Attackといわれます。日本語訳がないのですが、「ブロック隠し持ち攻撃」とでもいいましょう。

攻撃の手口

攻撃の手口についてまずは解説します。

マイナーはブロックが見つかると、通常すぐにネットワークにブロードキャストします。しかしながら、ハッシュパワーが勝っているなどの有利な条件があれば、見つけたブロックを敢えてブロードキャストせずに、裏で次のブロックを掘り続けるということもできます。

それが下の図です。

Screenshot from 2018-05-18 01-13-44

矢印の時点が攻撃のタイミングです。表では別のブロックチェーンが伸びているのですが(青色)、攻撃者はある時点から、自分だけでブロックを隠し掘りをしはじめます(灰色)。攻撃者のハッシュパワーのほうが大きいので隠し掘ったチェーンのほうが実は長い状態になっています。

この間に、攻撃者がターゲットの取引所にモナコインを入金します。(今回はLivecoinという取引所がターゲットになりました)

例えば取引所が3確認で入金をOKしている場合だと、下記の図の赤い矢印のところで、入金完了となります。

Screenshot from 2018-05-18 01-22-14

このタイミングで、攻撃者はモナコインを別のコインと交換して、さっさと引き出してしまいます。

そのあと、攻撃者が裏でこっそり掘っていた一連のブロックを一挙にブロードキャストします。

Screenshot from 2018-05-18 01-13-54

当然、矛盾するブロックが現れるわけですから、チェーンは分岐することになります。

PoWのブロックチェーンでは分岐が起きたときに、どちらのチェーンを正とするかのルールが決まっています。それは、ブロックが長く続いているほうのチェーンです。

つまり、攻撃者のチェーンのほうが長くなり、これが正当なチェーンとみなされるのです。

図の上側のチェーンは、綺麗サッパリ消えてなくなります。これを、ブロックの再編成(re-organization)と言います。

攻撃者のチェーンのほうでは、取引所に送ったはずのコインは別のアドレスにおくられているように書き換わっています。それがマイニングされていますので、取引所のほうでは、うけとったはずのコインが消えるということになります。(いわゆるダブルスペンドです。)

なお、日本の取引所においては今の所被害があったという報告は上がってきておりません。

再編成の規模

今回の再編成の規模と、回数についてですが、大規模な再編成が複数回にわたって起きていることがわかっています。

ブロックチェーンの形跡によれば、再編成は8回おこっており、それぞれ、

24,23,22,16,10,10,9,8 ブロックが巻き戻っています。

24ブロックというのは非常に大規模であり、多くの取引所が入金をOKとする数です。このような数字が起きたことは、にわかには信じられません。

難易度調整アルゴリズム

攻撃を容易にした一つの要因に、モナコインの難易度調整アルゴリズムがあげられます。モナコインは採掘難易度を1ブロックごとに調整する仕様になっています。

これは急激なハッシュパワーの変化に強いという意味では良いのですが、今回のようなケースでは、たまたま難易度が低い時点を基点として攻撃を仕掛けると、平均した難易度より攻撃が容易になってしまうという欠点があります。

下記はモナコインの1周間の難易度の上下を表した図ですが、ブレ幅が大きいのがわかります。

Screenshot from 2018-05-18 01-54-51

最低が40116、最大が109348と、2倍以上の幅があるのがわかるでしょう。

この難易度のブレ幅が、攻撃を容易にしたと指摘されています。

被害状況について

被害額ですが、下記のTXがその送金ではないかとされています。これ以外にもあるかもしれませんが、23832MONAです。

日本円にして1000万程度です。被害額でいえばコインチェックのハッキング事件とは比べ物にならないほど少額ですが、チェーン自体に対する攻撃ということで、意味合いは非常に大きいです。

Screenshot from 2018-05-18 01-32-10

(当該TX。脇P氏指摘による)

なお繰り返しますが、日本の取引所では被害があったという報告は受けておりません。

本攻撃への対策

この攻撃への対策ですが、Powである以上あまり対策がありません。一定の人が多くのハッシュパワーを持ってしまった場合、このような自体が起こりえます。

モナコインの開発者のワタナベ氏も、「PoWコインである以上は避けられない問題」であるとして、承認数を上げる以外に有効な手段はないとしています。

Screenshot from 2018-05-18 01-36-11

いままで3確認でよしとしていたものを10確認、20確認、と大きくすることです。

取引所によってどのくらいにするのかは対応が別れると思いますが、少なくとも新規生成コインが利用できるようになるまでの確認数(100と思われる)は待つのが安全かもしれません。

またワタナベ氏のツイートにあるように、POSへの以降や、PoWとPOSのハイブリッドなどの改良の選択肢があります。

意味合い

ハッシュパワーによる攻撃は理論上存在するものの、いままではあからさまなものは起こったことがありませんでした。

今までは攻撃というと取引所に対するものでしたが、今回の攻撃はチェーンそのものに対する攻撃で、被害額以上のインパクトがあるのではないかと思います。

一般には、ブロックタイムは短いほうが早くて便利だという印象がもたれています。10分より5分、5分より1分、1分より10秒という具合に。利便性を追求するとそうなります。ただし、短いブロックタイムはセキュリティとのトレードオフであり、その分承認数をあげて待たなければいけないとすると、どっちもどっちです。

パブリックチェーンは、中央の介入なしに合意をえることができるかわりに、さまざまなトレードオフ(ジレンマ)があります。短いブロックタイムや、巨大なブロックサイズと、究極のセキュリティは相容れません。もう一度そうした基本的な事項が再確認されるきっかけになるかもしれません。

PoWは安全ではないのか?

さて、こうなるとPoWの安全性についての議論が巻き起こると思いますが、PoWだけが危険であるという理解をされるのは誤解であり、理解のレベルが浅いと言えます。

例えば、PoSではNothing Stake問題というセキュリティ欠陥があります。持ち分が多い人は、どこからでもチェーンをやり直すことができるのです。仮に、ジェネシスブロックにおいて100%を保持している人がいれば、チェーンをすべて作り直すこともできてしまいます。

PBFTでは、チェーンは即時ファイナリティを持ち、チェーンの巻き戻しは起こりません。しかしながら、1/3以上のステークを保持していれば攻撃が可能となり、しきい値はPoWの51%より低いです。

このようにコンセンサスアルゴリズムには完璧なものは存在せず、一長一短です。いずれも何らかのトレードオフの関係にあります。それらは欠陥というより特色とみるものであれり、チェーンの性質や目的に応じて、最適なものを選ぶべきであると理解するのが適当です。

GPUとASIC

さて、モナコインへの攻撃ですが、どこにこれだけのハッシュパワーをもった人がいたのでしょうか?

モナコインは、Lyra2rev2というハッシュ関数を使っています。これはASICに耐性が強いとされているアルゴリズムで、GPUをつかって採掘します。

GPUは汎用チップですので、これ以外にもあらゆるコインを掘ることができます。つまり、モナコイン以外を掘っているひとが一時的にそのGPUパワーをモナコインに差し向けることによって、急激にハッシュパワーを獲得してしまうことが考えられます。

攻撃がおわったあとは、また別のコインを掘ればよいのです。攻撃者は自由にすきなコインを掘ることができるというスイッチの容易性により、ハッシュパワーの低いコインは常に攻撃の対象となります。

この場合、ハッシュパワーの低いコインは次々に攻撃対象になるかもしれません。

もう一つは、完全な憶測になりますが、Lyra2rev2のAISCが裏で開発されているのではという指摘をする人もいます。(個人的にはこの可能性は低いとおもってますが)

GPUとASICではその性能に大きな差があり、もし裏でAISCが開発されているとすれば、突如として大きなハッシュパワーが投入されたことの説明がつくかもしれません。

AISCの是非はこの業界で古くから議論されているテーマです。先日もMONEROがAISCをめぐり、アルゴリズムを変更するハードフォークをしています。

(モナコインはスタート当初はライトコインと同様のScryptというアルゴリズムを使っていましたが、よりASIC耐性のあるLyra2rev2にハードフォークした経緯があります)

いずれAISC化が避けられないとなると、むしろASICが裏で開発されるより、全面的にASICに移行したほうが安全だという意見もあり、ASIC耐性派と対立しています。

AISCはそのアルゴリズム専用になるため、他のコインにハッシュパワーをスイッチすることができません。そのため、マイナーの設備とコインは一蓮托生になり、攻撃のインセンティブが薄れるという指摘もあります。

以上です。

本件でご質問などがあれば、ツイッターなどでお願いします。

・おしらせ
ビットコイン研究所の有料版サロンでは、平易な言葉で最近の技術や業界事情などについて解説するレポートを毎週配信しています。

暗号通貨について、もっと知りたい、勉強をしたいというかたに情報を提供しています。サロン内では疑問点も質問できます。

一度登録いただけると100本以上の過去レポートが読み放題で、大変お得です。レポート一覧がこちらのページありますので、よろしければいちど目をとおしてみてください。