Звучит как крах всей конструкции: средства уходят без взлома кошелька, без фишинга и без доступа к устройству — ключ просто вычисляют из данных, которые и так лежат в открытом реестре. Механика реальна, случаи были, и потери исчислялись миллионами. Но прежде чем пугаться за свои монеты, стоит понять одну вещь, которая всё расставляет по местам: сломана здесь не математика, а конкретная программа. Разберём спокойно и по делу: как атака работает в общих чертах, почему это не дыра в криптографии, кто действительно в зоне риска, а кто защищён устройством своего кошелька, и что конкретно стоит проверить. Это аналитический обзор, а не инвестиционная рекомендация.

В чём суть на уровне идеи

Каждая транзакция подписывается закрытым ключом, и подпись попадает в публичный реестр — так задумано, иначе сеть не смогла бы проверить её подлинность. Но в самом процессе подписания участвует ещё один элемент: одноразовое случайное число, которое программа генерирует заново для каждой операции. Пользователь его не видит и никогда о нём не думает.

Вся безопасность держится на двух условиях: это число должно быть по-настоящему случайным и никогда не повторяться при работе с одним и тем же ключом. Если условие нарушается — например, программа из-за ошибки использует одно и то же значение дважды, — в двух опубликованных подписях появляется математическая связь, из которой закрытый ключ вычисляется однозначно. Никакого взлома при этом не происходит: атакующий просто читает открытые данные и решает уравнение. Что такое утечка приватного ключа и чем она отличается от компрометации seed-фразы, мы разбирали отдельно.

Ключевая поправка к заголовку темы: публичность подписей — не уязвимость, а обязательное свойство сети. Данные видны всем по определению, и это нормально. Проблема возникает лишь тогда, когда небрежная реализация оставляет в этих данных лишнюю информацию. Как поясняется в техническом разборе этой ошибки, при корректной работе программы никакой информации о ключе подпись не раскрывает.

Почему это не дыра в криптографии

Тут и находится главная поправка ко всей теме. Сам алгоритм подписи математически надёжен и никем не сломан. Уязвимость всегда живёт в реализации — в конкретном программном обеспечении, которое неправильно формирует одноразовое число. Это принципиальная разница: в первом случае пришлось бы менять основы всей отрасли, во втором достаточно исправить программу.

История это подтверждает. В 2010 году производитель игровой консоли использовал для подписей фиксированное значение вместо случайного — и ключ подписи прошивки был восстановлен. В 2013-м сбой генератора случайных чисел в мобильной операционной системе привёл к тому, что кошельки на её основе повторяли одно и то же значение в транзакциях с несколькими входами, чем и воспользовались злоумышленники. В обоих случаях виновата была программа, а не математика. Какие уроки индустрия вынесла из громких взломов, мы разбирали подробно.

Что именно Состояние
Алгоритм подписи надёжен, не скомпрометирован
Публичность подписей в сети свойство по замыслу, не изъян
Генерация одноразового числа здесь и возникает ошибка
Стандарт детерминированной генерации закрывает проблему с 2013 года
Устаревшее и самодельное ПО остаётся зоной риска

Из сопоставления видно, что проблема давно локализована и в основном закрыта. После череды инцидентов отрасль перешла на детерминированный способ формирования одноразового числа: оно вычисляется из самого ключа и подписываемых данных, а не берётся у генератора случайных чисел. Это убирает зависимость от качества генератора вообще — программа физически не может дважды получить одно значение для разных транзакций. Более новые схемы подписи устроены так изначально. Что при этом защищает пользователя на практике, показано ниже.

Уязвимость подписи(image)Что защищает от восстановления ключа, а что оставляет пользователя в зоне риска.

Расстановка сил объясняет, почему утверждение «касается каждого держателя» стоит смягчить. Пользователь современного кошелька от известного разработчика защищён самой реализацией: детерминированная генерация там встроена, и повторить одноразовое число программа просто не может. В зоне риска остаются те, кто работает через устаревшие версии, самописные скрипты, малоизвестные приложения сомнительного происхождения или давно не обновлявшиеся устройства. Это существенная, но всё же ограниченная группа, а не все подряд.

Что защищает архитектурно

Аппаратные кошельки здесь в выигрышном положении по нескольким причинам сразу. Подпись формируется внутри защищённого элемента устройства, ключ никогда не покидает его пределов, а генерация одноразового числа реализована по современному стандарту и проверена аудитом. Плюс изолированность: даже заражённый компьютер не может вмешаться в процесс подписания.

Но важно понимать границы этой защиты. Аппаратное устройство помогает не магией, а качеством реализации — а значит, зависит от корректности собственной прошивки. Именно поэтому обновления имеют значение: производители исправляют в том числе и подобные тонкости. Дополнительный слой даёт схема с несколькими подписями, когда для перевода требуется подтверждение нескольких независимых ключей — компрометация одного не открывает доступ к средствам. Как аппаратный кошелёк защищает от ончейн-атак и что даёт мульти-подписной кошелёк, мы объясняли отдельно.

Стоит понимать и условия, при которых атака вообще возможна. Она не работает против произвольного адреса: нужно, чтобы владелец уже совершил как минимум две транзакции, причём подписанные уязвимой программой. Адрес, с которого не было исходящих переводов, этим способом не вскрывается в принципе. Это не повод расслабляться, но и повод не считать угрозу всеобщей.

