見出し画像

ブロックチェーンの基礎(5回目) 公開鍵暗号方式 前編

こんにちは。

このブログでは、ブロックチェーン関連を中心としたテック系の情報の紹介をしております。

今回はブロックチェーンの基礎5回目ということで。

ブロックチェーンを支える技術の一つ、「公開鍵暗号方式」についてお話ししようと思います。

長くなりそうなので汗

前半と後半に分けてお話ししてゆきます。

ブロックチェーンの中身は取引情報

以前(こちら)にもお話しした通り、ブロックチェーンの各ブロックの中には特定の期間内の取引データが蓄積されています。

ブロックチェーンは後から不正な取引情報に改ざんされないよう、改ざんが難しい構造を持っています(詳しくはこちら)。

記録済みのブロックの情報を守るだけではなく、ブロックに記録する取引情報自体に不正な情報が含まれない様にする工夫が必要になります。

そこに使われている技術が公開鍵暗号化方式です。

公開鍵暗号化方式

ひとつひとつの取引情報の内容は、例えば「2019年10月17日 21:00、AさんからBさんへ0.50BTC(ビットコイン)送付されました」となっています。

ここで重要なのは、本当にAさんからBさんに0.50BTC送付されたのか、という点です。

例えば悪意を持ったCさんが、「AさんからCさんに0.50BTC送付された」という嘘の取引記録をブロックチェーンに記録させて、不正にビットコインを得ようと考えます。

それを防ぐためには「その取引がAさん自信が保証したものである」と証明できなければいけません。

ブロックチェーンでは、公開鍵暗号化方式を使って、その取引が正しいものであるという証明を行い、ブロックに記録していくようになっています。

公開鍵と秘密鍵

公開鍵暗号化方式では公開鍵秘密鍵という2つのペアの鍵を使ってデータのやり取りを行います。

公開鍵はデータをやり取りしたい相手に公開する鍵で、秘密鍵は自分だけが持っている鍵です。

公開鍵で鍵をかけたデータは秘密鍵で鍵を解除できます。

また、秘密鍵で鍵をかけたデータは公開鍵で鍵を解除できます。

この特徴を利用して、以下の様にデータのやり取りを行っています。

上記は公開鍵を持つユーザーからデータを受け取る際のデータの暗号化・復号化(鍵の解除)の流れです。

公開鍵を持つユーザーからデータを受け取る場合、まず公開鍵を持つユーザーは公開鍵を使ってデータに鍵をかけます。

そして鍵をかけたデータを秘密鍵を持つユーザーに送信します。

秘密鍵を持つユーザーは秘密鍵を使ってデータの鍵を解除し、データを参照することが可能です。

公開鍵で鍵をかけたデータは秘密鍵でしか解除ができないので、他のユーザーに万一データが渡ってしまっても、中身を見られることなく、安全にデータを送信することができます。

今度は秘密鍵を持つユーザーから一般公開鍵を持つユーザーでデータを送信する場合です。

秘密鍵を持つユーザーはデータに秘密鍵で鍵をかけて、公開鍵を持つユーザーに送信します。

公開鍵を持つユーザーは、公開鍵を使って鍵を解除し、データの中身を得ることができます。

ですが、公開鍵は一般に公開されているものなので、誰でも中身が見れてしまうことになります。

ここで重要なのは、「秘密鍵を持ったユーザーから公開された公開鍵だけで鍵を解除できる」ことです。

例えば秘密鍵を持つのがAさんとすると、Aさんから公開された公開鍵で解除できるということは、このデータはAさんから送付されたデータである、ということを証明することができるのです。

次回は、この暗号化方式がどの様にブロックチェーンで利用されているのか、お話ししようと思います。

おわり。

この記事が気に入ったらサポートをしてみませんか?