🔑 公開鍵・秘密鍵・リカバリーフレーズ
暗号資産の「三種の神器」を徹底解説

Mofuneko

もふねこだよ。🐾 ハッシュ関数が「データの指紋」なら、公開鍵と秘密鍵は暗号資産の「印鑑と銀行口座番号」みたいなものなんだよ。この3つの仕組みを知れば、暗号資産のセキュリティがなぜ強いのかがちゃんとわかるようになるよ。今日も丁寧に解説していくね!

1. 公開鍵と秘密鍵の役割

この2つのカギは、数学的にペアで作られていて、片方でできることはもう片方でしか解除できないという特殊な関係にあるんだ。

🔴 秘密鍵(Private Key)
  • 自分だけが知っている「実印」や「金庫の鍵」だよ
  • これを使って電子署名(デジタルなサイン)を行うんだ
  • 256ビットの巨大な数字で、ランダムに生成される
  • 絶対に他人に教えてはいけない!盗まれたら資産が全滅するんだ
🟢 公開鍵(Public Key)
  • 誰にでも教えてよい「銀行の口座番号」みたいなものだよ
  • 秘密鍵から数学的な計算(楕円曲線暗号)によって生成されるんだ
  • 公開鍵から秘密鍵を逆算するのは、現代のコンピュータでは数万年単位かかるから事実上不可能なんだ
🚨 もふねこからの最重要警告!

秘密鍵を紛失したり盗まれたりすると、ブロックチェーン上に資産は残り続けていても、それを動かせる「唯一の鍵」がこの世から消えてしまうんだ。銀行と違って「再発行」という制度は一切なく、永久にロックされてしまうよ。これが暗号資産で一番怖いことなんだ🐾


2. 電子署名で「所有権」を証明する仕組み

暗号資産を送金する際、実際には「お金のデータ」を送っているわけじゃないんだ。正確には「この資産を動かす権利を私が持っています」という数学的な証明を送っているんだよ。

✍️

契約書に「実印」を押すと、「この書類に判を押したのは確かに本人だ」と証明できるよね。電子署名もまったく同じ仕組みで、「秘密鍵」が実印の役割を果たすんだ。しかも、押した後の偽造が数学的に不可能なのが、デジタル署名の凄さなんだよ。

送金時の流れ(3ステップ)

  1. 署名の作成:AさんがBさんに1BTC送る際、Aさんは自分の「秘密鍵」を使って取引データに「電子署名」を書き込むんだ。
  2. 検証:ネットワーク上の誰でも、Aさんの「公開鍵」を使えば、「この署名が間違いなくAさんの秘密鍵で作られたものか」を瞬時に確認できるんだよ。
  3. 承認:検証が成功したら、取引がブロックに記録されて完了!公開鍵で検証はできるけど、それを使って秘密鍵を偽造することは不可能なんだ。
💡 ポイント

「公開鍵で署名を検証できるのに、なぜ安全なの?」って思うかもしれないね。答えは、「検証できる」と「偽造できる」は全く別の話だからなんだ。鍵穴の形を見れば「この鍵が正しいかどうか」は判断できても、それを見ただけで「正しい鍵を複製する」ことはできないのと同じ理屈だよ。


3. アドレスへの変換プロセス

前回のハッシュ関数の話と、ここで繋がってくるんだ。実は、普段使っている「ビットコインアドレス」は公開鍵そのものじゃないんだよ。

秘密鍵 (256ビットのランダムな数字)
↓ 楕円曲線暗号(ECDSA)
公開鍵 (512ビット)
↓ SHA-256 → RIPEMD-160(ハッシュ関数)
ビットコインアドレス (例:1A2B3C... のような短い文字列)

なんでわざわざ二度手間をかけるかというと、ハッシュ化することで「もし将来、公開鍵暗号の数学的欠陥が見つかっても、アドレスから公開鍵がバレないようにする」という二重の防御策なんだ。プライバシー保護とセキュリティ向上のための、とても賢い設計なんだよ🐾


