コインチェックとNEMについて

コインチェックの事件で一気に有名になったNEMについて、正しい情報、正しくない情報が飛び交っているようなので、ここで一度、私自身の理解があっているかをジャッジしてもらう意味合いも含めてまとめてみたいと思います。

まず、コインチェックの事件について簡単に説明すると、コインチェックの保有していたXEMが当時の相場で580億円分盗まれたというものです。確かなことはわかりませんが、おそらくコインチェックの所有するXEMを保管していたアドレスの秘密鍵が漏れて、犯人がこれを自分のアドレスに移動したのだと考えられます。アドレスというのは財布の名前のようなもので、仮想通貨では送り先のアドレスを指定するだけで何億円であってもすぐに送金が完了します。当然ですが、コインチェックの資産を誰でもどこかに移動できるわけではありません。所有権がコインチェックにあるからです。では、所有権はどのように証明されるのか?仮想通貨全般に言えることですが、仮想通貨の所有権の源は秘密鍵と呼ばれる文字列になります。したがって、その秘密鍵が盗まれれば、その秘密鍵によって所有を証明していた仮想通貨は当然のごとく秘密鍵を盗んだものの所有物になったも同然となります。今回の事件のように、秘密鍵を取得した犯人が、自分が秘密鍵を所有する別のアドレスに送金すると、犯人以外の誰も奪うことのできない資産となります。

では秘密鍵とはどういうものなのか、というと、256ビットのランダムな整数です。256ビットの整数というのは簡単にいうと、最小値0、最大値115792089237316195423570985008687907853269984665640564039457584007913129639935、の整数のことです。この中から自分で決めた1つの数字を選んで秘密鍵とします。もし自分が作った秘密鍵と同じものを他の誰かが作ってしまった場合、自分の資産は自分だけのものではなくなってしまいます。だだし、256ビットの整数は十分大きいので偶然かぶるということはまずありません。仮に悪意ある人間が毎秒10万回の速度で秘密鍵を作って特定の秘密鍵と同じものが作れないかを試したとしても、平均で約26328072917139296674479506920917608079723773850137277813577744384年かかる計算になり、滅多なことでは重複しないということがわかると思います。

また、NEMを含むいくつかの仮想通貨にはマルチシグという機能があります。マルチシグというのは複数人でアドレスを管理し、そのアドレス内の資金の移動には複数人の承認を必要とするルールを定めるものです。すなわち、マルチシグを設定したアドレスでは所有者が複数いることになり、例えば、5人中3人が同意すれば資金を移動することができる、というようなルールを設定可能です。このようにすると、5人のうち1人が、悪意ある人間だった場合や、その秘密鍵をなくしてしまった場合、秘密鍵を盗まれてしまった場合でも、残り4人によって正常に資金をコントロールすることが可能になります。

コインチェックは580億円分のXEMが入ったアドレスをマルチシグに設定していませんでした。これは非常に危険なことで、様々なリスクに対して脆弱です。先述したように、秘密鍵にアクセスできる人間のうちたった1人でも悪意ある人間だった場合や、秘密鍵を盗まれてしまった場合には全財産にアクセスできなくなります。そもそも、取引所のシステムを運営するにあたっては、マルチシグに設定しないと1つの秘密鍵を複数の人間が知っていることになるため、そのうちの1人が580億円に目が眩んでしまえば、顧客の資産は失われます。あなたは目の前に580億円があっていつでも奪えるような状況でも我慢できますか?取引所のようなアドレスにはマルチシグが必須であると言っても過言ではないというのがわかると思います。

今回のXEM盗難では、犯人のアドレスを特定することができました。これはブロックチェーンであるNEMであれば当然のことで、何も特別なことをしなくても誰でも確認できることです。なぜ、このように皆が確認できる必要があるのでしょうか。それは、仮想通貨が実体を持たないのになぜ複製できないのかという問題と関係があります。仮想通貨は、誰が所有するものにも由来があります。全てのXEMは全て由来があるのです。だから、どこからともなく新しいXEMが生じることはありません。逆にそんなことができてしまうのなら、皆が自分で作った偽コインが流通することになります。ちなみにNEMでは最初に1600人に均等に分配されたところから始まっています。ビットコインでは少しずつマイニングによって増えていく仕組みです。どちらも共通するのが、由来をたどれるところであり、自分の持っているコインが、正当な由来をもつことがブロックチェーンで証明されるからこそ、自分の持っているコインが価値を持つのです。

