Сбой автоматизации: биткоин-кошелек потерял $102 000 на комиссии за перевод
В мире криптовалют автоматизация — это палка о двух концах. Очередной инцидент это подтвердил: владелец биткоин-кошелька потерял более $102 000 (1,6 BTC) в качестве комиссии за транзакцию, которая так и не достигла адресата. Средства были списаны, но получатель не получил ни одного сатоши.
Инцидент произошел 12 августа и был зафиксирован в блоке 962 142. Анализ данных блокчейна показывает, что на вход транзакции поступило 160 343 885 сатоши, и вся эта сумма целиком ушла майнерам. Выход транзакции оказался пустым — классический пример «сгоревших» средств.
Корень проблемы: RBF-скрипт вышел из-под контроля
Виноват в этой ситуации автоматизированный скрипт с функцией Replace-by-Fee (RBF). Механизм RBF позволяет заменить неподтвержденную транзакцию на новую с более высокой комиссией, чтобы ускорить ее прохождение в мемпуле. Это полезный инструмент, когда сеть перегружена, а комиссии растут каждую минуту.
Однако в этот раз сценарий дал сбой. Вместо того чтобы остановиться на разумном уровне, бот начал повышать комиссию каждую секунду, «съедая» с баланса все больше средств. Протокол Биткоина не ограничивает размер комиссии, которую отправитель готов заплатить майнерам, поэтому транзакция была принята сетью, несмотря на абсурдность ситуации. В итоге весь вход транзакции ушел на комиссию, а майнеры получили щедрый подарок.
Блок, в который попала эта транзакция, был добыт пулом SpiderPool. Общая комиссия в этом блоке составила около 1,82 BTC, и 88% этой суммы пришлось на одну ошибочную транзакцию. Для майнеров, которые сейчас переживают не лучшие времена из-за падения доходности, это настоящая удача.
Как защититься от подобных ошибок?
Этот случай — важное напоминание о базовых правилах безопасности при работе с криптовалютами. Во-первых, всегда отключайте автоматическое повышение комиссии через RBF. Ручное подтверждение каждой транзакции — это барьер, который защитит вас от бездумных действий скрипта.
Во-вторых, установите жесткий лимит на комиссию. Большинство современных кошельков позволяют указать максимальное количество сатоши за байт, и этого ограничения может быть достаточно, чтобы остановить неисправный бот. В-третьих, после каждого обновления программного обеспечения кошелька проводите тестовые транзакции на небольшую сумму. Пара тысяч сатоши — это незначительная плата за проверку работоспособности системы.
Эта ситуация также поднимает важный вопрос к разработчикам кошельков: должен ли кошелек вообще допускать трату всей суммы на комиссию в рамках одной транзакции? Очевидно, что нет — и это техническое ограничение могло бы предотвратить подобные потери.
Пока биткоин торгуется вблизи $63 770, такая ошибка обходится особенно дорого. Потеря более $100 000 — это не просто неприятность, а катастрофа, которая могла быть предотвращена. Автоматизация в кошельках требует такого же тщательного контроля, как и хранение сид-фразы. Бездумный скрипт может опустошить счет быстрее, чем любой хакер.
Мой вывод: доверяйте автоматизации, но проверяйте ее. Криптовалюта не прощает небрежности, и этот случай — очередное тому подтверждение. Разработчикам стоит задуматься о введении «предохранителей» в протоколы кошельков, чтобы подобные ошибки стали невозможны.