無料プレビュー約9分で読めます

シードフレーズが鍵になる仕組み

ほとんどのウォレットは、Bitcoinのコミュニティで作られた公開の標準規格、BIP-39、BIP-32、BIP-44に従っています。Ethereumのウォレットも同じ規格を使っています。これらを合わせると、一つの単語リストで、ウォレットがこれまでに表示したすべてのアドレスを復元できる理由がわかります。

一つずつ見ていく

  1. ウォレットが128ビットまたは256ビットの乱数を生成します。
  2. BIP-39が短いチェックサムを加え、その結果を2,048語からなる固定の単語リストに対応させます。こうして12語または24語ができます。1語は11ビットを表します。
  3. 単語と、任意のパスフレーズは、わざと遅く作られた鍵ストレッチング関数を通り、512ビットのシードになります。
  4. BIP-32は、そのシードから鍵のツリーを育てます。マスター鍵が一つあり、そこからウォレットに必要なだけ子鍵が作られます。
  5. BIP-44は、ツリーのどこに各コインや各アカウントを置くかを定めています。だから、別のウォレットアプリでも同じアドレスを見つけられるのです。

その結果、単語はウォレットのパスワードではありません。単語こそがウォレットです。単語を持っている人は、あなたの端末がなくても、対応するどのアプリでも、世界のどこからでも、すべての鍵を再現できます。

任意のパスフレーズ

ウォレットによっては、パスフレーズ(passphrase)を追加できます。25番目の単語と呼ばれることもあります。同じ単語でもパスフレーズが違えば、まったく別の鍵のセットが生まれます。これは、誰かが単語だけを見つけた場合にあなたを守ってくれます。一方で、パスフレーズを忘れれば、単語を失ったのと同じように、その資金は完全に失われます。しかも、パスフレーズが使われていたことをほのめかす手がかりは何もありません。

どう失敗するのか

  • 単語をウェブサイトやフォーム、サポートのチャットに入力すると、ウォレットを渡すことになります。正当なサービスが単語を必要とすることは決してありません。
  • 写真、メモアプリ、メールの下書き、クラウド上の文書は、コピーされ、同期され、ときにはスキャンされます。そこに保存された単語は、漏れているものとして扱ってください。
  • 単語リストは公開されていて、チェックサムがあるため、有効な組み合わせは一部だけです。欠けた単語やつづりを間違えた単語は復元できることもあります。しかし、自分で組み立てたフレーズはランダムではなく、安全ではありません。