4. なぜビットコインは「楕円曲線暗号(ECC)」を使うの?

もふねこ

ここが少し技術的な話になるけど、セクション3で出てきた「楕円曲線暗号(ECDSA)」について、もう少し詳しく説明するね。なぜRSA暗号ではなくECCが選ばれたのか——その答えが、ビットコインの設計の賢さにつながっているんだよ🐾

RSA暗号との違い

インターネットの世界で長年使われてきたのがRSA暗号だよ。RSAは2つの大きな素数の積(例:N = p × q)を使って鍵を作るんだ。「N は知っていても、p と q を見つけ出す(素因数分解する)のは現実時間では不可能」という数学の難しさが安全性の根拠になっているんだよ。

📐 RSA暗号の鍵の仕組み(簡略イメージ)

① 2つの素数 p、q を選ぶ → N = p × q(公開)
② 公開鍵 E と秘密鍵 D を数学的に計算する
③ 暗号化:ME mod N → 暗号文 C
④ 復号:CD mod N → 元の平文 M
※ 安全に使うには1024bit以上の鍵長が必要

しかし RSA には課題があるんだ。安全性を保つために必要な鍵の長さが非常に長いという点だよ。2009年には768ビットのRSAが解読に成功してしまっているんだ。現在は2048bit以上が推奨されているんだよ。

楕円曲線暗号(ECC)が選ばれた理由

ビットコインが採用した楕円曲線暗号(ECC)は、「楕円曲線上の点の移動」という全く別の数学を使うんだ。

🎯

楕円曲線上に出発点 G がある。そこから s 回「同じルールで点を移動」すると点 T に着くとするね。「G から出発して s 回移動したら T になる」という計算は簡単にできる。でも「T と G が分かっているのに、何回動かしたか(s)を逆算するのは現実的に不可能——これが楕円曲線暗号のセキュリティの根っこなんだよ🐾

⚖️ RSA vs 楕円曲線暗号(ECC):鍵長の比較
安全レベル RSA鍵長 ECC鍵長
80 bit相当 1,024 bit 160 bit
128 bit相当 3,072 bit 256 bit
192 bit相当 7,680 bit 384 bit

出典:大阪大学 三浦研究室「システムLSI設計実践演習」講義資料より

同じ安全レベルなら、ECCはRSAと比べて約1/10の鍵長で済むんだよ。これはスマートフォンや組み込みデバイスのような計算資源が限られた環境では大きなメリットになるんだ。ビットコインウォレットはモバイルで動かすことが多いから、ECCの「短い鍵長・高い安全性」は最適だったというわけなんだよ🐾


5. 秘密鍵を失うとどうなるの?

"Not your keys, not your coins."(鍵を持たぬなら、コインも持たぬものと思え)

暗号資産の世界で有名なこの格言、その意味をちゃんと理解しておくのがすごく大事なんだ。

🐾 もふねこのアドバイス

初心者のうちは、コインチェックのような金融庁に登録された信頼できる取引所に預けておくのが安全だよ。自分でウォレット管理をするのは、仕組みを十分理解してからでも遅くないんだ。


6. リカバリーフレーズ(シードフレーズ)の魔法の仕組み

Mofuneko

ここからが今日の目玉!「なんであの12〜24個のバラバラな英単語から、秘密鍵が復元できるの?」って思ったことない?これにはBIP-39という世界共通の規格が使われているんだよ🐾

結論から言うと、これは「人間が覚えにくい巨大な数字を、人間が扱いやすい単語リストに翻訳している」仕組みなんだ。

ステップ1:ランダムな数字(エントロピー)の生成

コンピュータがまず「0と1が並んだ非常に長いランダムな数字(128〜256ビット)」を作るんだ。これがすべての源(エントロピー)で、この乱数の品質がウォレットの安全性を決めるんだよ。

ステップ2:チェックサム(計算ミス防止)の追加

その数字のハッシュ値を計算して、一部を末尾に追加するんだ。これにより、もし1単語でも書き間違えたら「このフレーズは正しくない」とエラーが出る仕組みになっているんだよ。

