
公開鍵暗号は、「公開鍵」と「秘密鍵」のペアに基づく暗号技術です。公開鍵は自由に共有でき、秘密鍵は厳重に管理します。この仕組みにより、他者はあなたの公開鍵でメッセージを暗号化し、復号はあなたの秘密鍵のみが可能です。また、秘密鍵でデータに署名すると、公開鍵で誰でも署名を検証できます。
ドアの鍵に例えると、錠(公開鍵)は誰でも見られ、検証や暗号化に使えますが、実際に開けられるのは手元の鍵(秘密鍵)だけです。ブロックチェーンでは、ウォレットアドレスやトランザクション署名、分散型IDログインなどがこの仕組みを基盤としています。
公開鍵暗号はウォレットアドレスやトランザクション署名の基盤です。これがなければ、オンチェーンで「誰が操作したか」を検証できません。資産移転やスマートコントラクトの操作、dAppのログイン時に、従来のユーザー名やパスワードを使わずに本人認証や権限確認が可能です。
多くのウォレットでは、アドレスは公開鍵から導出されます。送金時は秘密鍵でトランザクションに署名し、ネットワークノードが公開鍵で署名の正当性を検証して、操作の承認を確認します。dApp接続時の「メッセージ署名」も、公開鍵暗号によってアドレス所有を証明します。
公開鍵暗号の原理は「非対称性」にあります。暗号化と復号、署名と検証は異なる2つの鍵で行われ、逆方向では処理できません。暗号化は他者が公開鍵で行い、復号は秘密鍵のみ可能。署名は自分の秘密鍵で作成し、誰でも公開鍵で検証できます。
これは数学的な「一方向性問題」に基づきます。公開鍵から秘密鍵を導出するのは計算上不可能ですが、秘密鍵では容易に有効な署名を生成できます。代表的な実装にはRSAや楕円曲線暗号(ECC)があり、いずれも「一方向は簡単、逆は困難」というセキュリティ特性を持ちます。
ウォレットは公開鍵暗号でアドレスを生成し、秘密鍵でトランザクション署名を行うことで、ネットワークが取引の正当性を検証・記録します。通常、ユーザーはアドレスと署名操作のみ扱い、秘密鍵はユーザーまたはプラットフォームが安全に保管します。
Step 1: ウォレット作成時、秘密鍵と「ニーモニックフレーズ」(秘密鍵のバックアップとなる単語セット)が生成されます。ニーモニックフレーズをオフラインで安全に保管すれば、対応ウォレットで資産管理を復元できます。
Step 2: ウォレットは秘密鍵から公開鍵とアドレスを導出します。アドレスは口座番号のような役割を持ち、他者から資産を受け取ることができます。
Step 3: 送金やスマートコントラクト操作時、ウォレットは秘密鍵でトランザクションに署名します。ブロックチェーンノードが公開鍵で署名を検証し、承認後に取引がブロックに記録されます。
Gateなどの取引所では、入出金時にオンチェーンアドレスがアカウントに割り当てられます。これらのアドレスはプラットフォームのウォレットインフラで生成・管理され、公開鍵暗号が基盤です。ユーザーはアドレスと履歴のみを確認し、プラットフォーム側の操作は安全な鍵管理と署名処理で行われます。
署名の安全性は2点に由来します。秘密鍵保有者だけが有効な署名を生成できること、公開鍵で署名の真正性とメッセージの改ざん有無を誰でも検証できることです。
「送金を確認」クリック時、ウォレットは取引内容(受取アドレス、金額、ガス代など)を署名用メッセージにまとめ、秘密鍵で署名します。ネットワークノードが署名を検証することで、秘密鍵保有者による承認を確認します。多くのdAppはパスワードの代わりにメッセージ署名でログインし、アドレス管理権限を証明します。
署名にはリプレイ防止要素(オンチェーンノンスや乱数)が含まれ、過去の取引が再送信されるのを防ぎます。ユーザーは署名ポップアップの内容を必ず確認し、不正リクエストによる資産流出に注意が必要です。
最大の違いは鍵の利用と共有方法です。共通鍵暗号は暗号化・復号ともに同一の秘密鍵を使い、送信者と受信者が同じ秘密を持つ必要があります。公開鍵暗号は2つの鍵を使い、公開鍵は自由に配布でき、秘密鍵は厳重に管理されます。
Web3では、公開鍵暗号がオープンネットワークでの本人認証や権限確認(署名・検証)に優れています。共通鍵暗号は大量データの保管や送信(暗号化バックアップなど)に効率的です。多くのシステムは両者を組み合わせ、公開鍵暗号で共通鍵を安全に配布し、その後共通鍵暗号でデータ処理を行います。
RSA、楕円曲線暗号(ECC)、ECDSAやEd25519などの署名方式が広く使われています。RSAは古くからあり、大きな整数の素因数分解に基づきます。ECCは楕円曲線の数学を利用し、短い鍵長で同等の安全性を実現するため、ブロックチェーン用途で効率的かつ省リソースです。
2024年現在、主流ブロックチェーンはECCを採用しています。BitcoinとEthereumはsecp256k1、SolanaはEd25519を利用。ECCは短い署名、素早い処理、低コストを実現します。RSAはオンチェーンではほとんど使われませんが、従来システムでは普及しています。NISTは2023〜2024年にポスト量子暗号標準化を進めており、業界は量子耐性アルゴリズムへの移行準備を進めています。
用語補足:楕円曲線は非対称暗号に用いられる特殊な数学構造です。Ed25519は高性能かつ実装容易な楕円曲線署名アルゴリズムです。
初心者は「生成・バックアップ・利用・検証」の4ステップを守ることでリスクを大幅に減らせます。
Step 1: ウォレット生成とニーモニックフレーズのオフラインバックアップ。フレーズを書き留めて安全な場所に保管し、スクリーンショットやクラウド同期は厳禁です。秘密鍵漏洩防止のためです。
Step 2: アドレスと署名内容の確認。送金前は必ず宛先アドレスをチェックし、署名ポップアップのリクエスト元やデータ内容も必ず確認してフィッシング攻撃を防ぎます。
Step 3: ハードウェアウォレットやセキュアモジュールの利用推奨。ハードウェアウォレットは秘密鍵を専用チップ内で隔離し、操作承認時のみ署名を返します。秘密鍵はデバイス外に出ません。
Step 4: Gateで入出金する際は、必ずプラットフォームのチェーン・アドレスガイドに従い、まず小額でテスト送金し、資金移動時はリスク管理や追加認証などのセキュリティ機能を有効化してください。
Step 5: 長期管理にはマルチシグやMPCカストディを活用。マルチシグは複数の鍵で操作承認、MPC(マルチパーティ計算)は秘密鍵管理を複数者で分散し、単一障害点リスクを低減します。
リスク補足:秘密鍵やニーモニックフレーズを奪われると資産を完全に制御される恐れがあります。必ずオフラインで複数箇所にバックアップし、偽の署名リクエストにも注意してください。
主なリスクは「人的ミス」と「実装面」の2つです。人的リスクは秘密鍵漏洩や署名内容の未確認、技術的リスクは署名時の乱数品質不足やマルウェアによるデバイス侵害です。
誤解1:ニーモニックフレーズをスマホで撮影しても安全。スマホは同期やマルウェア感染リスクがあり、秘密鍵流出につながります。
誤解2:「確認」クリック時に署名内容を見ずに承認。悪意あるサイトは不要な権限や資産移転の署名を誘導することがあります。
実装面では、ECDSA署名は高品質な乱数が必須です。乱数の使い回しや弱い値は秘密鍵漏洩につながります。量子コンピュータも議論されますが、2024年時点で主流ブロックチェーンECCアルゴリズムへの脅威は現実的ではありません。暗号学者や標準化団体は将来リスクに備え、ポスト量子暗号の開発を進めています。
公開鍵暗号は、検証・暗号化に公開鍵を、署名・復号に秘密鍵を使う仕組みで、Web3のIDや資産管理の基盤です。鍵の関係や署名検証、代表的アルゴリズムを理解することで、Gateなどのウォレットやプラットフォームで安全に入出金やdApp利用ができます。初心者は秘密鍵・ニーモニックのオフラインバックアップ、署名内容の厳重確認、ハードウェアウォレットやマルチシグ/MPCの活用を優先し、ポスト量子暗号や安全な鍵管理の最新動向も把握して長期的なセキュリティを確保しましょう。
いいえ、公開鍵でデータを復号することはできません。公開鍵暗号では、公開鍵で暗号化したデータは対応する秘密鍵のみが復号できます。公開鍵は誰でも使える錠、秘密鍵は開錠できる物理鍵に例えられ、この一方向性が公開鍵暗号の安全性の根幹です。
共通鍵暗号は暗号化・復号に同じ秘密を使い、高速ですが安全な配布が困難です。非対称暗号は公開鍵・秘密鍵ペアを使い、公開鍵でデータを暗号化、秘密鍵のみで復号でき、より強力なセキュリティを実現しますが計算量は多くなります。実際は両者を組み合わせ、非対称暗号で共通鍵を安全に配布し、共通鍵暗号で大量データを効率的に処理します。
PEMはファイルフォーマットの標準であり、公開鍵も秘密鍵もPEM形式で保存できます。ファイル内容を確認し、「BEGIN PUBLIC KEY」なら公開鍵、「BEGIN PRIVATE KEY」なら秘密鍵です。PEMはBase64でエンコードされ、テキストベースで保存・送信が容易です。
公開鍵暗号は一方向性のため、公開鍵で暗号化したデータは対応する秘密鍵でのみ復号できます。公開鍵を共有すれば誰でも暗号化メッセージを送れますが、秘密鍵保有者だけが内容を読めます。秘密鍵が漏洩すると、公開鍵で暗号化されたデータはすべて解読され、セキュリティが完全に失われます。
公開鍵暗号は、HTTPSサイトのSSL証明書検証、デジタル署名による本人認証、暗号化メール通信、ブロックチェーンウォレットアドレス、秘密鍵管理などに広く使われています。例えば銀行サイト訪問時は、ブラウザがサーバーの公開鍵で本人確認を行い、Gateで暗号資産を出金する際はウォレットの秘密鍵でトランザクションを署名し、正当性を証明します。


