本ページはプロモーションが含まれています
ビットコインでは送金をする際に「秘密鍵」という暗号技術で作られたキーを利用して送金情報に鍵をかけて受金者以外にビットコインを盗まれないようにしています。秘密鍵を利用して送金情報に鍵をかける事を「秘密鍵で電子署名する」と言います。
しかし、コンピューターサイエンスに馴染みの無い方にとって「電子署名」と言われてもあまりピンときません。ここではビットコインの秘密鍵による「電子署名」の仕組みを初心者の方にも分かりやすく、なるべく簡潔に解説をしていきます。
秘密鍵と公開鍵
ビットコインではビットコインを保有する際には必ず「秘密鍵」と「公開鍵」という暗号が必要になります。ビットコインの残高を示してくれたり、ビットコインウォレットサービスを利用する際に最も良く目にする文字列は「ビットコインアドレス」ですが「ビットコインアドレス」も「秘密鍵」と「公開鍵」から作成されます。
最初に「秘密鍵」が作成されてそこから「公開鍵」が作られ、最終的に「ビットコインアドレス」という形で利用者の目の前に現れるのです。「ビットコインアドレス」が作成されるまでの過程はこちらの記事ビットコインアドレスが作られる仕組み<初心者向け>で詳しく説明しておりますのでご参考にしていただければと思います。
ここでまず知っておいていただきたいのは「秘密鍵」は自分しか知らない暗号、「公開鍵」は皆に知らせる暗号、という事です。
スポンサー
電子署名とは
電子署名は紙の契約書にサインをするような役割を担います。紙の契約書にサインをする場合、サインの役割は「その人がサインをした事の証明」「他の契約書に代替できず、サインした契約書のみに有効」という特性を持ちます。
電子署名でもこの二つの役割が果たされることになります。
ビットコインの電子署名は最初に「秘密鍵」と「公開鍵」を作成されることにより始まります。秘密鍵と公開鍵は対になっているものでどちらか一つでも欠ければ電子署名は行う事ができません。
秘密鍵と公開鍵は対になっているのですが最初に作成されるのは「秘密鍵」です。秘密鍵はランダムな文字列を利用する事によって作成されます。ランダムな文字列から作られる為に秘密鍵を作った際に秘密鍵を推測する事は誰もできません。なので秘密鍵は盗取されない限り本人のみが知る事になります。
秘密鍵が作成できたら公開鍵が作成されます。
あるメッセージ(ビットコインなら取引データ)に秘密鍵を掛け合わせることで署名が行われます。誰も知らない秘密鍵を掛け合わせたのでこの「取引データ×秘密鍵」は本人のみがこの時点では知り得ますし、解読が可能です。ちなみにここでは「掛け合わせ」方によ「取引データ×秘密鍵」から「秘密鍵」のみを取り出す事はできません。
続いて「公開鍵」を皆に公開します。例としてAさんの公開鍵が公開鍵aだとします。Aさんは署名した「取引データ×秘密鍵」と「取引データ」単体をBさんに渡します。Bさんは渡された「取引データ×秘密鍵」と「取引データ」単体と公開されている「公開鍵a」をある演算の中に通します。
秘密鍵と公開鍵は対になっているので「取引データ×秘密鍵」が本当にAさんの署名した「取引データ×秘密鍵」かどうかが分かります。そのような演算を行うのです。これでAさんのみが署名をできて、かつ署名を他の取引データに利用できない、という電子署名が行われることになるのです。
ポイントは
・秘密鍵が本人しか知り得ない事
・公開鍵が秘密鍵と対になっている事
です。
この二つが満たされている時に電子署名が
・その人がサインした証明になる
・他の契約書に代替できず、サインした契約書のみに有効
になります。
まとめ
ウォレットサービスを利用していれば電子署名を実際に行う事はないですが、ビットコインを調べていると「電子署名」という言葉は頻繁に出てきます。ビットコインに問題が生じた時やさらに深くビットコインシステムを知りたいと思えば知っていて損はないと思います。調べると単純に面白いビットコインシステムについて色々と知っていただけると幸いです。
関連記事
スポンサー