Это сценарии, при которых в блокчейне присутствует реальная транзакция, но она не является оплатой по конкретной сделке
1) Механика спуфинга
Базовая логика спуфа строится на одном допущении: если в блокчейне видно поступление средств, значит платёж получен
На практике это не так, транзакция может существовать, но не относиться к конкретной сделке.
Факт входа средств на кошелёк сам по себе не подтверждает, что платёж выполнен именно этим клиентом и именно под эту операцию
Ключевой риск возникает в момент параллельной обработки сделок, когда одновременно ведётся несколько операций с одинаковым активом и схожими суммами, одна и та же транзакция может выглядеть валидной сразу в нескольких контекстах, то есть спуфинг использует разрыв между фактом транзакции и контекстом конкретной сделки
2) Основные технические приёмы спуфинга
Дублирование хэша
Одна и та же транзакция используется в нескольких диалогах, платёж был один, но его пытаются зачесть под разные сделки
Манипуляция суммой, он же социальный спуф
Заявлена одна сумма, отправлена другая: меньше, частями или с десятичной точкой
Часто это сопровождается давлением в формате "ой, ошибся", "давайте так, а потом дозакину".
Причем в блокчейне перевод есть, но условия сделки не выполнены
Подмена актива
Отправка токена с похожим названием, но другим контрактом, визуально выглядит корректно, но экономической ценности не имеет, пустышка
Разрыв по времени
Используется старый или заранее подготовленный хэш, который не совпадает с таймингом текущей сделки, но подаётся как подтверждение оплаты текущей сделки
Причина всегда одна - проверяется транзакция, но не платёж в контексте сделки, обычно видят вход, визуальное совпадение суммы и двигаются дальше
Спуфинг почти всегда опирается на человеческий фактор: спешку, многозадачность, доверие к похожей транзакции и без проверки уникальности и привязки к конкретной операции транзакция легко засчитывается ошибочно
3) Как защититься от спуфинга
❕ Хэш обязан проверяться на уникальность
Он не должен фигурировать в других сделках/диалогах
❕ Сумма должна сверяться очень строго
Без округлений, совпадений и допущений, независимо от объяснений со стороны с кем идет обмен
❕ Актив проверяться только по контракту
Название токена не является подтверждением
❕ Тайминг транзакции сопоставляться со сделкой
Хэш должен соответствовать моменту операции, а не существовать вне её контекста
Всегда помните, что в обмене крипты транзакция сама по себе ничего не подтверждает.
Платёж считается принятым только тогда, когда он:
- уникален
- соответствует сумме
- выполнен в нужном активе
- совпадает по времени
- однозначно привязан к конкретной сделке
Всё остальное - потенциальный спуф











