仮想通貨投資をしていると秘密鍵は他人に盗まれないように注意しましょう!とよく聞きますよね。
秘密鍵は取引所に預けている場合は秘密鍵を教えてくれないので特に意識することはないと思いますが、ペーパーウォレットを作ったりすると秘密鍵が表示されますよね。
たとえばこんな感じ
ビットコインペーパーウォレットの公開鍵と秘密鍵
今回はなぜ秘密鍵を他人に盗られてはいけないのか少し技術的なことを解説していきます。
まず、ビットコインの技術的に画期的な点として以下の3つを組み合わせたことによります。
今回はそのうちの一つ「公開鍵暗号方式」に焦点を当てて説明していこうと思います。
タップできる目次
暗号の基礎(暗号化と復号化)
最初に暗号で出てくる言葉のひとつ「暗号化」と「復号化」について説明していきます。
上の図で説明すると、お母さんにメモを渡されて「なす」と「すいか」を買って来てほしいと頼まれたとします。
でも、買ってくるものを人に見られると困るので「字の間に『れ』を入れる」というプロトコルを使って他人に読まれにくくします。
そうすると、
なす ⇒ なれす
すいか ⇒ すれいれか
になりますよね。
これを「暗号化」といいます。
逆に、
なれす ⇒ なす
すれいれか ⇒ すいか
のように暗号文を普通の文に戻すことを「復号化」といいます。
共通鍵暗号方式と公開鍵暗号方式、デジタル署名について
なぜ仮想通貨(ビットコイン)の秘密鍵を盗まれてはいけないかを理解するには「デジタル署名」を理解しないといけません。
でも、その前に前提として大事な共通鍵暗号方式と公開鍵暗号方式についてもみていきましょう。
共通鍵暗号方式
共通鍵暗号方式の仕組み
上の図はサンタさんが子供に今年のプレゼントの内容を暗号化して送っている例です。
サンタさんが子供に内緒で今年のプレゼントの内容を教えてるんですね。
この例を使って、「共通鍵暗号方式」の手順を見て行きましょう。
サンタさんは子供に送る文章「つみき」をまず用意します。
サンタさんは「字の間に『れ』を入れる」という鍵を使って暗号化します。
「つみき」という文章の間に『れ』をいれることで暗号文「つれみれき」が完成します。
子供に暗号文「つれみれき」を送ります。
子供は「字の間に『れ』を入れる」という鍵を使って復号化します。
「つれみれき」から字の間に入っている『れ』をとって、普通の文「つみき」が完成します。
これで子供は次のクリスマスにもらえるプレンドは「つみき」ということがわかりました。
しかし、ここで一つ問題があります。
この方法で暗号文を送ってやり取りをする場合、サンタさんと子供が「字の間に『れ』をいれる」という共通の鍵を使っています。(共通の鍵を使って、暗号化・復号化がされているので共通鍵方式といいます。)
サンタさんが暗号文をつくるときに使った「字の間に『れ』をいれる」という鍵をを子供に事前に教えておく必要がありますが、どうやって子供に教えればいいのでしょうか?
これが鍵配送問題といわれるやつです。
暗号文を送るためには鍵を使って他人にわからないように送る必要があるが、その鍵をどうやって相手にこっそり送るのか?どうどうめぐりになってしまいます。
それを解決したのが次に紹介する公開鍵暗号方式です。
公開鍵暗号方式
公開鍵暗号方式では先程の「鍵配送問題」を解決するために、鍵を配送しなくてもいい方法として作られました。
ここでは「公開鍵」と「秘密鍵」という二つの鍵を使います。
上の図にあるように「公開鍵」は暗号文を作る鍵で、いわば秘密のメッセージが入った箱に鍵をかけるためのものです。
一方「秘密鍵」は復号化をを行うための鍵で、秘密のメッセージの入った箱を開けるためのものです。
「公開鍵」と「秘密鍵」になっていて、秘密鍵から公開鍵を作るのは簡単ですがその逆はほとんど不可能になっています。(秘密鍵が大事ですので、公開鍵から秘密鍵を作れたんじゃセキュリティもなにもないですもんね。)
公開鍵暗号方式の仕組み
今回もサンタさんが今年のクリスマスプレゼントの内容を暗号化して子供に教えるのを使って説明していきます。
サンタさんは子供に送る文章「つみき」をまず用意します。
あかちゃんの公開鍵を使って暗号化します。
あかちゃんの公開鍵を使うことで暗号文「A!#%2E#」が完成します。
子供に暗号文「A!#%2E#」を送ります。
赤ちゃんは自分の秘密鍵を使って復号化します。
「A!#%2E#」を復号化することで普通の文「つみき」が完成します。
これで子供は次のクリスマスにもらえるプレンドは「つみき」ということがわかりました。
しかし、ここでも問題が一つあります。
サンタさんは子供の公開鍵を使って暗号文を送ってくれましたが、公開鍵はその字のとおり公開されているものなので子供としてはホントにサンタさんが送ってくれたのか、もらえるものが「つみき」なのか確かめる方法がありません。
そこで、次に出てくるのがデジタル署名という方法です。
デジタル署名
デジタル署名の場合は秘密鍵と公開鍵の役割が公開鍵暗号方式のときと逆になるので注意してください。
デジタル署名の場合は、秘密鍵で暗号文を作って、公開鍵で復号化します。(公開鍵暗号方式の場合は、公開鍵で暗号化して、秘密鍵で復号化しましたよね。)
今回もサンタさんと子供で説明していきます。
デジタル署名の仕組み
サンタさんは子供に送る文章「つみき」をまず用意します。
サンタさんは自分の秘密鍵を使って暗号化します。
自分(サンタさん)の秘密鍵を使うことで暗号文「A!#%2E#」が完成します。
子供に暗号文「A!#%2E#」と普通の文「つみき」を送ります。
赤ちゃんはサンタさんの公開鍵を使って復号化します。
「A!#%2E#」を復号化することで普通の文「つみき」が完成します。
そしてサンタさんから暗号文と一緒に送られてきた普通の文「つみき」と復号化した文章内容が一致しているので子供は次のクリスマスには「サンタさん」から「つみき」をもらえることがわかりました。(改ざん防止となりすまし防止)
デジタル署名ではサンタさんしか持っていない、サンタさんの秘密鍵を使って暗号化を行っているので暗号文を作ったのはサンタさんであることが確認できます(なりすまし防止)。
また、サンタさんの暗号文と一緒に来た普通の文を照らし合わせることにより文章の内容が書きかえられていないことも確認できました(改ざん防止)。
仮想通貨(ビットコイン)の秘密鍵をなぜ盗まれてはいけないのか?
ビットコインの場合、送金する相手はビットコインアドレスで特定をします。
このビットコインアドレスというのは1NK8S4ep9UZpm3ACPAfvrCVsVAKLbolmdのような数字の羅列でありこのビットコインアドレスは秘密鍵から生成されます。
このビットコインアドレスの秘密鍵を持つ人だけがそのアドレスにあるビットコインを送金することができます。
上のデジタル署名のところでも説明したように、送信する場合には自分の秘密鍵が必要になるからです。
ですので、秘密鍵はそのアドレスの所有権を証明するものになります。
もしも秘密鍵を盗まれればそれを使って他人のアドレスに勝手に送金することが可能になってしまいます。
仮想通貨はいろいろなリスクがありますがすべて自己責任ですので注意して投資をしていきたいですね。
秘密鍵を管理する方法
秘密鍵を管理する方法には2種類あります。
取引所に秘密鍵を預ける方法と自分でウォレットを用い秘密鍵を管理する方法です。
取引所に秘密鍵を預ける方法というのは取引所に仮想通貨を置いている状態のことです。
この方法は秘密鍵を自分で管理する必要がなく、送金間違えした場合も取引所が対応してくれるので楽ですが、取引所が秘密鍵を一元管理しているためハッキングリスクは高くなります。
一方自分でウォレットを使って秘密鍵を管理する方法はハッキングリスクは少なくなりますが、送金間違えなどしてセルフGOXしてしまった場合仮想通貨がなくなってしまう危険性もあります。
どちらも長所と短所があって一概に言えないですが、仮想通貨はやはり自分で保管したほうが無難だと思います。
では、取引所に預けたいと思う人もいると思うのでセキュリティの高そうな取引所を二つ紹介します。
仮想通貨取引所
ビットバンク
仮想通貨取引所「ビットバンク」が、「ICORating」の取引所セキュリティレポートにおいて国内No.1の評価を受けました。
▼ 取引量&セキュリティが国内No.1の仮想通貨取引所「ビットバンク」に今すぐ無料登録!https://t.co/4nOb6KfrkN pic.twitter.com/gyxIdgjp4N
— ビットバンク bitbank, Inc. (@bitbank_inc) October 10, 2018
ICORatingにおいてセキュリティの高さNO.1の評価を受けておりおすすめできます。
また、リップルを安く買える点もおすすめの理由です。
bitbank(ビットバンク)をおすすめする5つの理由と口座開設・新規登録方法・評判を徹底解説
Liquid by Quoine
ホームページにはお「お客様の仮想通貨を100%コールドウォレットで管理する日本で唯一の取引所」とあり、本当ならセキュリティはかなり高いと言えます。
QUOINEX(コインエクスチェンジ)を登録する方法とメリット|ハイレバレッジが評判
ウォレット
ペーパーウォレット
作成するのは無料で簡単にできます。
セキュリティ的にはほぼ最強ですが、紙のウォレットなので紙をなくしたり劣化したりするリスクがあります。
ビットコインのペーパーウォレットの”超簡単”な作り方や使い方を解説
ハードウェアウォレット
価格が1万円ぐらいするので少し高いですが、仮想通貨をやっている人の多くはおそらくハードウェアウォレットで管理していると思います。
購入をおすすめしたい仮想通貨のハードウェアウォレットの種類をランキング形式で紹介
モバイルウォレット
仮想通貨で決済もしたい人には一番おすすめです。
スマホのアプリを入れればすぐに利用できますが、スマホを無くした時の対策はしておきましょう。
「Ginco(ギンコ)」の特徴や使い方を紹介|Airdropがもらえるモバイルウォレットアプリ
デスクトップウォレット
ネムを持っている人はデスクトップウォレットのnanowalletがオススメです。
nanowalletでハーベストというのをすれば少しだけですがノーリスクでネムを手に入れることができるのでいいですよ。