シードフレーズとは?安全に保管する方法

· 8 分で読めます

シードフレーズとは、どのコンピューターでも暗号資産ウォレットを復元できる、短い単語のリストです。このガイドでは、それらの単語が何なのか、ウォレットがどのように単語を鍵に変換するのか、アクセスを失わないための保管方法、そしてなぜほかの誰にも見せてはいけないのかを説明します。例には Blocknet ウォレットと、その 12 単語のリカバリーシードを使います。

シードフレーズとは何ですか?

簡単な答え

シードフレーズは、リカバリーフレーズやニーモニックとも呼ばれ、通常 12 個または 24 個の普通の単語からなるリストで、ウォレットの鍵の元になる秘密を表しています。対応するウォレットに単語を入力すると、コンピューターやウォレットファイルがなくなっていても、同じ鍵、アドレス、残高が復元されます。

どの暗号資産ウォレットも、秘密鍵の上に成り立っています。鍵は長いランダムな数で、手で書き写すのは大変で、間違えやすいものです。シードフレーズは同じ秘密を決まったリストの単語で表すので、紙に書き写し、読み返し、何年も後に入力できます。

Blocknet ウォレットでは、このフレーズをリカバリーシードと呼びます。長さは 12 単語で、新しいウォレットを作成するときにウォレットが生成します。これを安全に保管しておけば、いつでもウォレットを取り戻せます。

シードフレーズはどのように機能しますか?

多くのウォレットは BIP39 に従っています。これは 2013 年に Marek Palatinus、Pavol Rusnak、Aaron Voisine、Sean Bowe が Bitcoin 向けに書いた規格で、3 つのステップで動作します。

  1. ランダムなビット。 ウォレットは 128〜256 ビットの乱数を生成します。12 単語のフレーズは 128 ビット、24 単語のフレーズは 256 ビットを保持します。
  2. チェックサム、そして単語。 ウォレットはそのビットを SHA-256 でハッシュ化し、ハッシュの先頭の数ビットをチェックサムとして追加します(12 単語なら 4 ビット)。次に結果を 11 ビットずつに分けます。それぞれが 0〜2,047 の数になり、2,048 語のリストから 1 つの単語を選びます。
  3. 鍵のためのシード。 フレーズを使うとき、ウォレットはそれを HMAC-SHA512 を使った PBKDF2 に 2,048 回通し、64 バイトのシードを得ます。鍵はそのシードから生成されます。

ウォレットがフレーズの誤りを指摘できるのは、このチェックサムのおかげです。ランダムな 12 単語の組み合わせのうち、有効なチェックサムを持つのは 16 分の 1 だけなので、ほとんどの打ち間違いや単語の入れ替わりは、何かが起こる前に検出されます。また英語のリストは、すべての単語の最初の 4 文字が重複しないように作られているので、手書きの文字が読みにくいときに役立ちます。

Blocknet での 12 単語の意味

Blocknet ウォレットは標準の英語版 BIP39 リストと 128 ビットのランダム性を使うので、リカバリーシードは必ず 12 単語です。ウォレットは BIP39 の PBKDF2 ステップで、追加のパスフレーズなしに単語を 64 バイトのシードに変換します。最初の 32 バイトがスペンドキーに、最後の 32 バイトがビューキーになります。アドレスはこの 2 つの鍵の公開部分から作られるので、同じ 12 単語からは常に同じアドレスに戻ります。スペンドキーとビューキーが連携してプライベートに支払いを受け取る仕組みは、ステルスアドレスのガイドで説明しています。

128 ビットとはどれくらいの大きさでしょうか。可能なシードは 2^128 通り、約 3.4 × 10^38 あります。単語を推測してウォレットを見つけることは誰にもできません。現実的にウォレットに入る唯一の方法はフレーズを見ることなので、このガイドの残りではフレーズの上手な保管方法を説明します。

シードフレーズ、パスワード、ウォレットファイルの違いは?

ウォレットを守る 3 つのものは、よく混同されます。Blocknet ウォレットでそれぞれが果たす役割は次のとおりです。

何か 何ができるか
リカバリーシード 書き留める 12 個の単語 どのコンピューターでもウォレットを完全に管理できる
ウォレットのパスワード 自分で決めるパスワード このコンピューターのウォレットファイルを開ける
ウォレットファイル 1 つの .wallet.dat ファイル パスワードで暗号化された鍵と履歴

