728x90

Адреса Bitcoin. Часть I, теория.
Адреса Bitcoin. Часть II, практика.

В предшествующей части статьи мы тщательно разглядели по каким правилам генерируется Bitcoin адреса, сейчас перейдем к практическим занятиям. В данной нам части мы научимся практическим приемам генерации адресов и закрытых ключей к ним при помощи утилиты Vanitygen и интеграции них в имеющийся кошелек.

Описанные воздействия выполнялись под Windows 7 64bit. Первым бизнесом качаем кошелек Bitcoin, желательно всего в .zip версии. Распаковываем, я это же изготовил в корень диска C :

C:bitcoin-0.7.1-win32

Создаем в данной нам папке папку key, где будем хранить ключи. Настройка ACL на папки на совести юзера, рекомендую про их перестать забывать, коли это же боевой кошелек. В заданном случае это же был экспериментальный, и опции прав доступа я перестать трогал. Создаем файл run.cmd с последующим содержанием:

bitcoin-qt.exe -datadir=C:bitcoin-0.7.1-win32key

Запускаем run.cmd, и пока скачиваются блоки, изучим вопросец сотворения адресов.

Vanitygen – утилита, действующая сквозь командную строчку, которая способна генерировать биткоин адреса. Коли для вас надоели рандомные криптоадреса, кои генерируются биткоин клиентами, вы сможете задействовать Vanitygen для сотворения наиболее персонализированных адресов. Можно повысить собственную редкость, когда вы гласите человеку, дабы он выслал для вас биткоины на кошелек, который как-либо ассоциируется с вами, к примеру для веб-сайта BTCsec.com можно изготовить адресок, который начинается на 1BTCSEC*. За исключением тамошнего, Vanitygen может употребляться для генерации произвольных адресов в offline.

Vanitygen воспринимает в качестве входных заданных шаблон либо перечень шаблонов, опосля чего же он подбирает вариации адресов и закрытых ключей к ним. Подбор Vanitygen основан на вероятностном поиске, на который требуется некое время. Время зависит от трудности данного шаблона, скорости вашего компа и вашей успешности. Vanitygen задействует ресурсы вашего микропроцессора. А его собрат – oclvanitygen – задействует OpenCL-совместимые GPU. Они оба умеют быть cобраны из исходников, либо скачаны в облике бинарных пакетов, в тамошнем числе для Windows.

Скачиваем архив Vanitygen, распаковываем. Я для примера распаковал в корень диска C:

C:vanitygen

Заходим в папку, создаем файл gen.cmd с последующим содержанием:

oclvanitygen.exe -p 0 -d 1 -o result.txt 1BTCSEC

Подробную расшифровку ключей и FAQ по Vanitygen можно отыскать ниже, пока разберем исключительно этот пример:
oclvanitygen.exe — Используем версию генератора для OpenCL механизмов
-p 0 -d 1 — Указание прибора, на котором выполняется расчет: платформа 0 прибор 1
-o result.txt — Сохранить результаты работы в файл result.txt
1BTCSEC — начало искомого адреса.

Стоит ли за один присест отметить, чего же в разыскиваемой строчке недозволено задействовать 0 (ноль), O (большенное o), I (большенное i), l (малюсенькое L), и он обязан начинаться с 1(единицы).

Запускаем gen.cmd:

vanitygen

В ходе работы программка отобразит сложность нахождения адреса по обозначенному шаблону, скорость генерации и вероятностное ожидание. Опосля нахождения ключа окно закроется, а в файле result.txt будет образцово таков итог:

Pattern: 1BTCSEC
Address: 1BTCSECzALEjhEjCBRiDWnm8icb5sjt5Rx
Privkey: 5JfxV8BAMT5CkQEEcTmZoRvNv7e6jyJpv1WFLuBDG8gHtc5L5TE

Хорошо, у нас кушать адресок и приватный ключ! Дабы существовало увлекательнее продолжать, я отправил 0,01 BTC на этот адресок. Сейчас задачка импортировать этот адресок с ключом в кошелек и убедиться в его работоспособности.

