Ledgerの「25番目の単語」は使った方が安全?── パスフレーズの仕組みと初心者が注意したいこと

私は現在、Ledgerを使ってビットコインを自己保管している。

ハードウェアウォレットについて調べていると「25番目の単語を設定すると、さらに安全になる」という話を見かける。

Ledgerで通常使われるリカバリーフレーズは24単語である。

それなのに、なぜ25番目の単語があるのだろうか。

さらに気になるのが「安全性が上がるなら、全員が使った方がいいのではないか?」という点である。

しかし調べてみると、この「25番目の単語」は単純に24単語へもう1単語追加するだけの機能ではなかった。

安全性を高められる一方で「自分がパスフレーズを忘れればそのウォレットへアクセスできなくなる」という新しいリスクも生まれる。

Ledger自身もパスフレーズを「高度なセキュリティ機能」と位置づけている。(パスフレーズ:Ledgerの高度なセキュリティ機能)

今回は、

  • 「25番目の単語」とは何なのか
  • 24単語だけの場合と何が違うのか
  • 24単語が漏れてもBTCを守れるのか
  • パスフレーズを忘れたらどうなるのか
  • なぜ初心者には難しいのか
  • 2つの独立ウォレットへ分散する方法とは何が違うのか
  • 結局、初心者も使った方がいいのか


を私なりに考えてみたい。

目次

結論:安全性を高められるが、全員が使った方がいいとは思わない

最初に結論を書く。

Ledgerのパスフレーズを正しく使えば、24単語だけで自己保管する場合よりも追加の防御を作ることができる。

通常は、

24単語のリカバリーフレーズ
↓
ウォレットA

という形になる。

ここへ自分で決めたパスフレーズを加えると、

24単語+パスフレーズ
↓
別のウォレットB

が作られる。

ウォレットAとウォレットBでは、アドレスも秘密鍵も別になる。

Ledger公式も、パスフレーズを設定すると通常の24単語だけではアクセスできない別のアカウント群が作られると説明している。(パスフレーズ:Ledgerの高度なセキュリティ機能)

そのため、例えば24単語を第三者に知られてしまっても、パスフレーズまで知られていなければパスフレーズ付きウォレットへは24単語だけではアクセスできない。

これは大きなメリットである。

しかし反対に、自分自身が正確なパスフレーズを忘れてしまってもそのウォレットへアクセスできなくなる。

Ledgerはパスフレーズを保管してくれない。1文字違うだけでも別のアカウントになる。

つまり、他人から盗まれるリスクを減らせる代わりに、自分自身の管理ミスによるリスクが増える。

ここまで理解したうえで使う機能だと思う。

そもそも「25番目の単語」とは何なのか

Ledgerでは、通常24単語のリカバリーフレーズを使う。

そして、これとは別に自分で決めた文字列を追加できる。

これがLedgerでいうパスフレーズであり、一般的に「25番目の単語」と呼ばれている。

ただし、「25番目の単語」という名前から本当に英単語を1個追加するものだと思わない方がいい。

Ledgerのパスフレーズは最大100文字まで設定でき、大文字・小文字を区別し、数字や記号も使える。(パスフレーズ:Ledgerの高度なセキュリティ機能)

例えば、appleのような1単語にもできるし、もっと長い文字列にもできる。

したがって初心者には、「25番目の単語」=24単語とは別に自分で設定する秘密の追加情報と理解する方が分かりやすいと思う。

パスフレーズを設定すると「鍵が1個増える」わけではない

私が最初に勘違いしそうになったのがここである。

例えば家の玄関に鍵A+鍵Bの2個を付けるように、「24単語に追加のパスワードを付けて、同じウォレットを二重ロックする」ような仕組みに思える。

しかし、少し違う。

Ledgerでパスフレーズを使うと、別の秘密鍵・別のアドレスを持つ新しいアカウント群が作られる。 (パスフレーズ:Ledgerの高度なセキュリティ機能)

イメージすると、

通常

リカバリーフレーズ24単語
↓
ウォレットA
↓
BTCアドレスA

パスフレーズあり

リカバリーフレーズ24単語
+
パスフレーズ
↓
ウォレットB
↓
BTCアドレスB

となる。

つまり「ウォレットAに追加のロックを掛けるのではなく、同じ24単語を土台にして別のウォレットBを作る」と考えた方が分かりやすい。

パスフレーズを設定しただけでは、今持っているBTCは守られない

ここはかなり重要である。

