MonaToolsではサイト用のアドレスとして「MNTooLsCtFRUUCmSbPRnAFFxLZzuQ1nA61」や「MQNATooLsZAGFyXscXFSKMqU6XmyaB3WNX」のように好きな文字で始まるアドレスを生成しています。
このような好きなアドレスを作る方法をまとめてみました。
Vanitygen++ とは?
Vanitygen++ は、ビットコインやモナコインなど 各種暗号通貨 のアドレスを好きな文字列でカスタマイズできるようにするソフトウェアです。
CPU版 と GPU版(OpenCL対応版)があり、 GPU版を使うと高速 にアドレス探索が行えます。
対応通貨は複数あり、コマンドラインオプションで指定することで切り替えることができます。
Vanitigen++のインストール
github上で公開されているのでインストールが必要ですが指示通りにインストールしてもWindowsのWSL(Ubuntu)ではGPU利用がうまくできず断念。(過去にUbuntu20上ではうまく動いたのでWSL特有の問題と思われる)
かわりにWindows用のバイナリを公開してくれている方がいたのでそちらを利用しました。
「vanitygen-plusplus-ported-for-vs2019-v1.00-binaries-x86-x64-dynamic-static-debug-release.zip」をダウンロードして解凍してください。
解凍するといろいろな環境向けのバイナリファイルが入っていますが 多くの場合は 「Binaries\x86\Static-Release」以下のファイルを使用で問題ないはずです。
Vanitygen++ の使い方(モナコインの例)
Windowsの場合コマンドプロンプトで上記のフォルダを開いて以下のコマンドを実行できます。
CPU版で実行する場合
モナコイン(MONA)のバニティアドレスを生成する例です。先頭に MQNATooLs
という文字列を含むアドレスを探します。
CPUの性能にもよりますが先頭6文字(M+6文字)程度ならCPUでも数時間で見つけられます。
7文字の場合は数十日かかるのでGPU版の利用がおすすめします。
./vanitygen++ -C MONA MQNATooLs
GPU版(oclvanitygen++)で実行する場合
GPUを使って並列処理し、高速にアドレスを探索します。
環境にも寄りますが8文字の場合で1日前後でしょうか?
./oclvanitygen++ -C MONA MQNATooLs
ちなみにUbuntu+GTX1080環境で2年前に上記を生成した時はだいたい1週間強かかりました。
現時点でWindows11+4080superで実行したところ推定17時間と、1080の10倍以上高速になったようです。
ビットコインのアドレスを生成する例
モナコイン以外にも、ビットコイン(BTC) のバニティアドレスを生成できます。
コマンドオプション -C
に BTC
を指定しましょう。たとえば、先頭に 1Best
という文字列を含むアドレスを探す場合は以下のように実行します。
# CPU版
./vanitygen++ -C BTC 1Best
# GPU版
./oclvanitygen++ -C BTC 1Best
ビットコインのアドレス は、通常 1
から始まる (P2PKHアドレスの場合)ため、カスタマイズしたい文字列も 1
の後から指定する形になります。
文字列が長いほど探索量が膨大になるため、CPU版 だと非常に時間がかかることがあります。
GPU版 を使えば大幅に高速化できますが、マシンスペックや文字列の難易度によって所要時間は左右されます。
ほかに生成できる暗号通貨
Vanitygen++ は、ビットコインやモナコイン以外にも複数の暗号通貨に対応しています。
主な例を挙げると、以下の通貨がサポートされています。
- Bitcoin (BTC)
- Etherium (ETH)
- Litecoin (LTC)
- Dogecoin (DOGE)
- Dash (DASH)
- Zcash (ZEC)
- BitZeny (ZNY)
- 他にもフォークコインやアルトコインに幅広く対応
具体的にどのコインをサポートしているかは、 vanitygen++ -C LIST
のコマンドで確認可能です。
生成した秘密鍵の使い方(MONA)
一般的なウォレットにインポートすれば使えます。Electrum-monaで確認済。
モナカード等MonaPartyで使う場合は 自分はいつもモナパレットを使っています。
「ウォレットを開く」から「ニーモニックまたは秘密鍵(WIF)」に上記で生成した秘密鍵を入力して開くと使えます。
なおmpurseはこの形式の秘密鍵のインポートにバグがあるようで使えません。
インポートと閲覧はできるもの署名や送金は失敗してしまいます。 ざっとソースを見た感じだとインポート自体は成功しているけれども署名や送金の際に非圧縮秘密鍵を圧縮秘密鍵として扱って署名しようとしてエラーになってる???と思ったけど 詳細は不明(JavaScriptはあまり得意じゃないw)
まとめ
- Vanitygen++ のインストール
Windowsからバイナリをダウンロードして解凍する - アドレスの生成
コマンドプロンプトからコマンドで生成します。- モナコイン:
./vanitygen++ -C MONA パターン
- ビットコイン:
./vanitygen++ -C BTC パターン
- GPU版を使う場合は
oclvanitygen++
を使用
- モナコイン:
- その他の暗号通貨にも対応
さまざまなアルトコインに対応しているので、自分の好きな通貨のバニティアドレスを生成できます。 - MonaPartyでの利用はモナパレットから
バニティアドレスはウォレットを見栄え良くしたり、自分の個性をアピールする際に便利です。
一方で、文字列が長いほど探索に時間 がかかり、 電力消費 も大きくなるため、ほどほどの長さで挑戦してみてください。
また、生成された秘密鍵は大切に保管し、万が一の紛失・盗難に注意しましょう。
安全な暗号通貨ライフをお楽しみください。