本ページはプロモーションが含まれています
前回の記事ビットコインの仕組みを分かりやすく解説 <概要を知る>ではビットコインの大枠を捉える事で仕組みの概要を理解しました。
ビットコインの仕組みを理解するためにここでは一旦プロトコルやマイニングの事は忘れて私達ユーザー目線から仕組みを一つずつ理解していきましょう。
まずは私達が最も良く目にするであろうビットコインの識別情報である「ビットコインアドレス」について理解を試みます。
ビットコインアドレスとは
ビットコインアドレスはその人の持つビットコインのありかを示す識別番号です。約30文字の文字列かQRコードで示されます。
(実際のビットコインアドレス)
文字列:14P9Afj87zqqzAst4ZyYFGBDEhKuEibMjn
QRコード:
ビットコインアドレスはビットコインを送金したり受金する時に利用されます。ビットコインアドレスを指定する事でビットコインを送金したり、相手に自身のビットコインアドレスに向けて送金してもらう事でビットコインをやり取りします。
取得方法
ビットコインアドレスは「ビットコインアドレス生成サービス」「ビットコインウォレットサービス」「ビットコイン取引所」で取得する事ができます。
最も簡易的に生成する事ができるのはbitaddress.orgというビットコインアドレス生成サービスです。利用方法はこちら⇒ビットコインウォレット紹介「bitaddress.org」
(bitaddress.org利用画面)
このようなビットコインアドレス生成サービスはオンラインで利用するものが多いですが、オンラインで利用するものはサービス自体がハッキングに合っている可能性があります。
このようなリスクを避ける為にサービスをダウンロードしてオフライン上でビットコインアドレスを作成する事も可能です。
ビットコインの送受金の方法はこちら初心者にもわかるビットコイン送金と受け取り<使い方>を参考にしていただければと思います。
ブロックチェーンにはビットコインアドレスが記載される
前回の記事でも触れましたが、ビットコインの帳簿である「ブロックチェーン」にはこのビットコインアドレスが記載されます。上記のようなビットコインアドレス生成サービスでは個人情報を入力せずにビットコインアドレスを取得する為ブロックチェーンに記載され全世界に公開されたビットコインアドレスは取得者の個人情報が紐づけられていません。
ブロックチェーンには「ビットコインアドレスA⇒ビットコインアドレスB・10BTC」という識別情報が載るだけなのでビットコインの送受金を安心して行う事ができます。
スポンサー
ビットコインアドレスの仕組み
ビットコインアドレスはどのようにして作成されているのかを解説していきます。
まず、ビットコインアドレスは「乱数」というランダムな文字列を生み出すところから始まります。ランダムな文字列を生み出す機器を「乱数生成器」と呼びます。
この乱数が「秘密鍵」と呼ばれるビットコインアドレスからビットコインを取り出す暗号になります。秘密鍵をランダムな文字列にする理由は「誰にも推測できない」という事があります。秘密鍵は一般的には64文字で構成されますが、必ずしもそうでなくても構いません。自分で決めた暗号をハッシュ関数というランダムに文字列を生成する方法もありますが、その方法だと自分で決めた暗号を推測された場合秘密鍵を悟られてしまうので推奨されていません。
乱数生成器が未熟であったり、作成者が復元できるようなものであると秘密鍵を盗まれる=ビットコインを盗まれる事になります。その為乱数生成器はビットコインセキュリティの最も重要な要素の一つです。
秘密鍵が作成されたら秘密鍵を「ECDSA」という楕円曲線のスカラー倍数を利用して公開鍵を作成します。
楕円曲線のスカラー倍数の仕組みを理解するのは困難で、あまり知る必要は無いと思います。簡単に言えば一方向性のある関数で秘密鍵をこの楕円曲線を利用して公開鍵を作成すると公開鍵から秘密鍵を推測する事が出来なくなります。
ちなみにECDSAはたまにビットコイン以外での仮想通貨に利用されるので覚えておくと後で便利かもしれません。
このようにして公開鍵が作成されたら公開鍵からビットコインアドレスを作成していきます。公開鍵にSHA256やRIPEMD160というハッシュ関数を用いる事で公開鍵を小さくします。SHA256とRIPEMD160という二つのハッシュ関数を用いるのでこの行程を「ダブルハッシュ」と呼んだりします。
SHA256はビットコインでもよく出てくるので覚えておくと良いでしょう。SHA256についてはこちらSHA-256とビットコイン<初心者向け>で解説をしております。
そしてその文字列を人間が見やすくするためにBase58というビットコインアドレスを生成するフォーマットを通す事でビットコインアドレスを作成していきます。
さらにBase58Checkに通す事で更にビットコインアドレスを人間に見やすいように変化させます。具体的にはビットコインアドレスでは1から始まるように設定されていたり(マルチシグネチャアドレスやSegwitアドレスは3から始まる)、小文字のLと1が間違いやすいので小文字のLが排除されていたりします。
<ビットコインアドレスに利用されるBase58のアルファベット>
123456789ABCDEFGHJKLMNPQRSTUVWXYzabcdefghijkmnopqrstuvwxyz
このようにしてビットコインアドレスは作成されます。
「ビットコインアドレス生成サービス」「ビットコインウォレットサービス」「ビットコイン取引所」で取得し、私達が目にするビットコインアドレスはこのような経路をたどっているのです。
まとめ
以上をまとめた全体図は以下のようになります。
ビットコインアドレスには公開鍵・秘密鍵が既に作成された状態で届きます。
どの行程においても脆弱なものを使用してしまうとビットコインのセキュリティは保つ事ができません。ビットコインはセキュリティを保つために暗号技術が用いられており、「暗号通貨」とも言われる所以はここにあるのです。
Next⇒ビットコインアドレスの仕組み <プレフィックスとチェックサム>
Back⇒ビットコインの仕組みを分かりやすく解説 <概要を知る>
関連記事
スポンサー