ステップ3:単語リストへの変換

この長い数字を「11ビット」ずつに区切るんだ。11ビット(2の11乗)= 2048 という数字になるね。あらかじめ用意された「2,048個の英単語リスト」の中から、その番号の単語を選びだすんだ。

// BIP-39単語リストの仕組み(簡略化したイメージ)

00000000001abandon
00000000010ability
00000000011able
// ... 2048単語が用意されている ...

// 128ビットのエントロピー → 12単語
// 256ビットのエントロピー → 24単語

こうして、12個や24個の単語が並ぶ「リカバリーフレーズ」が完成するんだ!

ステップ4:フレーズから秘密鍵への変換(PBKDF2)

単語の羅列は、そのままでは「鍵」じゃないんだ。ここからが重要なステップだよ。

  1. パスフレーズ化:12個の単語を一つの長い文字列にまとめるんだ。
  2. ハッシュ計算の反復:その文字列を PBKDF2 という特殊なハッシュ関数にかけるんだ。単に1回計算するのではなく、なんと2,048回繰り返して計算するんだよ。この繰り返しが、総当たり攻撃をとても困難にしているんだ。
  3. マスターシードの生成:計算結果の512ビットが、あなたのウォレットのすべての源となる「マスターシード」になるんだ。
💡 なぜ2048回も繰り返すの?

単純な組み合わせだと、コンピュータが総当たりで試せてしまうリスクがあるんだ。2,048回繰り返すことで「一回の計算コストを増やし」、全組み合わせを試すのに膨大な時間がかかるようにしているんだよ。これを「鍵強化(Key Stretching)」と呼ぶんだ。


7. 「HDウォレット」ってなに?

リカバリーフレーズから生成された「マスターシード」から、一つのフレーズで無限に秘密鍵(アドレス)が作れるのが「階層的決定性(HD)ウォレット」の仕組みなんだ。

🌳

マスターシードを「木の根っこ」とすると、そこから「ビットコイン用の枝」「イーサリアム用の枝」と枝分かれして、それぞれの秘密鍵を無限に生成できるんだ。だから1つのリカバリーフレーズで、複数の通貨のウォレットをまとめて管理できるんだよ。

同じフレーズをどのウォレットアプリ(MetaMask、Trust Walletなど)に入力しても、数学的に必ず同じ秘密鍵が導き出される。だからスマホを失くしても、フレーズさえあれば世界中のどこからでも資産を「復元」できるんだよ🐾


8. リカバリーフレーズの「絶対ルール」

🚨 これだけは守ってね!

リカバリーフレーズは「秘密鍵の設計図そのもの」なんだ。以下の鉄則を必ず守ってほしいんだよ。

📝 まとめ:暗号資産の「三種の神器」の繋がり

  • 秘密鍵:資産を動かすための「唯一の署名ツール」。絶対秘密。
  • 公開鍵:署名の正しさを他人が確認するためのツール。誰に見せてもOK。
  • アドレス:公開鍵をさらにハッシュ化したもの。送金先として使う。
  • リカバリーフレーズ:複雑な数学的鍵を、人間が記録しやすい12〜24単語に翻訳したもの(BIP-39規格)。

そして全体の流れはこうなんだ:
リカバリーフレーズ → マスターシード → 秘密鍵 → 公開鍵 → アドレス
全部が一方通行でつながっていて、逆向きに計算することは不可能。これが暗号資産のセキュリティの根幹なんだよ🐾

Mofuneko

どうだったかな?ハッシュ関数・秘密鍵・公開鍵・リカバリーフレーズ。この4つがすべて繋がって、初めて「管理者なしで安全に動く経済システム」が成り立つんだよ。むずかしそうに見えて、実は一本の筋が通った美しい仕組みだよ🐾

📚 あわせて読みたい

🔢 RSA暗号を手計算で体験!小さな数字で暗号化・復号の全工程を解説 ⚛️ 量子コンピュータが来たらビットコインは危ない?現状と対策を解説
← 技術と仕組みに戻る