Как завести красивый адрес BTC? Чтобы адресом BTC кошелька был не просто случайный набор цифр и букв например 1FeexV6bAHb8ybZjqQMjJrcCrHGW9sb6uF, но и содержал в себе что-то осмысленное? Мне захотелось завести себе узнаваемый кошелек, и я сгенерировал адрес кошелька, оканчивающийся на моё имя egor – 1LzvQ1qdwRZL5CQP6Ks4qSQaCcDh6zegor.
Это сделать совсем нетрудно, но потребуется 1-2 часа времени на скачивание, компиляцию и запуск генератора и, в зависимости от длинны вашего слова, время на генерацию адреса, главное что вы должны знать – вы не должны доверять генерацию такого адреса любому внешнему сервису, потому как у него останется ваш приватный ключ.
Сегодня я разберу как это сделать безопасно на своем компьютере. Для этого вам понадобится git и Rust, они нужны чтобы скачать исходный код программы и запустить его на своём компьютере, ведь это единственный способ быть уверенным что она не украдет секретную фразу и не передаст её во вне.
Как раз для этих целей я написал подробную инструкцию как установить Git и VS Code.
Программа подбора красивых BTC адресов называется nakatoshi, по моей просьбе пакет исходных кодов и инструкцию по сборке подготовил мой товарищ Марк Корнейчик (GitHub). Чтобы скомпилировать программу nakatoshi, надо чтобы локально Rust был установлен на компьютере.
Установка Rust
Проверяете установлен ли Rust на вашем компьютере. Сделать это можно набрав команду в консоли (напоминаю что в OS Windows консоль вызывается командой cmd).
>cargo --version
Если команда cargo не опознан, то требуется установка Rust. Это можно сделать по инструкции.
Вся установка осуществляется в консоли после запуска rustup-init.exe, я выбрал при установке опцию 1.
Rust Visual C++ prerequisites Rust requires a linker and Windows API libraries but they don't seem to be available. These components can be acquired through a Visual Studio installer. 1) Quick install via the Visual Studio Community installer (free for individuals, academic uses, and open source). 2) Manually install the prerequisites (for enterprise and advanced users). 3) Don't install the prerequisites (if you're targeting the GNU ABI). >1 info: downloading Visual Studio installer 3.8 MiB / 3.8 MiB (100 %) 1.8 MiB/s in 2s ETA: 0s info: running the Visual Studio install info: rustup will continue once Visual Studio installation is complete
Это было сделано для того, чтобы инсталлятор сразу установил все необходимые компоненты Visual Studio размером 6 Gb.
После установки Visual Studio возвращаемся в консоль установки Rust и далее выбираем снова опицю 1.
warning: operation completed successfully, but install requires reboot before it can be used (exit code 3010) Welcome to Rust! This will download and install the official compiler for the Rust programming language, and its package manager, Cargo. Rustup metadata and toolchains will be installed into the Rustup home directory, located at: C:\Users\petukhovsky\.rustup This can be modified with the RUSTUP_HOME environment variable. The Cargo home directory is located at: C:\Users\petukhovsky\.cargo This can be modified with the CARGO_HOME environment variable. The cargo, rustc, rustup and other commands will be added to Cargo's bin directory, located at: C:\Users\petukhovsky\.cargo\bin This path will then be added to your PATH environment variable by modifying the HKEY_CURRENT_USER/Environment/PATH registry key. You can uninstall at any time with rustup self uninstall and these changes will be reverted. Current installation options: default host triple: x86_64-pc-windows-msvc default toolchain: stable (default) profile: default modify PATH variable: yes 1) Proceed with installation (default) 2) Customize installation 3) Cancel installation >1
После завершения установки, как в старые добрые времена Windows 98, требуется перезагрузить компьютер.
Скачиваем и компилируем программу генерации BTC адресов
Скачать программу можно из репозитория https://github.com/petukhovsky/nakatoshi.git 2 способами, используя VS Code как это было описано в статье, либо выполнив в консоли команду.
>git clone https://github.com/petukhovsky/nakatoshi.git
Сборку релиза также можно делать в терминале VS Code или терминале Windows. В терминале VS Code достаточно ввести команду
cargo build --release
В терминале Windows необходимо предварительно войти в папку проекта. Обратите внимание, что если у вас выдается ошибка, то это значит, что вы не установили необходимые компоненты на 1-м этапе установки Rust.
Генерация BTC адресов
Правильнее сказать что эта программа не генерирует BTC адреса, а лишь подбирает секретные фразы, которым соответствуют адреса BTC кошельков удовлетворяющие условиям.
Для запуска программы используем терминал Windows
>nakatoshi/target/release/nakatoshi -t 4 ".*egor$"
У меня нашелся адрес
{“address”:”14njWLNyRw8shqTg3iUHHVGuaoxBwNegoR”,”attempts”:548274,”private_key”:”L5M6v8kug7qaXERrusDKAbLFw8ShrrHBJE99UNQEi8qRja3U6Sxh”,”public_key”:”02294e411aaae758e50a9b4261d986ba547d85e0661ff9383997a7ac74df873938″}
“.*egor$” это регулярное выражение, можно использовать любое
.* это значит в начале может быть что угодно и потом egor
$ означает конец строки, используется чтобы подстрока egor была в самом конце
-t 4 это кол-во параллельных потоков, чтобы в 4 раза быстрее перебор был, можно поставить любое число.
параметр -с можно использовать, чтобы поиск был чтобы поиск был регистрозависимым
>nakatoshi/target/release/nakatoshi -t 4 -c ".*egor$"
У меня нашелся адрес
{“address”:”1LzvQ1qdwRZL5CQP6Ks4qSQaCcDh6zegor”,”attempts”:6093200,”private_key”:”L47RNvwR6H4S1oFMvKLbwFmcjszjKNi33KJrrqkisEaWXYE25Mvs”,”public_key”:”03e5fcf272b5641f4e145a4176d35ec728d4b738b1059ef601f7f484aa7a912c6b”}
Если хотите, чтобы искомый адрес начинался с вашего слова, то используйте “^1egor.*$”
Можно задать сразу несколько регулярных выражений через файл. Для этого создается файл patterns.txt
^1egor.*$ .*egor$ .*egor.$ .*egor..$ .*egor...$
потом запускается
>nakatoshi/target/release/nakatoshi --threads 4 --input-file patterns.txt
Найдет адрес, который совпал хотя бы с одним из паттернов.
Подробная документация доступна по ссылке проекта в GitHub.
USAGE: nakatoshi [FLAGS] [OPTIONS]--input-file FLAGS: -b, --bech32 Use Bech32 addresses. Starting with bc1q (Lowercase address) -c, --case-sensitive Use case sensitive comparison to match addresses -h, --help Prints help information -u, --uncompressed Use uncompressed private an public keys -V, --version Prints version information OPTIONS: -i, --input-file File with regexes to match addresses with -t, --threads Number of threads to be used [default: The number of CPUs available on the current system] ARGS: Regex used to match addresses
Генерируйте на здоровье. Необходимо учитывать скорость подбора – лично у меня подстроки длинной 4 символа даже с учетом регистра находились быстрее двух минут, но сложность поиска и необходимое на поиск время растет по геометрической прогрессии 5 символов 1 час, 6 символов 2 дня, 7 символов уже месяцы, 8 годы!
Для дальнейшего использования собранной программы вам не нужен Visual Studio, так что можете смело удалять, ведь он занимает гигабайты места на вашем жестком диске.