注目されるマルチシグという概念
コインチェックの不正出金問題を知れば知るほど、このマルチシグという言葉がキーワードとなっていることがわかります。マルチシグとは、公開鍵暗号方式において、秘密鍵が2つ以上ある状態のことを言います。
パスワード認証方式と公開鍵認証方式
システムエンジニアはSSHというプロトコルでサーバーにアクセスし、仕事をするケースが多いと思います。このとき、以下の2つの方式でログインするはずです。
・パスワード認証方式
・公開鍵認証方式
パスワード認証とは、IDとパスワードを入力してログインするケースです。当初はこの方式が主流でしたが、IDやパスワードはリスト攻撃やブルートフォース攻撃と言った、レベルの低い方法で破られることが多いため、懸念がありました。
一方公開鍵認証方式は、サーバー側に公開鍵を置き、端末には秘密鍵を置きます。秘密鍵を所有していないとサーバーにログイン出来ないため、今はこの認証方式が主流になっています。
公開鍵認証の課題
一方で、公開鍵認証方式にも弱点があります。
秘密鍵が第三者に盗まれるなどした場合、第三者でもログインできてしまうため、秘密鍵の保管が課題となる側面がありました。今回のコインチェックの問題でも、秘密鍵が何らかの理由で盗まれたことで、送金を第三者が可能になってしまいました。
これを克服するために考えられたのが、「マルチシグ」です。秘密鍵を分割し、複数の保管場所に保管します。全ての分割した秘密鍵が揃わないと、アクセスできない仕組みです。
ハッキングする第三者も、一箇所の端末ではなく複数箇所の端末を同時に攻撃しなければいけなくなるため、格段に安全性が上がります。
具体的な手続き
マルチシグで一般的な方式に「2 of 3」があります。3つに秘密鍵を分け、そのうち2つが揃うことがアクセスの条件となるものです。
例えば、2つは自分、1つは取引所、としておきます。すると、取引所は自身だけではお金を動かせなくなります。取引所がハッキングされただけでは、不正出金はできないのです。また、通常は自分が持っている2つの鍵で、入出金を行います。そのうち1つを紛失したとしても、取引所が持っている鍵を組み合わせれば安全に入出金できるという仕組みです。
もちろん、自分の端末に2つとも保管していたら、端末をハッキングされたらアウトです。また、2つを紛失してもアウトです。
マルチシグ非対応の場合は
こちらはもっとシビアです。1つしかないので、この1つを無くしたら、誰も入出金することができなくなってしまいます。
もちろん、この1つが他人の手に渡ったら、他人が自由に出金できてしまいます。今回の例はこのケースでした。
ここまで考えても、マルチシグ対応の取引所はどのように秘密鍵を運用しているのかよくわからない
ちょっと深刻な問題です。
マルチシグ対応、という取引所はいくつかあります。例えば大手のbitFlyerでは、マルチシグ対応をうたっています。
セキュリティを追求した最新のビットコインテクノロジーであるマルチシグを他社に先駆けて導入するなど
仮想通貨のやりとりには、ウォレットという、電子的な財布が必要ですが、これをサーバー側に持っています。つまり、取引所側が秘密鍵の管理をしているということです。
複数の秘密鍵を取引所側がどのように管理しているかは、ブラックボックスです。これは二段階認証の話ではありません。二段階認証とは、あくまでも「取引が開始できるかどうかを取引所が判断するもの」です。似たような言葉なので誤認しないようにしなければいけません。
マルチシグ対応、と言っても、鍵を同じところに保管していたらダメです。家の鍵が3つないと開かないとしても、3つ同じところに保管していたら、意味がないのと同じです。
bitFlyerのデモ画面や(ビットコインでは対応しているという)コインチェックの取引画面を見ても、秘密鍵を個人が持つような操作がないのでこのような場合、マルチシグ=安全、というのはおかしいのかな、と現時点では思います。
ローカルウォレットという選択肢もある
取引所のサーバーのウォレットを使うのではなく、パソコンやスマートフォンにウォレットを作る方法もあります。その場合、秘密鍵の管理も自分に一任されますので、もちろんマルチシグに対応し、その秘密鍵を厳密に管理すれば、セキュリティが担保できます。
しかし、鍵を無くしてしまったり、端末が壊れたり、いろいろなリスクが絡みます。自分の家に金庫を持つようなものです。したがって、金融という意味では論外の方法です。
マルチシグまとめ
マルチシグ対応、だから安全、これはウソです。マルチシグをどのように運用しているかまで踏み込まないと、さっぱり安全対策にはなりません。
ご注意を。
コールドウォレット
さて、コールドウォレットです。これは、「インターネットとつながっていないウォレット」という意味です。で、じゃあパソコンやスマートフォンに秘密鍵を保管し、インターネットから切り離せばいいかというと、これはコールドウォレットとは言いません。あくまでもローカルウォレットです。
コールドウォレットの定義
コールドウォレットの種類としては、秘密鍵を紙に書き出す「ペーパーウォレット」、メモリなどの外部記憶装置に秘密鍵を保管し、これを管理する「ハードウェアウォレット」があります。どちらにしろオフラインなので、外部からの脅威はありません。
コールドウォレットにもリスクがある
ただし、これも、机の上に野ざらしにしたら、窃盗などのリスクがあります。コールドウォレット=安全、というのもまたおかしいです。現実において、現金を金庫に保管するのと同義ですね。
デメリット
コールドウォレットに全部入れておくと、入出金が非常にしにくくなります。一度、ホットウォレット(逆の意味、インターネットに繋がっているウォレット)に変換しなければいけません。そういう意味では、bitFlyerが8割をコールドウォレット化している、という意味がよくわかります。残りの2割はホットウォレットの中で流動資金にしているわけですね。10割がコールドウォレットということにすると、全く持って取引所業務ができないのです。
まとめ
したがって、コールドウォレットだから安全、というのも違うと言えます。流動しない資金はコールドウォレット化し、それを物理的に安全な場所に保管する。というのが合理的な方法です。
問われる仮想通貨の安全性
悪いのは仮想通貨ではないです。仮想通貨をどう管理するかの技術が圧倒的に不足している業者が、金融庁の許可を得ないままCMを大量に流し、お金を集めて流出させてしまったという状況です。
日本円だって、アメリカドルだって、路上に放置していたらあっという間になくなってしまいます。だから銀行や証券会社など、金融機関はがんじがらめで商売しているのです。この状況をきちんと考えて、仮想通貨を利用するかしないかを判断するようにしましょう。
私も今回の件は、仕組みをかなり勉強する機会になりました。
コインチェックの問題の本質はこれではない
今回の問題は、マルチセグやコールドウォレットが根本原因ではないと考えます。
詳しくはこちらの記事を参照ください。