単語が誤って入力される確率は非常に低く(バックアップではなく、ヘルパーの辞書に)、それでもブロックチェーンウォレットを使って復元することが可能です。
以下は、この非常に低い確率のシナリオの例と説明である。
まず、ニモニックを間違って入力しても使えるようになる仕組みを理解するために、ニモニックの作成過程を理解する必要があります。
ニモニックを作る。
回文は、BIP-39で定義された標準化プロセスを用いてウォレットが自動的に生成する。 このウォレットは、エントロピー源から始まり、チェックサムを加え、最後に乱数を単語のリストにマッピングします:1.
1. 128~256ビットの乱数を作成する 2.
SHA256ハッシュの最初の数ビット(12ビットニーモニックビットの最初の4ビット)をこの乱数のチェックサムとして提示する 3.
チェックサムを乱数列の最後に
加える
4.
6.
出来上がった連続した単語群をヘルパー
語とする。
また、次の例のように間違った単語が入力された場合(最初のビットだけが間違って入力されている)。
ウォレットのために生成されたニーモニックワードは
リボン音声フレーム黒反対銀河分割どちらチューブ最大疲れ
明らかSHA256ハッシュ:00101011 11111111
。
人間の誤字脱字のニーモニックは
リボン音声フレーム黒反対銀河分割どちらチューブ最大疲れ明らかSHA256ハッシュ:00101011
11101010
両方のSHA256ペアの最初の4ビットが同じであること、すなわちチェックサムも同じであることがわかると思います。
これは、両ペアのヘルパーがBIP39に準拠しているため、ブロックチェーンウォレットを使用して両者を回収することができるためです。
確率で簡単に説明すると、まず最後のヘルパーワードとしてランダムな単語を選び、ヘルパーワードが12ビットのとき、残りの11ビットをランダムに選び、確率的には24ビットのヘルパーワードでは256回に対し、16回ペアの集合を見つけることが可能
ですから、「間違った単語を入力しても、うまくニモニックが使える」ことが普通であることは、ニモニックの安全性を信頼できないものにしてしまうわけではありません。
ニーモニックは「脳の財布」と混同されることがありますが、同じではありません。
大きな違いは、ブレインウォレットがユーザーが選んだ言葉で構成されているのに対し、ニーモニックはウォレットがランダムに作成し、ユーザーに提示することです。
両者の重要な違いは、ニーモニックがより安全である要因である。結局のところ、人間は乱数を生成する能力が非常に弱いのである。
つまり、BIP39に準拠したトークンが人為的に試されたとしても、ウォレットで生成されたトークンを使うことが安全でないということにはなりません。2種類のトークンは、ウォレットで生成されたトークンはよりランダム(=より安全)であり、ブレインウォレット(間違ったトークンを使った)はランダムに生成されて使われるという点でセキュリティが異なっているのです。
ウォレットが暗号的に安全な手段(ハードウェアTRNGなど)で生成する乱数は真にランダムであり、ユーザーの慣習的なトークンの選択によって乱数の質が保証されることはありません。