例えば、現在Ledger Walletの通常のBitcoinアカウントで1BTCを持っているとする。

ここでパスフレーズを設定しても、その1BTCが自動的にパスフレーズで保護されるわけではない。

パスフレーズを設定すると、新しいアドレスを持つ別のアカウントが作られる。

最初はその新しいアカウントの残高は0BTCである。

パスフレーズで管理したいのであれば、通常アカウントからパスフレーズ付きアカウントの新しい受取アドレスへBTCを実際に送る必要がある。

Ledger公式も、パスフレーズを設定しても既存資産は移動せず、新しいアカウントは空の状態から始まると説明している。(パスフレーズ:Ledgerの高度なセキュリティ機能)

これは初心者がかなり勘違いしやすいところだと思う。

メリット1:リカバリーフレーズが漏洩しても、パスフレーズ付きBTCにはアクセスできない

パスフレーズを使う最大のメリットはここだと思う。

通常のリカバリーフレーズのみのウォレットAだけで管理している場合、この24単語を第三者に知られると、その人が対応ウォレットを使って同じウォレットを復元できる可能性がある。

一方、リカバリーフレーズ24単語+パスフレーズ→ウォレットBとしてBTCを保管していた場合、ウォレットBへアクセスするにはリカバリーフレーズ24単語と正確なパスフレーズの両方が必要になる。(パスフレーズ:Ledgerの高度なセキュリティ機能)

例えば、24単語を第三者に知られたがパスフレーズは自分だけが知っているという場合、第三者が24単語から通常ウォレットを復元することはできても、それだけではパスフレーズ付きのウォレットを同じように開くことはできない。

つまり、24単語とは別の秘密情報を追加することで、一つの情報が漏れただけでは資産へ到達しにくい状態を作れる。

ただし、簡単なパスフレーズでは追加防御が弱くなる

では、

  • password
  • bitcoin
  • 123456

のような簡単なパスフレーズでもいいのだろうか。

Ledgerは、すべてのパスフレーズが同じ強さではなく、長く複雑なものほど強い保護になり、辞書に載っている単純な単語をそのまま使うことは避けるよう説明している。(パスフレーズ:Ledgerの高度なセキュリティ機能)

つまり、「パスフレーズを設定した」という事実だけで安心するのは危険だと思う。

リカバリーフレーズ24単語を知られたことを想定して追加防御として使うのであれば、第三者に簡単に推測されないパスフレーズにする必要がある。

一方で、複雑にすればするほど、今度は自分自身が間違える可能性が高くなる。

ここがパスフレーズの難しいところである。

最大のデメリット:パスフレーズを忘れると自分もアクセスできない

パスフレーズ最大の注意点はこれである。

例えば、24単語+「MyBitcoin123!」というパスフレーズでウォレットを作ったとする。

数年後、「確かMyBitcoin123!だったはず」と思って「Mybitcoin123!」と入力する。

見た目はほとんど同じだが、Bがbになっている。

これだけでも別のパスフレーズとして扱われ、別のアカウントが作られる。

Ledgerは、パスフレーズでは大文字・小文字も区別され、1文字違っただけでも別のアカウント群になると説明している。(パスフレーズ:Ledgerの高度なセキュリティ機能)

そこで「残高が0BTCになっている」と表示されても、BTCが消えたわけではない。

違うパスフレーズから作られた別ウォレットを開いている可能性がある。

しかし正しいパスフレーズを思い出せなければ、元のパスフレーズ付きウォレットへ戻れない。

そしてLedgerも、そのパスフレーズを教えてくれない。Ledgerはユーザーのパスフレーズを保存・バックアップしていないためである。

24単語だけ残っていても復元できない

通常のLedgerなら、

Ledger本体を紛失
↓
新しい対応デバイスを用意
↓
24単語を入力
↓
ウォレットを復元

ということができる。

しかしパスフレーズ付きウォレットの場合は違う。

必要なのは「24単語+正確なパスフレーズ」である。

24単語だけでは、通常のウォレットは復元できても、パスフレーズ付きウォレットへはアクセスできない。

そのため、「24単語さえ金属プレートに残してあるから大丈夫」とは言えなくなる。

パスフレーズを使用するなら、24単語だけでなく、パスフレーズを将来自分が確実に再現できる状態にしておく必要がある。

パスフレーズを24単語と同じ場所へ書いたら意味がないのか?

ここも考え方が難しい。

