ビットコインに代表される仮想通貨、みなさんはどのくらいその仕組みについて理解していますか?
はっきりいって、ビットコインを購入したり売却するだけなら、詳しい理屈を勉強する必要はないかもしれません。
しかし、安全にビットコインを所有するには最低限の知識が必要です。特に「秘密鍵」についてきちんと理解していないと、自分のビットコインなのに取り出せなくなってしまうなど、思わぬトラブルに見舞われかねません。
そこで、今回はビットコインに使われている技術について、これだけ覚えておけば大丈夫、というくらい簡潔に説明してみたいと思います。
ビットコインの技術について知識をつけたいけれど、何回聞いても良くわからない。そんな人は、まずはここに書いてある内容だけでも理解してみると良いでしょう。
目次
ビットコインの技術は大きく分けて2つある
ビットコインというのは、いくつかの技術が合わさってできています。そのうち、もっとも重要なものは2つあります。
ひとつは「ブロックチェーン」という技術。これにより、国家や中央銀行といった権威が存在しなくても、高い信頼性で取引を記録できるようになります。
そしてもうひとつの技術は「公開鍵暗号」というものです。これにより、なりすましや改ざんを防ぐことができます。
ビットコインがこれほどまでに注目されているのは、前者の「ブロックチェーン」という技術が極めて独創的なものだからです。この概念は、ナカモト・サトシという人物によって2009年にはじめて提唱されたものです。ちなみにナカモト・サトシが何者なのかについては、いまだによく分かっていません。
一方で、公開鍵暗号の技術自体は古くから知られています。インターネットにおけるセキュリティは、この公開鍵暗号の技術が用いられています。
さて、私たちがビットコインを使う際に理解しておかなければならないのはどちらの技術でしょうか?
ユーザーにとって重要なのは公開鍵暗号の方であり、ブロックチェーンについては実は開発者でない限りはそれほど重要ではありません。
ところがビットコインの花形はやはりブロックチェーンなので、ビットコインの解説というとブロックチェーンをメインに話されることが多いんですよね。
そしてその話のなかで急に公開鍵暗号の話題が出てくるものだから、どちらも知らない人はパニックになってしまうのです。
ブロックチェーンの話は聞いているだけでワクワクしますが、内容をきちんと理解するのは大変です。
一方で公開鍵暗号の話は比較的わかりやすく、なおかつ私たちがビットコインを使う際に直接的に関わることになります。
ということで、ここから先は公開鍵暗号の話だけに絞りたいと思います。
送金の際に必要な「秘密鍵」
公開鍵暗号の理屈について説明する前に、実際にビットコインを使う場面をイメージしてみましょう。
ビットコインというのは「ウォレット」という電子的な財布に入っています。ウォレットはビットコインを使う際に必要なある番号を管理しています。これをビットコインアドレスといいます。
ビットコインアドレスは銀行口座のようなものとイメージしておけばよいでしょう。ただし銀行口座と違い、ビットコインアドレスは専用のソフトを用いれば誰でも好きなだけ作成できます。もちろん作成にお金はかかりません。
ビットコインアドレスというのは公開されることを前提としており、誰でも見ることができます。ちょうど、振込用の銀行口座が公開されているのと同じような感じです。
さてビットコインのやり取りをするというのは、あるビットコインアドレスに入金されているビットコインをほかのビットコインアドレスに移す、ということを意味しています。
AさんがBさんにビットコインを送金したいとき、AさんはBさんのビットコインアドレスを送金先として指定します。これだけで、Aさんのアドレスに入っていたビットコインがBさんのアドレスに移動するのです。
ただ、これだとAさんでない人が勝手にAさんのビットコインアドレスを使えてしまいますよね?このことを防ぐために、Aさんのビットコインアドレスには秘密の英数字が用意されています。これを「秘密鍵」と呼びます。
全てのビットコインアドレスには秘密鍵が存在しており、この秘密鍵を知っている人のみが、そのビットコインアドレスから出金できるのです。
なぜ取引所は安全では無いのか?
ところで、ビットコインを取引所で購入した場合、秘密鍵に関する情報をもらえるでしょうか?
答えはノーです。
coincheckなどの取引所で購入したビットコインは、取引所が管理するウォレットに入っているものと思われますが、その情報について私たちユーザーはまったく知ることはできません。
そのため取引所が所有している秘密鍵がハッキングされたり、あるいは取引所自体が不正な取引をした場合、私たちのビットコインは簡単に盗まれてしまいます。
まさにこのことが起こったのが「マウントゴックス事件」です。当時、世界最大規模の取引所であったマウントゴックスですが、不正アクセスにより数百億円相当のビットコインが盗まれてしまいました。
このことから、取引所にビットコインを置くことは避けたほうが良いと言われています。
ウォレットの管理がとにかく重要
安全にビットコインを管理するには、自分だけのウォレットを作成しておき、そこに保管しておく必要があります。
ウォレットには様々な種類がありますが、もっとも手軽なのはスマホアプリでしょう。私は「bread wallet」というアプリを利用しています。
bread walletのレビュー記事 ⇒ ビットコインを取引所から自分のウォレットに送金する方法とは?
このアプリをインストールして立ち上げると、「復元フレーズ」というものが表示されます。この復元フレーズこそ、秘密鍵を作り出す世界で唯一の文字列です。
仮に自分のもっているスマホが壊れたり紛失してしまっても、復元フレーズを使えば別のスマホにもとのウォレットと同じものを作り出すことができます。
逆にこの復元フレーズを忘れてしまった場合、スマホをなくしてしまったら永遠にビットコインを取り戻すことはできません。どこかに連絡してパスワードをリセットしてもらう、ということはできないのです。
このことから、秘密鍵(もしくは復元フレーズ)は以下のことが重要です。
- 自分以外には決して知られてはいけない
- いざとなったら必ず取り出せるようにしなくてはならいない(紙に書く、など)
実はこの1と2は矛盾しています。自分以外には知られてはいけないとなると、頭で記憶しておくのが一番確実です。ところがひとたび秘密鍵を忘れてしまったら、それを復元することは世界中の誰にもできません。ですので、もっとも確実なのは紙に書いて保管しておくことだと言われています。ところが紙に書いたパスワードというのは、他人に見られるリスクが大きくなってしまいます。
ということで、今のところもっとも安全なのは秘密鍵の情報を紙に書いておき、その紙を金庫などに保管しておくことになるでしょう。
21世紀にもなって金庫というのもおかしな話ですが、そのくらい秘密鍵の保管方法というのは悩ましい問題なのです。
秘密鍵と電子証明
ビットコインと秘密鍵に関しては、このくらいのことを覚えておけばまずは十分です。
ただ、これでは少し物足りないという人のために、秘密鍵に関するもう少し詳しい説明をしましょう。
ビットコインにおいて、秘密鍵は「電子署名」という技術を実現するために使われています。さて、電子署名とはいったい何なのでしょうか?
このことを理解するために、まずは公開鍵暗号における秘密鍵、公開鍵、そしてビットコインアドレスの関係を整理しましょう。
下の図にあるように、秘密鍵を作成すると、それに対応する公開鍵が自動で作成されます。そして公開鍵からは、ビットコインアドレスが作成されます。
ここでポイントとなるのは、秘密鍵から公開鍵を作成するのは簡単な計算でできるのに対して、公開鍵から秘密鍵を計算で求めることは事実上不可能だという点です。このような
「不可逆性」が、公開鍵暗号では重要になります。
さて、AさんはBさんに1BTCを送金しようと考えました。そこでAさんは、この情報に秘密鍵をかけ合わせて、暗号文を作ります。この暗号文が、ビットコインのネットワークに送られます。
この暗号文からもとの情報を推測することは不可能です。ただし、世界で唯一もとの情報に復号することができる方法があります。それが、秘密鍵に対応する公開鍵を使う方法です。
公開鍵は、ビットコインのネットワークに参加している人に公開されています。つまり、元の情報への変換は誰でも可能ということです。ではAさんは、なぜわざわざ秘密鍵を使って暗号文を作るなどといったことをするのでしょうか?
実は、ここが電子署名のポイントなのです。Aさんの目的は、Bさんに1BTC送りたいという情報を暗号化することではありません。むしろ、この情報は全世界に正しく伝えたいのです。ですから、Aさんはこの情報を、暗号を使わずに直接伝達もしています。
従って、受信者はもとの元の情報と、暗号化された情報の二つの情報を手に入れることになります。このうち暗号化されたデータの方は、公開鍵により復元されます。
この復元データが、元データと完全に一致しているか確認します(厳密にはハッシュ値というものを比較します)。もしも一致していることが分かれば、この情報を送ったのはAさんであることが確認できます。なぜなら、この公開鍵で復元できる暗号を作成できるのは、公開鍵に対応した秘密鍵をもった人物に限られるからです。そして、この秘密鍵を持っているのは世界でたった一人、Aさんのみだからなのです。
このように、情報を送ったのがAさんであるということ、そしてその情報が送信途中で改ざんされていないということを証明することが、電子署名を利用する目的なのです。そしてAさんがAさんであることを証明する唯一の手段は、Aさんしか知り得ない秘密鍵と、それに対応する公開鍵を持っているということになります。
ですから、もしも秘密鍵が漏洩してしまった場合はAさんになりすまして不正な送金をすることが可能となってしまいます。秘密鍵を決して他人に知られてはいけないというのは、こういう理由があるからなのですね。
まとめ
ビットコインに関する仕組みについて駆け足で見てみましたが、いかがでしたでしょうか?
ビットコインを使うにあたっては、まずは秘密鍵(あるいはウォレットの復元フレーズ)がとにかく大事だということを理解しておけば十分です。これを忘れてしまった場合には二度と取り戻すことができませんから、しっかりと管理しておくことが重要です。
おそらくですが、ビットコインに関するトラブルで注意しなくてはならないのは、ハッキングなどによる盗難被害よりも、秘密鍵を忘れてしまったというユーザー側の問題の方が多いのではないかと思います。
なお、今回はブロックチェーンについての説明はしませんでした。しかし、ビットコインなどの仮想通貨を一から学ぶには、ブロックチェーンの理解もかかせません。
ということで、今回の記事を読んで仮想通貨の技術自体にも興味が出てきたら、是非ともブロックチェーンについても勉強してみることをおすすめします。
ビットコインの取引をしたくなったら ⇒ 【公式ページ】coincheck
仮想通貨の関連記事
・ビットコイン初心者が1万円を投資して気付いたポイントと注意点を徹底解説
・ビットコイン初心者が仮想通貨を10万円運用して気付いた投資のポイント
・ビットコインを取引所から自分のウォレットに送金する方法とは?