{ "version": "https://jsonfeed.org/version/1.1", "user_comment": "This feed allows you to read the posts from this site in any feed reader that supports the JSON Feed format. To add this feed to your reader, copy the following URL -- https://matoken.org/blog/tag/vanity-adress/feed/json/ -- and add it your reader.", "home_page_url": "https://matoken.org/blog/tag/vanity-adress/", "feed_url": "https://matoken.org/blog/tag/vanity-adress/feed/json/", "language": "ja", "title": "Vanity adress – matoken's blog", "description": "Is there no plan B?", "icon": "https://matoken.org/blog/wp-content/uploads/2025/03/cropped-1865f695c4eecc844385acef2f078255036adccd42c254580ea3844543ab56d9.jpeg", "items": [ { "id": "https://matoken.org/blog/?p=3891", "url": "https://matoken.org/blog/2023/04/18/openssh-ed25519-vanity-adress/", "title": "OpenSSH ED25519 \u306e Vanity Adress \u3092\u63a2\u3057\u3066\u307f\u308b", "content_html": "
\n
\n
\n

\u4ee5\u524d\u4f55\u7a2e\u985e\u304b\u306eVanity Adress \u3092\u6398\u3063\u3066\u307f\u307e\u3057\u305f\uff0e

\n
\n\n
\n

\u3075\u3068SSH\u9375\u306eVanity Adress \u306f\u3069\u3046\u3060\u308d\u3046\u3068\u8a66\u3057\u3066\u307f\u307e\u3057\u305f\uff0e

\n
\n

\n
\n

\u9375\u306fEd25519 \uff0e\u9375\u30da\u30a2\u306e\u516c\u958b\u9375\u304c\u3044\u3044\u611f\u3058\u3060\u3068\u826f\u3055\u305d\u3046\u306a\u6c17\u304c\u3057\u307e\u3059\uff0e

\n
\n
\n
\n
\n

OpenSSH ssh-keygen

\n
\n
\n

\u307e\u305a\u306fOpenSSH \u306e ssh-keysign \u3067\u4f5c\u3063\u3066\u307f\u307e\u3059\uff0e\u5927\u6587\u5b57\u5c0f\u6587\u5b57\u3044\u305a\u308c\u304b\u306e mat0 \u304c\u898b\u3064\u304b\u308b\u307e\u3067\u4f5c\u6210\u3057\u3066\u3044\u307e\u3059\uff0e

\n
\n
\n
\n
$ umask 277; no=0; tmp=`mktemp -d -p ~/tmp/`; chmod 700 ${tmp}; while true;do no=$(($no + 1)); ssh-keygen -t ed25519 -f ${tmp}/${no} -N '' -C '' > /dev/null; grep -i -E m[a@]t[o0] ${tmp}/${no}.pub && echo ${tmp}/${no} && break; done\nssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIOt6L8+9eF3T8o/M4BnDVZ5F7SVdPmat0hlM8s/8zV/r\n/home/matoken/tmp/tmp.rGb5eSpEaJ/26016
\n
\n
\n
\n

26016\u9375\u30da\u30a2\u3092\u751f\u6210\u3057\u305f\u3068\u3053\u308d\u3067186\u79d2\u307b\u3069\uff0c\u5927\u4f53140.6keys/sec \u304f\u3089\u3044\uff0e\u9045\u3044\u611f\u3058?vmstat \u3084top \u3092\u898b\u3066\u3082cpu \u306f\u3042\u307e\u308a\u4f7f\u3048\u3066\u3044\u306a\u3044\u611f\u3058\u3067\u3059\uff0e
\n-a 1 (default:16) \u306b\u3059\u308b\u3068160.8/keys/sec \u3068\u5c11\u3057\u65e9\u304f\u306a\u308a\u307e\u3057\u305f\u304c\u9375\u3092\u76d7\u307e\u308c\u305f\u5834\u5408\u306e\u5f37\u5ea6\u304c\u4e0b\u304c\u308b\u3068\u601d\u3046\u306e\u3067\u3084\u3081\u305f\u307b\u3046\u304c\u826f\u3055\u305d\u3046\u3067\u3059\uff0e

\n
\n
\n
\n
\n

ssh-keygen-ed25519-vanity

\n
\n
\n

tool \u3092\u63a2\u3057\u3066\u307f\u307e\u3059\uff0e

\n
\n\n
\n
clone&build
\n
\n
$ git clone https://github.com/ionathanch/ssh-keygen-ed25519-vanity\n$ cd ssh-keygen-ed25519-vanity\n$ make
\n
\n
\n
\n
run
\n
\n
$ ./vanity mato\nssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIEHmibZNyKuT/GO9rloS8qmatoFOZ4N7fJcRSOPCwsky\n-----BEGIN OPENSSH PRIVATE KEY-----\nb3BlbnNzaC1rZXktdjEAAAAABG5vbmUAAAAEbm9uZQAAAAAAAAABAAAAMwAAAAtzc2gtZWQyNTUxOQAAACBB5om2Tcirk/xjva5aEvKpmraBTmeDe3yXEUjjwsLJMgAAAIjwyswa8MrMGgAAAAtzc2gtZWQyNTUxOQAAACBB5om2Tcirk/xjva5aEvKpmraBTmeDe3yXEUjjwsLJMgA\nAAEBro42f/ycDTNvMw3JHIGD5dzg+VVgshQw+RWIhN/I2WEHmibZNyKuT/GO9rloS8qmatoFOZ4N7fJcRSOPCwskyAAAAAAECAwQF\n-----END OPENSSH PRIVATE KEY-----
\n
\n
\n
\n

shell \u3067ssh-keygen \u3092\u56de\u3059\u3088\u308a\u901f\u305d\u3046\u3067\u3059\uff0e\u66f4\u306bREADME \u306b\u306fmoreutils \u306eparallel \u3092\u4f7f\u3063\u3066\u4e26\u5217\u5b9f\u884c\u3059\u308b\u65b9\u6cd5\u3082\u66f8\u304b\u308c\u3066\u3044\u307e\u3057\u305f\uff0e

\n
\n
\n
\n
$ time parallel -n 0 ./vanity vanity -- 1 2 3 4
\n
\n
\n
\n

\u4ee5\u4e0b\u306fREADME \u306b\u3042\u3063\u305f\u6587\u5b57\u6570\u306b\u3088\u308a\u3069\u306e\u304f\u3089\u3044\u6642\u9593\u304c\u304b\u304b\u308b\u304b\u306e\u76ee\u5b89\u3067\u3059\uff0e

\n
\n
\n
\n
\n

Rough performance stats
\nObviously since it\u2019s brute force the times are probabilistic, but this gives you an idea of how feasible it would be to find your desired number of characters.

\n
\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
SubstringTime (s)
\n

a

\n
\n

0.002

\n
\n

ar

\n
\n

0.015

\n
\n

ars

\n
\n

0.501

\n
\n

arso

\n
\n

3.753

\n
\n

arson

\n
\n

abandon all hope ye who seek five sequential characters

\n
\n
\n
\n
\n

\u5927\u5206\u901f\u3044\u3088\u3046\u306a\u6c17\u304c\u3057\u307e\u3059\u304c\u30a2\u30c9\u30ec\u30b9\u306e\u6307\u5b9a\u304c\u56fa\u5b9a\u306a\u3088\u3046\u3067\u5927\u6587\u5b57\u5c0f\u6587\u5b57\u3069\u3063\u3061\u3067\u3082\u3068\u304b\u4ee3\u66ff\u8a18\u53f7\u3067\u3082\u3044\u3044\u306a\u3069\u3068\u3044\u3063\u305f\u3053\u3068\u304c\u51fa\u6765\u306a\u305d\u3046\u3067\u3059\uff0e

\n
\n
\n
\n
\n

vanity-keygen

\n
\n
\n

\u307e\u305f\u5225\u306e\u3082\u306e\u3082\u8a66\u3057\u3066\u307f\u307e\u3059\uff0e

\n
\n\n
\n
clone&build
\n
\n
$ go install github.com/pcarrier/vanity-keygen@latest\n$ vanity-keygen -h\nUsage of vanity-keygen:\n  -cpuprofile string\n        write cpu profile to file\n  -threads int\n        number of threads to run (default 4)
\n
\n
\n
\n
run
\n
\n
$ time vanity-keygen -threads `nproc` [mM][aA@][tT][oO0]\n2023/04/05 08:30:06 Looking for a public key matching [mM][aA@][tT][oO0]\n2023/04/05 08:30:06 Public key:\nssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIA2rzJZSoqwrVF/Pf2FzKgfL/eMATOI/V7bjdmqkGV5B\n2023/04/05 08:30:06 Private key:\n-----BEGIN OPENSSH PRIVATE KEY-----\nb3BlbnNzaC1rZXktdjEAAAAABG5vbmUAAAAEbm9uZQAAAAAAAAABAAAAMwAAAAtz\nc2gtZWQyNTUxOQAAACANq8yWUqKsK1Rfz39hcyoHy/3jAEziP1e243ZqpBleQQAA\nAIiaywRCmssEQgAAAAtzc2gtZWQyNTUxOQAAACANq8yWUqKsK1Rfz39hcyoHy/3j\nAEziP1e243ZqpBleQQAAAEDBsKpzquKe0/QTheaoVSChK8gF6d38u5mwrtqihfMY\n6A2rzJZSoqwrVF/Pf2FzKgfL/eMATOI/V7bjdmqkGV5BAAAAAAECAwQF\n-----END OPENSSH PRIVATE KEY-----\n\nreal    0m0.331s\nuser    0m0.652s\nsys     0m0.048s
\n
\n
\n
\n

\u3053\u306e\u30c4\u30fc\u30eb\u306f\u30b9\u30ec\u30c3\u30c9\u6570\u3082\u6307\u5b9a\u3067\u304d\u308b\u3057\uff0c\u30a2\u30c9\u30ec\u30b9\u306e\u6307\u5b9a\u3082\u67d4\u8edf\u306a\u306e\u3067\u826f\u3055\u305d\u3046\u3067\u3059\uff0e

\n
\n
\n
\n
$ vanity-keygen aaaaa\n2023/04/05 08:30:12 Looking for a public key matching aaaaa\n2023/04/05 08:30:13 Generated 71,000 keypairs (69,788 Hz)\n2023/04/05 08:30:14 Generated 141,000 keypairs (70,310 Hz)\n2023/04/05 08:30:15 Generated 212,000 keypairs (70,454 Hz)\n2023/04/05 08:30:16 Generated 284,000 keypairs (70,792 Hz)\n2023/04/05 08:30:17 Generated 356,000 keypairs (71,040 Hz)
\n
\n
\n
\n

\u63a2\u7d22\u4e2d\u306b\u3069\u306e\u304f\u3089\u3044\u306e\u9375\u3092\u751f\u6210\u3057\u305f\u304b\u3082\u8868\u793a\u3055\u308c\u307e\u3059\uff0e

\n
\n
\n

\u826f\u3055\u305d\u3046\u306a\u306e\u3067Tor \u306e\u3068\u304d\u306e\u3088\u3046\u306b\u5c11\u96fb\u529b\u306aSBC\u306eRaspberry Pi 3 modelB \u3067\u3082\u8a66\u3057\u3066\u307f\u307e\u3057\u305f\uff0e

\n
\n
\n
Raspberry Pi OS armhf \u5411\u3051\u306bamd64 \u74b0\u5883\u3067\u30af\u30ed\u30b9\u30d3\u30eb\u30c9
\n
\n
$ GOARCH=arm GOARM=7 go build .\n$ file ./vanity-keygen\n./vanity-keygen: ELF 32-bit LSB executable, ARM, EABI5 version 1 (SYSV), statically linked, Go BuildID=Z_Cr4XM48GAIHSA-MQng/2wFeSpgr5k0WPASNS4ho/3FEwAtva33LS2ByXLcjP/0WSk_fEc6xXCDZEo89yH, with debug_info, not stripped
\n
\n
\n
\n
Pi3B\u3067\u5b9f\u884c
\n
\n
$ ./vanity-keygen -threads 4 aaaa\n2023/04/05 08:22:58 Looking for a public key matching aaaa\n2023/04/05 08:22:59 Generated 0 keypairs (0 Hz)\n2023/04/05 08:23:00 Generated 4,000 keypairs (1,991 Hz)\n2023/04/05 08:23:01 Generated 4,000 keypairs (1,332 Hz)\n2023/04/05 08:23:02 Generated 8,000 keypairs (1,990 Hz)\n2023/04/05 08:23:03 Generated 8,000 keypairs (1,598 Hz)\n^C\n$ cat /proc/device-tree/model && echo\nRaspberry Pi 3 Model B Rev 1.2
\n
\n
\n
\n

\u2026\u2026\u5927\u5206\u9045\u304f\u306a\u308a\u307e\u3057\u305f\uff0ePC\u3067\u5b9f\u884c\u3057\u305f\u307b\u3046\u304c\u826f\u3055\u305d\u3046\u3067\u3059\uff0e

\n
\n
\n
\n
\n

\u307e\u3068\u3081

\n
\n
\n

\u6c17\u306b\u5165\u3063\u305f\u9375\u304c\u51fa\u6765\u305f\u3089\u30d1\u30b9\u30d5\u30ec\u30fc\u30ba\u3092\u8a2d\u5b9a\u3057\u305f\u308a\uff0c

\n
\n
\n
\n
$ ssh-keygen -p -f ./key\nKey has comment ''\nEnter new passphrase (empty for no passphrase):\nEnter same passphrase again:\nYour identification has been saved with the new passphrase.
\n
\n
\n
\n

\u30b3\u30e1\u30f3\u30c8\u3092\u66f8\u304d\u63db\u3048\u305f\u308a\u3057\u307e\u3057\u3087\u3046\uff0e

\n
\n
\n
\n
$ ssh-keygen -c -f ./key\nEnter passphrase:\nOld comment:\nNew comment: vanity\nComment 'vanity' applied
\n
\n
\n
\n

Tor \u306eVanity adoress \u306a\u3093\u304b\u306b\u6bd4\u3079\u308b\u3068\u3042\u307e\u308a\u76ee\u7acb\u305f\u306a\u3044\u3067\u3059\u304c\uff0chostkey \u3084GitHub/Lab \u306a\u3069\u3067\u4e00\u822c\u516c\u958b\u3057\u3066\u3044\u308b\u9375\u306b\u4f7f\u3046\u306e\u306f\u3042\u308a\u3067\u306f\u3068\u601d\u3044\u307e\u3059\uff0e

\n
\n\n
\n
\n
\n

\u74b0\u5883

\n
\n
\n
\n
$ cpu-info\nPackages:\n        0: Intel Core i5-7300U\nMicroarchitectures:\n        2x Sky Lake\nCores:\n        0: 2 processors (0-1), Intel Sky Lake\n        1: 2 processors (2-3), Intel Sky Lake\nLogical processors (System ID):\n        0 (0): APIC ID 0x00000000\n        1 (2): APIC ID 0x00000001\n        2 (1): APIC ID 0x00000002\n        3 (3): APIC ID 0x00000003\n$ lsb_release -dr\nNo LSB modules are available.\nDescription:    Debian GNU/Linux 12 (bookworm)\nRelease:        12\n$ arch\nx86_64
\n
\n
\n
\n
\n", "content_text": "\u4ee5\u524d\u4f55\u7a2e\u985e\u304b\u306eVanity Adress \u3092\u6398\u3063\u3066\u307f\u307e\u3057\u305f\uff0e\n\n\n\nNostr \u306e Vanity address \u3092\u6398\u308b \u2013 matoken\u2019s meme\ntor\u306ehidden service\u3067\u4f7f\u3046\u30a2\u30c9\u30ec\u30b9\u3092\u8a08\u7b97\u3059\u308b(Vanity Addresses) \u2013 matoken\u2019s meme\n\n\n\n\u3075\u3068SSH\u9375\u306eVanity Adress \u306f\u3069\u3046\u3060\u308d\u3046\u3068\u8a66\u3057\u3066\u307f\u307e\u3057\u305f\uff0e\n\n\n\n\u9375\u306fEd25519 \uff0e\u9375\u30da\u30a2\u306e\u516c\u958b\u9375\u304c\u3044\u3044\u611f\u3058\u3060\u3068\u826f\u3055\u305d\u3046\u306a\u6c17\u304c\u3057\u307e\u3059\uff0e\n\n\n\n\nOpenSSH ssh-keygen\n\n\n\u307e\u305a\u306fOpenSSH \u306e ssh-keysign \u3067\u4f5c\u3063\u3066\u307f\u307e\u3059\uff0e\u5927\u6587\u5b57\u5c0f\u6587\u5b57\u3044\u305a\u308c\u304b\u306e mat0 \u304c\u898b\u3064\u304b\u308b\u307e\u3067\u4f5c\u6210\u3057\u3066\u3044\u307e\u3059\uff0e\n\n\n\n$ umask 277; no=0; tmp=`mktemp -d -p ~/tmp/`; chmod 700 ${tmp}; while true;do no=$(($no + 1)); ssh-keygen -t ed25519 -f ${tmp}/${no} -N '' -C '' > /dev/null; grep -i -E m[a@]t[o0] ${tmp}/${no}.pub && echo ${tmp}/${no} && break; done\nssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIOt6L8+9eF3T8o/M4BnDVZ5F7SVdPmat0hlM8s/8zV/r\n/home/matoken/tmp/tmp.rGb5eSpEaJ/26016\n\n\n\n26016\u9375\u30da\u30a2\u3092\u751f\u6210\u3057\u305f\u3068\u3053\u308d\u3067186\u79d2\u307b\u3069\uff0c\u5927\u4f53140.6keys/sec \u304f\u3089\u3044\uff0e\u9045\u3044\u611f\u3058?vmstat \u3084top \u3092\u898b\u3066\u3082cpu \u306f\u3042\u307e\u308a\u4f7f\u3048\u3066\u3044\u306a\u3044\u611f\u3058\u3067\u3059\uff0e\n-a 1 (default:16) \u306b\u3059\u308b\u3068160.8/keys/sec \u3068\u5c11\u3057\u65e9\u304f\u306a\u308a\u307e\u3057\u305f\u304c\u9375\u3092\u76d7\u307e\u308c\u305f\u5834\u5408\u306e\u5f37\u5ea6\u304c\u4e0b\u304c\u308b\u3068\u601d\u3046\u306e\u3067\u3084\u3081\u305f\u307b\u3046\u304c\u826f\u3055\u305d\u3046\u3067\u3059\uff0e\n\n\n\n\nssh-keygen-ed25519-vanity\n\n\ntool \u3092\u63a2\u3057\u3066\u307f\u307e\u3059\uff0e\n\n\n\nGitHub – ionathanch/ssh-keygen-ed25519-vanity: Generate a vanity EdDSA SSH key for fun.\n\n\n\nclone&build\n\n$ git clone https://github.com/ionathanch/ssh-keygen-ed25519-vanity\n$ cd ssh-keygen-ed25519-vanity\n$ make\n\n\n\nrun\n\n$ ./vanity mato\nssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIEHmibZNyKuT/GO9rloS8qmatoFOZ4N7fJcRSOPCwsky\n-----BEGIN OPENSSH PRIVATE KEY-----\nb3BlbnNzaC1rZXktdjEAAAAABG5vbmUAAAAEbm9uZQAAAAAAAAABAAAAMwAAAAtzc2gtZWQyNTUxOQAAACBB5om2Tcirk/xjva5aEvKpmraBTmeDe3yXEUjjwsLJMgAAAIjwyswa8MrMGgAAAAtzc2gtZWQyNTUxOQAAACBB5om2Tcirk/xjva5aEvKpmraBTmeDe3yXEUjjwsLJMgA\nAAEBro42f/ycDTNvMw3JHIGD5dzg+VVgshQw+RWIhN/I2WEHmibZNyKuT/GO9rloS8qmatoFOZ4N7fJcRSOPCwskyAAAAAAECAwQF\n-----END OPENSSH PRIVATE KEY-----\n\n\n\nshell \u3067ssh-keygen \u3092\u56de\u3059\u3088\u308a\u901f\u305d\u3046\u3067\u3059\uff0e\u66f4\u306bREADME \u306b\u306fmoreutils \u306eparallel \u3092\u4f7f\u3063\u3066\u4e26\u5217\u5b9f\u884c\u3059\u308b\u65b9\u6cd5\u3082\u66f8\u304b\u308c\u3066\u3044\u307e\u3057\u305f\uff0e\n\n\n\n$ time parallel -n 0 ./vanity vanity -- 1 2 3 4\n\n\n\n\u4ee5\u4e0b\u306fREADME \u306b\u3042\u3063\u305f\u6587\u5b57\u6570\u306b\u3088\u308a\u3069\u306e\u304f\u3089\u3044\u6642\u9593\u304c\u304b\u304b\u308b\u304b\u306e\u76ee\u5b89\u3067\u3059\uff0e\n\n\n\n\nRough performance stats\nObviously since it\u2019s brute force the times are probabilistic, but this gives you an idea of how feasible it would be to find your desired number of characters.\n\n\n\n\n\n\n\n\nSubstring\nTime (s)\n\n\n\n\n\na\n\n\n0.002\n\n\n\n\nar\n\n\n0.015\n\n\n\n\nars\n\n\n0.501\n\n\n\n\narso\n\n\n3.753\n\n\n\n\narson\n\n\nabandon all hope ye who seek five sequential characters\n\n\n\n\n\n\n\n\u5927\u5206\u901f\u3044\u3088\u3046\u306a\u6c17\u304c\u3057\u307e\u3059\u304c\u30a2\u30c9\u30ec\u30b9\u306e\u6307\u5b9a\u304c\u56fa\u5b9a\u306a\u3088\u3046\u3067\u5927\u6587\u5b57\u5c0f\u6587\u5b57\u3069\u3063\u3061\u3067\u3082\u3068\u304b\u4ee3\u66ff\u8a18\u53f7\u3067\u3082\u3044\u3044\u306a\u3069\u3068\u3044\u3063\u305f\u3053\u3068\u304c\u51fa\u6765\u306a\u305d\u3046\u3067\u3059\uff0e\n\n\n\n\nvanity-keygen\n\n\n\u307e\u305f\u5225\u306e\u3082\u306e\u3082\u8a66\u3057\u3066\u307f\u307e\u3059\uff0e\n\n\n\nGitHub – pcarrier/vanity-keygen: Get your vanity SSH ed25519 keypair\n\n\n\nclone&build\n\n$ go install github.com/pcarrier/vanity-keygen@latest\n$ vanity-keygen -h\nUsage of vanity-keygen:\n -cpuprofile string\n write cpu profile to file\n -threads int\n number of threads to run (default 4)\n\n\n\nrun\n\n$ time vanity-keygen -threads `nproc` [mM][aA@][tT][oO0]\n2023/04/05 08:30:06 Looking for a public key matching [mM][aA@][tT][oO0]\n2023/04/05 08:30:06 Public key:\nssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIA2rzJZSoqwrVF/Pf2FzKgfL/eMATOI/V7bjdmqkGV5B\n2023/04/05 08:30:06 Private key:\n-----BEGIN OPENSSH PRIVATE KEY-----\nb3BlbnNzaC1rZXktdjEAAAAABG5vbmUAAAAEbm9uZQAAAAAAAAABAAAAMwAAAAtz\nc2gtZWQyNTUxOQAAACANq8yWUqKsK1Rfz39hcyoHy/3jAEziP1e243ZqpBleQQAA\nAIiaywRCmssEQgAAAAtzc2gtZWQyNTUxOQAAACANq8yWUqKsK1Rfz39hcyoHy/3j\nAEziP1e243ZqpBleQQAAAEDBsKpzquKe0/QTheaoVSChK8gF6d38u5mwrtqihfMY\n6A2rzJZSoqwrVF/Pf2FzKgfL/eMATOI/V7bjdmqkGV5BAAAAAAECAwQF\n-----END OPENSSH PRIVATE KEY-----\n\nreal 0m0.331s\nuser 0m0.652s\nsys 0m0.048s\n\n\n\n\u3053\u306e\u30c4\u30fc\u30eb\u306f\u30b9\u30ec\u30c3\u30c9\u6570\u3082\u6307\u5b9a\u3067\u304d\u308b\u3057\uff0c\u30a2\u30c9\u30ec\u30b9\u306e\u6307\u5b9a\u3082\u67d4\u8edf\u306a\u306e\u3067\u826f\u3055\u305d\u3046\u3067\u3059\uff0e\n\n\n\n$ vanity-keygen aaaaa\n2023/04/05 08:30:12 Looking for a public key matching aaaaa\n2023/04/05 08:30:13 Generated 71,000 keypairs (69,788 Hz)\n2023/04/05 08:30:14 Generated 141,000 keypairs (70,310 Hz)\n2023/04/05 08:30:15 Generated 212,000 keypairs (70,454 Hz)\n2023/04/05 08:30:16 Generated 284,000 keypairs (70,792 Hz)\n2023/04/05 08:30:17 Generated 356,000 keypairs (71,040 Hz)\n\n\n\n\u63a2\u7d22\u4e2d\u306b\u3069\u306e\u304f\u3089\u3044\u306e\u9375\u3092\u751f\u6210\u3057\u305f\u304b\u3082\u8868\u793a\u3055\u308c\u307e\u3059\uff0e\n\n\n\u826f\u3055\u305d\u3046\u306a\u306e\u3067Tor \u306e\u3068\u304d\u306e\u3088\u3046\u306b\u5c11\u96fb\u529b\u306aSBC\u306eRaspberry Pi 3 modelB \u3067\u3082\u8a66\u3057\u3066\u307f\u307e\u3057\u305f\uff0e\n\n\nRaspberry Pi OS armhf \u5411\u3051\u306bamd64 \u74b0\u5883\u3067\u30af\u30ed\u30b9\u30d3\u30eb\u30c9\n\n$ GOARCH=arm GOARM=7 go build .\n$ file ./vanity-keygen\n./vanity-keygen: ELF 32-bit LSB executable, ARM, EABI5 version 1 (SYSV), statically linked, Go BuildID=Z_Cr4XM48GAIHSA-MQng/2wFeSpgr5k0WPASNS4ho/3FEwAtva33LS2ByXLcjP/0WSk_fEc6xXCDZEo89yH, with debug_info, not stripped\n\n\n\nPi3B\u3067\u5b9f\u884c\n\n$ ./vanity-keygen -threads 4 aaaa\n2023/04/05 08:22:58 Looking for a public key matching aaaa\n2023/04/05 08:22:59 Generated 0 keypairs (0 Hz)\n2023/04/05 08:23:00 Generated 4,000 keypairs (1,991 Hz)\n2023/04/05 08:23:01 Generated 4,000 keypairs (1,332 Hz)\n2023/04/05 08:23:02 Generated 8,000 keypairs (1,990 Hz)\n2023/04/05 08:23:03 Generated 8,000 keypairs (1,598 Hz)\n^C\n$ cat /proc/device-tree/model && echo\nRaspberry Pi 3 Model B Rev 1.2\n\n\n\n\u2026\u2026\u5927\u5206\u9045\u304f\u306a\u308a\u307e\u3057\u305f\uff0ePC\u3067\u5b9f\u884c\u3057\u305f\u307b\u3046\u304c\u826f\u3055\u305d\u3046\u3067\u3059\uff0e\n\n\n\n\n\u307e\u3068\u3081\n\n\n\u6c17\u306b\u5165\u3063\u305f\u9375\u304c\u51fa\u6765\u305f\u3089\u30d1\u30b9\u30d5\u30ec\u30fc\u30ba\u3092\u8a2d\u5b9a\u3057\u305f\u308a\uff0c\n\n\n\n$ ssh-keygen -p -f ./key\nKey has comment ''\nEnter new passphrase (empty for no passphrase):\nEnter same passphrase again:\nYour identification has been saved with the new passphrase.\n\n\n\n\u30b3\u30e1\u30f3\u30c8\u3092\u66f8\u304d\u63db\u3048\u305f\u308a\u3057\u307e\u3057\u3087\u3046\uff0e\n\n\n\n$ ssh-keygen -c -f ./key\nEnter passphrase:\nOld comment:\nNew comment: vanity\nComment 'vanity' applied\n\n\n\nTor \u306eVanity adoress \u306a\u3093\u304b\u306b\u6bd4\u3079\u308b\u3068\u3042\u307e\u308a\u76ee\u7acb\u305f\u306a\u3044\u3067\u3059\u304c\uff0chostkey \u3084GitHub/Lab \u306a\u3069\u3067\u4e00\u822c\u516c\u958b\u3057\u3066\u3044\u308b\u9375\u306b\u4f7f\u3046\u306e\u306f\u3042\u308a\u3067\u306f\u3068\u601d\u3044\u307e\u3059\uff0e\n\n\n\nUbuntu Server \u30a4\u30f3\u30b9\u30c8\u30fc\u30e9\u306e Github, Launchpad \u304b\u3089\u306e ssh\u516c\u958b\u9375\u30a4\u30f3\u30dd\u30fc\u30c8\u6a5f\u80fd \u2013 matoken\u2019s meme\n\n\n\n\n\n\u74b0\u5883\n\n\n\n$ cpu-info\nPackages:\n 0: Intel Core i5-7300U\nMicroarchitectures:\n 2x Sky Lake\nCores:\n 0: 2 processors (0-1), Intel Sky Lake\n 1: 2 processors (2-3), Intel Sky Lake\nLogical processors (System ID):\n 0 (0): APIC ID 0x00000000\n 1 (2): APIC ID 0x00000001\n 2 (1): APIC ID 0x00000002\n 3 (3): APIC ID 0x00000003\n$ lsb_release -dr\nNo LSB modules are available.\nDescription: Debian GNU/Linux 12 (bookworm)\nRelease: 12\n$ arch\nx86_64", "date_published": "2023-04-18T06:33:00+09:00", "date_modified": "2023-04-18T18:34:42+09:00", "authors": [ { "name": "matoken", "url": "https://matoken.org/blog/author/matoken/", "avatar": "https://secure.gravatar.com/avatar/38f5f3b575c5eb45cda6aa659bca119ac7a5e16b46565e869d0030e3bd66981d?s=512&d=mm&r=g" } ], "author": { "name": "matoken", "url": "https://matoken.org/blog/author/matoken/", "avatar": "https://secure.gravatar.com/avatar/38f5f3b575c5eb45cda6aa659bca119ac7a5e16b46565e869d0030e3bd66981d?s=512&d=mm&r=g" }, "tags": [ "OpenSSH", "Vanity adress", "bookworm", "Debian", "Linux", "testing" ] }, { "id": "https://matoken.org/blog/?p=3864", "url": "https://matoken.org/blog/2023/03/01/nostr-vanity-adress/", "title": "Nostr \u306e Vanity address \u3092\u6398\u308b", "content_html": "
\n
\n
\n

Nostr \u3068\u3044\u3046\u5206\u6563\u578bSNS\u306e\u30d7\u30ed\u30c8\u30b3\u30eb\u304c\u3042\u3063\u3066\u6700\u8fd1\u826f\u304f\u898b\u304b\u3051\u307e\u3059\uff0e

\n
\n\n
\n

\u3053\u306eSNS\u306e\u500b\u4eba\u8a8d\u8b58\u306b\u79d8\u5bc6\u9375\u3068\u516c\u958b\u9375\u306e\u30da\u30a2\u3092\u4f5c\u6210\u3057\u3066\u305d\u308c\u3092\u5229\u7528\u3057\u307e\u3059\uff0e\u9375\u30da\u30a2\u306f\u521d\u56de\u306b\u81ea\u52d5\u751f\u6210\u3055\u308c\u308b\u306e\u3067\u3059\u304c\uff0c\u516c\u958b\u9375\u306e\u6587\u5b57\u5217\u3092\u305f\u304f\u3055\u3093\u8a08\u7b97\u3057\u3066\u597d\u307f\u306e\u30a2\u30c9\u30ec\u30b9\u304c\u542b\u307e\u308c\u305f\u30a2\u30c9\u30ec\u30b9\u3092\u6398\u308b\u30d7\u30ed\u30b0\u30e9\u30e0\u304c\u3042\u3063\u305f\u306e\u3067\u8a66\u3057\u3066\u307f\u307e\u3057\u305f\uff0e

\n
\n\n

\n
\n

\u3053\u306e\u30d7\u30ed\u30b0\u30e9\u30e0\u306fbech32\u3067\u8868\u73fe\u3055\u308c\u308b\u516c\u958b\u9375\u306e npub1 \u306e\u5f8c\u308d\u306e\u6587\u5b57\u5217\u3092\u4efb\u610f\u306e\u6587\u5b57\u5217\u304b\u3089\u59cb\u307e\u308b\u3082\u306e\u306b\u3057\u305f\u3044\u3068\u3044\u3046vanity \u30a2\u30c9\u30ec\u30b9\u3092\u5f6b\u308a\u305f\u3044\u4eba\u5411\u3051\u306e\u3082\u306e\u3067\u3059\uff0e

\n
\n
\n
\n
\n

\u5c0e\u5165

\n
\n
\n

cargo insrtall \u3067\u5c0e\u5165\u3067\u304d\u308b\u306f\u305a\u3067\u3059\u304c\uff0c\u624b\u5143\u306eDebian bookworm testing amd64 \u74b0\u5883\u3067\u306frustc \u304c 1.63 \u306b\u5bfe\u3057\u3066rana \u306f 1.64.0 \u4ee5\u4e0a\u304c\u5fc5\u8981\u3060\u3068\u3044\u3046\u3053\u3068\u3067\u53e4\u304f\u3066\u5931\u6557\u3057\u307e\u3057\u305f\uff0e

\n
\n
\n
\n
$ cargo install rana\n    Updating crates.io index\n  Installing rana v0.5.1\n  Downloaded is-terminal v0.4.4\n  Downloaded clap_lex v0.3.2\n  Downloaded syn v1.0.109\n  Downloaded bip39 v1.2.0\n  Downloaded 4 crates (346.5 KB) in 2.86s\nerror: failed to compile `rana v0.5.1`, intermediate artifacts can be found at `/tmp/cargo-installvCF9z2`\n\nCaused by:\n  package `clap_derive v4.1.0` cannot be built because it requires rustc 1.64.0 or newer, while the currently active rustc version is 1.63.0\n  Try re-running cargo install with `--locked`\n$ dpkg-query -W rustc\nrustc   1.63.0+dfsg1-2
\n
\n
\n
\n

Rust Forge \u3067\u65b0\u3057\u3044Stable(1.67.1)\u3092\u8cb0\u3063\u3066\u304d\u3066\u4f7f\u304a\u3046\u304b\u3068\u3082\u601d\u3044\u307e\u3057\u305f\u304c\uff0c\u30a4\u30f3\u30b9\u30c8\u30fc\u30e9\u30fc\u3092\u53e9\u304f\u5f62\u3067\u74b0\u5883\u304c\u6c5a\u308c\u305d\u3046\u3067\u5c11\u3057\u9762\u5012\u305d\u3046\uff0e

\n
\n\n
\n

Docker \u3092\u4f7f\u3046\u3053\u3068\u306b\u3057\u307e\u3059\uff0e

\n
\n\n
\n

\u516c\u5f0f\u30a4\u30e1\u30fc\u30b8\u3060\u3051\u3042\u3063\u3066\u6700\u65b0\u306e 1.67.1 \u3067\u3059\uff0erana \u3082\u3055\u304f\u3063\u3068\u52d5\u304d\u307e\u3057\u305f\uff0e

\n
\n
\n
\n
$ script ./nostr_vanity.log\n$ docker run --rm -it rust\n# rustc --version\nrustc 1.67.1 (d5a82bbd2 2023-02-07)\n# adduser matoken\n# su - matoken\n$ export PATH=/usr/local/cargo/bin:$PATH\n$ rustup default stable\n$ cargo install rana\n$ rana --help\nRana 🐸\n\n      o  o\n     ( -- )\n  /\\( ,   ,)/\\\n^^   ^^  ^^   ^^\n\nA simple CLI to generate nostr vanity addresses\n\nFrancisco Calder\u00f3n <negrunch@grunch.dev>\n\nUsage: rana [OPTIONS]\n\nOptions:\n  -d, --difficulty <DIFFICULTY>\n          Enter the number of starting bits that should be 0. [default: 0]\n  -v, --vanity <VANITY_PREFIX>\n          Enter the prefix your public key should have when expressed\n          as hexadecimal. [default: ]\n  -n, --vanity-n-prefix <VANITY_NPUB_PREFIXES_RAW_INPUT>\n          Enter the prefix your public key should have when expressed\n          in npub format (Bech32 encoding). Specify multiple vanity\n          targets as a comma-separated list. [default: ]\n  -s, --vanity-n-suffix <VANITY_NPUB_SUFFIXES_RAW_INPUT>\n          Enter the suffix your public key should have when expressed\n          in npub format (Bech32 encoding). Specify multiple vanity\n          targets as a comma-separated list. [default: ]\n  -c, --cores <NUM_CORES>\n          Number of processor cores to use [default: 4]\n  -r, --restore <MNEMONIC>\n          Restore from mnemonic to public private key [default: ]\n  -g, --generate <WORD_COUNT>\n          Generate mnemonic using wordcount. Should be 12,18 or 24 [default: 0]\n  -p, --passphrase <MNEMONIC_PASSPHRASE>\n          Passphrase used for restoring mnemonic to keypair [default: ]\n  -q, --qr\n          Print QR code of the private key\n  -h, --help\n          Print help\n  -V, --version\n          Print version
\n
\n
\n
\n
\n
\n

why can\u2019t we use characters b, i, o, or 1?
\nthe characters have to be in the bech32 character set.

\n
\n
\n
\n\u2014 nostrogen
\nhttps://github.com/tonyinit/nostrogen#why-cant-we-use-characters-b-i-o-or-1
\n
\n
\n

\u516c\u958b\u9375\u306f Bech32 \u5f62\u5f0f\u3067 023456789acdefghjklmnpqrstuvwxyz \u304c\u5229\u7528\u3067\u304d\u307e\u3059\uff0e\u4ee5\u4e0b\u306f Bech32 \u3067\u4f7f\u3048\u306a\u3044 o \u3092\u4f7f\u3063\u3066\u6012\u3089\u308c\u305f\u4f8b\u3067\u3059\uff0e

\n
\n
\n
\n
$ rana --vanity-n-prefix matok\nthread 'main' panicked at 'The vanity npub prefix can only contain characters supported by Bech32: 023456789acdefghjklmnpqrstuvwxyz', /usr/local/cargo/registry/src/github.com-1ecc6299db9ec823/rana-0.5.1/src/cli.rs:146:17\nnote: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
\n
\n
\n
\n

o\u30920\u306b\u7f6e\u304d\u63db\u3048\u3066\u52d5\u304b\u3057\u3066\u307f\u307e\u3059\uff0e

\n
\n
\n
\n
$ rana --vanity-n-prefix mat0k | tee rana.log\nStarted mining process for vanity bech32 prefix[es]: 'npub1[\"mat0k\"]' (estimated pow: 20)\nBenchmarking of cores disabled for vanity npub key upon proper calculation.\nMining using 4 cores...
\n
\n
\n
\n

\u3055\u3066\uff0c\u3053\u308c\u3067\u5f85\u3063\u3066\u3044\u308c\u3070\u9375\u304c\u6398\u308c\u308b\u306e\u3067\u3059\u304c\uff0c\u4ee5\u4e0b\u306e\u3088\u3046\u306b\u65b0\u3057\u3044\u30e9\u30c3\u30d7\u30c8\u30c3\u30d7\u3067\u4ee5\u4e0b\u306e\u3088\u3046\u306a\u901f\u5ea6\u3067\u6398\u308c\u308b\u3068\u306e\u3053\u3068\u3067\u3059\uff0e\u3042\u307e\u308a\u9577\u304f\u3059\u308b\u3068\u306a\u304b\u306a\u304b\u6398\u308c\u306a\u3044\u306e\u3067\u6c17\u3092\u3064\u3051\u307e\u3057\u3087\u3046\uff0e

\n
\n
\n
\n
\n

how fast will nostrogen find my addresses?
\nthis depends entirely upon how fast your machine is, but here are some rough estimates for a modern laptop or mobile phone:

\n
\n
\n

1 character = usually less than a 0.1 seconds
\n2 characters = usually less than a 1 second
\n3 characters = usually less than a 30 seconds
\n4 characters = usually less than a 10 minutes
\n5 characters = usually less than a 1 hour
\n6+ characters = keep fire extinguisher handy

\n
\n
\n
\n\u2014 nostrogen
\nhttps://github.com/tonyinit/nostrogen#how-fast-will-nostrogen-find-my-addresses
\n
\n
\n

\u4ee5\u4e0b\u306e\u3088\u3046\u306a\u611f\u3058\u3067\u7d50\u679c\u304c\u8868\u793a\u3055\u308c\u307e\u3059\uff0eNpub public key \u306e npub1\u306e\u5f8c\u308d\u304c\u6307\u5b9a\u3057\u305fmat0k\u304b\u3089\u59cb\u307e\u3063\u3066\u3044\u307e\u3059\uff0e

\n
\n
\n
\n
$ rana --vanity-n-prefix mat0k | tee rana.log\nStarted mining process for vanity bech32 prefix[es]: 'npub1[\"mat0k\"]' (estimated pow: 20)\nBenchmarking of cores disabled for vanity npub key upon proper calculation.\nMining using 4 cores...\n<<>><<>><<>><<>><<>><<>><<>><<>><<>><<>><<>><<>><<>><<>><<>><<>><<>><<>><<>><<>>\nVanity npub found:         mat0k\nFound matching Nostr public key:\nHex public key:   df56fb6cce5a60eac0a55b09ff6d5fbb565b07da6f64a2578ae827d70a21873b\nHex private key:  7a1a088022c3110fabc445af28681c0d2c349a2123f38fe83fbc809d7c8ed6bb\nNpub public key:  npub1mat0kmxwtfsw4s99tvyl7m2lhdt9kp76daj2y4u2aqnawz3psuass9qwnz\nNsec private key: nsec10gdq3qpzcvgsl27ygkhjs6qup5krfx3py0ecl6plhjqf6lyw66as4gyfat\n26169409 iterations (about 2x10^7 hashes) in 3199 seconds. Avg rate 8180 hashes/second
\n
\n
\n
\n\n\n\n\n\n\n\n
\n
Warning
\n
\n\u516c\u958b\u3055\u308c\u3066\u3044\u308b\u3053\u306e\u9375\u306f\u5229\u7528\u3057\u306a\u3044\u3067\u304f\u3060\u3055\u3044
\n
\n
\n

\u624b\u5143\u306e\uff0cNotePC\u306e Intel\u00ae Core\"\u2122\" i5-7300U CPU @ 2.60GHz \u3068 Oeracle Free Tier VPS Arm Ampere A1 \u5171\u306b8000\u301c8200 hashes/secod \u3068\u3044\u3046\u611f\u3058\u3067\u3057\u305f\uff0e

\n
\n
\n

3\u65e5\u307b\u3069\u8d70\u3089\u305b\u3066 mak0 \u304b\u3089\u59cb\u307e\u308b\u3082\u306e\u305f\u304f\u3055\u3093\uff0cmat0ke \u304b\u3089\u59cb\u307e\u308b\u3082\u306e\u304c2\u3064\u51fa\u3066\u304d\u307e\u3057\u305f\uff0e cpu fan \u3046\u308b\u3055\u3044\u3057mat0ken \u306f\u8ae6\u3081\u3066\u3053\u306e\u8fba\u306b\u3057\u3068\u3053\u3046\u304b\u306a?

\n
\n
\n
\n
\n

Npub public key: npub1mat0kejpylctwszs3h0jcaw24vsmzvx0h44hl2qf3ghuz2ggekjqkwyeq5

\n
\n
\n
\n
\n

\u305d\u3046\u3044\u3048\u3070\u4ee5\u524d\u306fTor \u306e Vanity address \u3082\u6398\u3063\u3066\u3044\u307e\u3057\u305f\u2026\u2026\uff0e

\n
\n\n
\n
\n", "content_text": "Nostr \u3068\u3044\u3046\u5206\u6563\u578bSNS\u306e\u30d7\u30ed\u30c8\u30b3\u30eb\u304c\u3042\u3063\u3066\u6700\u8fd1\u826f\u304f\u898b\u304b\u3051\u307e\u3059\uff0e\n\n\n\nNostr, a simple protocol for decentralizing social media that has a chance of working\n\n\n\n\u3053\u306eSNS\u306e\u500b\u4eba\u8a8d\u8b58\u306b\u79d8\u5bc6\u9375\u3068\u516c\u958b\u9375\u306e\u30da\u30a2\u3092\u4f5c\u6210\u3057\u3066\u305d\u308c\u3092\u5229\u7528\u3057\u307e\u3059\uff0e\u9375\u30da\u30a2\u306f\u521d\u56de\u306b\u81ea\u52d5\u751f\u6210\u3055\u308c\u308b\u306e\u3067\u3059\u304c\uff0c\u516c\u958b\u9375\u306e\u6587\u5b57\u5217\u3092\u305f\u304f\u3055\u3093\u8a08\u7b97\u3057\u3066\u597d\u307f\u306e\u30a2\u30c9\u30ec\u30b9\u304c\u542b\u307e\u308c\u305f\u30a2\u30c9\u30ec\u30b9\u3092\u6398\u308b\u30d7\u30ed\u30b0\u30e9\u30e0\u304c\u3042\u3063\u305f\u306e\u3067\u8a66\u3057\u3066\u307f\u307e\u3057\u305f\uff0e\n\n\n\ntonyinit/nostrogen: simple nostr vanity address generator\n\n\n\n\n\u3053\u306e\u30d7\u30ed\u30b0\u30e9\u30e0\u306fbech32\u3067\u8868\u73fe\u3055\u308c\u308b\u516c\u958b\u9375\u306e npub1 \u306e\u5f8c\u308d\u306e\u6587\u5b57\u5217\u3092\u4efb\u610f\u306e\u6587\u5b57\u5217\u304b\u3089\u59cb\u307e\u308b\u3082\u306e\u306b\u3057\u305f\u3044\u3068\u3044\u3046vanity \u30a2\u30c9\u30ec\u30b9\u3092\u5f6b\u308a\u305f\u3044\u4eba\u5411\u3051\u306e\u3082\u306e\u3067\u3059\uff0e\n\n\n\n\n\u5c0e\u5165\n\n\ncargo insrtall \u3067\u5c0e\u5165\u3067\u304d\u308b\u306f\u305a\u3067\u3059\u304c\uff0c\u624b\u5143\u306eDebian bookworm testing amd64 \u74b0\u5883\u3067\u306frustc \u304c 1.63 \u306b\u5bfe\u3057\u3066rana \u306f 1.64.0 \u4ee5\u4e0a\u304c\u5fc5\u8981\u3060\u3068\u3044\u3046\u3053\u3068\u3067\u53e4\u304f\u3066\u5931\u6557\u3057\u307e\u3057\u305f\uff0e\n\n\n\n$ cargo install rana\n Updating crates.io index\n Installing rana v0.5.1\n Downloaded is-terminal v0.4.4\n Downloaded clap_lex v0.3.2\n Downloaded syn v1.0.109\n Downloaded bip39 v1.2.0\n Downloaded 4 crates (346.5 KB) in 2.86s\nerror: failed to compile `rana v0.5.1`, intermediate artifacts can be found at `/tmp/cargo-installvCF9z2`\n\nCaused by:\n package `clap_derive v4.1.0` cannot be built because it requires rustc 1.64.0 or newer, while the currently active rustc version is 1.63.0\n Try re-running cargo install with `--locked`\n$ dpkg-query -W rustc\nrustc 1.63.0+dfsg1-2\n\n\n\nRust Forge \u3067\u65b0\u3057\u3044Stable(1.67.1)\u3092\u8cb0\u3063\u3066\u304d\u3066\u4f7f\u304a\u3046\u304b\u3068\u3082\u601d\u3044\u307e\u3057\u305f\u304c\uff0c\u30a4\u30f3\u30b9\u30c8\u30fc\u30e9\u30fc\u3092\u53e9\u304f\u5f62\u3067\u74b0\u5883\u304c\u6c5a\u308c\u305d\u3046\u3067\u5c11\u3057\u9762\u5012\u305d\u3046\uff0e\n\n\n\nOther Installation Methods – Rust Forge\n\n\n\nDocker \u3092\u4f7f\u3046\u3053\u3068\u306b\u3057\u307e\u3059\uff0e\n\n\n\nrust – Official Image | Docker Hub\n\n\n\n\u516c\u5f0f\u30a4\u30e1\u30fc\u30b8\u3060\u3051\u3042\u3063\u3066\u6700\u65b0\u306e 1.67.1 \u3067\u3059\uff0erana \u3082\u3055\u304f\u3063\u3068\u52d5\u304d\u307e\u3057\u305f\uff0e\n\n\n\n$ script ./nostr_vanity.log\n$ docker run --rm -it rust\n# rustc --version\nrustc 1.67.1 (d5a82bbd2 2023-02-07)\n# adduser matoken\n# su - matoken\n$ export PATH=/usr/local/cargo/bin:$PATH\n$ rustup default stable\n$ cargo install rana\n$ rana --help\nRana 🐸\n\n o o\n ( -- )\n /\\( , ,)/\\\n^^ ^^ ^^ ^^\n\nA simple CLI to generate nostr vanity addresses\n\nFrancisco Calder\u00f3n <negrunch@grunch.dev>\n\nUsage: rana [OPTIONS]\n\nOptions:\n -d, --difficulty <DIFFICULTY>\n Enter the number of starting bits that should be 0. [default: 0]\n -v, --vanity <VANITY_PREFIX>\n Enter the prefix your public key should have when expressed\n as hexadecimal. [default: ]\n -n, --vanity-n-prefix <VANITY_NPUB_PREFIXES_RAW_INPUT>\n Enter the prefix your public key should have when expressed\n in npub format (Bech32 encoding). Specify multiple vanity\n targets as a comma-separated list. [default: ]\n -s, --vanity-n-suffix <VANITY_NPUB_SUFFIXES_RAW_INPUT>\n Enter the suffix your public key should have when expressed\n in npub format (Bech32 encoding). Specify multiple vanity\n targets as a comma-separated list. [default: ]\n -c, --cores <NUM_CORES>\n Number of processor cores to use [default: 4]\n -r, --restore <MNEMONIC>\n Restore from mnemonic to public private key [default: ]\n -g, --generate <WORD_COUNT>\n Generate mnemonic using wordcount. Should be 12,18 or 24 [default: 0]\n -p, --passphrase <MNEMONIC_PASSPHRASE>\n Passphrase used for restoring mnemonic to keypair [default: ]\n -q, --qr\n Print QR code of the private key\n -h, --help\n Print help\n -V, --version\n Print version\n\n\n\n\n\nwhy can\u2019t we use characters b, i, o, or 1?\nthe characters have to be in the bech32 character set.\n\n\n\n\u2014 nostrogen\nhttps://github.com/tonyinit/nostrogen#why-cant-we-use-characters-b-i-o-or-1\n\n\n\u516c\u958b\u9375\u306f Bech32 \u5f62\u5f0f\u3067 023456789acdefghjklmnpqrstuvwxyz \u304c\u5229\u7528\u3067\u304d\u307e\u3059\uff0e\u4ee5\u4e0b\u306f Bech32 \u3067\u4f7f\u3048\u306a\u3044 o \u3092\u4f7f\u3063\u3066\u6012\u3089\u308c\u305f\u4f8b\u3067\u3059\uff0e\n\n\n\n$ rana --vanity-n-prefix matok\nthread 'main' panicked at 'The vanity npub prefix can only contain characters supported by Bech32: 023456789acdefghjklmnpqrstuvwxyz', /usr/local/cargo/registry/src/github.com-1ecc6299db9ec823/rana-0.5.1/src/cli.rs:146:17\nnote: run with `RUST_BACKTRACE=1` environment variable to display a backtrace\n\n\n\no\u30920\u306b\u7f6e\u304d\u63db\u3048\u3066\u52d5\u304b\u3057\u3066\u307f\u307e\u3059\uff0e\n\n\n\n$ rana --vanity-n-prefix mat0k | tee rana.log\nStarted mining process for vanity bech32 prefix[es]: 'npub1[\"mat0k\"]' (estimated pow: 20)\nBenchmarking of cores disabled for vanity npub key upon proper calculation.\nMining using 4 cores...\n\n\n\n\u3055\u3066\uff0c\u3053\u308c\u3067\u5f85\u3063\u3066\u3044\u308c\u3070\u9375\u304c\u6398\u308c\u308b\u306e\u3067\u3059\u304c\uff0c\u4ee5\u4e0b\u306e\u3088\u3046\u306b\u65b0\u3057\u3044\u30e9\u30c3\u30d7\u30c8\u30c3\u30d7\u3067\u4ee5\u4e0b\u306e\u3088\u3046\u306a\u901f\u5ea6\u3067\u6398\u308c\u308b\u3068\u306e\u3053\u3068\u3067\u3059\uff0e\u3042\u307e\u308a\u9577\u304f\u3059\u308b\u3068\u306a\u304b\u306a\u304b\u6398\u308c\u306a\u3044\u306e\u3067\u6c17\u3092\u3064\u3051\u307e\u3057\u3087\u3046\uff0e\n\n\n\n\nhow fast will nostrogen find my addresses?\nthis depends entirely upon how fast your machine is, but here are some rough estimates for a modern laptop or mobile phone:\n\n\n1 character = usually less than a 0.1 seconds\n2 characters = usually less than a 1 second\n3 characters = usually less than a 30 seconds\n4 characters = usually less than a 10 minutes\n5 characters = usually less than a 1 hour\n6+ characters = keep fire extinguisher handy\n\n\n\n\u2014 nostrogen\nhttps://github.com/tonyinit/nostrogen#how-fast-will-nostrogen-find-my-addresses\n\n\n\u4ee5\u4e0b\u306e\u3088\u3046\u306a\u611f\u3058\u3067\u7d50\u679c\u304c\u8868\u793a\u3055\u308c\u307e\u3059\uff0eNpub public key \u306e npub1\u306e\u5f8c\u308d\u304c\u6307\u5b9a\u3057\u305fmat0k\u304b\u3089\u59cb\u307e\u3063\u3066\u3044\u307e\u3059\uff0e\n\n\n\n$ rana --vanity-n-prefix mat0k | tee rana.log\nStarted mining process for vanity bech32 prefix[es]: 'npub1[\"mat0k\"]' (estimated pow: 20)\nBenchmarking of cores disabled for vanity npub key upon proper calculation.\nMining using 4 cores...\n<<>><<>><<>><<>><<>><<>><<>><<>><<>><<>><<>><<>><<>><<>><<>><<>><<>><<>><<>><<>>\nVanity npub found: mat0k\nFound matching Nostr public key:\nHex public key: df56fb6cce5a60eac0a55b09ff6d5fbb565b07da6f64a2578ae827d70a21873b\nHex private key: 7a1a088022c3110fabc445af28681c0d2c349a2123f38fe83fbc809d7c8ed6bb\nNpub public key: npub1mat0kmxwtfsw4s99tvyl7m2lhdt9kp76daj2y4u2aqnawz3psuass9qwnz\nNsec private key: nsec10gdq3qpzcvgsl27ygkhjs6qup5krfx3py0ecl6plhjqf6lyw66as4gyfat\n26169409 iterations (about 2x10^7 hashes) in 3199 seconds. Avg rate 8180 hashes/second\n\n\n\n\n\n\n\nWarning\n\n\n\u516c\u958b\u3055\u308c\u3066\u3044\u308b\u3053\u306e\u9375\u306f\u5229\u7528\u3057\u306a\u3044\u3067\u304f\u3060\u3055\u3044\n\n\n\n\n\n\u624b\u5143\u306e\uff0cNotePC\u306e Intel\u00ae Core i5-7300U CPU @ 2.60GHz \u3068 Oeracle Free Tier VPS Arm Ampere A1 \u5171\u306b8000\u301c8200 hashes/secod \u3068\u3044\u3046\u611f\u3058\u3067\u3057\u305f\uff0e\n\n\n3\u65e5\u307b\u3069\u8d70\u3089\u305b\u3066 mak0 \u304b\u3089\u59cb\u307e\u308b\u3082\u306e\u305f\u304f\u3055\u3093\uff0cmat0ke \u304b\u3089\u59cb\u307e\u308b\u3082\u306e\u304c2\u3064\u51fa\u3066\u304d\u307e\u3057\u305f\uff0e cpu fan \u3046\u308b\u3055\u3044\u3057mat0ken \u306f\u8ae6\u3081\u3066\u3053\u306e\u8fba\u306b\u3057\u3068\u3053\u3046\u304b\u306a?\n\n\n\n\nNpub public key: npub1mat0kejpylctwszs3h0jcaw24vsmzvx0h44hl2qf3ghuz2ggekjqkwyeq5\n\n\n\n\n\u305d\u3046\u3044\u3048\u3070\u4ee5\u524d\u306fTor \u306e Vanity address \u3082\u6398\u3063\u3066\u3044\u307e\u3057\u305f\u2026\u2026\uff0e\n\n\n\ntor\u306ehidden service\u3067\u4f7f\u3046\u30a2\u30c9\u30ec\u30b9\u3092\u8a08\u7b97\u3059\u308b(Vanity Addresses) \u2013 matoken\u2019s meme", "date_published": "2023-03-01T22:42:34+09:00", "date_modified": "2023-03-01T22:42:34+09:00", "authors": [ { "name": "matoken", "url": "https://matoken.org/blog/author/matoken/", "avatar": "https://secure.gravatar.com/avatar/38f5f3b575c5eb45cda6aa659bca119ac7a5e16b46565e869d0030e3bd66981d?s=512&d=mm&r=g" } ], "author": { "name": "matoken", "url": "https://matoken.org/blog/author/matoken/", "avatar": "https://secure.gravatar.com/avatar/38f5f3b575c5eb45cda6aa659bca119ac7a5e16b46565e869d0030e3bd66981d?s=512&d=mm&r=g" }, "tags": [ "Nostr", "Vanity adress", "bookworm", "Debian", "Focal Fossa(20.04)", "Linux", "testing", "Ubuntu" ] } ] }