例えばリカバリーフレーズ24単語とパスフレーズを全部一緒に書いて同じ金庫へ入れたとする。

この場合、その紙を第三者に盗まれれば、24単語とパスフレーズを同時に知られる可能性がある。

つまり、パスフレーズによる「別の秘密情報」というメリットは小さくなる。

だからといって、「絶対に記録せず頭の中だけで覚える」という方法にもリスクがある。

数年後に忘れる、病気や事故が起きる、自分が亡くなった後に家族が資産へアクセスできない、といった問題が起こり得る。

パスフレーズを使う場合には、第三者に同時に知られにくく、なおかつ自分が失わない管理方法を自分で考える必要がある。

この管理の難しさこそ、Ledgerがパスフレーズを高度な機能としている理由の一つだと思う。

「25番目の単語」は24単語の代わりにはならない

パスフレーズだけ覚えておけばいいわけでもない。

パスフレーズ付きウォレットは、24単語+パスフレーズの組み合わせで成り立っている。

したがって、24単語を紛失+パスフレーズだけ残っているという状態でも十分ではない。

反対に、24単語は残っている+パスフレーズを紛失でも、パスフレーズ付きウォレットを同じ状態で復元できない。

Ledgerは、正確なパスフレーズを失えば関連する隠しウォレットへのアクセスを失うと明記している。

つまり、守るべき秘密情報が1つから2つに増えるということである。

これをメリットと見るか、管理負担と見るかは人によって変わると思う。

Ledgerでは2つの使い方がある

現在Ledgerでは、パスフレーズの使い方として大きく2種類が案内されている。

一時的にパスフレーズを入力する方法

パスフレーズを使いたいときに、Ledgerデバイスにその都度入力する方法である。

デバイスの電源を切ると通常のウォレットへ戻り、再びパスフレーズ付きウォレットを使うにはパスフレーズを入力する必要がある。

毎回正しいパスフレーズを入力しなければならないので、管理の難易度は高い。

第二のPINコードに紐づける方法

もう一つは、パスフレーズを第二のPINコードに紐づける方法である。

例えば、

通常PIN
→ 通常ウォレット

第二PIN
→ パスフレーズ付きウォレット

のように使い分けられる。

毎回長いパスフレーズを入力する必要がないため便利だが、パスフレーズそのものを忘れてよくなるわけではない。

本体を紛失・故障した場合などに復元するには、24単語だけでなく正確なパスフレーズも必要になる。

通常ウォレットとパスフレーズ付きウォレットを両方持てる

パスフレーズを設定したからといって、通常のウォレットが消えるわけではない。

例えば、

通常ウォレット

24単語のみ
↓
0.05BTC

パスフレーズ付きウォレット

24単語+パスフレーズ
↓
0.95BTC

のように分けることもできる。

Ledgerは、この仕組みを使って通常アカウントとパスフレーズ付きの別アカウントを使い分けることができると説明している。(パスフレーズ:Ledgerの高度なセキュリティ機能)

ただし、「隠しウォレット」と呼ばれることがあっても、ブロックチェーン上の取引そのものが透明性を失ったり、BTCが見えなくなったりする機能ではない。

あくまで、24単語だけからはそのパスフレーズ付きウォレットを同じように復元できないという意味で考えた方がいい。

2つの独立ウォレットへ分散する方法とは何が違う?

私は以前、ビットコインを2つの独立したウォレットへ分散する方法について考えた。

例えば、

ウォレットA
→ リカバリーフレーズA
→ BTCの50%

ウォレットB
→ リカバリーフレーズB
→ BTCの50%

である。

パスフレーズを使う方法はこれとは違う。

2つの独立ウォレット

リカバリーフレーズA
↓
ウォレットA

リカバリーフレーズB
↓
ウォレットB

秘密情報の土台そのものを2つに分ける。

パスフレーズ

同じリカバリーフレーズA
↓
通常ウォレット

同じリカバリーフレーズA
+
パスフレーズ
↓
別ウォレット

24単語という土台は共通している。

したがって、「2つの独立ウォレット」と「パスフレーズで作った2つのアカウント」は、同じ分散方法ではない。

例えばメーカー固有のシード生成問題まで分散したいのであれば、別のデバイスで独立した新しいリカバリーフレーズを作る方法の方が目的に合う場合もある。

一方、24単語だけが漏洩した場合の追加防御を作りたいのであれば、パスフレーズには意味がある。

つまり、何のリスクを減らしたいのかによって方法が違う。

