私はビットコインをハードウォレットのLedger Nano Xで管理をしているのですが、常々思っていたことがあります。
2048単語の中から24単語をランダムに組み合わせているので天文学的な数字になっているらしく、現代の技術を持ってしても解読に何億年とかのレベルで時間がかかるからリカバリーフレーズは安心!…というのをどこかで見たことはあります。
しかし人間は宝くじ1等に当たる確率が1億分の1でも10億分の1でも数字が大きすぎると、確率の違いを感じられなくなる話と同じように、途方のない確率を見せつけられてもどうしても心配になってしまうもの。
確率的にありえないと分かっていてもついつい心配になってしまうので、より強固な秘密鍵の管理方法を調べていたら、日本のLedger販売代理店の公式ページに書いてありました。
簡単に言ってしまえば、リカバリーフレーズに自作の25単語目を足すというもの。
この記事では25単語目を追加することによる効果と、やり方について紹介していきたいと思います。
※なおビットコインの仕組みに詳しくなく機械音痴な人間が書いた記事なので、アタリマエのことを書いていて笑われる内容かもしれません…!
リカバリーフレーズが流出してもビットコインは奪われない
Ledger Nanoシリーズを購入すると画像の左上にあるリカバリーシートをメモする紙がついてきますが、ここに記入した24単語が何らかの理由で第三者にバレてしまうと、管理しているビットコインは全て奪われてしまいます。
しかしパスフレーズを設定したウォレットでビットコインを保管しておくと、24単語がバレてもパスフレーズがバレなければビットコインは無事というわけです。
パスフレーズはリカバリーフレーズと違って、
- 大文字
- 小文字
- 記号
から最大100文字以内で自分で設定をすることができます。
普段アマゾンとかツイッターとかサイトにログインをするときのパスワードと同じようなイメージですね。
パスフレーズを設定すると、24単語オンリーのときにアクセスできるウォレットとは別で、24単語+パスフレーズのウォレットにそれぞれアクセスできるようになります。
パスフレーズの設定方法
まずは普通に4~8桁のPIN番号で24単語オンリーのウォレットにアクセスをし、
- Setting
- Security
- Passphrase
の順番で進めていきます。
次にAttach to a PINとSet temporaryの2つが選べますが、Attach to PINは2つ目のPIN番号を作成し、24単語+パスフレーズのウォレットにPIN番号のみでアクセスできるようにする方法です。
一方Set temporaryは24単語+パスフレーズのウォレットにアクセスをするときは、毎回パスフレーズを入力する方法となります。
Attach to a PINはハードウォレットを紛失+PIN番号がバレていたら終わりですが、Set temporaryはハードウォレットを紛失してもパスフレーズがバレていなければビットコインは安全です。
なのでよりセキュリティを高めたい方はSet temporaryを選択するのがいいでしょう。
私はそれなりの頻度でビットコインの受け取りのためのウォレットを作成するので、利便性を考えてAttach to a PINを選択しました。
ハードウォレットを紛失した際の復元方法
ハードウォレットを紛失した後に24単語+パスフレーズのウォレットにアクセスをする方法は、まずリカバリーフレーズ24単語から復元をします。
その後パスフレーズを作成したときと同じ要領でSetting~Passphraseまで進めて、同じパスフレーズを入力します。
そうすると24単語+パスフレーズのウォレットで管理しているビットコインの送金が可能になります。
リカバリーフレーズ~パスフレーズでの復元はLedger NanoシリーズだけではなくTREZORといった他のハードウォレットでも復元可能なようです。
パスフレーズを設定して秘密鍵を25単語にしてみました
というわけでパスフレーズの簡単な設定方法は終わりでここからは私の体験談。
私はこのパスフレーズという存在を詳しく認識していなかったがばっかりに、秘密鍵の管理方法で涙ぐましい(?)試行錯誤をしていました。
(↑詳しくはこちらの記事で紹介しています)
リカバリーシートには2単語だけ抜いておいて、泥棒や家族に見られてもビットコインを奪われないようにしていたのですが、パスフレーズさえ設定していれば24単語全部盗み見されてもパスフレーズがバレなければビットコインは無事です。
であれば2単語抜いて記憶喪失→セルフGOXのリスクを背負うよりも24単語全部書いておいてパスフレーズの管理に注力するほうが効率がいいので、2単語抜きリカバリーシートの運用はやめることにしました。
これで完璧!と思ったのですが、パスフレーズのウォレットを作成しても、今までの積立をしてきたビットコインは24単語オンリーのウォレットで保管をしてあるので、未だリカバリーフレーズ総当たり攻撃で奪われるリスクがあります。
なので24単語オンリーウォレットにアクセス→25単語ウォレットで作成したアドレスに送金もしています。
理屈は分かっていても実際に操作をして確かめないと不安だったので、予め少額のビットコインで実験もしています。
24単語オンリーウォレットにアクセスした状態で25単語ウォレットのビットコインを送金しようとするとエラーで送金できず。その逆の25単語ウォレットにアクセス状態で24単語ウォレットのビットコインが送金できないのも確認しました。
そしてLedger Nano XでわざとPIN番号を3回入力間違えをして端末のリセットをかけてから、24単語のリカバリーフレーズで復元後、パスフレーズで25単語ウォレットにアクセスができるのも確認をしてから多額のビットコインの移し替えを行いました。
Ledger Nano Xでのビットコイン送金方法は以下の記事↓で紹介をしています。
デフォルトの送金手数料だと0.001BTC(5,500円くらい)と高額だったので手数料ケチって600円ぐらい送金をしたのですが、未だ着金せず(笑
まあガチホ分のビットコインなので着金が遅れても問題はないのですが…。
まとめ
送金手数料で600円はかかりましたが、これでリカバリーシートの24単語が盗み見されても奪われることのない、よりセキュリティが強固なビットコインを手にすることができました。
現状ビットコインが奪われる可能性は、
- シード自体がバレる
- リカバリーフレーズを総当たりor盗み見された上でパスフレーズもバレる
- 私のLedger Nano Xが奪われた上で3回以内に正しいPIN番号を入力される
の3パターンしかありません(多分)
そのため、もう確率的にありえないと分かっていてもなんとなく怯えてしまうリカバリフレーズ総当たり作戦や、ビットコインに詳しい泥棒にリカバリーフレーズを盗み見されて奪われるリスクもほとんど考えなくて良くなって晴れ晴れしい気持ちです!
しかしプログラム的な意味でのパスフレーズの詳しい仕組みとかはまだよく分かっていないので、パスフレーズで安全にビットコインを管理しつつ、よりビットコインへの理解度を深められるように勉強をしていこうと思います。
なお、この記事を参考にしてパスフレーズを設定をしようとしている方は、私と同じように必ず少額のビットコインから試すようにしましょうね!