Представим, чего же покупатель все блоки докачал, а кошелек зашифрован, пароль «yourpassphrase». Открываем покупатель, в верхнем меню жмем «Help», в нем «Debug window» и перебегаем на вкладку «Console». В нижнюю строчку вводим:

walletpassphrase yourpassphrase 120

Эта команда разблокирует кошелек на обозначенное количество секунд, в заданном примере — на 2 минутки.

importprivkey «5JfxV8BAMT5CkQEEcTmZoRvNv7e6jyJpv1WFLuBDG8gHtc5L5TE» «1BTCSECzALEjhEjCBRiDWnm8icb5sjt5Rx»

Эта команда конкретно импортирует наш свежеполученный ключ в кошелек. Стоит ли направить внимание, чего же может появиться, чего же покупатель завис. На деле это же перестать настолько, он инспектирует основу, и это же может занять достаточно долгое время.

import bitcoin key

Коли все прошло удачно, и все блоки скачаны, то на вкладке транзакций отобразится наша транзакция поступления 0,01 BTC, на которую, к слову, возрастет и итоговый баланс кошелька.

bitcoin private key ok

Для бесповоротной проверки, чего же мы можем заведовать деньгами на этом адресе, отправим эти же 0,01 BTC на иной адресок, для примера я выслал них на адресок для добровольческих пожертвований на развитие BTCsec.com — 1BQ9qza7fn9snSCyJQB3ZcN46biBtkt4ee

bitcoin send ok

А как видно, транзакция прошла, опыт можно полагать удачно завершенным.

FAQ по Vanitygen:

Какие типы шаблонов адреса можно давать vanitygen для соответствующего подбора?
Как я могу указать список шаблонов?
Могу ли я использовать Vanitygen для поиска чьего-то еще закрытого ключа зная его bitcoin адрес?
Как я могу собрать vanitygen из исходников?
Какую скорость поиска ключей я могу ожидать от устройства X?
Как защитить адрес, генерируемый данной программой? Может ли кто-то разгадать мой закрытый ключ и украсть мои BTC?
Какие опции можно задавать ключами Vanitygen?
Можно ли совместно искать адреса?
Какая вероятность нахождения нужного адреса?

Какие типы шаблонов адреса можно предлагать vanitygen для надлежащего подбора?

Vanitygen может выполнять выборку для ординарных префиксов и постоянных высказываний. Префиксом является строка, с которой начинается адресок. Когда подбирается адресок с установленным префиксом, Vanitygen инспектирует, чего же таков префикс в принципе вероятен и выдаст оценку трудности такового подбора. По дефлоту, префикс чувствителен к регистру, но можно задействовать ключик –i для поиска без учета регистра. Регулярные выражения воображают собой фильтрующие шаблоны. Они весьма сильны и умеют употребляться для подбора надлежащих префиксов, суффиксов, ключей всевозможной длины и подбора последовательностей знаков, и т.д. Дабы задействовать постоянные высказывания, укажите ключ –r. К огорчению, подбор по постоянным выражениям весьма неспешный и сложность очень влияет на скорость поиска ключей. Потому постоянные высказывания следует задействовать исключительно коли это же вправду требуется. Постоянные высказывания перестать будут отлично отрабатывать с oclvanitygen, настолько насколько на заправдашний момент oclvanitygen перестать может ишачить с постоянными выражениями на GPU.

А как я могу указать перечень шаблонов?

Vanitygen может выискивать по списку шаблонов из командной строчки либо заимствованных из файла, используя ключ –f. Файл родник обязан быть сформирован настолько, дабы любой шаблон шел с новейшей строчки. Обнаружив соответствие данному шаблону, vanitygen приостановит поиск альтернативных соответствий заданному шаблону. Для поиска нескольких соответствий задействуйте ключ –k.

Могу литров я задействовать Vanitygen для поиска чьего-то гораздо закрытого ключа зная его bitcoin адресок?

