1. вот тебе конкретный алгоритм:
1. Сгенерировать новую пару ключей. Не важно как, можешь хоть при помощи ГСЧ (лол)
2. Вычислить 160-ти битный хеш публичного ключа и таким образом получить Bitcoin-адрес.*
3. Проверить содержимое полученного адреса на предмет наличия средств, и если кошелек не занят (пуст) — вернуться в пункт номер 1.
4. Вывести средства.
*Так как 160 бит адреса меньше, чем 256 бит ключа, существуют коллизии, т.е. несколько пар ключей одинаково подходят к одному и тому же кошельку. То есть шанс нарваться на годный приватник уже не 2^256, а 2^160 даже при том, что, как ты выразился, рыскать придётся по всему диапазону 2^256. Всё, вот тебе и получилась пресловутая атака коллизий. Не надо
искать коллизии, они заложены в дизайне (специально для тебя пояснение: дизайн не в смысле оболочки пользовательского интерфейса, а "by design". В прошлый раз возникли недоразумения из-за этого слова, я не думал тогда, что ты можешь оказаться гумманитарием), генерировать sha256 хэши итд тоже не надо, то есть твои варианты ни о чём.
Подробнее:
https://www.coinside.ru/2014/03/23/stoit-li-bespokoitsa-o-bezopasnosti-bitcoin-adresa/