秘密鍵とシードフレーズって何?
「自分で守る」の本当の意味を考えてみた
第一章 「絶対に教えないでください」と言われても
前回、ウォレットについて調べました。
最初は「暗号資産を入れておく財布」だと思っていたウォレット。
でも実際には、暗号資産そのものが、その中に入っているわけではありませんでした。
資産の記録はブロックチェーンにあり、ウォレットは、その資産へアクセスし、動かすための「鍵」を扱う仕組みでした。
そこで登場したのが、
秘密鍵とシードフレーズです。
Web3について少し調べたことがある人なら、こんな注意書きを見たことがあるかもしれません。
「秘密鍵は絶対に他人へ教えないでください。」
「シードフレーズは誰にも見せないでください。」
「紛失しないように大切に保管してください。」
かなり強い言葉です。
そこまで言われると、
「ものすごく大切なものなんだな」
ということは分かります。
でも私は、ここでひとつ疑問に思いました。
なぜ、そこまで大切なのでしょう。
パスワードだって大切です。
銀行の暗証番号も大切です。
クレジットカードの情報だって、他人に教えてはいけません。
では、秘密鍵やシードフレーズは、それらと何が違うのでしょうか。
調べていくと、これは単なる「セキュリティの話」ではありませんでした。
その奥には、
「自分で持つ」とは、どういうことなのか。
Web3の根っこにある考え方が隠れていました。
第二章 秘密鍵は、パスワードではなかった
私は最初、「秘密鍵」と聞いて、パスワードのようなものだと思っていました。
でも、少し違いました。
普段私たちが使っているパスワードには、その向こう側に誰かがいます。
銀行。
通販サイト。
SNS。
さまざまなサービスの運営会社。
私たちがパスワードを入力すると、そのサービスを管理している側が、登録された情報と照らし合わせて本人確認をします。
もしパスワードを忘れても、
「パスワードを忘れた方はこちら」
という入口があります。
別の方法で本人だと確認できれば、新しいパスワードを設定できることもあります。
つまり、私たちが普段使っているパスワードは、基本的に**「管理してくれる誰かがいる世界」**の仕組みなのです。
では、中央の管理者を前提としないWeb3では、どうするのでしょう。
そこで使われるのが秘密鍵です。
秘密鍵は、誰かに見せて、
「この文字列を知っているので、私は本人です」
と確認してもらうためのものではありません。
秘密鍵を使って電子的な署名を作ることで、その秘密鍵を公開することなく、
「この操作をする権限を持つ鍵で、確かに署名されました」
と暗号技術によって確認できるようになっています。BitcoinやEthereumでも、秘密鍵は取引などへの署名に使われます。
前回の記事では、これを分かりやすく、
「秘密鍵そのものが『本人』になる」
と表現しました。
ただ、ここは少しだけ正確にしておきたいところです。
秘密鍵は、名前や顔、住所を確認して、
「この人は○○さん本人です」
と証明するものではありません。
ブロックチェーンは、私たちの顔を知りません。
名前も知りません。
年齢も住所も知りません。
確認しているのは、
「この資産やアカウントを操作する権限につながる鍵を持っているか」
ということです。
人間社会でいう「本人確認」と、Web3でいう「鍵による証明」は、似ているようで少し違います。
この違いが分かったとき、私は秘密鍵が単なる「難しいパスワード」ではないことが、ようやく見えてきました。
第三章 では、シードフレーズは何のためにあるの?
ここで、もうひとつ似たような言葉が登場します。
シードフレーズ。
秘密鍵だけでも難しいのに、また知らない言葉です。
私も最初は、
「秘密鍵とシードフレーズは、結局何が違うの?」
と思いました。
シード(seed)は、日本語で「種」です。
私は、この「種」という言葉を知ったとき、少し分かりやすくなりました。
一粒の種を見ても、そこから育つ大きな木の姿は見えません。
でも、その小さな種には、これから育っていくための情報が詰まっています。
シードフレーズも少し似ています。
一般的な仕組みのひとつであるBIP-39では、複数の単語からなる「ニーモニック」と呼ばれる言葉の並びをもとにシードを生成し、そのシードから決定論的なウォレットを作ることができます。
少し難しいですね。
もっと簡単に言えば、
「たくさんの鍵につながる、大元の種」
のようなものです。
ひとつのウォレットの中には、ひとつの秘密鍵しかないとは限りません。
仕組みによっては、ひとつの大元から複数の鍵やアドレスを管理できます。
だから、スマートフォンが壊れたり、ウォレットアプリを削除してしまったりしても、対応する復元情報を正しく持っていれば、別の環境から同じ資産へ再びアクセスできる場合があります。
ここで、ひとつ大切なことが分かります。
ウォレットアプリと、自分の資産は同じものではない。
ということです。
スマートフォンの中のアプリが「財布そのもの」だと思っていると、
「スマホが壊れたら、暗号資産も消えるの?」
と思ってしまいます。
でも、スマートフォンが壊れたからといって、ブロックチェーン上の資産記録まで一緒に消えるわけではありません。
問題になるのは、
その資産を再び操作するための鍵へアクセスできるかどうか。
なのです。
だからシードフレーズは、単なる「ログイン用のパスワード」ではありません。
ウォレットを復元するための、とても重要な情報です。
Ethereumの公式セキュリティ情報でも、リカバリーフレーズをウォレットの「master key」と表現し、それを知る人は関連するアカウントへアクセスできると注意喚起しています。
「種」という小さな言葉の中に、思っていた以上に大きな意味がありました。
第四章 なくすより怖いのは、「誰かに知られること」かもしれない
秘密鍵やシードフレーズについて調べると、
「紛失しないでください」
という注意を何度も目にします。
もちろん、それはとても大切です。
自己管理型、いわゆるセルフカストディのウォレットでは、秘密鍵や復元に必要な情報を完全に失ってしまうと、資産へアクセスできなくなる可能性があります。
銀行のように、
「なくしたので再発行してください」
と頼める窓口があるとは限りません。
Ethereum公式FAQでも、シードフレーズや秘密鍵を失った場合、自己管理型ウォレットへのアクセスを第三者がリセットしたり復元したりすることはできないと説明されています。
これは確かに怖いことです。
でも、考えてみると、もうひとつ怖いことがあります。
自分がなくすことではなく、誰かに知られることです。
シードフレーズを誰かに知られれば、その人が別の端末からウォレットを復元し、資産へアクセスできる可能性があります。
そのとき、
「スマートフォンは私が持っているから大丈夫」
とは言えません。
スマートフォンそのものが財布なのではないからです。
ここが、現実の財布とは大きく違うところです。
家に財布があるのに、遠く離れた誰かが、その財布と同じ「資産への入口」を作れてしまう。
少し不思議ですが、それほどシードフレーズは重要な情報なのです。
だから、
「ウォレットに問題があります」
「サポートのためにシードフレーズを教えてください」
「確認のため、このページに入力してください」
そんな言葉には十分注意する必要があります。
技術がどれだけ強固でも、人がだまされて鍵を渡してしまえば、その仕組みを守る意味がなくなってしまいます。
ここで私は、少し皮肉なことに気づきました。
Web3は、人を信用しなくても取引できる仕組みを作ろうとしてきました。
でも、その仕組みを使う最後のところには、
やっぱり人がいるのです。
そして詐欺をする人は、難しい暗号を破るよりも、その人間をだました方が簡単なことがあります。
技術が強くなればなるほど、
最後に狙われるのは、人なのかもしれません。
第五章 「紙に書けば安全」で終わらない
では、シードフレーズはどう保管すればよいのでしょう。
調べてみると、
紙に書く。
スクリーンショットを撮らない。
クラウドに保存しない。
オフラインで保管する。
さまざまな方法が出てきます。
どれも、それなりの理由があります。
インターネットにつながる場所へ保存すれば、アカウントの乗っ取りや情報流出の危険が増えます。
スマートフォンで写真を撮れば、自分では意識していなくてもクラウドへ自動同期されることがあります。
だから、オンラインから切り離して保管する方法がよく勧められるのです。
でも、ここでまた疑問が出てきます。
紙なら絶対に安全なのでしょうか。
紙は燃えます。
水に濡れます。
なくすこともあります。
どこへしまったのか忘れることもあります。
自分には大切な情報だと分かっていても、家族が見れば「英単語が書いてあるだけの紙」に見えるかもしれません。
金属など、火や水に強い媒体へ記録する方法もあります。
複数の場所へ分散して保管する考え方もあります。
でも、何かを増やせば、それだけ「見つかる場所」も増える可能性があります。
守ろうとすればするほど、別の弱点が生まれることもある。
私はここで、
「これさえやれば100%安全」という方法を探すこと自体が違うのかもしれない
と思いました。
何から守りたいのか。
盗難なのか。
火災なのか。
紛失なのか。
オンラインからの情報流出なのか。
そして、自分自身が忘れてしまうことなのか。
危険によって、備え方は変わります。
安全とは、
「絶対に何も起きない状態」
ではなく、
「どんな危険があるのかを知り、それに備えている状態」
なのかもしれません。
これはWeb3だけではなく、私たちが何か大切なものを守るときにも通じる考え方のように思います。
第六章 もし、「自分」が突然いなくなったら?
ここまで調べてきて、私はもうひとつ気になることがありました。
自分で秘密鍵を管理する。
自分でシードフレーズを守る。
それは分かりました。
でも、
もし、その「自分」が突然いなくなったらどうなるのでしょう。
事故に遭うかもしれません。
病気になるかもしれません。
年齢を重ねて、保管場所を思い出せなくなることもあるでしょう。
そして、いつかは誰にでも人生の終わりが来ます。
銀行預金なら、本人が亡くなったあとも、法律に基づいた相続手続きがあります。
では、自己管理している暗号資産はどうでしょう。
ブロックチェーン上に資産の記録が残っていても、その資産を動かすために必要な情報へ誰もアクセスできなければ、事実上、誰にも動かせない状態になる可能性があります。
資産はある。
でも、触れられない。
そんなことが起こり得るのです。
では、
「家族にシードフレーズを教えておけばいい」
のでしょうか。
それも簡単ではありません。
自分が生きている間から完全な復元情報を共有すれば、その時点でセキュリティ上のリスクが増えるからです。
ここには、とても難しい矛盾があります。
自分が元気な間は、秘密にして守りたい。
でも、
自分に何かあったときには、大切な人へ引き継ぎたい。
秘密と継承。
この二つを、どう両立するのか。
私は、秘密鍵について調べていて、まさか「人が亡くなった後」のことまで考えるとは思っていませんでした。
でも、考えてみれば当然なのかもしれません。
「自分で持つ」というなら、
「自分が持てなくなったとき」
のことまで考えて、初めて本当に「持つ」ということになるのかもしれません。
第七章 「自分のもの」なら、全部ひとりで守るべき?
暗号資産の世界には、
“Not your keys, not your coins.”
という有名な言葉があります。
自分で鍵を管理していなければ、その資産を完全に自分でコントロールしているとは言えない、という考え方を表す言葉です。
取引所など第三者に暗号資産を預けている場合、利用者自身が秘密鍵を管理していない形もあります。
その場合、サービス側のトラブルや制限によって、資産へ自由にアクセスできなくなるリスクがあります。
だからこそ、
「自分の資産の鍵は、自分で持とう」
というセルフカストディの考え方が大切にされてきました。
この考え方は、とてもよく分かります。
でも私は、ここでも少し立ち止まりました。
すべての人が、全部ひとりで安全に管理できるのでしょうか。
デジタル機器が得意な人もいれば、苦手な人もいます。
複雑な管理が得意な人もいれば、そうではない人もいます。
年齢を重ねれば、今までできていたことが難しくなることもあります。
突然の病気や事故だってあります。
もし、
「自分で完璧に管理できる人だけが、本当の意味で自由になれる」
のだとしたら、その自由を使える人は限られてしまいます。
これは、Web3が広く使われるようになるための大きな課題のひとつなのではないでしょうか。
実際、Ethereumでも、従来のシードフレーズ中心の管理を超えて、より使いやすいアカウント管理や復旧の仕組みを実現しようとする「アカウント抽象化」などの開発が進められています。
つまり、
「全部自分で覚えて、全部自分で守る」
だけがWeb3の未来とは限らないのです。
自分で持つ自由。
そして、
困ったときに取り戻せる安心。
その二つをどう両立するのか。
Web3は、今もその答えを探している途中なのだと思います。
第八章 「自分で守る」の、その先へ
秘密鍵とシードフレーズについて調べ始めたとき、私はセキュリティの話を書くつもりでした。
誰にも教えない。
なくさない。
安全な場所へ保管する。
それを書けば、一つの記事になると思っていました。
でも、調べていくうちに、それだけでは終わらなくなりました。
秘密鍵の向こう側には、
「自分のものを、自分で持つとはどういうことなのか」
という、もっと大きな問いがありました。
誰かに預ければ、困ったときに助けてもらえるかもしれません。
その代わり、その人や組織を信用する必要があります。
自分で鍵を持てば、誰かの許可を待たずに自分の資産を動かせる自由があります。
その代わり、自分で守る責任も生まれます。
どちらかが正しくて、どちらかが間違っている。
そんな単純な話ではないのだと思います。
大切なのは、
違いを知ったうえで、自分で選べること。
なのかもしれません。
そして、もうひとつ。
今回の記事を書きながら、私の中に残った言葉があります。
「自分で持つ」ということと、
「全部ひとりで抱える」ということは、
同じではないはずです。
Web3が目指している「自分で持てる世界」が、本当に多くの人に開かれたものになるためには、
自由だけでは足りないのかもしれません。
失敗したとき。
忘れたとき。
年齢を重ねたとき。
自分ひとりでは管理できなくなったとき。
それでも、その人の自由や権利を奪わずに支えられる仕組みが必要になります。
技術が進めば、そんな方法も少しずつ生まれてくるのかもしれません。
Web3を調べていると、こういうことが何度も起こります。
技術のことを調べていたはずなのに、
最後には、人のことを考えている。
秘密鍵とシードフレーズも、そうでした。
小さな「鍵」の話から始まったのに、
その先には、
自由。
責任。
信用。
そして、人と人との支え合いまでつながっていました。
Web3は、まだ完成した世界ではありません。
だからこそ、
「この技術はすごい」
だけで終わるのではなく、
「この仕組みを、人が本当に安心して使うためには何が必要なのだろう。」
そこまで考えてみる。
それもまた、Web3を学ぶ面白さなのかもしれません。
