Генератор красивых адресов BTC

Как завести красивый адрес 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, так что можете смело удалять, ведь он занимает гигабайты места на вашем жестком диске.