Как ваш кошелёк взломали
Эта страница объясняет, что произошло с вашим кошельком и почему спасение выглядит именно так. Если вы уже понимаете причину и хотите сразу к действиям — переходите к подготовке.
Что такое дрейнер
Дрейнер — это программа, которая выводит средства с кошелька, к которому получила доступ. Она не «взламывает блокчейн»: она пользуется тем, что у неё есть законная с точки зрения сети возможность подписывать транзакции от вашего имени.
Как только у атакующего появился доступ, он контролирует кошелёк ровно так же, как вы. Сеть не различает, кто именно отправил транзакцию — она проверяет только подпись.
Как у вас забрали доступ
Обычно доступ утекает одним из этих способов:
- Вы подписали транзакцию или сообщение на поддельном сайте, который выглядел как настоящий.
- Вы выдали разрешение на списание токенов (
approve) контракту, который оказался вредоносным. Такое разрешение действует, пока его не отозвать. - Вы ввели seed-фразу или приватный ключ туда, где их видел кто-то ещё: фальшивый сайт, чужой компьютер, скриншот, чат, облако.
- В браузере стояло расширение, которое читало страницы или подменяло адреса.
- Вы подписали делегирование EIP-7702, из-за которого кошелёк исполняет чужой код.
Знать точную причину для спасения не обязательно. Важно другое: если средства уходят сами — доступ у кого-то есть, и он останется, пока вы не переведёте активы на новый адрес.
Что происходит прямо сейчас
Транзакции в сети видны до того, как попадут в блок. Атакующий может следить за этой очередью и отправить свою транзакцию с большей комиссией, чтобы она исполнилась раньше вашей.
Это гонка, и её можно проиграть
Дрейнер часто работает автоматически и реагирует быстрее человека. Поэтому AntiDrain готовит транзакцию заранее и отправляет её одним действием, а не даёт вам вводить данные по ходу.
По той же причине в настройках сети стоит выбрать MEV-защищённый RPC: он снижает шанс, что атакующий увидит вашу транзакцию в общей очереди и опередит вывод.
Никогда не пополняйте взломанный кошелёк
Чтобы отправить транзакцию, нужна нативная монета сети на газ. Первое, что приходит в голову — отправить немного монеты на пострадавший кошелёк. Так делать нельзя.
Отправленный туда газ вы потеряете
Дрейнер видит поступление и выводит его вместе с остальным. Вы просто подарите атакующему ещё немного средств и останетесь без газа.
Именно поэтому в AntiDrain есть кошелёк-донор: газ платит отдельный чистый кошелёк, к которому у атакующего доступа нет. Пополнять нужно только его, и только на сумму, которую покажет шаг Fund Donor.
Почему старый кошелёк больше нельзя использовать
Спасение активов не возвращает вам контроль над старым кошельком. Приватный ключ по-прежнему известен атакующему, а approve-разрешения и делегирования могут остаться.
Даже если вы сняли делегирование и вывели всё до последнего токена, кошелёк остаётся скомпрометированным навсегда. Любые новые средства на нём снова окажутся под угрозой.
Считайте старый адрес закрытым: не принимайте на него выплаты, не используйте его для новых операций и не восстанавливайте его seed-фразу в других кошельках.
Если атакующий успел первым
Такое бывает, и это стоит сказать прямо: транзакции в блокчейне необратимы. Если активы уже выведены, вернуть их через AntiDrain нельзя — сайт готовит и отправляет транзакции, но не отменяет чужие.
Что имеет смысл проверить:
- Остались ли активы в других сетях. Средства не переходят между сетями сами, и часто уводят только одну.
- Остались ли NFT или позиции в пулах — их выводят не всегда.
- Не осталось ли активного делегирования EIP-7702, из-за которого пострадают будущие поступления.
Если что-то осталось — спасайте это на новый адрес. Если не осталось ничего, дальше имеет смысл только разобраться с причиной, чтобы не повторить её на новом кошельке.
Дальше
- Подготовка — что нужно собрать до начала.
- Главные правила безопасности — что проверять перед каждой отправкой.
- Словарь — если какой-то термин здесь незнаком.
