TRC-20 Утверждение токена: что это такое и когда оно вам нужно — TRON Wiki

TRC-20 Утверждение токена: что это такое и когда оно вам нужно

8 мин чтения · ⌘K поиск

TRC-20 approve позволяет смарт-контракту извлекать токены из вашего кошелька без вашей подписи при каждом переводе — это важно для обмена DEX и кредитования, а также является основным механизмом фишингового мошенничества с одобрением.

Как работает одобрение

TRC-20 наследует шаблон утверждения ERC-20:

  1. Вы вызываете approve(spender, amount) по контракту токена (например, USDT).
  2. В токене записано пособие[вашадрес][потратитель] = сумма.
  3. Контракт отправителя вызывает transferFrom(you, destination, amount).
  4. Пособие уменьшается, если вы не одобрили type(uint256).max (без ограничений).

Пример: обмен USDT на SunSwap требует одобрения контракта маршрутизатора для извлечения USDT из вашего кошелька для транзакции обмена.

Официальный контракт USDT:

Код
TR7NHqjeKQxGTCi8q8ZY4pL8otSzgjLj6t

Утверждение или передача

ДействиеКто инициируетВариант использования
⟦Т5⟧ВыОтправить другу, заплатить продавцу
approve + transferFromКонтрактDEX, кредитование, автоматизированные стратегии

Обычные P2P-отправки USDT никогда не требуют одобрения. Если случайный сайт просит вас одобрить USDT для «получения» средств, это мошенничество.

Одобрение — это не передача
При одобрении токены не отправляются немедленно — оно предоставляет права на будущие расходы. Вредоносные контракты истощаются позже через transferFrom.

Когда вам нужно одобрение

Законные сценарии:

  • Сделки на DEX — одобряем маршрутизатор, затем обмениваем его
  • Кредитование — утвердить пул для внесения залога.
  • Предоставление ликвидности — утвердить парный контракт
  • Некоторые мосты — утвердить контракт на мост (проверьте официальный интерфейс)

Каждое утверждение стоит энергии/TRX, как и любой вызов контракта. См. TRC-20 комиссии за перевод.

Неограниченные риски одобрения

Кошельки и децентрализованные приложения часто по умолчанию имеют безлимитный режим (MaxUint256), потому что:

  • Пользователи избегают повторных утверждений (экономят комиссию)
  • UX стал более плавным для частых трейдеров

Риски:

РискСледствие
Эксплойт маршрутизатораЗлоумышленник истощает все одобренные USDT
Фишинговое децентрализованное приложениеПоддельный сайт получил неограниченные права на получение информации
Скомпрометированное обновление проектаПрокси-контракт меняет поведение
Относитесь к неограниченному доступу как к полному доступу к кошельку
Для USDT вы не ведете активную торговлю, не используете точные суммы и не отзываете активы после использования.

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

  1. Подтвердить URL — добавьте в закладки официальные dApps; игнорировать DM.
  2. Проверьте адрес отправителя на TronScan перед подтверждением.
  3. Предпочитайте точные суммы при единоразовом взаимодействии.
  4. Отзыв после использованияотзыв одобрения TRC-20.
  5. Отдельные кошельки — горячий кошелек для DeFi, холодный для сбережений.
  6. Проверка контракта USDTофициальное руководство USDT.

Чтение разрешений на TronScan

  1. Откройте адрес своего кошелька на TronScan.
  2. Перейдите в раздел Утверждения или разрешения на использование токенов (пользовательский интерфейс зависит от версии).
  3. См. контракты с расходующими и оставшуюся сумму.
  4. Отозвать подозрительные записи с помощью инструмента отзыва TronScan или кошелька.

Распространенные модели мошенничества

УзорРеальность
«Подайте заявку на раздачу — сначала подтвердите»Ворует реальные токены
Поддельный USDT с кнопкой одобренияБесполезный жетон, реальная цель одобрения
Сайты выдачи себя за другое лицоСпендер - контракт нападающего
Служба поддержки запрашивает одобрение, txНикогда не законно

Поддельные раздачи USDT часто сопровождаются запросами на одобрение — проверяйте контракт перед любым взаимодействием.

Технические подробности для разработчиков

Код
function approve(address spender, uint256 amount) external returns (bool);
function allowance(address owner, address spender) external view returns (uint256);
function transferFrom(address from, address to, uint256 amount) external returns (bool);

Лучшие практики:

  • Используйте шаблоны increaseAllowance / decreaseAllowance, если они доступны.
  • Избегайте принудительного неограниченного одобрения в пользовательском интерфейсе.
  • Документ о договоре расходования средств для пользователей.

Контекст создания токена: создать токен TRC-20.

Объяснение сумм пособий

Тип одобренияЦенность в цепочкеЛучшее для
Точная суммаРазмер свопа соответствуетРазовая сделка на DEX
Чуть вышеСвоп + буфер проскальзыванияЕдиная сделка с движением цены
Без ограничений (MaxUint256)Фактически бесконеченЧастые торговые боты (рискованно)

Кошельки отображаются без ограничений в очень большом количестве. На вкладке «Пособие TronScan» отображается оставшийся лимит расходов — обновляется после каждого transferFrom.

Мультиподпись и одобрения

Корпоративные учетные записи TRON, использующие разрешения multisig, по-прежнему подписывают approve ключами владельца. Казначейская политика должна требовать:

  • Белый список контрактов спонсоров.
  • По умолчанию утверждается точная сумма.
  • Обязательный отзыв после ежеквартальной проверки.

