SymbolのVanity Addressジェネレータを使ってみる

本記事は[nem #2 Advent Calendar 2020](https://qiita.com/advent-calendar/2020/nem-2)の記事になります。
[nem Advent Calendar 2020はこちら](https://qiita.com/advent-calendar/2020/nem)

過去のアドカレはこちら
[nem Advent Calendar 2019](https://qiita.com/advent-calendar/2019/nem)
[nem #2 Advent Calendar 2019](https://qiita.com/advent-calendar/2019/nem-2)
[nem Advent Calendar 2018](https://qiita.com/advent-calendar/2018/nem)
[nem #2 Advent Calendar 2018](https://qiita.com/advent-calendar/2018/nem-2)
[nem Advent Calendar 2017](https://qiita.com/advent-calendar/2017/nem)

---

#Symbol Vanity Address Generator
シンボルバニティアドレスジェネレータっていうものが出てきました。

[Symbol Vanity Address Generator](https://github.com/rb2nem/vanitysymbol)

以前もあったのですがアドレスのフォーマットが新しくなったので使えなかったのですが、ありがたいことに最新版に対応してくれました。
早速ですので使ってみようと思います。が、その前に

#Vanity Address(バニティアドレス)とは？
アドレスが(ほぼ)無限に生成できるのが暗号通貨のアドレスです。
大体無意味な文字列や数字が並んでいるモノですが、Vanity Addressは人間にも読める文字がちょっとだけ並んでいるアドレスになります。
特に意味はありませんが、**多少イケてるアドレス**です。

そもそも普通に生成してもアドレスが被る可能性はゼロではないそうですが、
宝くじが連続HITするよりも遥かに確率は低いそうです。
3億円の宝くじが当たる確率すらよく知りませんが、北海道並みの敷地の中で
上空数万メートルから10円玉を投げてそれを額で受け止めるぐらいの確率でやっと当選できると
本当かどうか分からない話を聞いたことがあります。
自室で30センチからでも怪しいので調べる気にはなれません。


#準備
dockerを使います。
入れます。
```$ docker pull rb2nem/vanitysymbol
```


#使い方

まず、アドレスに表示させたい文字ですが長いと見つけにくくなります。
お気軽に3文字ぐらいが良いかもしれません。

アドレスの先頭2文字は指定不可です。
その次に表示させたい文字を入れる場合
```$ docker run --rm -it --network none rb2nem/vanitysymbol '表示させたい文字'```

どこでもいいから文字を混ぜたい場合
```$ docker run --rm -it --network none rb2nem/vanitysymbol '.*表示させたい文字'```

末尾に混ぜたい場合（最後の文字は指定できないらしい）
```$ docker run --rm -it --network none rb2nem/vanitysymbol '.*表示させたい文字.$'```


#やってみた

とりあえずGODでも先頭に混ぜてみようかな？と、やってみました
こんな感じになります

```
$ docker run --rm -it --network none rb2nem/vanitysymbol 'GOD'
Tried 2001 addresses
Tried 4002 addresses
Tried 6003 addresses
Tried 8004 addresses
Tried 10005 addresses
Tried 12006 addresses
Tried 14007 addresses
Tried 16008 addresses
Tried 18009 addresses
Tried 20010 addresses
Tried 22011 addresses
Tried 24012 addresses
Tried 26013 addresses
Tried 28014 addresses
Tried 30015 addresses
Tried 32016 addresses
Tried 34017 addresses
Tried 36018 addresses
Tried 38019 addresses
Tried 40020 addresses
Tried 42021 addresses
Tried 44022 addresses
Tried 46023 addresses
Tried 48024 addresses
Tried 50025 addresses
Tried 52026 addresses
Tried 54027 addresses
Tried 56028 addresses
Tried 58029 addresses
Tried 60030 addresses
Tried 62031 addresses
Tried 64032 addresses
Tried 66033 addresses
Tried 68034 addresses
Tried 70035 addresses
Tried 72036 addresses
Tried 74037 addresses
Tried 76038 addresses
Tried 78039 addresses
MATCH FOUND!
TCGODQ3OWKOBKOJUH4SRJ******************(生成したアドレス)
dc9a******************4c02ff3e******************32c1******************(秘密鍵)

```

これはつまり、78039回アドレス生成して出てきた感じですね。

では、もう1文字追加して『TANU』で試します。

```
$ docker run --rm -it --network none rb2nem/vanitysymbol 'TANU'
Tried 2001 addresses
Tried 4002 addresses
Tried 6003 addresses
Tried 8004 addresses
Tried 10005 addresses
Tried 12006 addresses
Tried 14007 addresses
Tried 16008 addresses
Tried 18009 addresses
Tried 20010 addresses
Tried 22011 addresses
Tried 24012 addresses
Tried 26013 addresses
Tried 28014 addresses
Tried 30015 addresses
Tried 32016 addresses
Tried 34017 addresses
Tried 36018 addresses
Tried 38019 addresses
Tried 40020 addresses
Tried 42021 addresses
Tried 44022 addresses
Tried 46023 addresses
Tried 48024 addresses
Tried 50025 addresses
Tried 52026 addresses
Tried 54027 addresses
Tried 56028 addresses
Tried 58029 addresses
Tried 60030 addresses
Tried 62031 addresses
Tried 64032 addresses
Tried 66033 addresses
Tried 68034 addresses
Tried 70035 addresses
Tried 72036 addresses
Tried 74037 addresses
Tried 76038 addresses
Tried 78039 addresses
Tried 80040 addresses
Tried 82041 addresses
Tried 84042 addresses
Tried 86043 addresses
Tried 88044 addresses
Tried 90045 addresses
Tried 92046 addresses
Tried 94047 addresses
Tried 96048 addresses
Tried 98049 addresses
Tried 100050 addresses
Tried 102051 addresses
Tried 104052 addresses
Tried 106053 addresses
Tried 108054 addresses
Tried 110055 addresses
Tried 112056 addresses
Tried 114057 addresses
Tried 116058 addresses
Tried 118059 addresses
Tried 120060 addresses
Tried 122061 addresses
Tried 124062 addresses
Tried 126063 addresses
Tried 128064 addresses
Tried 130065 addresses
Tried 132066 addresses
Tried 134067 addresses
Tried 136068 addresses
Tried 138069 addresses
Tried 140070 addresses
Tried 142071 addresses
Tried 144072 addresses
MATCH FOUND!
TATANU*********RJQXBQPK43AZJGAYB*********(生成したアドレス)
dc9a******************4c02ff3e******************32c1******************(秘密鍵)
```


144072回試してます。難易度が上がりましたね。
これでも予想より早く見つかったので驚きました。

最後にこの秘密鍵をコピってウォレットに入れれば生成したアドレスが使えるようになります。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/856241/d4ead527-0a58-b572-123a-029e96ed4c5e.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/856241/b3701943-dccf-eea3-3518-f86e4dce4192.png)


とはいえ、本ツールの説明にもありますが、
このツールで生成したアドレスは念のため、大金を投入するアドレスにはしないようにしましょう。
メインネット版も出るそうですので、出たら普段使い用の少額ウォレットにしても良いかもしれませんね。