コインチェックがハッキングされた事件
https://www.nikkei.com/article/DGXMZO26233880X20C18A1I00000/
http://www.itmedia.co.jp/news/articles/1801/27/news017.html
は、今日の朝刊で、朝日、産経一面トップ、日経は一面だけどトップでない。毎日は社会面のみ、読売はiPadアプリ対応してないので読んでない。因みにNEM(ネム)は暗号通貨プラットホーム名で、通貨名はXEM(ゼム)。新聞は用語を正しく。通貨単位は、µXEM (microXEM)とか、mXEM (milliXEM) とかから。だから盗まれたのは、580億円相当XEMで、ネムとユーザが気軽に呼ぶのはいいけど、新聞はXEMと書かないと。
コインチェックの昨夜の記者会見で分かったのは以下、
1 コインチェック内で、Webウォレットの顧客から預かった秘密鍵はコールド管理されずホット状態、つまりオンラインだった。コインチェックのサイトではハードウォレットでコールド管理しているかのような虚偽の記述だった。記者会見では「システム的に難しかった」ため、ホットウォレット状態であったと説明された。これは、極めて重要な安全性の説明についての顧客への虚偽説明であり、今後刑事責任を問われる。
2. 過去のMtGoxなどの教訓から、送金時に秘密鍵署名を3つ(triple signature)等複数を要求するのが現在の仮想通貨プラットホームの常識となっているなか、NEMが比較的新しい仮想通貨プラットホームであることから、NEMプラットホームにおいては、最初から複数秘密鍵署名(multiple signature、multisig)が仕様である。もちろん単署名にも対応の仕様だが現行はmultisig 運用されている。
ところが、記者会見では、「マルチシグも導入していなかった。機能実装のロードマップにも、マルチシグの具体的な実装予定時期はなかった」ということであり、これは、NEMプラットフォームの仕様を満たさずXEMを販売、送金していたということである。これも仮想通貨NEMという言い方をしてきた以上、これも顧客に虚偽の説明といえるレベルであり、刑事責任が問われるレベルである。
また、NEMプラットフォームで複数秘密鍵署名を行わず送金をしていたという事実は、資金喪失に加えてXEMの相場が全世界的に落ち、時価総額での損失を出したことに対して、NEM財団等からの損害賠償請求の対象になり得るということでもある。
3. 大量流出が外部的に検知されても、尚、約8時間コインチェックのサーバはインターネットにそのまま接続されていたということであり、これも仮想通貨の交換所としてはあり得ない管理状態であり、刑事責任が問われる部分だ。
4. 「送信先のアドレスは分かっている。NEMを推進するNEM財団や取引所と連携し、流出した資産の追跡、移動先での売買停止の要請を行っていくとしている。」ということだが、これは、ブロックチェーンベースの仮想通貨プラットフォームを理解していない記者達への説明だ。ブロックチェーンベースの仮想通貨には中央銀行にあたる管理者はおらず、NEM財団はプラットフォーム提供団体であり、彼らに売買停止の要請というのは意味がないことである。送信先のアドレスが分かっているという言葉が送金相手を特定出来るかのような意味合いで読まれるのは間違いである。ブロックチェーンのアドレスは、公開鍵からSHA3やBase58(NEMはBase32)などで生成されたデータに過ぎず、これは相手が特定出来るものではない。もちろん、このアドレスから次のアドレスにどんどん送金を繰り返されるチェーンを追いかけて行くことはNEMプラットホーム内では可能だろうが、ビットコインなど複数通貨をどんどん経由して行くのがハッカーのやり方で、こうなると現実的には難しい。
実際、ビットコインを一度通されるとまず難しい。現実問題として、北朝鮮が盗んだビットコインが返った試しはない。ブロックチェーンは追いかけて行きづらいようにもともと設計されているのだ。もちろん、
https://jp.reuters.com/article/cryptocurrencies-idJPKBN1FG050?il=0
が指摘するように、コインチェックが扱っていた、モネロ、ジーキャッシュ、ダッシュなどの匿名通貨を通されてたら追いかけるのは不可能だ。
更に、この手のハッキングではサーバの顧客から預かった秘密鍵がまとめて、場合によっては全て、盗まれており、またサーバ自身が乗っ取られているため、恐らく、コインチェックサーバ内で大量の金額がまとめられてから不正送金されているはずだ。もともと取引所は一つ一つの取引をいちいちブロックチェーンに書き込まず、時間とリソース節約のために、沢山の取引をまとめてからブロックチェーンに書き込んでいるからだ。だから、どこかの取引所でアドレスから換金を止められたとしてもWebウォレットの顧客達の元々の持ち主を特定して正しい金額をそれぞれに返すのは至難だ。
私が常々色々な関係者に提案しているように、このような不正送金を追うトレーサビリティを保証した仮想通貨以外は日本では販売しないように金融庁は厳しく規制すべきだ。今回の事件が教訓になったはずだ。そうなると、現在日本で取引されてる全ての仮想通貨は、ブロックチェーンベースであり、失格になる。そこまで安全にしてから素人が手を出せるものにすべきだ。
金融庁の現在の見解は、ビットコインやNEMのようにアドレスが読めればトレーサビリティがありとして、取引所を認可しているようだが、私自身はずっと異論を唱えてる。ブロックチェーンをベースにした現状の仮想通貨は本来の意味でトレーサビリティは保証されていない。アドレスは公開暗号鍵から生成されるが、その公開暗号鍵の持ち主の物理世界の個人を特定するすべはない。アドレスと合わせてマイナンバーを必ずhashするとか、政府発行の各個人用の秘密鍵しか使えないといった規制は最低限ないとブロックチェーンはトレーサビリティはない。もちろん、日本国内専用の仮想通貨になり、またプライバシーの問題が大きくなるが。また、コインチェックで想定されるようにサーバそのものが乗っ取られてサーバ内で資金移動された後に、「合法的な」送金がされるとトレーサビリティの保証はそれでも厳しい。
私自身は、ブロックチェーンではなく、もっとホンモノの離散数理モデルをベースとしてトレーサビリティを保証した仮想通貨プラットホームを長年(Nakamoto論文より前から)提案している。正月明けにはアメリカの有力者に最新版のホワイトペーパーを渡したばかりだ。
因みに、現在、また将来、仮想通貨を購入する人は、秘密鍵を交換所やその他の預かりサービスに決して預けずに、ハードウェアウォレットを利用すべきだ。スマホに保管するのは、Webウォレットより安全だが、スマホから秘密鍵を抜くマルウェアは結構あるのでやめた方がいい。ハードウェアウォレットも流通段階でいじられてることもあるので、本当に未使用新品かよく注意して、ハードウェアウォレットにアクセスするPINは紙に書いたりしないこと。ウォレットというのは、仮想通貨が入っているという意味でなく、その持ち主であることを証明する秘密鍵が入っているという意味。念のため。
私が常々言ってるようにブロックチェーンアーキテクチャは、離散数理モデルとしても古すぎ、内因的に問題が有り過ぎることも今回の件で少しは知られたのではと思う。
参考 NEMにおけるアドレス生成 (multisigの仕様も)
https://nem.io/wp-content/themes/nem/files/NEM_techRef.pdf より、
1. Perform 256-bit Sha3 on the public key
2. Perform 160-bit Ripemd of hash resulting from step 1.
3. Prepend version byte to Ripemd hash (either 0x68 or 0x98)
4. Perform 256-bit Sha3 on the result, take the first four bytes as a checksum 5. Concatenate output of step 3 and the checksum from step 4
6. Encode result using base32