おはようございます。
web3リサーチャーのmitsuiです。
毎週土日の昼には基礎単語解説記事をお届けします。各記事をサクッと読めるような文量にして、改めて振り返れる、また勉強できるような記事を目指していきます。
本日は「署名」です。
ぜひ最後までご覧ください!
銀行口座の残高は、銀行が管理しています。そのため、私たちは銀行を信頼することでお金を使うことができます。一方、ブロックチェーンでは銀行のような管理者は存在しません。それでも人々は資産を所有し、送金することができます。
その仕組みを支えているのが「署名(Digital Signature)」です。署名とは、自分がその取引を承認したことを証明する暗号技術です。web3の世界では、この署名があるからこそ、第三者を信頼することなく資産を動かすことが可能になっています。
署名とは何か
署名という行為は、私たちの日常に深く根づいています。契約書にサインをする、銀行の書類に印鑑を押す、クレジットカードの裏に名前を書く。これらはすべて「この行為を私が承認しました」という意思表示です。
なぜ署名が必要なのか。
それは、ある行為が確かに本人の意思によるものであることを第三者に証明するためです。契約書にサインがなければ、その契約を誰が承認したのかわかりません。署名があることで、「誰が」「何を」承認したのかが明確になります。
現実世界の署名は、筆跡や印鑑の照合によって本人確認を行います。しかし、デジタルの世界では筆跡も印鑑も存在しません。データは簡単にコピーでき、改ざんも容易です。コピーが容易なデジタルデータにおいて、「本人が承認した」ことをどう証明するのか。この問いに答えるのが、デジタル署名という技術です。
デジタル署名の仕組み
デジタル署名は、「公開鍵暗号」と呼ばれる暗号技術の上に成り立っています。この仕組みでは、二つの鍵がペアで使われます。秘密鍵(Private Key)と公開鍵(Public Key)です。
秘密鍵は、自分だけが知っている鍵です。絶対に他人に見せてはいけません。公開鍵は、秘密鍵から数学的に導出された鍵で、誰にでも公開できます。この二つの鍵には特殊な数学的関係があり、秘密鍵で署名したデータは、対応する公開鍵でのみ検証できます。
署名のプロセスはこうです。まず、送信者は取引データに対して自分の秘密鍵を使って「署名」を生成します。この署名は、取引データと秘密鍵の組み合わせから生まれる固有の値です。次に、受信者やネットワークの参加者は、送信者の公開鍵を使ってその署名を「検証」します。検証が成功すれば、その取引が確かに秘密鍵の持ち主によって承認されたことが数学的に証明されます。




