見出し画像

Monacoin の脆弱性と事後対応について (1 of 2)

先日発生した Monacoin のブロックチェーンへの Block Withholding 攻撃と、それを用いた海外取引所からのビットコイン奪取に関しては、広く報道され、NHK までニュース報道するという事態になりました。

攻撃の理屈や取引所が取りうる対応については、初期のころから複数のブログメディアで取り上げられ、また取引所側に人的に近い団体主催の説明会が行われたこともあり、本稿では重ねての説明はしません。

「運営」なるものが存在するコインの場合、今回のようなインシデントがあったときには公式見解が出ます。最近では ZenCash が攻撃を受けた際にブログで状況を説明しています。

しかしながら、モナコインは、「運営」なるものが存在しません。モナーをあしらったネタコインのような振りをしているのと反して、ブロックチェーン運用はガチの非中央集権トラストレスです。よく知られているように、作者である"ワタナベ氏"の素性すら不明です。

「非中央集権トラストレスは、暗号通貨であるモナコインの美徳である」という(主にガチ勢からの)意見がある一方、大多数は "暗号通貨" ではなく"金融庁ホワイトリスト仮想通貨" としてモナコインを見ているでしょう。「ホワイトリスト仮想通貨なのに、なんだか不安」という感覚を抱く方がいらっしゃっても不思議ではないですし、不安を煽って利益を得たい方々は盛大に煽りますし。

このような不安な雰囲気のなかで、何を書いても安心に繋がりはしないと諦めつつも、何が脆弱性に繋がって、ワタナベ氏はどう対処しようしていて、どれくらい安全なのかという辺りを記録しておきたいと思います。

業者BOTも、なかのひとも、「運営」でもありませんし、ワタナベ氏の代理人でもありません。でもまあ、投機の人でも取引所の人でもなく、どちらかというとブロックチェーン・エンジニア側なので、そういう角度からの意見になると思います。

...

たとえ話から入ります。

人生に絶望した若者が、トラックのアクセルをベタ踏みした状態で、歩行者天国に突っ込んだ。死者多数。
Q1. この事件はトラックの不具合であるか?
後期高齢者がアクセルとブレーキを踏み間違えて、小学生の列に突っ込んだり、コンビニに後ろから突っ込んだりする。
Q2. この問題で自動車メーカを責められるか?

思想信条次第で、様々な答えが有り得るでしょう。特に Q2 は難しい。

Q2 に対する現実社会での対処は、「後期高齢者の免許返納促進」「違反時の認知テスト実施」に併せて「踏み間違い防止装置の追加」辺りでしょうか。

Q1 の場合、「歩行者天国の中止と安全対策の策定」辺りでしょうか。トラックにも踏み間違い防止装置の装着車は増えているようですが、通り魔する気満々のような場合には役に立たないかもしれません。

…話をモナコインに戻します。

今回のインシデントでの、ワタナベ氏がデザインしたブロックチェーンとしての(狭い意味での)モナコインの立ち位置は、Q1 や Q2 での自動車と同じです。

 ...

同時期に攻撃された他のコインには、実装者の期待と異なる挙動(バグ)を突かれたものもあったようですが、モナコインに関しては、この意味でのバグを突かれた攻撃ではありません。モナコインはワタナベ氏がデザインしたとおりに動き、攻撃者が作成した悪意のあるチェーンを検出し、事前に設計したとおりにチェーン再構成( reorg )しています。

全ての PoW コインにとって、耐改ざん性の源は、採掘者による計算競争です。言い換えると、採掘者が計算資源を投下してくれない PoW コインは、改ざんされ得ます。そして、採掘者が計算資源を投下するかどうかは、採掘者が決めます。狭い意味での(ワタナベ氏がデザインした)モナコインから、採掘者をコントロールすることはできません。

自動車の出荷後に、どのような使われ方をするのか。自動車メーカは想定を立て、走行テストを重ねているはずです。しかし、想定外の状況になった時まで保証しろというのは酷です。自動車メーカができることは、リコールを出さないことまで。(狭い意味での)モナコインも、似たような立ち位置です。

...

一部報道でモナコインが盗まれたかのような表現が見られましたが、reorg ではモナコインは消失しません。無かったことにされたチェーンの採掘者報酬が、悪意のある採掘者の方に移ってしまいますが、総量は変わりません。

今回のインシデントの被害者は、海外の仮想通貨取引所でした。彼らは、モナコインのブロックチェーンとは別に、自前のデータベースを持っています。モナコインのブロックチェーンの状態を、自前のデータベースに常に反映させていて、出金までの取引は、自前のデータベースで行います。

今回の攻撃は、モナコインのブロックチェーンに reorg を起こすことで、標的となった仮想通貨取引の自前データベースに架空の入金を発生させ、架空の入金を他のコイン(ビットコインと聞いています)に替え出金するという手口でした。

わかりづらいかもしれないので繰り返しますが、モナコインはブロックチェーン上では消えていません。海外の仮想通貨取引所の自前データベース不整合により、彼らが持っていたビットコインが盗まれたというのが、実際です。不整合を起こすための道具として Block Withholding により起きる reorg が使われました。

(狭い意味での) モナコインは、ブロックチェーンまでは、もしかしたら責任を負えるかもしれません。ブロックチェーンの内容をコピーした自前データベースの責任までは負えというのは酷でしょう。それはもうブロックチェーンと関係ありません。

...

こういう書き方は不謹慎かもしれませんが「むしろ monacoind のバグのほうが話が簡単だった」と業者BOTの中の人は密かに思ったりします。ソフトウェア技術者はバグを直すのは得意です。というか、それが仕事です。

今回のインシデントでは、狭い意味でのモナコインのバグが、直接の引き金になってはいません。バグは無いので直しようがない。

しかしながら今やモナコインは…他の暗号通貨も同じですが…大きなエコシステムの上で動いています。採掘者や仮想通貨交換所も、広い意味でのモナコインなわけです。

狭い意味でのモナコインのデザイナであるワタナベ氏からコントロールが効かないところの、(広い意味でのモナコインの)不具合を修正する必要があります。

短絡的にいってもよいのであれば、「みんなで掘ろうモナコイン」「みんな売っちゃえモナコイン」どちらかまたは両方を行えば解決です。採掘にかけている計算資源量に比べて値段が高いから狙われたので、その不均衡を解消すれば狙われません。

…しかし…まあ…前者はコントロール効きませんし、後者は…………ねぇ…

というわけで、狭い意味でのモナコインで、できることが検討され、ワタナベ氏による実装が行われています。まだリリース前ですが。

長くなったので、どのような対策が検討され、どういうところに落ち着いたのかという辺りは、稿を分けて説明したいと思います。

(つづく)

この記事が気に入ったらサポートをしてみませんか?