Энтузиаст разработал мобильное приложение для взлома забытого Bitcoin-кошелька с миллионами долларов
Энтузиаст разработал мобильное приложение для взлома забытого Bitcoin-кошелька с миллионами долларов

Энтузиаст разработал мобильное приложение для взлома забытого Bitcoin-кошелька с миллионами долларов

14 сентября, 20222 минуты на чтение
3,3к
Подписывайтесь на [Код // Дурова] в Telegram[Код // Дурова] в Telegram

Разработчик-энтузиаст, а также по совместительству читатель «Кода Дурова» Денис Карпенко выпустил приложение на iOS, которое пытается взломать один очень старый биткоин-кошелёк методом подбора приватных ключей. Приложение доступно для скачивания в AppStore.

Приложение подбирает ключ к старому кошельку, баланс которого на данный момент составляет 31 000 BTC ($630 млн). Сам кошелёк, известный как №967, находится в категории забытых, потому что его монеты не двигались уже больше 10 лет. Его первая и последняя транзакции состоялись в 2010 году.

Любой пользователь может скачать приложение, чтобы присоединиться к попытке взломать этот кошелёк. Шанс подобрать приватный ключ катастрофически мал, но всё же не равен нулю. В теории, если кому-то очень сильно повезёт и ему удастся найти правильный ключ, он получит $630 млн или более 40 млрд. рублей. Принцип работы приложения разработчик описал в своём Instagram (принадлежит запрещённой в РФ организации).

Одна из ключевых особенностей шифрования биткоина – это использование двух криптографических функций: SHA-256 и RIPEMD-160. Из приватного ключа с их помощью получается публичный биткоин-адрес. При этом шифрование невозможно в обратную сторону, поэтому, зная публичный адрес биткоина, получить его ключ невозможно.

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

При запуске приложение проводит постоянный цикл следующего алгоритма создания BTC-адреса:

  • Генерируется случайный ключ ECDSA.
  • Проводится хеширование SHA-256 на сгенерированном ключе.
  • Затем проводится хеширование RIPEMD-160 на предыдущем результате. Так получается центральная основная часть адреса BTC.
  • К основной части добавляется сетевой байт версии блока в качестве префикса.
  • Выполняется ещё одно хеширование SHA-256 предыдущего результата хеширования SHA-256 (получен во 2-ом этапе). Затем из полученного хеша берутся первые 4 байта и добавляются в конец адреса (это контрольная сумма).
  • Из префикса, основной части и контрольной суммы получается контрольный адрес BTC, который затем преобразуется в Base58 строку, используя кодировку Base58check.
  • Итоговый результат и есть тот самый публичный адрес BTC.

В конце программа сравнивает полученный результат. Если в итоге получится 12ib7dApVFvg82TXKycWBNpN8kFyiAN1dr, а именно этот кошелёк и взламывается, то приватный ключ найден успешно. Шанс этого крайне мал, но по теории вероятности существует.

14 сентября, 2022
Подписывайтесь на [Код // Дурова] в Telegram[Код // Дурова] в Telegram

Выбор редакции