技術・仕組み

ビットコインの「暗号技術」秘密鍵と公開鍵~なぜ改ざんできないか~

ビットコインの「堅牢性」「確かさ」を保証している技術は「ブロックチェーン」

そして、もう1つは、ここで紹介する「暗号技術」です。

暗号技術では、

  • 本人だけが知っている「秘密鍵」
  • 参加者みんなが知っている「公開鍵」
  • 暗号化の「一方向性」

このあたりの性質を知っておくことがポイントになります。

いけやん
いけやん
詳しい中身を突っ込みだすと、難しくてキリがないところです!

ポイントを絞って、分かりやすく解説します。

ほどほどに理解していきましょう!

ビットコインの「暗号技術でできること」

具体的な場面で、

所持コイン10BTCの「Aさん」から「Bさん」に3BTCの送金

した時を考えてみます。

この場合、台帳の上では

  • Aさん:「10BTC持っている」

から

  • Aさん:「7BTC持っている」
  • Bさん:「3BTC持っている」

という状態に、ブロックチェーン上でデータベースを書き換えることになります。

この時、暗号技術によって、

  • この処理をできるのは、Aさんだけである。
  • そして、処理実行後は、Aさんもその記録を書き換える(改ざんする)ことはできない。

という2点が「暗号技術」で実現していることの”ミソ”になります。

読者さん
読者さん
これができてしまったら、お金として成り立たないな
いけやん
いけやん
このあたりを理解しましょう!

仮想通貨・ビットコインで使われている「暗号技術のポイント」5つ

以下、仮想通貨・ビットコインで使われている「暗号技術のポイント」について。

「5つのポイント」に絞って、順番に解説していきます。

ビットコイン仮想通貨の「暗号技術のポイント5つ」
  1. アドレス
  2. 「公開鍵」と「秘密鍵」
  3. 「アドレス」と「鍵」の関係
  4. 暗号化する時の「一方向性」
  5. 送金を実行するときの「署名」

暗号技術のポイント【1】アドレス

ビットコインの「アドレス」
  • ビットコインの「アドレス」とは、ビットコインを使うための「口座番号」のようなもの。
  • 「1または3」から始まる「27~34文字の英数字」。

ビットコインの「アドレス」とは、ビットコインを使うための「口座番号」のようなもの。

中身は「1または3」から始まる「27~34文字の英数字」であり、「QRコード」として見ることもあります。

アドレスは、

  • こちらから別口座へ送付するときや、
  • 逆に自分に送付してもらう場面

で目にします。

暗号技術のポイント【2】「公開鍵」と「秘密鍵」

  • 「公開鍵」「秘密鍵」は、ペアになって使われる。
  • 「公開鍵」は、ブロックチェーン参加者みんなが知っている。
  • 「秘密鍵」は、コインの所有者しか知らない。

アドレスは私たちがよく目にするのに対し、実際には「鍵」という別の姿で処理されています。

鍵には「公開鍵」「秘密鍵」の2種類があります。

アドレス・公開鍵がみんなが知っている「口座番号」であるもの。

これに対し、秘密鍵はコインの所有者しか知らないもので「暗証番号」に相当します。

いけやん
いけやん
「秘密鍵」は本人しか知らないもの!

自分のアドレスのコインを他のアドレスに移動する(送金する)ためには、秘密鍵が必要となります(=コインは所有者本人しか移動できない)。

いけやん
いけやん
だから「コイン送金」をできるのは本人だけ!

暗号技術のポイント【3】「アドレス」と「鍵」の関係

「①秘密鍵」を暗号化することで、「②公開鍵」が作られる。

「②公開鍵」を暗号化することで、送付先の「③アドレス」が作られる。

「①秘密鍵⇒②公開鍵⇒③アドレス」の順番で暗号化して、作られていきます。

ちなみに、暗号化する際は「ハッシュ関数」という関数にかけてやることで変換されます。「秘密鍵を2回ハッシュ化したものがアドレスである」とも言えます。

暗号技術のポイント【4】暗号化する時の「一方向性」

  • 暗号化には順番がある(一方通行)。逆方向はムリ
  • 「①秘密鍵⇒②公開鍵」や「②公開鍵⇒③アドレス」を生成するのは、簡単。
  • 「②公開鍵⇒①秘密鍵」「③アドレス⇒②公開鍵」を作るのは、不可能。

秘密鍵(暗証番号)が知られると、アウト!

なので、

公開されている「②公開鍵」や「③アドレス」⇒「①秘密鍵」

の方向で推測できることは、あってはならないこと。

暗号技術の【3】【4】の特ちょうより、

「3つのデータには作る順番があり、大元の「①秘密鍵」は自分しか知りえない」

というのがミソですね。

いけやん
いけやん
この逆方向がムリ、というのは暗号学的には「かけ算を計算するのは簡単でも、素因数分解するのは難しい」という原理を使っているらしいです。
読者さん
読者さん
なんのこっちゃ?
素因数分解とは、「6」を「2×3」に分解すること。6なら簡単でも、数字が大きくなると、一気に難しくなります。例えば、「7×11×17×47」のかけ算は簡単でも、「26367」を「7×11×17×47」に分解するのはとても難しい(逆方向はムリ=一方向性)。

まぁ、ややこしい数字の性質によって、暗号技術が「安全」になってるんだなーーぐらいの理解でOKです!

暗号技術のポイント【5】送金実行時の「署名」

  • 送金時、「公開鍵」をネットワーク上に公開し、この時、コインの所有者は「署名」する。
  • 「署名」は、秘密鍵を持った者しか実行できず、時間とともに記録される(タイムスタンプ)

【まとめ】仮想通貨・ビットコインに使われている「暗号技術」

ここまで見てきた【1】〜【5】によって、「公開鍵+署名」がセットになった取引は、

  • 「たしかに所有者本人が実行したこと」
  • 「署名後、取引の中身が改ざんされていない」

この2点が証明されます。

これが1つの取引記録(トランザクション)となって、ブロックチェーンの中に組み込まれていく、ということですね。