06.秘密鍵と公開鍵

前回の章で、アドレスには「秘密鍵」と「公開鍵」が紐づいており、実際に取引を実行する際に必要なものになります、と説明しました。

仮想通貨では、公開鍵暗号という方式が採用されており、「アドレス」「秘密鍵」「公開鍵」は必ずセットになっています。
というのも
「秘密鍵作成⇒公開鍵作成⇒アドレス作成」
という流れで作成されるからです。

この流れは不可逆性を持っており、アドレスから元になっている秘密鍵や公開鍵を特定することはできません。
もちろん公開鍵から秘密鍵を特定することもできません。

それでは、実際に取引する際には、どのように使われるのか、見てみましょう!

例えば、AliceさんがBobさんに1BTC送金する場合はこんな感じ。
① Aliceは「AliceのアドレスからBobのアドレスに1BTC送金」というトランザクション(取引)を作成。
② Aliceは作成したトランザクションを自身の秘密鍵で署名することで暗号化し、ネットワーク上で公開。
③ マイナーがこの暗号化されたデータを公開されているAliceの公開鍵を使って、“この取引は本当にAliceが行ったものであるか”の検証を行う。(マイニングですね!)
④ 検証の結果、“暗号化される前のトランザクション“と”複合化されたトランザクション“が一致=このトランザクションを送ったのはAliceであると証明される。
⑤ Bobのアドレスに送金が行われる。送金完了です!

アドレス=銀行の口座番号、秘密鍵=銀行口座の暗証番号、と考えると分かりやすいです。
ちなみに公開鍵=口座番号を生成するためや、取引が正しいことを検証するために用いられるものです。

・アドレス=口座番号は、誰かからお金を振り込んでもらう際に、振り込んでほしい相手に共有しないとお金を振り込んでもらえません。
・秘密鍵=暗証番号は他人に知られてしまうと、自由にお金を引き出せるようになってしまうので、他人に漏れたら大変なことになります。
・公開鍵=取引の正しさを検証されるために用いるので公開されないと取引ができません。

秘密鍵は他人にばれないように保管しましょう!