Практические меры

Набор действий здесь короткий и вполне выполнимый. Первое и главное — пользоваться кошельками известных разработчиков с открытым кодом и историей аудитов, а не малоизвестными сборками и самописными инструментами. Второе — своевременно устанавливать обновления, включая прошивку аппаратных устройств: значительная часть исправлений касается именно таких внутренних тонкостей.

Третье — держать значимые суммы на аппаратном устройстве, где подпись формируется в изолированной среде. Четвёртое — для крупных сумм рассмотреть схему с несколькими подписями. И общее правило, работающее против всего класса подобных проблем: чем меньше в цепочке самодельного и непроверенного, тем меньше шансов, что ошибка чьей-то реализации станет вашей потерей. Чем мобильный кошелёк отличается от аппаратного и что такое публичный реестр, мы разбирали в отдельных материалах.

Механика описана верно, и она правда впечатляет: средства уходят без взлома, ключ вычисляют из открытых данных. Но заголовок я бы уточнил, потому что от этого зависит вывод. Сломана не математика — сломана программа. Алгоритм подписи никем не скомпрометирован, а ошибка всегда в реализации: в том, как конкретное приложение готовит одноразовое число. Это разница между «менять основы отрасли» и «обновить кошелёк». История подтверждает: в 2010-м производитель консоли зашил фиксированное значение вместо случайного, в 2013-м подвёл генератор случайных чисел в мобильной системе. Виновата каждый раз программа. И вторую формулировку смягчу: «касается каждого держателя» — нет. После тех инцидентов отрасль перешла на детерминированную генерацию, где число вычисляется из самого ключа, и совпадение физически невозможно. Пользователь нормального современного кошелька защищён реализацией. В зоне риска — устаревшее, самописное, малоизвестное. Плюс атаке нужны минимум две транзакции уязвимой программой: адрес без исходящих так не вскрыть. Мой вывод спокойный: это урок не о хрупкости криптографии, а о том, что в безопасности слабое звено почти всегда код, а не теория.

Анатолий Киш
Анатолий Киш
Криптоаналитик cryptium.ru

Частые вопросы

Значит ли это, что криптография блокчейна взломана?+
Нет, и это важнейшее уточнение. Сам алгоритм цифровой подписи математически надёжен и не скомпрометирован. Уязвимость возникает исключительно на уровне реализации — в конкретной программе, которая неправильно формирует одноразовое число, участвующее в подписании. Разница принципиальная: если бы проблема была в самом алгоритме, отрасли пришлось бы перестраивать основы; поскольку она в коде, достаточно исправить или заменить программу. История подтверждает именно такой характер проблемы: в 2010 году производитель игровой консоли использовал фиксированное значение вместо случайного, а в 2013-м сбой генератора случайных чисел в мобильной операционной системе привёл к повторению значений в подписях. В обоих случаях математика работала корректно, ошибку допустили разработчики программного обеспечения. После этих инцидентов отрасль перешла на детерминированный способ формирования одноразового числа, при котором совпадение технически невозможно.
Как понять, подвержен ли мой кошелёк такой уязвимости?+
Практический ориентир простой: если вы пользуетесь актуальной версией кошелька от известного разработчика с открытым кодом и историей независимых аудитов, защита обеспечена самой реализацией. Современные кошельки формируют одноразовое число детерминированно, вычисляя его из закрытого ключа и подписываемых данных, поэтому получить одинаковое значение дважды программа физически не может. Аппаратные устройства дополнительно выполняют подпись в изолированной среде, откуда ключ не выходит. В зоне повышенного риска находятся устаревшие версии программ, самописные скрипты для работы с транзакциями, малоизвестные приложения неясного происхождения и давно не обновлявшиеся устройства. Стоит также учитывать, что атака требует наличия как минимум двух исходящих транзакций, подписанных уязвимой программой: адрес, с которого переводов не было, таким способом не вскрывается. Разумные действия — обновить программное обеспечение и прошивку, а при сомнениях в происхождении кошелька перевести средства в проверенный.
Вердикт

Механика реальна: при повторе одноразового числа закрытый ключ вычисляется из публичных подписей без всякого взлома. Но заголовок требует уточнения — сломана не математика, а программа. Алгоритм подписи надёжен, ошибка всегда в реализации: в 2010-м производитель консоли зашил фиксированное значение, в 2013-м подвёл генератор случайных чисел в мобильной системе. И формулировку «касается каждого» стоит смягчить: отрасль перешла на детерминированную генерацию, где совпадение технически невозможно, поэтому пользователи современных кошельков защищены реализацией. В зоне риска — устаревшее, самописное и малоизвестное ПО. Плюс атаке нужны минимум две транзакции: адрес без исходящих так не вскрыть.

Следите за: обновлениями прошивки аппаратных устройств, результатами аудитов используемых кошельков и сообщениями разработчиков об исправлениях в модулях подписи. Более широкий контекст — в нашем обзоре 10 ключевых трендов криптовалютного рынка в 2026 году. Разборы безопасности и защиты ключей — в нашем ПРИВАТ-канале.