Токен-ловушка — это вредоносная криптовалюта, созданная разработчиками, которые намеренно вставляют ограничения или бэкдоры в смарт-контракт. Это позволяет обычным пользователям покупать токен, но не продавать его (или делает продажу предметом чрезвычайно высоких комиссий / механизмов черного списка), эффективно удерживая их средства в кошельках.
На первый взгляд такие токены могут казаться легитимными — у них могут быть пары ликвидности, логотипы токенов и активное продвижение в сообществе — но как только пользователь приобретает токен на децентрализованной бирже, он вскоре обнаруживает, что продажа отклоняется, или комиссии за транзакции настолько высоки, что восстановить инвестиции становится невозможно.
Как избежать потерь и как проверить
Вы можете ввести адрес контракта токена в обозревателе блокчейна, например OKLINK (как показано в примере ниже). Если токен является ловушкой, он обычно будет помечен соответствующим образом.
Поскольку каждый день в блокчейне запускаются новые токены, а обозреватели могут не успевать обновляться, вы можете выполнить ручную самопроверку, используя следующие методы.
Проверьте во вкладке Read Contract:owner()— Если возвращается значение, отличное от0x000, это означает, что владелец все еще имеет контроль.totalSupply()иbalanceOf()— Проверьте первоначальное распределение токенов.Ищите функции или переменные, такие как
isExcludedFromFee(address),isBlacklisted(address),maxTxAmount()иtradingEnabled()(разные контракты могут использовать разные названия, но они служат схожим целям).
Во вкладке Write Contract (доступна только при наличии разрешений):Проверьте, существуют ли чувствительные функции записи, такие как
setFeePercent,setBlacklist,renounceOwnershipилиsetTradingEnabled.
Если они существуют и могут быть вызваны только владельцем, токен несет высокий риск.
Поиск по исходному коду следующих ключевых слов (без учета регистра или с подчеркиваниями):
blacklist,isBot,onlyOwner,setFee,maxTx,excludedFromFee,trading,swapAndLiquify,transferFrom,approve,mint,burn,renounceOwnership,liquidity.Особое внимание уделите реализации
transfer,_transferиtransferFrom— проверьте, обрабатывают ли ониto == pairилиfrom == pairпо-разному (для различения операций покупки и продажи).Если вы найдете код, такой как
require(!_isBlacklisted[from]); if (to == pair) { fee = 99; }это явный красный флаг.
Проверьте, вызывает ли контракт маршрутизатор (например, Pancake/Uniswap Router) и включает ли процессswapсложную логику, такую какlockTheSwapили_tax, которая может препятствовать нормальному обмену.

