если подбор происходит как в примере, то возможно вы знаете более лучшую программу для подбора ключей с возможностю записи полного адреса и рандомного подбора ключа.
.............. Шансы малы, но если подбор осуществляется рандомно, то есть небольшой шанс нахождения ключа.
Разницы не имеет, осуществляешь ты перебор начиная условно с единицы и далее инкрементируешь на единицу, или же постоянно тыкаешь рандомно в разные числа. Поле вариантов конечно, и оно 2^160, следовательно, что один что другой перебор будут иметь вероятность успешного исхода
n/2^160 , где n - количество ненулевых адресов.
Просто твое утверждение это не совсем ошибка игрока, но близко к этому
Я почему-то уверен, что ключи от 0 до примерно охулиарда по порядку уже давно и не раз проверены. Так что перебор от нуля через один по порядку это абсолютно точно пустая затея.
В биткоине есть ограничение на числа. Так то да, приватный ключ 32 байта (256 бит), но валидным как я помню считается диапазон 2^160 (чтобы клиенты случаем не генерировали приватные ключи из чисел 0 или 2^256, которые легко предсказуемы). Если что, вот старый пост Бальтазара по этому поводу:
Закрытых ключей меньше 2^256 штук. Если точнее, то твердолобая реализация конечно же может использовать можно любое число на отрезке [0, 2^256 - 1], но безопасными в качестве ключей являются только числа меньше 0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141. Потому что бОльшие значения могут иметь соответствие более чем одному публичному ключу. Поэтому, практически все библиотеки при загрузке ключа первым делом проверяют, чтобы загруженное значение было меньше 0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141.
............
Итого, на 2^160 закрытых ключей получается...........
Не считаю себя спецом в подобных вещах, но не удержался, чтобы не внести некоторые тривиальные уточнения.
На самом деле, закрытых ключей в очень большом приближении всё таки
2^256, а не
2^160.
(0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364140≈0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff+1=
2^256=
=115792089237316195423570985008687907853269984665640564039457584007913129639936≈
10^77).
Для фанатов математики: 0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364140=2^255.99999999999999999999999999999999999999461231979328931570871878708855078033043787641519129048544479673630840996526007370172002...
Другое дело, количество адресов, которые генерируются, как известно, из публичного ключа.
А зашифрованный открытый ключ - это 40-значное шестнадцатиричное число. Следовательно, всех открытых ключей, т.е. различных адресов, может быть не более
16^40=2^160≈10^48. Получается, что на каждый адрес приходится
10^29 приватных ключей!
Если уж быть более точным, нужно ещё учесть и адреса, полученные через сжатый приватный ключ. Это и привычный адрес, начинающийся с "1", и адреса P2SH и BECH32.
Интересные именные адреса можно получить, если на клавиатуре перебрать много разных приватников (главное, нажимать только кнопочки с цифрами и буквами "a, b, c, d, e, f"), например:
Приватный ключ:
BBBFAF40A53E849D2CC55712AEF20FC42DC9B043945466D9B214C3F21ECBB250
Соответствующие адреса:
1Govnoed7sLpiEXp4yQG3mo1ojXU73kA2M
1FNkWLPJF2ap97rXW3s7oYbA6AahJQ47jF
3QBKzeRfdgncVYnBFzw6toK3zgp62c4tJ2
bc1qnkhdq8v7ttle8z233w06vuyhnvdrechyznwaua
Или так:
Приватный ключ:
BB38F7FFB44BD91985943451F26099BA1FD6B79ABBBA9F124F9EE688601E0915
Соответствующие адреса:
12ozZ6v6HrPz4V3Q2LWR4aiBJm47sdgSZP
1Gyx13H1aUNtmEBLEPtQjQmZgvmdf27xqk
3QueenFzBZYKMEYuFVbMKMEiUyE6eeuw5e
bc1q4a8303jv3ysfm0cnguayr8zmlhqftpfy792gk7P.S. Пользоваться этими "красивыми" адресами никому не советую.