バニティアドレスとは?
バニティアドレスとは、一部を自分で選んだウォレットアドレスです。ランダムに見えにくく、見分けやすくなります。例:
- bc1qcafe…x7kp
- 1Coffee…x7Kp
ここでは 2 つの形式を選べます。bc1q アドレスはすべて小文字で手数料が安く、1、b、i、o を除く文字と数字を使えます。レガシーアドレスは 1 で始まり、大文字と小文字が混在し、0、O、I、l は含まれません。
仕組み
アドレスの先頭や末尾に使う短い文字を入力し、アドレスを検索 をクリックします。一致するアドレスが見つかるまで、ブラウザが秘密鍵を試します。
アドレスが見つかったら、秘密鍵を表示してウォレットにインポートします。
bc1q の場合、文字が 1 つ増えるごとに検索時間は 32 倍になります。レガシーアドレスでは約 58 倍、大文字と小文字を区別しない(Aa がオフの)場合は約 29 倍です。1 の直後は A から Q の文字が最も出やすくなっています。速度は CPU スレッド数で決まるので、パソコンが重くなったら減らしてください。
確率 50% の所要時間は目安であり、カウントダウンではありません。アドレスごとに毎回新しい試行となるため、すぐに終わることも数倍かかることもあり、経過した時間が結果を近づけるわけではありません。
セキュリティ
すべての計算はブラウザ内で行われ、データが端末の外に出ることはありません。データベースもサーバー側のコードもなく、ページのセキュリティポリシーによりスクリプトのネットワーク通信も禁止されています。タブを閉じると鍵は消えます。
Vanity Keys は鍵を保存できません。ご自身で確かめたい場合は、次の 3 つの方法があります。
- ページの読み込み後にインターネットを切断し、そのまま使う
- ページをダウンロードして、オフラインのパソコンで使う
- ダウンロードしたファイルを確認する:ページの動作はすべてこの 1 つの HTML ファイルに含まれています
各検索は、ブラウザの暗号論的に安全な乱数生成器 crypto.getRandomValues による 256 ビットの乱数から始まり、そこから連続する鍵を確認します。有名な生成ツール Profanity は、起点の乱数が 32 ビットしかなかったために破られました。見つかったアドレスは、表示する前に独立した別の実装で再計算されます。
コピーサイトと似たアドレス
このようなページは鍵を生成するため、改変されたコピーは鍵を盗むことができます。コピーは本物と見分けがつかず、似たドメインで公開されていることがあります。検索の前にサイトのアドレスを確認し、高額を扱う場合はオフラインのファイルを使ってください。
他人が生成した秘密鍵やバニティアドレスは絶対に使わないでください。作成者がコピーを持っている可能性があります。
詐欺師も、あなたが使っているアドレスと先頭と末尾が同じアドレスを作り、履歴から誤ってコピーさせようとします。送金前には両端だけでなくアドレス全体を確認してください。
パフォーマンス
速度はブラウザと端末によって異なります。最近のパソコンなら、CPU スレッド 1 つで毎秒数十万件のアドレスを確認できます。スマートフォンやタブレットでも使えますが、速度は落ちます。パソコンを使い続けられるよう、検索は CPU スレッドの半分で始まります。
Vanity Keys はブラウザで動くのでインストールは不要です。グラフィックカードを使うツールははるかに高速ですが、扱いが難しく、実行するプログラムを信頼する必要があります。
互換性
アドレスはビットコインのメインネットで使えます。取引所やウォレットからはどちらの形式にも送金できます。bc1q アドレスのほうが送金時の手数料は安くなります。
得られるのは WIF 形式の秘密鍵で、リカバリーフレーズではありません。Electrum にインポートできます。bc1q アドレスの場合は鍵の直前に p2wpkh: を付け、レガシーの場合はそのままで構いません。ハードウェアウォレットは独自に鍵を生成するため、インポートできません。