Естественно! Практически, Vanitygen – это же приложение для подбора ключей. Но, дабы отыскать абсолютно надлежащий bitcoin адресок, даже используя все компьютертные мощности на планетке, для вас пригодится неприемлемо большенное количество времени.

А как я могу собрать vanitygen из исходников?

Все это же обозначено в файле INSTALL в дистрибутиве исходника.

Какую скорость поиска ключей я могу ждать от прибора X?

Некие ориентировочные оценки:

Dual-core desktop CPUs, 32-bit mode: 100-250 тыс. ключей/сек.
Dual-core desktop CPUs, 64-bit mode: 150-450 тыс. ключей/сек
Quad-core desktop CPUs, 32-bit mode: 200-400 тыс. ключей/сек
Quad-core desktop CPUs, 64-bit mode: 300-750 тыс. ключей/сек
NVIDIA GT200 GPUs: до 6.пяти млн. ключей/сек
AMD Radeon 58XX, 68XX GPUs: до 23.пяти млн. ключей/сек.
AMD Radeon 69XX GPUs: до 19.пяти млн. ключей/сек.

vanitygen делает огромное количество больших целочисленных арифметических операций, и пуск утилиты на 64 битной системе отдает значительное повышение в скорости поиска ключей, на глазок 50% повышения по сопоставлению с 32-х битной. Для 64-х битной версии Windows, при условии, чего же употребляется перестать GPU, перестать забудьте задействовать vanitygen64.exe.

Radeon 58XX превышает Radeon 69XX. Oclvanitygen задействует умножение целых чисел, а Radeon 58XX вырабатывает умножение наряду с иными оперциями. За однообразное время Radeon 5830 затмит Radeon 6970.

В пользовательских сборках производительность CPU будет все меньше ожидаемой, коли OpenSSL библиотеки древней версии (

А как защитить адресок, генерируемый заданной программкой? Может литров кто-то разгадать мой закрытый ключ и украсть мои BTC?

Vanitygen задействует OpenSSL для генерации произвольных чисел. Это же таков же RNG (генератор произвольных чисел), насколько и применяемый в bitcoin и большинстве серверов, использующих HTTPS. Они рассматриваются насколько отлично изученные. В Linux RNG берутся из /dev/urandom. Отгадывание приватного ключа для адреса подобранного vanitygen перестать проще, чем отгадывание приватного ключа, сгенерированного самим приложением bitcoin. Vanitygen задействует генератор произвольных чисел для сотворения закрытого ключа и адресов, сравнивая приобретенные адреса с начальным шаблоном. Он обновляет закрытый ключ опосля 10,000,000 неудачных попыток подбора (100M для oclvanitygen), либо пока перестать найдется соответствие

Какие настройки можно задавать ключами Vanitygen?

-v            Verbose output
-q            Quiet output
-i            Case-insensitive prefix search
-k            Keep pattern and continue search after finding a match
-N            Generate namecoin address
-T            Generate bitcoin testnet address
-X   Generate address with the given version
-e            Encrypt private keys, prompt for password
-E 

Encrypt private keys with

(UNSAFE) -p Select OpenCL platform -d Select OpenCL device -D Use OpenCL device, identified by device string Form: :[,] Example: 0:0,grid=1024x1024 -S Safe mode, disable OpenCL loop unrolling optimizations -w Set work items per thread in a work unit -t Set target thread count per multiprocessor -g x Set grid size -b Set modular inverse ops per thread -V Enable kernel/OpenCL/hardware verification (SLOW) -f File containing list of patterns, one per line (Use "-" as the file name for stdin) -o Write pattern matches to -s Seed random number generator from

Можно литров вместе выискивать адреса?

Да, можно. Для сего бытует vanitypool.

Какая возможность нахождения востребованного адреса?

Возьмем возможность нахождения 50% и посчитаем время, которое будет нужно для сего.

Тогда-то:

Формула вероятности найти Bitcoin ключ 7

Скорость генерации возьмем например 2*107 ключей/с . Чего равно образцово 6,3*1014 ключей в год.

Формула вероятности найти Bitcoin ключ 8 = 1,6*1033 лет.