犯人が持ち去ったXEMについても同様です。その価値を証明するには由来を証明する必要があり、それはすなわちコインチェックから移動してきた資金であるとブロックチェーンに記録されているからこそ、犯人がXEMを持っていることを証明でき、価値があるものだと証明できることになります。だから、由来をたどることができ、資金の移動を皆で確認できるブロックチェーンでは、犯人のアドレスを特定することは容易、というよりもむしろ、「コインチェックから犯人のアドレスに移動した」というブロックチェーンに記録されている事実そのものなのです。

次にmizunashi氏が犯人のアドレスに向けて送りつけたモザイクについてです。モザイクというのはNEMに実装されている機能のうちのひとつで、実はXEMもモザイクのうちのひとつと考えることもできます。XEMはnem.xemというモザイクで、犯人に送りつけたのはmizunashi.coincheck_stolen_funds_do_not_accept_trades.owner_of_this_account_is_hackerというモザイクです。モザイクには徴税機能があり、モザイクの移動時に指定したモザイクを指定したアドレスに送付する必要がある設定にすることができます。また、発行者以外のアドレス間での移動を禁止することも可能です。mizunashi氏は、mizunashi氏しか所有しないモザイク(mizunashi.coincheck_stolen_funds_do_not_accept_trades.levy_to_lock_assets)を徴税するモザイク(mizunashi.coincheck_stolen_funds_do_not_accept_trades.owner_of_this_account_is_hacker)を犯人のアドレスに送りつけました。そうすることで、犯人のアドレスが誰にでもわかるようになったわけです。実際にはだれでもブロックチェーンの履歴を見れば盗まれたXEMがどこに行ったかはわかるのですが、わかりやすくなったという話です。このモザイク送りつけに関しては、誰でも実行できることです。このモザイクがついたからといってXEMを移動できなくなるわけでもないですし、そのアドレスのXEMが使えなくなるわけでもありません。よく考えてください、mizunashi氏は特権を持っているわけではないので、そんなことはできないのです。何も中央集権的なところはないにもかかわらず、中央集権的な措置であると主張する人は間違っています。このモザイクによって達成されるのは、犯人のアドレスを誰にでもわかるように可視化すること、それからこちらもかなり大きな効果を持ったと思いますが、犯人に追跡しているというプレッシャーを与えることです。なお、このモザイクは伝染するようなものではありません。mizunashi氏が所有するモザイクなので彼が送ろうと思ったアドレスにだけ送ることができるので、怪しいと思われるアドレスにだけ送ることもでき、mizunashi氏もそうすると言っていました。もしこれが中央集権的だと思ったあなたは、あなたが作った犯人マーキング用のモザイクを自分の好きなように送れば良いでしょう。皆自由にモザイクを作って送ることができ、mizunashi氏もそれをやっただけなのです。

コールドウォレットに保管すべきだったが、それがAPIがオンラインで用意されているNEMでは難しかったのではないかという意見もあります。しかし、全ての資産をコールドウォレットに保管する必要はそもそもないと思います。また、コールドウォレットというのはオンラインから完全にアクセスできない場所に秘密鍵を置くウォレットですが、NEMにはローカル環境で署名まで行うツールが何種類もの言語で実装されています。オンラインで展開されているAPIは署名されたトランザクションをアナウンス(簡単にいうとブロックチェーンに記録させるよう送信すること)する部分や、ブロックチェーンの情報を取得する部分については確かにネットワークに接続する必要があるでしょうが、このあたりはビットコインなどでも同じです。また、ファイヤーウォールなどでDMZ(非武装地帯)ともいうのですが、外部からはアクセスできない環境をしっかり作るというのがそもそも金融システムでは重要だと思います。

今回の件でNEMには何の落ち度もありません。コインチェックに管理の甘さがあったということです。ただ、取引所が突然閉鎖することはこれまでにもあったわけですし、そこに全財産を預けているようなユーザーがいたとしたらそれはそれでリスクに気づくべきだったと思います。当たり前ですが、最も悪いのは犯人です。コミュニティの力で犯人の資産を封じ込めようとしているNEMはハードフォークで無かったことにするよりもはるかに非中央集権的であると考えることができると思います。