基礎知識

「電子署名」と「公開鍵暗号」から観るビットコインの安全性

「電子署名」と「公開鍵暗号」という観点から、改めてビットコインの送金の仕組みを知りましょう。知ってるふりでなく理解を深めたいという方にお薦めです。

ビットコインの送金が安全な理由

安全にビットコインの送金ができるのは、2つの技術が採用されているからです。

1.電子署名
2.公開鍵暗合

ビットコインの電子署名

ビットコインの送金における「電子署名」とは、送金側のユーザーが行うビットコインの正しい持ち主であることの証明です。
この作業のおかげで、ビットコインを持ち主以外の誰かが送金できないようになっています。

もう少し噛み砕いて説明します。

一般的な電子署名とは

用語 説明
署名 本人であることを明らかにするために記すこと
電子署名 データに対して行う「署名」

電子署名とはデータに対しておこなう署名のことです。
更にわかりやすく言うと、「そのデータは私のデータですよ」と記すことです。

「署名」とは、本人であることを記す行為です。
実際の生活で行う代表的な署名を挙げるとイメージしやすくなります。

・クレジットカードの支払いの際の署名(サイン)
・宅配を受け取る際の署名(サイン)
・公的文章には印鑑を使って捺印をする

以上のように、署名・サイン・捺印とも「これは私です!」と本人説明をするものです。

【例】ビットコイン送金の際の電子署名方法

ビットコイン送金の際に、どのような手順で電子署名が行われているかを解説します。

ビットコインの電子署名とは、送金データを自分の秘密鍵※を使い暗号化することです。
※秘密鍵の説明は次の項目でします

1)ユーザーは、手元にあるビットコインから送金をおこなう時に送金データを作ります。

2)その送金データを秘密鍵を使い暗号化します。

3)電子署名は完了し、ビットコインの正しい持ち主から送金が行われることが確認できるようになります。

 

次に、なぜ電子署名をすることで、送金データの偽造ができなくなるのかを解説します。

データの内容を守る「公開鍵暗合」とは

 

ビットコインにおける「公開鍵暗号」とは、ペアの鍵を用いて送金データを暗号化することで、内容が改ざんされないようにする技術です。
前述のように、ビットコインの電子署名にも用いられている技術です。

事前に用語を説明します。

用語 説明
暗号化 データを一定の規則によって加工すること
復号 暗号化されたデータを元にもどすこと
ハッシュ化 データを復元できない他の値に変換すること
秘密鍵 データを暗号化する際に利用する値。一般的に所有者しか知り得ないように管理する。
公開鍵 秘密鍵によって暗号化されたデータを復号する値。秘密鍵を元にして作られ、所有者以外の者が公開鍵を知っても問題はない。
ビットコインアドレス ビットコインの送金先となる値で、公開鍵を元に作られる。
電子署名 秘密鍵によって暗号化すること。

ビットコインは、電子署名の方法に「公開鍵暗合」を採用することで、
送金データが偽造されないようにしています。

①ビットコインの送金データはハッシュ化されます。
 送金データに記載されている内容自体が改ざんされることはありません。

②ハッシュ化された送金データは、送り主の秘密鍵によって暗号化されます。

③以下の3点が相手のビットコインアドレス宛に送信されます。

1.送金データ(未ハッシュ未暗号)
2.暗号化された送金データハッシュ
3.送り主の公開鍵

④送信されたビットコインの送金データは、ブロックチェーン上のマイナー達によって、
正しい署名か確認されます。

⑤問題がなければ、送金データはブロックに追加され、
そのブロックが順次ブロックチェーンに追加されると、送金が完了します。

 

※秘密鍵を紛失してまうと電子署名ができなくなってしまいます。
そうなると、そのビットコインは二度と送金できなくなってしまいます。
つまり、秘密鍵の保管は、ビットコインにおいて最重要なことなのです。

【例】ビットコイン送金時の電子署名の流れ

【状況】AからBにビットコインを1BTC分送金したい

1)Aは、既に自分のビットコインアドレス宛に送られていた1BTC分の送金データを持っています。

2)AはBのビットコインアドレス宛に「AからBに1BTCを送る」といった内容の
新たな送金データを作ります

3)新たに作成したB宛の送金データに、Aが自分の秘密鍵を使い暗号化します
(電子署名)

4)その後ビットコインのシステムにより署名が正しいか検証されます。

5)検証の結果問題なくAの署名だと証明がされると、その送金データは順次ブロックチェーンに追加されます。

6)その後順次ブロックが追加される約10分〜60分がたつと、Bはその受け取った1BTCのUTXOを次のアドレスに向けて送金ができるようになります。

「電子署名」と「公開鍵暗号」まとめ

ビットコインの送金データは、電子署名と公開鍵暗暗号によって不正がされないように守られています。

ビットコインにおける「公開鍵暗号」とは、
ペアの鍵を用いて送金データを暗号化することで、内容が改ざんされてしまわないようにする技術です。

ビットコインにおける「電子署名」とは、送金側のユーザーが行うビットコインの正しい持ち主であることの証明です。

このことを理解し、ビットコインを使いこなせる生活を送りましょう。