Временная шкала инцидента

Если вы подозреваете злонамеренное одобрение:

минутаДействие
0Отозвать пособие на TronScan
1Переведите оставшиеся USDT на новый кошелек
5Адрес отправителя документа; предупредить команду
24 часаОтслеживать TronScan на предмет попыток transferFrom

Скорость имеет значение — боты отбирают неограниченное количество одобрений внутри блоков.

Обучение для нетехнических пользователей

Команды должны обучать персонал, который Одобрить не означает Отправить:

Метка пользовательского интерфейсаМентальная модель пользователя
Отправить/ПередатьДеньги покинули кошелек сейчас
Утвердить/РазрешитьРазрешение на будущее предоставлено

Обучение безопасности в один слайд со ссылкой на руководство по отзыву снижает количество повторных инцидентов.

Прокси обновления контракта

Некоторые токены TRC-20 используют обновляемые шаблоны прокси — одобрения тратителей могут сохраняться при смене реализации. Предпочитайте отзыв после миграции протокола «v2», даже если пользовательский интерфейс заявляет о совместимости.

Часто задаваемые вопросы

Что делает утверждение на TRC-20?

Это позволяет смарт-контракту расходовать ваши токены до установленного лимита. Контракт может вызывать TransferFrom без вашей подписи каждый раз, пока не будет отозван или израсходован.

Должен ли я одобрить неограниченное количество USDT?

Только для контрактов, которым вы полностью доверяете. Неограниченное одобрение удобно, но опасно, если контракт взломан или вредоносен.

Контрольный список устранения неполадок

Если что-то пойдет не так на TRON, отнеситесь к этому как к проблеме структурированной отладки: подтвердите точный txid в цепочке, проверьте адрес целевого контракта и только затем решите, можно ли устранить сбой. В TRON многие «загадочные» проблемы — это просто одна из следующих: неправильная сеть (основная сеть или тестовая сеть), неправильный контракт токена (поддельный USDT / токены с одинаковым названием), недостаточность ресурсов (OUT_OF_ENERGY / пропускная способность) или задержка пользовательского интерфейса/индексатора между кошельком и проводником.

Начните с этих цепочек проверок:- Всегда копируйте полный txid/хэш из своего кошелька или проводника.

  • Подтвердите статус результата передачи по TronScan (SUCCESS, REVERT, OUT_OF_ENERGY или все еще в ожидании).
  • Проверьте, соответствует ли адрес получателя/договора тому, что вы намеревались отправить.
  • Если это вызов контракта, убедитесь, что селектор функций и параметры соответствуют стандарту токена, который, по вашему мнению, вы используете (TRC-20 vs TRC-10 vs BEP-20 на BSC).

Затем примените путь исправления для вашей категории:

  • Подтвердите статус и параметры транзакции.
  • Проверка адресов (контракт токена, получатель, маршрутизатор/отправитель).
  • Добавляйте или делегируйте ресурсы (энергию/пропускную способность), если сбой связан с ресурсами.

Распространенные ошибки

Эти шаблоны вызывают большинство сбоев на уровне пользователя:

  • Использование адресов основной сети в тестовой сети (или наоборот).
  • Копирование символа токена вместо фактического адреса контракта TRC-20.
  • Подписание неправильного адреса одобрения/платежа, поскольку ссылка пользовательского интерфейса является вредоносной или устаревшей.
  • Повторная попытка без изменения ошибочного ввода (например, REVERT продолжает возвращаться до тех пор, пока вы не исправите параметр).

Если вы не уверены, не «просто отправьте еще раз». Внесите одно контролируемое изменение, проверьте на TronScan, затем продолжайте.

Часто задаваемые вопросы

Как узнать, действительно ли транзакция подтверждена?

Используйте TronScan и проверьте статус результата передачи. Ярлыки кошелька «ожидающие» могут отставать; Статус цепочки является источником истины. Скопируйте txid и проверьте SUCCESS/REVERT/OUT_OF_ENERGY, а не только текст пользовательского интерфейса.

Почему пользовательский интерфейс отличается от TronScan?

Некоторые кошельки и децентрализованные приложения используют разные индексаторы или уровни кэша. Короткая задержка между трансляцией и индексированием является нормальной; сравните txid и подождите, пока цепочка стабилизируется, прежде чем сделать вывод об ошибке.

Что мне делать после REVERT?

Остановитесь и декодируйте неудачный вызов. Большинство ошибок REVERT вызвано недопустимыми параметрами, неправильным адресом контракта, отсутствием утверждений или несоответствием между стандартом токена и методом. Устраните причину и подпишите заново.

Безопасно ли подписывать неограниченное разрешение?

Неограниченное одобрение безопасно только для проверенных вами адресов доверенных отправителей (проверенный источник, правильный маршрутизатор и ожидаемый контракт токена). Для тестирования отдавайте предпочтение ограниченному утверждению и отзыву после завершения.

Какие ресурсы требуются TRON для вызовов по контракту?

Выполнение смарт-контракта в основном потребляет энергию, а байты транзакций потребляют пропускную способность. Если вы получили OUT_OF_ENERGY, добавьте/заморозьте/делегируйте Энергию. Если полоса пропускания исчерпана, сосредоточьтесь на сохранении достаточного количества TRX для байтов и распределения ресурсов.

Как я могу уменьшить количество обращений в службу поддержки?

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