公開鍵と秘密鍵

f:id:takuan_poripori:20171207233651p:plain

「暗号」と聞くと、何を思い浮かべるでしょうか。
なんだかワクワクしてくるのは私がまだ少年の心を忘れていないからでしょうか。

暗号というものは、不特定多数の第三者に解読が出来ないようにして、特定の相手に対して情報を伝えるために用いられます。

そして暗号には、必ずそれを解読するために必要な「鍵」が用意されているものです。

例えば

「今た度の日た曜、恵た比寿たガーたデンたプレイたス時計た広場、1た時。たぬき」

という暗号があったとします。

そうなると、暗号の解読に必要な鍵は「たぬき」ということになります。

ビットコインを支えるブロックチェーンという仕組みにも、暗号技術が用いられています。

ブロックチェーンと暗号技術

ビットコインにおいて用いられるブロックチェーンとは、取引記録をブロックにまとめて、そのブロックをまるで鎖(チェーン)のように繋いで、改ざんされないように管理する仕組みとなっています。

ブロックチェーンに追加された取引記録は、全てのノード(ネットワークの参加者)に共有されます。
これにより、全てのノードが全ての取引記録を確認することができるのです。

しかし、例えば私が彼女に内緒で浮気相手に毎月送金を行なっているとします。
浮気がバレたくない私としては、取引記録が全世界に公開されてしまうのは非常に困りますよね。

そこでブロックチェーンでは、誰が誰にいくら送金したという取引記録が暗号化される仕組みが取られています。

ちなみに平文を暗号文にすることを「暗号化」といい、暗号文を平文にすることを「復号化」といいます。

ブロックチェーンにおいて、暗号化と復号化に用いられるものが「公開鍵」秘密鍵なのです。

公開鍵と秘密鍵とは

ウェブサイトを見ている際に、アドレスバーのところに鍵マークがあるのを見たことはありませんか?

大手企業のホームページや、ショッピングサイトなどの個人情報の入力を求められるサイトで主に見る機会があるかと思います。

そういった鍵付きのサイトはホームページのアドレスのプロトコルhttpsとなっています。これは「Hyper Text Transfer Protocol Secure」の略で、「Secure」には「厳重な」や「安全な」という意味があります。

つまりアドレスバーのところに鍵マークがついているサイトは第三者によって情報を特定されることがないようになっているということです。

これと同じ仕組みが、ブロックチェーンに用いられているのです。

それが「公開鍵」と「秘密鍵」になります。
このふたつはペアで用いられるもので、公開鍵が暗号を作るための鍵、秘密鍵が暗号を解くための鍵となります。

公開鍵で暗号化された文章は、対になる秘密鍵でしか復号化できないようになっているのです。

ちなみに鍵という呼び方をしていますが、実際に物理的な鍵の形をしているわけではありません。 規則性のないただの英数字の文字列です。
ハッシュ関数というものを使って、複雑化されているのです。
冒頭で例として出した暗号における「たぬき」が非常に複雑になったもの、というイメージです。

公開鍵は秘密鍵を元に作られますが、公開鍵から秘密鍵を知ることはできないようになっています。
つまり、秘密鍵は決して人に教えてはいけないものとなるのです。

取引を暗号化すべし

ブロックチェーンに記録される取引は公開鍵と秘密鍵によって、
取引をおこなう当事者でなければ取引が行われたアドレスを判別できないようになっています。
流れとしては、

  1. 送信側が受信側の公開している公開鍵を取得する
  2. 取得した公開鍵で、データを暗号化して送信する
  3. 受信側は受け取ったデータを、秘密鍵を用いて復号化する

となっています。

この公開鍵と秘密鍵によって、
ブロックチェーンは全ての取引を公開するという透明性がありながら、
高い匿名性もあるという相反する性質を併せ持っているのです。


今回は、ブロックチェーンにおいて、
個人情報を保護するための仕組みとなっている公開鍵と秘密鍵について書いてみました。

分かりづらかったかもしれませんがご容赦ください。
次に書く内容は未定です。あしからず。
では、また。