先頭文字キーマイナーを自作して先頭6文字生成して検証
この記事はNostr Advent Calendar 2025(https://adventar.org/calendars/12046 )の7日目の記事になりますのだ。
なのだ!いろんなことやってるぱぶいさん(npub1pa6uywpffsf7xmr7wrfpjd06y4u8y00p0vcc8gqg9x6rzv62rj0qu9n8ft)なのだ🦝。
追記:mnemonicが機能として使えないため修正。
なんでまたNostrの世界に戻ってきたか
クラウドフレアが障害起こしたときに軒並みSNSサービスが停止され尽くして、Nostrの世界に戻ってきたのだ。そこまで環境すらないくせに自作で何か作れると言ったらNostrのツールくらいしかなかったから、Copilotに質問しまくって作ってたら面白くて作りまくってたのだ。
とりあえずできたもの(全部Rust)
- Nostrイベント署名ツール(egui)
- キーを指定数だけ大量に作るツール(egui/CLI両方)
- キーをQRにするツール(egui)
- キーをHTMLに落とし込んで印刷できるようにするツール(egui)
- バニティーキーマイナー(CLI)
既存の先頭文字キーマイナー
− glasnostr(go言語) github
いっぱいあるけど「先頭キーだけがあればいいのだ」と思ったから、いろいろCopilotに聞いて作ったのだ。とりあえず動かし方はシンプルに
terminal ./vanity nanka0 nanka2 nanka3
で複数指定して見つけてもらう感じにしたのだ。もちろんb,i,o.1は入力を受け付けないようにエラー返すようにした。
キーをどれだけ生成したかの進捗は100万ごとに報告してもらう感じで
試行数:1000000
試行数:2000000
…
こう出力してもらうふうにしたのだ。生成できたキーはnpub,nsec,hexpublic,hexsecretでCSV出力するのだ。
本題の検証
とりあえず環境、OSはAntix(live to ram),CPUはintel i5-7300U(4コア),メモリ16GBで検証。
この環境では100万キーを生成するのに12秒くらいかかる。
とりあえず以下のコマンドを2つを10億生成までそれぞれやった
./vanity rac00n arygma r4c00n nan0da aryguma
./vanity nan0da n4n0da n4n0d4 nan0d4 araygma arygma
結果どうなったか、上はr4c00n、arygma、nan0da、rac00nの4件がヒット、2.5億回試行をやって1個。
下はn4n0d4、arygmaが2つで、3.3億回試行をやって1個だったのだ。
理論値くらいは出てるのだね。Copilotに見積もってもらった3億回に一回くらいという結果になったのだ。
なお、7文字は見つからなかったのだ。7文字の壁は厚いのだ🦝🧱。
おわりに感想なのだ。
- PCが数時間単位でうなりまくってたのだ💻🌬。
- 7文字はどれだけ頑張ってうまいこと作ってもスペックの問題で生成は難しい。
改めて見返すとしょぼいことに何時間も格闘していたのだ。コードはまたどこかで上げますのだ。
Discussion