- 「ビットコイン送金するってどういうこと?」と疑問に思う方。
- 「PCが壊れちゃったら買ったビットコインもなくなっちゃうの?」と心配に思う方。
ビットコインってニュースとかでよく見るけど、実際に詳しく説明している番組ってあまりないんですよね。
日経新聞の記者ですらトンチンカンなことを書いていたりするので、まだまだ技術的に浸透していないのかなと感じています。
この記事では、ビットコインをはじめとする仮想通貨の、基本的な原理について紹介します。
専門用語を知らなくてもイメージが湧くように書きましたので、「今さらだけどビットコインについて知りたい」というかたは是非読んでみてください。
ビットコインはPCの中にはない
ビットコインを扱ったことがない人によくある勘違いですが、ビットコインって個人のPCの中にデータがあるわけじゃないんですよ。
個人のPCの中にはビットコインに関する情報はありません。
え? じゃあビットコインってどこにあるの?
って思いますよね?
「ビットコインを持っている」という状態をざっくり説明すると、残高のある口座のパスワードを知っている状態というようなイメージです。
これだけだと何言っているかわからないと思うので、順を追って説明していきますね。
なお、説明の中で「アドレス」とか「秘密鍵」という言葉が出てきますが、これは先ほどの説明の
- アドレス=口座番号
- 秘密鍵=口座のパスワード
と読み替えてもらえればOKです。
口座の作り方
自分の口座をどうやって作るかというと、まずは口座のパスワードを作って、そのパスワードから口座番号を計算して作ります。
最初の口座のパスワードは、乱数で作った適当な英数字です。
これはビットコインの口座を作るアプリが勝手に作ってくれます。
え? 適当で大丈夫なの? 他の人の口座のパスワードと被らない?
と思うかもしれませんが大丈夫です。
ビットコインのパスワードは2の256乗通りあります。
10の累乗にすると77乗くらいです。
これがどれくらいの確率で被るかというと、地球と同じ大きさのボールに砂粒をいっぱい詰めて、適当に手を突っ込んで一粒取り出すのを繰り返した時に、3回連続で同じ粒を取り出す確率と同じくらいです。
要するにパスワードはまず被らないということです。
まず被らない英数字なので、口座を作った人がパスワード(秘密鍵)を忘れたら、その口座の残高は永久に取り出せなくなります。
砂粒を3回連続で引く激運があるなら話は別ですが。
なので、これからビットコインを買おうかと考えている方は、これだけは絶対に覚えておいてください。
秘密鍵は絶対に忘れるな!
パスワードを作ったら、口座番号を計算して求めます。
求め方はここでは説明しませんが、すごく複雑な暗号の計算をしていると思ってもらえればOKです。
どうやって求めるかを詳しく知りたい方は、「ビットコイン アドレス 作成」とかで検索してみてください。
ブロックチェーンは送金台帳のようなもの
ビットコインの正体は、ブロックチェーンに記録された送金記録そのものです。
ブロックチェーンについては今回は詳しく説明しませんが、ひとまず送金記録がたくさんならんでいるものと思ってもらえれば大丈夫です。
たとえば、
- Aさんの口座(アドレス)から、Bさんの口座(アドレス)に、1ビット送金。
- Bさんの口座(アドレス)から、Cさんの口座(アドレス)に、2.5ビット送金。
- Aさんの口座(アドレス)から、Dさんの口座(アドレス)に、3ビット送金。
というような感じでズラーっと送金の記録がブロックチェーンに並んでいます。
なので、「自分の口座の入金金額 − 自分の口座の送金金額」が自分の持っているビットコインになります。
ビットコインを1ビット分誰かに送りたいときは、「自分のアドレスから〇〇さんのアドレスに1ビット送るよ」というデータをブロックチェーンに送ります。
これがブロックチェーンに記録されれば送金完了。
自分のアドレスの残高から1ビットが引かれ、〇〇さんのアドレスの残高が1ビット増えます。
簡単ですね。
え? この方法だと知らない人が勝手に送金できちゃうんじゃない?
と思うかもしれませんが問題ありません。
口座の残高を送金できるのは、口座のパスワード(秘密鍵)を知っている人だけなんです。
これを実現するのがデジタル署名という技術です。
デジタル署名とは
デジタル署名というのは、ある情報を作成したのが秘密鍵の所有者であることを証明するのに使われます。
ある情報のメッセージダイジェストを秘密鍵で暗号化し、その秘密鍵とペアになる公開鍵で復号化してもとの情報のメッセージダイジェストと比較することで、データの改ざんがないことと暗号化したのが秘密鍵の所有者であることが証明できます。
って言われても伝わらないと思うので、もっと簡単なイメージにしてみましょう。
秘密鍵は、南京錠の錠前ようなものをイメージしてください。
秘密というだけあって、誰にも見せないものです。
公開鍵は、錠前を開けるための鍵のようなもので、公開という通りインターネット上にばらまいておきます。
たとえば、AさんがBさんに2ビット分のビットコインを送りたいとしましょう。
Aさんはまず、「Aのアドレスから、Bのアドレスに、2ビット送金」というデータを作ります。
この作ったデータを箱に入れて、錠前で鍵をかけます。
この鍵のかかった箱をブロックチェーンに送るのです。
送られた箱は、Aさんがばらまいた鍵でのみ開けることができます。
なので、この箱に入っている「Aのアドレスから、Bのアドレスに、2ビット送金」というデータはAさんが送ったものに間違いないと言えるのです。
もしBさんがイタズラで「Aのアドレスから、Bのアドレスに、2ビット送金」というデータを箱にいれて錠前をしてブロックチェーンにおくったとしても、Aさんのばらまいた鍵ではBさんの錠前は開きませんよね?
これがデジタル署名の仕組みです。
逆にいうと、Aさんの錠前をゲットできればAさんの残高を好き勝手に送れるということです。
これはキャッシュカードの暗証番号がバレるのと同じですね。
なので、秘密鍵は絶対に人に見られてはいけません!
参考書籍
いかがでしたでしょうか?
ビットコインの仕組みが感覚的につかめたなら幸いです。
わたしはITエンジニアなのでデジタル署名については元から理解していましたが、ブロックチェーンや送金の仕組みについては以下の本で学びました。
2年前の本なので最新の仮想通貨情勢とは異なる点もありますが、ブロックチェーンの基礎理論自体は変わっていないので今でも参考になる本です。
もっと詳しく知りたい方は是非読んでみてください。