パスワードはウォレットファイルを暗号化し(ウォレットは Argon2id で暗号化キーを導出し、AES-GCM で暗号化します)、Blocknet はパスワードをどこにも保存しません。パスワードは鍵の生成には一切関わりません。12 単語から復元するときは、新しいウォレットファイル用に新しいパスワードを決めます。そのためシードは最も重要なバックアップになります。ファイルをなくしてパスワードを忘れても機能するからです。

シードフレーズはどのように保管すべきですか?

簡単な答え

単語を順番どおりに紙に書き、すべての単語を画面と照らし合わせて確認し、その紙をオフラインの安全な場所に保管します。2 部目のコピーを作り、別の場所に保管します。写真、テキストファイル、メモアプリ、メール、クラウドストレージにはフレーズを入れないでください。それを読んだ人は誰でも資金を管理できるからです。

次の習慣で、シードフレーズを安全かつ使える状態に保てます。

シードフレーズを絶対に人に教えてはいけないのはなぜですか?

12 個の単語は、あなたのウォレットそのものです。それを持っている人は誰でも自分のコンピューターでウォレットを復元し、中身をすべて送金でき、トランザクションは一度チェーンに載ると取り消せません。Blocknet ウォレットは、シードの表示を求めるたびに次の警告を表示します。

WARNING: Your recovery seed controls all funds.
Anyone with this seed can steal your coins.
Never share it. Never enter it online.

どれほど公式に見えても、シードを求められたら詐欺だと考えてください。ウォレットの開発者、取引所、プール、サポート担当者がシードを必要とすることはありません。単語を入力してウォレットを「確認」や「同期」するよう求める Web サイトやアプリは、あなたのコインを奪おうとしています。

用事を済ませるためにシードを教える必要はまったくありません。

Blocknet のリカバリーシードを表示・復元するには?

コマンドライン版ウォレットでは、シェルのプロンプトで seed と入力します。ウォレットは上の警告を表示し、確認を求め、パスワードを尋ねてから、12 個の単語を番号付きの行で表示します。デスクトップ版ウォレットでは、設定を開いて「View Recovery Seed」を選びます。こちらも最初にパスワードを尋ねます。

復元には、どちらのウォレットも使えます。

ウォレットは単語とチェックサムを確認し、鍵を復元し、チェーンをスキャンして自分のアウトプットを探すので、同じアドレスで残高と履歴が戻ってきます。ウォレットの作成、シードのバックアップ、アドレスの確認は、Blocknet ウォレットガイドで順を追って説明しています。

シードを紙に安全に保管したら、アドレスを活用する準備ができました。Blocknet のマイニングガイドでは、seine にそのアドレスを設定して bntpool.com でマイニングを始める方法を紹介しています。

よくある質問

シードフレーズと秘密鍵の違いは何ですか?

秘密鍵は資金を直接管理するもので、シードフレーズはウォレットが秘密鍵に変換する、人が読める形のバックアップです。Blocknet ウォレットでは、12 個の単語からスペンドキーとビューキーの両方が生成されるので、フレーズだけでウォレットとそのすべての機能を復元できます。

シードフレーズをなくしたらウォレットを復元できますか?

ウォレットファイルとそのパスワードがあれば、ウォレットは引き続き使えます。シードフレーズは、ファイルやパスワードを失ったときのためのバックアップです。ウォレットがまだ開けるうちに、seed コマンドまたは View Recovery Seed でフレーズをもう一度表示し、書き留めてください。

シードフレーズをパスワードマネージャーに保存しても安全ですか?

Blocknet ウォレットのガイドでは、シードは紙に書いてオフラインで保管し、テキストファイル、メモアプリ、クラウドストレージには入れないよう求めています。12 個の単語を読んだ人は誰でも資金を管理できるからです。別々の安全な 2 か所に紙のコピーを保管すれば、インターネットに一切触れないバックアップになります。

シードフレーズはどのウォレットアプリでも使えますか?

単語リストは共通の規格ですが、単語を鍵に変換する方法はコインごとに異なります。Blocknet のシードは、公式の Blocknet コマンドライン版ウォレットまたはデスクトップ版ウォレットで復元してください。どちらも 12 個の単語を受け付け、ウォレットがチェーンをスキャンした後、同じアドレスと残高を復元します。