
Продолжаем серию статей о биткойн-головоломках. Начало истории, тесты программ для головоломок ч.1.
Для всех, кто в теме: 28 июля 2026 года произошло важное событие — головоломка на 13.5 биткойна была вскрыта. Осталось ~903 BTC.
Удивительным фактом остаётся то, что головоломки 120, 125, 130 и 135 (суммарно около 40.2 BTC) вскрыл один и тот же человек — RetiredCoder. В этой статье я немного расскажу о том, как он это сделал, и попробую разгадать кто он.
Что произошло 28 июля
В 08:20 UTC 28 июля 2026 года (блок 959946) с адреса 16RGFo6hjq9ym6Pj7N5H7L1NR1rVPJyw2v ушло 13.5 BTC одной транзакцией.
Через 19 минут RetiredCoder написал в свою тему на Bitcointalk:
Yeah, finally I solved #135, it took about 5 months on 200GPUs. It was… long. I quit, officially. Happy solving #140 without me.
Пять месяцев на 200 видеокартах. И объявление об уходе из проекта. В подписи у него теперь стоит: «I’ve solved #120, #125, #130, #135».
Ещё через полтора часа он выложил RCKangaroo v4.0 — с исходниками ассемблерных turbo-ядер, которые до этого дня были только у него. Приватный ключ он назвал на следующий день, 29 июля, разыграв его через мини-головоломку:
#135 pk is: 0000000000000000000000000000006D9392A16883F90903D5F78DA57AF07EB2
Проверяем ключ
Приватный ключ от 135-й головоломки должен быть 135-битным числом, а публичный ключ раскрыт с 2019 года. Выложенный ключ — настоящий, публичный ключ от него полностью совпадает с тем, что лежит в подписи потратившей транзакции, а адрес — с адресом головоломки 16RGFo6hjq9ym6Pj7N5H7L1NR1rVPJyw2v.
В десятичном виде это 37286935858852539926448623437930621337266, и лежит он на 71.2% глубины интервала — для алгоритма кенгуру Полларда это, впрочем малозначительный факт, метод не идёт по диапазону слева направо.
Сколько стоит вскрыть 135-ю головоломку
Публичный ключ известен, поэтому перебор здесь никому не нужен — работает алгоритм «кенгуру» Полларда. Число операций для интервала шириной пропорционально корню из его ширины:
Коэффициент — это и есть то, за что идёт вся борьба. У классической реализации он равен 2.1, у метода 4-х кенгуру Гаудри-Шоста — 1.661. Огромная заслуга RetiredCoder в том, что в своём RCKangaroo он успешно совместил метод 4-х кенгуру и использование зеркальной симметрии X-координат точек на эллиптической кривой относительно нуля. Именно это комбо позволило снизить коэффициент до рекордных 1.15. Ещё одна его важнейшая инновация — простой и малозатратный в вычислительном смысле алгоритм обнаружения и выхода из бесплодных циклов (fruitless loops), в которые неизбежно попадают псевдослучайно прыгающие «кенгуру».
Кстати, в теории он смог этот коэффициент довести до идеальной единицы (1.0). Для этого в сочетании с предыдущими методами нужно использовать только чётные X-координаты за счёт «дешёвой» второй точки (когда берётся ). Но на практике это второе улучшение почти лишено смысла, кроме как для уменьшения числа выдающихся точек (distinguished points) и экономии памяти. Более того, «в ноль» оно работает только на CPU, а на видеокартах из-за расхождения варпов ветвление даёт чистый убыток в скорости. Поэтому в релиз для GPU пошла версия с коэффициентом 1.15, как самая оптимальная для GPU.
Ключ 135-й головоломки лежит в диапазоне от до
, то есть ширина интервала —
:
Возьмём RTX 5090 на секретных ассемблерных ядрах, выдающую 19.5 гигаключей в секунду. Одна карта:
Это 276 лет непрерывной работы. Двести карт делят это число на двести:
Ожидание — около 16.5 месяцев. А RetiredCoder уложился в 5.
Почему перебор здесь вообще не рассматривается
Для сравнения — если бы публичного ключа не было и приходилось перебирать диапазон целиком, те же 19.5 гигаключей/сек на 200 картах дали бы:
Возраст Вселенной — лет. То есть в 40 миллиардов раз дольше. Раскрытие публичного ключа в 2019 году сократило задачу с невозможной до дорогой.
Что именно он улучшил
Разрыв между 16.5 месяцами и 5 месяцами закрывается не только удачей, но и крутым кодом. В changelog v4.0 написано:
added turbo kernels (asm) for 4xxx and 5xxx cards, about 14.5GH/s for 4090 and 19.5GH for 5090.
Чтобы понять, много это или мало, нужно знать, что выдают те же карты на публичной сборке:
Карта |
Публичная сборка |
Turbo-ядра v4.0 |
Выигрыш |
|---|---|---|---|
RTX 5090 |
~10 000 Мключ/с |
19 500 Мключ/с |
1.95× |
RTX 4090 |
~8 200 Мключ/с |
14 500 Мключ/с |
1.76× |
RTX 3090 |
~5 000 Мключ/с |
не поддерживаются |
— |
Почти двукратное ускорение на одном и том же железе! Без этих ядер ожидание составило бы 32 месяца, а не 16.5. Ядра написаны на чистом ассемблере, и главный трюк автор назвал сам:
I managed to exclude inverse calculation from main loop and applied Montgomery trick three times in total, so I call it «Triple Montgomery trick»
Вычисление обратного элемента в конечном поле (инверсия) — самая дорогая операция при сложении точек на эллиптической кривой. Тройной трюк Монтгомери убрал её из основного цикла целиком, оставив на инверсию около 3% ресурсов GPU.
До 28 июля turbo-ядер в открытом доступе не было. Все пять месяцев, пока сообщество копало 135-ю головоломку на публичной сборке, у автора программы была почти вдвое более быстрая приватная. Выложил он её в тот же день, когда забрал деньги.
Правда, стоит оговориться: истинная версия программы, с помощью которой он сорвал куш, так и не была обнародована. В той публичной версии, которую он ранее выкладывал на GitHub, энтузиасты спустя много месяцев нашли крайне хитрые баги: застревание кенгуру в циклах на границах батчей, а также выход точек за пределы заданных диапазонов при долгой непрерывной работе. Да и хвалёная защита от бесплодных циклов оказалась не идеальной — она срабатывает только для циклов длиной до 10 шагов. Сам метод прыжков (то вперёд, то назад) неизбежно приводит к зацикливаниям, о чём говорил и сам автор. Циклы большей длины программой никак не диагностируются, и кенгуру могут крутиться в них вхолостую очень долго. Из-за обилия таких скрытых проблем в сообществе даже родилась конспирологическая версия, что эти баги были оставлены специально, чтобы саботировать работу публичных пулов на основе его программы и устранить конкурентов.
Сколько работы он реально сделал
Считаем, какую долю ожидаемого объёма он успел пройти за пять месяцев на 200 картах:
30 процентов. Он нашёл ключ, сделав меньше трети средней работы.
Но алгоритм «кенгуру» работает иначе. Он относится к классу атак на основе парадокса дней рождения — мы ищем коллизию (момент, когда «дикий» и «ручной» кенгуру прыгнут в одну и ту же точку). Вероятность здесь подчиняется распределению Рэлея. Чем больше шагов сделано, тем лавинообразнее растет количество возможных пар для столкновения. Поэтому шансы растут не линейно со временем, а пропорционально квадрату затраченного времени.
Точная вероятность того, что решение найдётся не позже доли от среднего объёма работы, равна:
Квадрат в показателе всё меняет. На старте поиска, пока пройденных точек мало, парадокс дней рождения играет против нас: вероятность коллизии растет крайне медленно.
Подставляем наши 30% ():
Из-за квадратичной зависимости реальная вероятность падает с «наивных» 30% до скромных 6.8%. Найти коллизию на таком коротком отрезке пути — это действительно колоссальная удача.
Для сравнения: один из публичных пулов, пытавшихся взломать 135-ю головоломку, успел перебрать ключей. В линейной, «наивной» модели это выглядит как доля
, то есть почти 5% от требуемого объёма. Кажется, что работа проделана немалая. Но если подставить эту долю в формулу Рэлея, то реальная вероятность пула найти ключ составит всего
(меньше двух десятых процента!). С такими мощностями и без секретных ассемблерных ядер у них просто было очень мало шансов против RetiredCoder.
То же самое для 130-й головоломки. Диапазон , значит
, а по его словам было 400 карт RTX 4090 и два месяца. Turbo-ядер в сентябре 2024 года ещё не существовало — RCKangaroo вообще вышел в открытый доступ только в декабре, — поэтому берём публичные 8.2 гигаключа:
Здесь его слова про везение тоже подтверждаются: реальная вероятность составила 23% против 44% при «наивном» линейном расчёте. Это заметно лучше среднего.
А вот два таких попадания подряд:
1 шанс к 64. Маловероятно, но реально. Но списывать всё на удачу уже неловко, тем более что модель карт для 135-й он не назвал: если это были не 5090, а 4090, доля падает до 22.5%, вероятность — до 3.9%, а суммарная — до 0.9%, то есть 1 шанс к 117.
Версия про датацентр
Всё вышенаписанное объясняет, как ключ был найден, но не объясняет главного: откуда взялись 200 карт RTX 5090 на пять месяцев.
Дело в том, что не так просто арендовать 200 карт 5090 или 400 карт 4090. У публичных провайдеров (Vast.ai, Clore.ai и подобные) я таких опций не видел, такого количества карт одновременно просто нет. У крупных провайдеров в основном предлагаются ускорители для ИИ. А ему были нужны строго карты 4000 или 5000 серии. Говорят, что есть какие-то непубличные майнеры с такими мощностями именно из таких карт. Возможно, но это сложно.
Дело в том, что 15 сентября 2022 года сеть Ethereum перешла на алгоритм Proof-of-Stake, и майнинг на видеокартах был остановлен навсегда. А релиз RTX 4090 состоялся только 12 октября 2022 года (анонс был 20 сентября). Вспомним 130-ю головоломку, где фигурировали 400 карт RTX 4090 (со слов RetiredCoder). Большинство майнеров просто не закупали эти карты в промышленных масштабах, потому что в этом больше не было смысла.
Вот версия, которую я считаю самой правдоподобной: доступ к железу у него служебный. Может быть, он имеет возможность делать какие-то тесты на работе по выходным, когда нет нагрузки. В таком случае, он на часок запускает свою программу, когда окошко появляется. Возможно, он вообще ничего и не тратил.
Косвенный аргумент — дни, в которые он выводил деньги:
120 — 27.02.2023, понедельник, 09:40 UTC 125 — 09.07.2023, воскресенье, 10:24 UTC 130 — 23.09.2024, понедельник, 08:13 UTC 135 — 28.07.2026, вторник, 08:20 UTC
Все четыре вывода — утро по UTC, и три из четырёх приходятся на воскресенье или утро понедельника. В воскресенье, когда никого нет на работе, или перед сдачей датацентра заказчику — вот тогда и удобнее всего гонять свою программу на чужих мощностях. Правда, тут стоит быть честным: вывод денег и момент нахождения ключа — это не одно и то же, между ними могли пройти часы или дни. Хотя, учитывая, что он знал, что охотится за призом не только он, то вряд ли бы стал мешкать.
Я собрал время публикации всех его 104 постов на форуме. Статистика интересная: 39 сообщений (почти 40%) оставлены в выходные дни (суббота и воскресенье). Пик активности размазан с 06:00 до 17:00 UTC. Это отлично укладывается в версию человека, который на выходных имеет доступ к серверам или фермам, где может «погонять» свои тесты, а в будни занимается основной работой.
А может реально арендовал? Экономика аренды и головоломок
Давайте посчитаем экономику. Допустим, мы арендуем мощности на Vast.ai по $0.4 за час работы одной топовой карты, и с учётом опта получаем скидку 20% (итого 0.32 $/час).
Чтобы получить 50% вероятность найти ключ, нам нужно выполнить долю работы .
Карта RTX 5090 (19.3 GH/s) проходит ключей в час. На нужный объём уйдёт порядка 2.3 миллиона карто-часов. Умножаем на 0.32 $/час и получаем затраты в ~$736 000.
Много это или мало? Приз за 135-ю головоломку — 13.5 BTC. При курсе в $65 000 это ~$877 000.
Экономика сходится, но посмотрите на это с точки зрения рисков. Если RetiredCoder действительно арендовал мощности, то его поступок выглядит так: он взял весь свой выигрыш со 130-й головоломки (около $845 000) и пошёл в своеобразное «казино». Чтобы получить шансы 50/50 (бросок монетки или ставка «на чёрное»), он был готов сжечь в топке аренды $736 000. В случае победы он забирает банк в $877 000. В случае поражения — теряет свой прошлый выигрыш и время.
Да, при раннем нахождении ключа затраты ниже, и математическое ожидание здесь слабоположительное. Но сам факт такой ставки требует стальных нервов. Рядовой энтузиаст в эту игру не сыграет, а вот человек, который только что сорвал куш — вполне.
Рисковать своими деньгами в таких объёмах при столь мизерных шансах на старте — это чистое безумие. Но если он всё-таки пошёл ва-банк на свои кровные, рискнул и сорвал этот куш, то я поздравляю его от всей души!
Лично мой вывод: скорее всего, он использовал служебный датацентр, к которому имел доступ. Обратите внимание — он так и не назвал модель тех самых 200 карт. Это могли быть ИИ-ускорители. Мы лишь косвенно вычислили, что это архитектура Blackwell по тому факту, что он тщательно оптимизировал ассемблерные ядра именно под RTX 5090.
Куда ушли деньги
13.5 BTC ушли на адрес 1Prestige1zSYorBdz94KA2UbJW3hYLTn4 — это самодельный красивый (vanity) адрес. Обычно для их генерации используют программу VanitySearch. Первый символ 1 является обязательным префиксом адреса, а дальше идёт кастомная часть. В данном случае подобрано не просто слово Prestige (8 символов), а Prestige1 (9 символов), где единица работает как визуальный разделитель. Сложность подбора 9 символов в алфавите Base58 составляет вариантов. Программа VanitySearch на одной видеокарте RTX 4090 выдаёт скорость около 4 миллиардов ключей в секунду (4 GK/s). Значит, на подбор такого адреса на одной RTX 4090 уйдёт в среднем около 21 дня непрерывной работы. Но этот кошелёк впервые засветился при выводе средств со 130-й головоломки, когда, по словам автора, у него в распоряжении была ферма из 400 видеокарт. На таких мощностях генерация этого адреса заняла у него чуть больше часа.
Этот же адрес 23 сентября 2024 года получил 13 BTC с адреса головоломки 130. А выигрыши с головоломок 120 и 125 в 2023 году ушли на другой общий адрес — 3Emiwzxme7Mrj4d89uqohXNncnRM15YESs.
Получается, что слова RetiredCoder про четыре головоломки подтверждаются не только его подписью на форуме, но и блокчейном: четыре выигрыша легли в два кошелька, по два в каждый.
Полная картина по всем четырём:
№ |
Адрес головоломки |
Дата вывода (UTC) |
Сумма |
Куда ушло |
|---|---|---|---|---|
120 |
17s2b9ksz5y7abUm92cHwG8jEPCzK3dLnT |
27.02.2023 09:40 |
1.2 BTC |
3Emiwzxme7Mrj4d89uqohXNncnRM15YESs |
125 |
1PXAyUB8ZoH3WD8n5zoAthYjN15yN5CVq5 |
09.07.2023 10:24 |
12.5 BTC |
3Emiwzxme7Mrj4d89uqohXNncnRM15YESs |
130 |
1Fo65aKq8s8iquMt6weF1rku1moWVEd5Ua |
23.09.2024 08:13 |
13.00006 BTC |
1Prestige1zSYorBdz94KA2UbJW3hYLTn4 |
135 |
16RGFo6hjq9ym6Pj7N5H7L1NR1rVPJyw2v |
28.07.2026 08:20 |
13.5 BTC |
1Prestige1zSYorBdz94KA2UbJW3hYLTn4 |
В сумме 40.20006 BTC. За 120-ю дали всего 1.2 BTC, потому что призовой фонд умножили на 10 только 16 апреля 2023 года — уже после того, как RetiredCoder её забрал. Не повезло на 11.3 BTC.
Хотя 13 BTC от 130-й головоломки он почти сразу перевёл на свой старый кошелёк 3Emiwzxme7Mrj4d89uqohXNncnRM15YESs, свежие 13.5 BTC с адреса Prestige пока не двигались.
Who is RetiredCoder?
Из какой страны RetiredCoder
Для начала проверим, в каком часовом поясе сохранено время постов на форуме. Форумное время — это часовой пояс +0 по Гринвичу (UTC).
Анализ 104 сообщений не только говорит нам про его занятость, но и позволяют построить наглядную диаграмму активности:
Час (UTC) | Активность (кол-во постов) ----------|---------------------------------------- 00:00 | 0 01:00 | 0 02:00 | 0 03:00 | 0 04:00 | 0 05:00 | ████ 4 06:00 | █████████ 9 07:00 | ██ 2 08:00 | ██████ 6 09:00 | ██████████ 10 10:00 | ████ 4 11:00 | ███████ 7 12:00 | ████ 4 13:00 | █████████ 9 14:00 | ████ 4 15:00 | ██████ 6 16:00 | ████████ 8 17:00 | █████████ 9 18:00 | █████ 5 19:00 | ███ 3 20:00 | ████████ 8 21:00 | █████ 5 22:00 | █ 1 23:00 | 0
За всё время активности есть явный провал, когда он спит: с 23:00 до 04:00 по UTC количество постов равно нулю. Это непрерывное окно в 6 часов — классический график сна.
Если предположить, что человек спит с полуночи до 6 утра, то его локальное время опережает UTC на 1 час (Центральная Европа: Германия, Франция, Польша и т.д.). Если же он ложится в 01:00 и встает в 07:00, то это Восточная Европа (UTC+2). А если он классическая «сова» и спит с 02:00 до 08:00, то это часовой пояс UTC+3 (Москва, Минск, Стамбул).
В любом случае, это точно не Америка и не Восточная Азия. С большой долей вероятности RetiredCoder живёт в Европе или СНГ. По слухам в ранних снимках репозитория RCKangaroo в Web Archive были турецкие комментарии в ранних копиях его репозитория. Я не смог их найти. Учитывая, что в Турции часовой пояс UTC+3 действует круглый год (что идеально совпадает с «окном сна»), RetiredCoder, может находиться и там.
А что насчёт его ника — RetiredCoder («Кодер на пенсии»)?
Есть версия, что это продуманная легенда. Если он действительно гоняет свои тесты на мощных служебных серверах, то ник «пенсионера» — хорошее прикрытие. По этому нику безопасникам или работодателю сложнее заподозрить активного сотрудника, использующего мощности компании в личных целях. Это всего лишь версия, но она отлично показывает возможный уровень конспирации и продуманности.
Более того, на форуме проскакивало сообщение от пользователя kTimesG о том, что RetiredCoder — разработчик из Nvidia. И это многое бы объяснило: и доступ к предрелизным партиям или огромным кластерам с архитектурой Blackwell, и феноменальный уровень оптимизации ассемблерных ядер под архитектуру этих карт.
Совместив это с нашими выводами про локацию + знание засекреченного SASS-ассемблера Nvidia, мы получаем красивую и логичную гипотезу: возможно, RetiredCoder — сотрудник Nvidia (турецкий офис?) или их удалённый инженер.
Мини-головоломки
Приватный ключ RetiredCoder не выложил сразу, а сначала запустил мини-головоломку №7 — уже седьмую в серии. Закрылась она в тот же вечер, меньше чем за пять часов.
Психологически это объяснимо: человек забрал 13.5 BTC на железе, которого ни у кого в теме нет, и раздача крошек снижает градус обиды в комментариях. А обида там была. Один из участников написал прямо:
Competing against hundreds of GPUs makes these puzzles feel less like a test of skill and more like a contest of who has access to the biggest hardware budget.
И он прав. При этом сам RetiredCoder делится программой бесплатно и под GPLv3, понимая, что доступ к настолько мощному железу есть у единиц, и особо ничем не рискует. Программа — это его реально честный успех, тут никто не спорит.
Что дальше: головоломка 140
На адресах головоломок с 71 по 160 сейчас лежит 903.02 BTC. Пустыми стоят ровно 13 адресов — все кратные пяти от 75 до 135. Следующая цель с раскрытым публичным ключом — 140-я, на ней 14 BTC.
Только вот каждые пять номеров умножают работу на :
На 200 картах RTX 5090 с turbo-ядрами это 94 месяца — почти восемь лет. Даже тысяча карт даёт 19 месяцев ожидания.
Давайте посчитаем экономику для 50% вероятности ():
В пересчёте на часы RTX 5090 это почти 13 миллионов карто-часов. При всё той же цене аренды $0.32/час затраты составят ~$4 150 000.
Приз — 14 BTC (около $910 000). Он окупает едва ли четверть этих затрат. Экономика полностью сломалась. Взлом 140-й головоломки на арендованных мощностях абсолютно нерентабелен, если только курс биткоина не улетит за $300 000. Даже наличие бесплатного датацентра на работе вряд ли поможет — утаить такие объемы вычислений на протяжении многих месяцев будет почти невозможно.
Именно поэтому сам RetiredCoder прямо заявил, что выходит из гонки:
«It was… long. I quit, officially. Happy solving #140 without me.»
Заключение
Головоломки — это одни из немногих кошельков, которые их создатель официально разрешил вскрывать. История 135-й показывает, что решает уже не столько идея, сколько связка «хороший алгоритм + доступ к парку карт»: коэффициент удалось опустить с 2.1 до 1.15, ассемблерные ядра дали ещё почти двукратное ускорение, но без 200 видеокарт и это не помогло бы.
© 2026 ООО «МТ ФИНАНС»