はじめに
これまでのブロックチェーンの基本概念①.②では、ブロックチェーンの基本情報や仕組みについて解説しました。
今回ブロックチェーンの基本概念③では、暗号技術とブロックチェーンの関係について詳しく説明し、セキュリティの要素を理解することが目的です。
暗号技術はブロックチェーンの基盤となり、その安全性や信頼性を支えています。
ブロックチェーンのセキュリティとは「積み木の塔」のようなものです。
想像してみてください。あなたは積み木で大きな塔を作っています。
それぞれの積み木ブロックが一つ一つのトランザクション(取引情報)を表しています。
新しい取引が行われるたびに、その情報が新たな積み木として塔の一番上に加えられます。この塔がブロックチェーンです。
ここで大事なのは、一度積み木が塔に加えられると、それを取り出したり、変えたりするのはとても難しいということです。
なぜなら、一つの積み木を取り出すと、その上に積まれた全ての積み木が崩れ落ちてしまうからです。
これは、ブロックチェーンの中の一つの取引情報を変更しようとすると、それ以降の全ての情報(すなわち、その後に追加された全てのブロック)も同時に変更しなければならないということを意味します。
さらに、この積み木の塔はたくさんの人々の前で作られ、全員が塔の作られ方を見ています。
だから、誰かが不正をしようとしても、みんなにすぐにバレてしまうでしょう。
これらの理由から、ブロックチェーンは非常に安全なシステムとされています。
一度ブロックチェーンに追加された取引は、変更や削除がほぼ不可能で、それが全ての人々に公開されているため、不正行為を防ぐことができます。
暗号技術の基本
暗号技術は、情報を特定のルールに基づいて変換し、第三者による不正なアクセスや改ざんを防ぐための技術です。
暗号技術とは秘密の手紙を書くときに使う特別なコードのようなものだと考えてみてください。
あなたが大切な秘密を友達に伝えたいとき、その秘密を手紙に書きます。でも、その手紙を誰かに見られたくないので、特別なコード(これが暗号)を使って書くことにします。
そして、そのコードを解読する鍵は、あなたとその友達だけが知っています。
これが暗号技術の基本的な考え方で、これにより情報の安全性が保たれます。
ブロックチェーンでは、主に以下の2種類の暗号技術が用いられています。
ハッシュ関数
データを一定の長さの文字列に変換する関数で、ブロックチェーンでは、ブロックの識別子(ハッシュ値)を生成するために用いられます。
ハッシュ関数を理解するためには、食事のレシピに例えるとわかりやすいかもしれません。
入力の一貫性
レシピでは、特定の食事を作るために必要な食材とその分量(例えば、トマト2つ、オリーブオイル大さじ2杯など)が明示されています。
これはハッシュ関数の入力に相当します。
ある特定の入力(例えば、テキストや数字の組み合わせ)があれば、ハッシュ関数は常に同じ出力(ハッシュ値)を生成します。
出力の一意性
レシピの指示に従えば、同じ食事を作ることができます。
しかし、完成した料理から元の食材やその分量を正確に推測するのは難しいでしょう。
同様に、ハッシュ関数は一方向性を持っています。
つまり、特定の入力からハッシュ値を生成することは可能ですが、ハッシュ値から元の入力を推測することは(理論的には)不可能です。
変更の検出
レシピの一部を変更すれば(例えば、トマトを3つに増やす)、出来上がる料理も変わります。同様に、ハッシュ関数の入力の一部を変更すると、出力されるハッシュ値も大きく変わります。これにより、データの改ざんを簡単に検出することができます。
このような特性から、ハッシュ関数はブロックチェーン技術で広く使用されています。
特に、データの整合性を確認するためや、大量のデータを効率的に管理するために利用されます。
公開鍵暗号
データの暗号化と復号化に異なる鍵を使用する暗号方式で、ブロックチェーンでは、取引の署名やアドレスの生成に用いられます。
公開鍵暗号(または非対称暗号)を理解するためには、「郵便箱と鍵」の例えが役立ちます。
想像してみてください、あなたが郵便箱を持っていて、それには2つの鍵があります。
1つは公開鍵(公開鍵)で、それはあなたが友人や家族に配ります。これを使うと、誰でもあなたの郵便箱に手紙を入れることができますが、手紙を取り出すことはできません。
もう1つは秘密鍵(プライベートキー)で、それはあなただけが持っています。これを使うと、郵便箱に入れられた手紙を取り出すことができます。
このシステムでは、秘密鍵は常に秘密に保たれ、公開鍵は他の人と共有できます。
誰でもあなたの公開鍵を使って情報を暗号化できますが、その情報を復号化(開ける)ためには、あなたの秘密鍵が必要となります。
これにより、情報のセキュリティが保たれます。
この例えは、非対称暗号の基本的な考え方を示しています。
ブロックチェーン技術やインターネットセキュリティでは、公開鍵暗号はデータの安全な送受信を保証するために広く使用されています。
公開鍵暗号と秘密鍵公開鍵暗号では、公開鍵(公開される鍵)と秘密鍵(秘密に保たれる鍵)の2つの鍵を用いて、データの暗号化と復号化が行われます。
ブロックチェーンにおいて、公開鍵は取引アドレスとして機能し、秘密鍵は取引の署名や資産管理に使われます。
デジタル署名
デジタル署名は、データの送信者がそのデータに対して行う電子的な署名で、送信者の真正性やデータの改ざんの有無を検証できるようになります。ブロックチェーンでは、取引のデジタル署名に秘密鍵が用いられ、受信者は公開鍵を用いて署名の検証ができます。
デジタル署名を理解するためには、「手書きの署名」に例えることもできます。
あなたがチェックを発行するとき、あなたはそれに自分の署名をします。この署名はあなただけが作ることができ、それはあなたがそのチェックを発行した証拠になります。銀行はあなたの署名を見て、それが本当にあなたからのものであることを確認します。
デジタル署名も同じ役割を果たしますが、ここでの署名はデジタル形式で、特定のデータ(メッセージ、ドキュメントなど)に関連付けられています。デジタル署名は、公開鍵暗号を使用して生成され、特定のメッセージに対して一意です。
送信者はプライベートキー(秘密の鍵)を使ってデジタル署名を作成し、受信者は送信者の公開鍵を使って署名を検証します。これにより、メッセージが改ざんされていないことと、メッセージが特定の送信者から来たことを確認することができます。
これにより、デジタルコミュニケーションにおける信頼性と安全性が確保されます。
マルチシグ
マルチシグ(Multi-signature)は、複数の署名が必要な取引を扱うための技術です。
ブロックチェーンにおいて、マルチシグは、共同所有のアカウントやセキュリティの強化が求められる場面で活用されます。
例えば、企業の共有資産や家族間での資産管理などでマルチシグが利用されることがあります。マルチシグでは、指定された参加者のうち一定数以上が署名しなければ、取引が承認されません。
マルチシグ(複数署名)を理解するためには、「秘密の宝箱」の例えが役立ちます。
想像してみてください、あなたとあなたの友達2人が秘密の宝箱を見つけました。
この宝箱を開けるためには特別な鍵が3つ必要で、それぞれの鍵はあなたとあなたの友達1人ずつが持っています。
宝箱を開けるためには、3人全員が鍵を同時に使わなければならないというルールがあります。これがマルチシグの基本的な考え方です。
ブロックチェーンの世界では、「宝箱」はある種のデジタルアセット(例えばビットコイン)を表し、「鍵」はデジタル署名を表します。
マルチシグは、特定のトランザクション(例えばビットコインの送金)を承認するために必要な署名の数を指定します。
これにより、一人のユーザーだけがトランザクションを制御するのではなく、複数のユーザーが共同でトランザクションを管理することができます。
これはセキュリティを高めるための一つの方法で、特に大量のビットコインを保管している組織やグループにとって有用です。
零知識証明
零知識証明(Zero-knowledge proof)は、証明者が特定の情報を持っていることを検証者に証明できる技術で、その詳細な情報を明かさずに証明が可能です。
ブロックチェーンでは、プライバシーの保護や匿名性の向上が目的で零知識証明が用いられます。
ZcashやMoneroなどのプライバシー重視の暗号通貨で零知識証明が採用されています。
零知識証明を理解するために、「秘密のお菓子袋」の例えが役立ちます。
あなたが友人に対して、あなたがお菓子袋の中にある特定のお菓子(たとえばチョコレート)を見つけることができると証明したいとします。
しかし、お菓子袋の中身やどのようにお菓子を見つけるかを友人に教えたくありません。
そこであなたは、友人が見ていないときにお菓子袋からチョコレートを見つけて出します。
そして、友人の前でチョコレートを見せます。
これを何度も繰り返します。
これにより、あなたは友人に対して、お菓子袋からチョコレートを見つけることができると証明できます。
それでいて、友人は袋の中身全体やどのようにあなたがチョコレートを見つけるかを学ぶことはありません。
これが零知識証明の基本的な考え方です。
あなたは「何か」(この場合はチョコレート)についての知識を持っていることを証明できますが、その「何か」自体の詳細を他の人に教えることはありません。
これはプライバシーを保護しながら、ある情報が正確であることを証明するために使われます。
まとめ
今回は、暗号技術とブロックチェーンの関係について詳しく説明しました。
ハッシュ関数や公開鍵暗号はブロックチェーンの基本的な仕組みに欠かせない要素であり、デジタル署名やマルチシグ、零知識証明などの技術がさらにセキュリティやプライバシーの向上に寄与しています。
次回は、スマートコントラクトとブロックチェーンの応用事例について説明していきます。
ブロックチェーン技術の理解を深めるために、ぜひ続けて学んでいきましょう。
⚫️はじめに
ーブロックチェーンのセキュリティとは?
⚫️暗号技術の基本
ーハッシュ関数
ー公開鍵暗号
・デジタル署名
・マルチシング
・零知識証明
⚫️まとめ