公開鍵と秘密鍵の違いをわかりやすく解説
秘密鍵は暗号資産の所有を証明し、公開鍵は他の人がそれを検証できるようにします。鍵ペアの仕組み、アドレスの作られ方、鍵を安全に守る方法を解説します。
秘密鍵は、暗号資産のアドレスから取引を承認するための秘密の数値です。一方、公開鍵は秘密鍵から導き出され、他の人があなたの署名を検証したり資金を送ったりできるよう共有できます。秘密鍵は所有を証明するもので、公開鍵(とそこから作られるアドレス)は共有しても安全です。あなたの秘密鍵を手に入れた人は、あなたの暗号資産を自由にできます。
この鍵ペアは、暗号資産の仕組みの土台です。これを理解すると、「not your keys, not your coins」という言葉がよく使われる理由、正規の相手が秘密鍵やシードフレーズを求めることは決してない理由、そして失った鍵をリセットできない理由がわかります。
公開鍵暗号の仕組み
公開鍵暗号(非対称暗号)は、互いに結びついた二つの鍵を使います。
- 1秘密鍵:秘密にしておく、非常に大きな乱数。
- 2公開鍵:一方向の数学的関数を使って秘密鍵から計算されるもの。
ポイントは「一方向」であることです。秘密鍵から公開鍵を計算するのは一瞬で済みますが、公開鍵から逆算して秘密鍵を求めるには、現在の技術では現実的でないほどの計算時間がかかります。だからこそ、公開鍵は安心して公開できるのです。
BitcoinとEthereumはどちらも、secp256k1という曲線上の楕円曲線暗号を使っています。Solanaなど他のブロックチェーンは別の曲線(Ed25519)を使っていますが、原理は同じです。
デジタル署名:鍵はどう連携するのか
暗号資産を送るとき、ウォレットは次のことを行います。
- 1取引を作成します(「自分のアドレスからこのアドレスへ0.1を送る」)。
- 2秘密鍵で取引に署名し、その取引だけに固有のデジタル署名を作ります。
- 3取引と署名をネットワークに送信します。
その後、ノードはあなたの公開鍵を使って、署名が有効であり取引が改ざんされていないことを検証します。ノードがあなたの秘密鍵を目にすることはありません。取引の文字を一つでも変更すれば、署名は一致しなくなります。
秘密鍵・公開鍵・アドレスの比較
| 秘密鍵 | 公開鍵 | アドレス | |
|---|---|---|---|
| 何か | 秘密の乱数 | 秘密鍵から導き出される | 公開鍵を符号化した形(多くはハッシュ化) |
| 役割 | 取引に署名する | 署名を検証する | 資金を受け取る。共有しやすい |
| 共有しても安全? | 絶対にダメ | はい | はい |
| 他人に知られたら | 資金を奪われる | 直接のリスクはない | 直接のリスクはないが、残高と履歴が見られる |
| 一般的な形式 | 長い16進文字列、または符号化された鍵 | 長い16進文字列 | 例:bc1(Bitcoin)や0x(Ethereum)で始まる |
たとえばEthereumでは、アドレスは公開鍵のハッシュの末尾20バイトを、0xを先頭につけて16進数で表したものです。
シードフレーズの位置づけ
最近のウォレットでは、秘密鍵を一つずつ管理する必要はありません。代わりにシードフレーズ(通常12語または24語)を生成し、そこから秘密鍵のツリー全体を導き出します。アドレスごと、そして多くのブロックチェーンにまたがって一つずつです。
つまり、次のようになります。
- シードフレーズをバックアップすれば、ウォレット内のすべての鍵をバックアップしたことになります。
- シードフレーズを知った人は、すべての鍵を再現できます。
- 単独でエクスポートした秘密鍵が管理するのは、一つのアドレスだけです。
シードフレーズとは何かと正しいバックアップ方法もご覧ください。
カストディ:秘密鍵を持つのは誰か
| 形態 | 鍵を持つのは | 意味すること |
|---|---|---|
| 取引所アカウント | 取引所 | 便利だが、取引所のセキュリティと支払い能力に依存する |
| ソフトウェア(ホット)ウォレット | 自分(インターネットにつながった端末上) | 資金を自分で管理できる。端末のマルウェアが主なリスク |
| ハードウェア(コールド)ウォレット | 自分(専用のオフライン端末上) | 鍵が端末の外に出ない。ほとんどの人にとって最も強力な保護 |
カストディアルウォレットとノンカストディアルウォレットの比較で詳しく解説しています。
わかりやすいたとえ
前面に投入口があり、背面に鍵のかかった扉がある郵便受けを想像してください。
- アドレスは郵便受けの場所です。公開しておけば、誰でも郵便を入れられます。
- 公開鍵は錠前の説明書のようなもので、郵便局がある鍵が本当にこの郵便受けのものか確認できます。
- 秘密鍵は、背面の扉を開けて郵便を取り出せる唯一の鍵です。
このたとえは完璧ではありません。暗号資産では、秘密鍵は物理的に何かを開けるのではなく署名を作ります。それでも本質は押さえています。アドレスを共有するのは安全ですが、鍵を共有するのは安全ではありません。
秘密鍵が盗まれる手口
攻撃者が鍵を「解読」することはめったにありません。人をだまして鍵を明かさせるのです。
- シードフレーズを入力してウォレットを「認証」や「同期」するよう求める偽のサポート担当者。
- 本物そっくりのフィッシングサイトや偽のウォレットアプリ。
- 端末内の鍵ファイル、スクリーンショット、シードフレーズを書いたメモを探すマルウェア。
- シードフレーズが写った写真や文書のクラウドバックアップ。
すぐに手を止めるべき危険信号:
- シードフレーズや秘密鍵を求めるウェブサイト、アプリ、人物。
- リカバリーワードを求める「ウォレット認証」「エアドロップの受け取り」「ロック解除」などの手続き。
- 急いで行動するよう迫られること。
鍵を守るための実践ルール
- 1シードフレーズや秘密鍵をウェブサイトに入力したり、誰かと共有したりしないでください。
- 2バックアップは写真やメール、クラウドのメモではなく、紙や金属にオフラインで保管してください。
- 3まとまった金額にはハードウェアウォレットを使ってください。
- 4署名する前に、端末の画面でアドレスを確認してください。
- 5日常的に試す用のウォレットと、長期保管用のウォレットを分けてください。
まとめ
秘密鍵はあなたの暗号資産そのものです。取引に署名し、持っている人が資金を管理します。公開鍵とアドレスは、他の人があなたに支払ったり署名を検証したりできるよう共有するためのものです。秘密鍵とシードフレーズを本当に大切な唯一のものとして守り、それらを求めるあらゆる要求を攻撃とみなしてください。基礎知識をさらに知りたい方は、基礎カテゴリーをご覧ください。
よくある質問
暗号資産の秘密鍵とは何ですか?
秘密鍵は暗号資産のアドレスを管理する秘密の数値です。取引を承認するデジタル署名の作成に使われるため、持っている人は誰でも資金を移動できます。決して他人と共有したり、ウェブサイトに入力したり、オンラインに平文で保存したりしてはいけません。
公開鍵やアドレスを知られると暗号資産を盗まれますか?
いいえ。公開鍵とアドレスは、他の人があなたに暗号資産を送ったり、あなたの署名を検証したりできるよう、共有する前提で設計されています。公開鍵から秘密鍵を導き出すことは、現在の技術では計算上不可能です。ただし、アドレスを共有すると、そのアドレスの残高と取引履歴は知られます。
シードフレーズは秘密鍵と同じものですか?
厳密には違います。シードフレーズは人が読める形のバックアップで、ウォレットはそこからアドレスごとに一つずつ、多数の秘密鍵を導き出します。シードフレーズを持つ人はそれらの鍵をすべて再現できるため、単一の秘密鍵よりもさらに重要で、同じように守る必要があります。
秘密鍵をなくしたらどうなりますか?
自分で鍵を管理していて、鍵とシードフレーズのバックアップの両方を失った場合、その資金には永久にアクセスできなくなります。どの企業もブロックチェーンもリセットできません。暗号資産を取引所に置いている場合は取引所が鍵を管理しているため、取引所の通常のアカウント手続きでアクセスを回復します。
