Мошенничество со ставками на NFT и поддельные токены

2026-09-03

Мошенничество со ставками на NFT и поддельные токены

На вашем предмете появляется предложение на 12,5 ETH, тогда как коллекция переходит из рук в руки около 0,5 ETH. Число настоящее в том смысле, что кто-то действительно подписал его в ордере. Чего число не говорит, так это в каком токене оно посчитано, и именно это одно поле превращает сделку, которую вы собираетесь принять, в совсем другую сделку.

Мошенничество со ставками на NFT и поддельные токены: ключевые моменты

Что такое ставка на самом деле

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

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

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

Строка с валютой решает, сколько ставка стоит

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

Символы токенов ничего не идентифицируют. В ERC-20 и name, и symbol необязательны, и стандарт прямо говорит, что метод может использоваться для удобства, но интерфейсы и другие контракты не должны рассчитывать на присутствие этих значений. Разработчик выбирает эти строки свободно, поэтому контракт, символ которого читается ровно как у контракта обёрнутого эфира, стоит одного развёртывания и может быть отчеканен в любом количестве, какое захочет его автор.

Предложение, номинированное в таком токене, не является подделкой и исполнится ровно так, как написано: вы отдаёте предмет и получаете указанное число единиц токена, за которым нет покупателя. Поэтому проверка здесь — это сравнение адресов, и ERC-721 говорит то же самое про сторону предмета, называя пару из адреса контракта и идентификатора токена глобально уникальным и полностью квалифицированным идентификатором конкретного актива в сети Ethereum. Личность живёт в адресе. Символы — лишь ярлыки, нарисованные поверх него.

Почему размер ставки ничего не доказывает

Предложение в 25 раз выше уровня, по которому коллекция торговалась, читается как подарок судьбы, а утверждает нечто гораздо более слабое: сколько один адрес готов заплатить по собственным словам. Сказать это не стоит ничего. Предложение можно отозвать раньше, чем вы до него доберётесь, и оно останавливается на сроке, записанном внутри него.

Ставки можно и создавать намеренно, чтобы на них смотрели. Предложения, расставленные между адресами под одним оператором, создают видимость спроса так же, как ваш-трейдинг создаёт видимость объёма, и ни страница маркетплейса, ни блокчейн не фиксируют, кто каким адресом управляет.

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

Предложение, которое на самом деле запрос на одобрение

Некоторые уведомления о предложениях вовсе не предложения. Страница существует, чтобы поставить перед вами запрос на подпись, и просит она постоянное разрешение на вашу коллекцию, а не покупку. ERC-721 определяет setApprovalForAll как включение или отключение одобрения для третьей стороны, называемой оператором, на управление всеми активами вызывающего, и оператор с таким разрешением может перемещать каждый предмет коллекции, больше ни о чём не спрашивая: это и есть механизм, стоящий за дрейнером кошельков.

У валютной стороны есть своя версия. ERC-2612 добавляет функцию permit, чтобы разрешение можно было выставить подписанным сообщением, а не транзакцией, которую отправляет держатель, причём подписываемые данные структурированы по EIP-712. Пришедшее таким путём одобрение токенов не оставляет транзакции, которую можно было бы заметить в момент подписи, а ERC-20 уже предупреждает, что повторный вызов approve перезаписывает текущее разрешение новым значением.

EIP-712 даёт вам и то поле, которое отделяет настоящий запрос от его копии. Его доменный разделитель называет контракт, для которого подпись действительна, а раздел обоснования объясняет, что разделитель предотвращает коллизию в остальном одинаковых структур, поскольку два приложения могут прийти к одинаковой структуре, которая совместимой быть не должна. Спецификация предполагает, что пользовательские агенты могут на этом основании делать защиту от фишинга под конкретный контракт. На практике это значит прочитать проверяющий контракт внутри расшифрованного запроса раньше всего, что страница написала вокруг него.

Ставки, приходящие мимо маркетплейса

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

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

Что строка предложения может и чего не может обещать

Что показывает строка Что это на самом деле Что это решает
Сумма Поле в подписанном ордере Сама по себе ничего
Символ валюты Свободный текст, выбранный разработчиком токена Ничего
Адрес контракта валюты Личность предлагаемого актива Что вы на самом деле получите
Срок действия Поле в подписанном ордере Позднюю границу исполнения, а не раннюю границу отзыва
Запасы покупателя Вообще не часть ордера Ничего, хотя нехватка баланса откатит исполнение

Пройдите по средней колонке, и закономерность в том, что каждая строка, кроме одной, — это утверждение, а строка с адресом — это личность. Именно на неё стоит потратить внимание, и именно её интерфейс отрисовывает самой мелкой.

Что проверить перед тем, как принять

Что проверить С чем сравнить О чём говорит расхождение
Адрес контракта валюты Адрес, который публикует сам эмитент Вам платят другим активом
Контракт предмета и идентификатор токена Предмет, который вы считаете продаваемым Ордер указывает на что-то другое
Что именно разрешает запрос Действие, которое вы намеревались совершить Вы даёте доступ, а не продаёте
Проверяющий контракт в запросе Маркетплейс, открытый вами самими Подпись предназначена чужому контракту
Действующие одобрения на коллекцию Операторы, которых вы собирались уполномочить Выданное раньше разрешение всё ещё открыто

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

Итог

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

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

Похожие материалы

Другие материалы Bitbase по этой теме:

- Манипуляции минимальной ценой на маркетплейсах NFT

- Безопасность входа в крипто: как защитить аккаунт

- Аирдроп-мошенничество и контрольный список безопасности перед получением

- Крипто он-рамп и офф-рамп: в чём разница?

- «Культовые» монеты и захват сообществами (CTO)

Дисклеймер: эта статья — образовательный материал Bitbase Academy, только для информационных целей. Она не является инвестиционным, торговым, налоговым или финансовым советом. Криптоактивы волатильны — оценивайте риски самостоятельно. Написано в сентябре 2026 года; сверяйтесь с актуальной официальной информацией.

Источники

[1] Предложения по улучшению Ethereum (EIP), EIP-712: Typed structured data hashing and signing eips.ethereum.org

[2] Предложения по улучшению Ethereum (EIP), ERC-20: Token Standard eips.ethereum.org

[3] Предложения по улучшению Ethereum (EIP), ERC-721: Non-Fungible Token Standard eips.ethereum.org

[4] Предложения по улучшению Ethereum (EIP), ERC-2612: Permit Extension for EIP-20 Signed Approvals eips.ethereum.org