パスフレーズを使えば24単語の管理が雑でもいいわけではない

パスフレーズを設定すると、「24単語を盗まれても大丈夫なのだから、24単語はそこまで厳重に管理しなくてもいいのでは?」と思うかもしれない。

これは避けたい。

まず、通常の24単語だけで管理しているアカウントがあれば、そちらは24単語だけで復元できる。

さらに、パスフレーズが弱ければ追加防御として十分ではない可能性もある。

Ledgerもパスフレーズは長く複雑にし、単純な単語(辞書に載ってる単語)を避けることを推奨している。

そして何より、24単語自体はパスフレーズ付きウォレットを復元するためにも必要である。

そのため、パスフレーズを使っていても、リカバリーフレーズ24単語はこれまで通り重要な秘密情報として安全に管理する必要がある。

初心者はパスフレーズを使った方がいいのか?

ここがこの記事で一番考えたかった部分である。

パスフレーズを正しく使えば、追加のセキュリティを作ることができる。

しかし私は、「安全性が上がる機能だから、初心者もとりあえず設定した方がいい」とは思わない。

パスフレーズを追加すると、

24単語を守る

だけだったものが、

24単語を守る
+
パスフレーズを守る
+
通常ウォレットとパスフレーズ付きウォレットを区別する

という管理になる。

つまり、技術的な防御は増えるが、人間側の管理は確実に複雑になる。

Ledger自身もこの機能を「高度なセキュリティ機能」として扱っている。

初心者の場合はまず、

  • リカバリーフレーズとは何か
  • リカバリーフレーズを安全に保管する方法
  • Ledger本体を紛失した場合の復元方法
  • BTCの送受信方法
  • フィッシング対策
  • 少額での復元確認


など、通常の自己保管を確実にできるようになる方が先だと思う。

私なら「何となく不安だから」という理由だけでは使わない

パスフレーズには明確なメリットがある。

しかし、「セキュリティ機能は多いほど安全そうだから」という理由だけで設定するのは避けたい。

例えば、「リカバリーフレーズが物理的に盗まれるリスクへの追加防御が欲しい」「通常ウォレットとは別の秘密情報を必要とするウォレットを作りたい」など、自分が減らしたいリスクを理解したうえで使うべき機能だと思う。

反対に、「パスフレーズを5年後も一字一句正確に再現できる自信がない」「リカバリーフレーズだけでも管理に不安がある」「家族への承継方法が複雑になりすぎる」のであれば、パスフレーズを使わずリカバリーフレーズを確実に管理する方が自分にとって安全という場合も十分ある。

Ledgerも、通常のリカバリーフレーズ24単語自体が安全に生成された重要なバックアップであり、パスフレーズは追加の高度な機能という位置づけにしている。

私の結論:自分が確実に復元できる仕組みを作ることが重要

Ledgerの「25番目の単語」と呼ばれるパスフレーズは、自己保管の安全性をさらに高められる機能である。

しかし、「24単語にもう1単語付け足せば安全性が上がる」という単純な話ではない。

パスフレーズを使うと、

リカバリーフレーズ
↓
通常ウォレット

とは別に、

リカバリーフレーズ
+
パスフレーズ
↓
別のウォレット

が作られる。

そのため24単語だけが漏れても、正確なパスフレーズが分からなければ、パスフレーズ付きウォレットへは24単語だけではアクセスできない。

これは大きなメリットである。

一方で、パスフレーズを忘れれば、自分自身もそのウォレットへアクセスできなくなる。

1文字違う。大文字と小文字が違う。記号が一つ抜けている。

それだけでも別のウォレットになる。Ledgerがパスフレーズを後から教えてくれることもない。

つまり、「パスフレーズは、他人に盗まれにくくするために管理しなければならない秘密情報をもう一つ増やす機能」も言える。

だから私は、「パスフレーズを使う=必ず安全になる」とは考えない。

重要なのは、自分が管理できるかどうかである。

リカバリーフレーズだけを確実に管理する。

リカバリーフレーズとパスフレーズの両方を確実に管理する。

どちらが自分にとって資産を失う可能性を低くできるのか。

セキュリティ機能を増やすことより、自分が確実に復元できる仕組みを作ることの方が重要だと私は思う。

※当サイトは暗号資産の購入を勧めるものではない。暗号資産の購入・送金・保管は、必ず自分で確認して自己責任で行ってほしい。

error: Content is protected !!