Продажа, которую он не разглядел в подписи

Январь 2025. Пользователь из Еревана выставляет три CryptoPunks на Blur через флеш-сейл. Через несколько дней в Discord пишет «коллекционер» с «эксклюзивным предложением» и ведёт его на самодельный сайт «Blur Pro». Запрос там называется «принять бид». На самом деле он подписывает пачку ордеров на продажу: все три Панка по 0,1 ETH за штуку.

Атакующий мгновенно исполняет ордера. Три Панка при флоре 38 ETH уходят по 0,1 ETH каждый. Потеря: 113,7 ETH.

Чем опасна офчейн-подпись ордера

Blur, как и большинство NFT-маркетплейсов, позволяет выставлять лоты и делать ставки через офчейн-ордера EIP-712, а одобрение, выданное маркетплейсу при первом листинге, позволяет его контракту перевести NFT, когда ордер исполняется. При подписи в сеть ничего не отправляется. Мошенник, который уговорил вас подписать ордер на продажу по цене около нуля, просто исполняет его со своего кошелька, и контракт маркетплейса проводит сделку ровно так, как подписано.

Пять признаков

  • Сайт подписи — не blur.io. «Blur Pro», «Blur Plus», «Blur OTC» — всё фейк. Лотами и ставками управляют только на blur.io.
  • Цена ничтожна относительно флора. Реальные коллекционеры не пишут в личку с предложением 0,1 ETH за NFT с флором 38 ETH.
  • Подпись выставляет на продажу ваши же NFT. Если в typed-data-запросе перечислены ваши Панки — или целая пачка ваших NFT — рядом с ценой около нуля, эксплойт происходит у вас на глазах.
  • Срочность в личных сообщениях Discord. «Предложение истекает через 10 минут» — чтобы пропустить шаг проверки.
  • Discord ID легко подделать. Мошенник может взять ник, отличающийся от ника команды Blur одним символом.

Чек-лист восстановления

Если подписали: на blur.io и на любом другом маркетплейсе, где у вас есть лоты, воспользуйтесь функцией отмены всех листингов и предложений. Это стоит газа, зато делает недействительными уже подписанные ордера. Параллельно переведите каждый NFT из пострадавшего кошелька на свежий, а затем отзовите одобрения маркетплейсов у старого кошелька на revoke.cash. Ничего больше не подписывайте, пока не разберётесь, что именно подписали.

Постоянная установка

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