Перейти до основного контенту

Що таке токен Honeypot?

U
Автор: UKey Wallet

Токен Honeypot — це шкідлива криптовалюта, створена розробниками, які навмисно вставляють обмеження або бекдори в смарт-контракт. Це дозволяє звичайним користувачам купувати токен, але не дозволяє їм продавати його (або робить продаж предметом надзвичайно високих комісій/механізмів чорного списку), фактично затримуючи їхні кошти в гаманцях. На перший погляд такі токени можуть здаватися законними — вони можуть мати пари ліквідності, логотипи токенів і активне просування спільноти — але як тільки користувач купує токен на децентралізованій біржі, він незабаром виявляє, що продаж відхилено або комісія за транзакцію настільки висока, що стає неможливим повернути свої інвестиції.

Як уникнути втрат і як перевірити

  1. Ви можете ввести адресу договору токена в провіднику блокчейнів, наприклад OKLINK (як показано в прикладі нижче). Якщо токен є Honeypot, він зазвичай буде відповідним чином позначений. ​

2. Оскільки нові токени запускаються в блокчейні щодня, і дослідники можуть не оновлюватися вчасно, ви можете виконати ручну самоперевірку за допомогою наведених нижче методів. ​
Перевірте вкладку Читати договір:

owner() — якщо він повертає значення, відмінне від 0x000..., це означає, що власник усе ще має контроль.

totalSupply() і balanceOf() — Перевірте початковий розподіл токенів.

Шукайте такі функції чи змінні, як isExcludedFromFee(address), isBlacklisted(address), maxTxAmount() і tradingEnabled() (різні контракти можуть використовувати різні назви, але вони служать схожим цілям). ​
На вкладці «Написати контракт» (доступна лише за наявності дозволу):

Перевірте, чи є чутливі функції запису, такі як ​setFeePercent, setBlacklist, renounceOwnership або setTradingEnabled. Якщо вони існують і їх може викликати лише власник, токен несе високий ризик. ​
Здійсніть пошук у вихідному коді за такими ключовими словами (незалежно від регістру або з підкресленням): чорний список, isBot, onlyOwner, setFee, maxTx, excludedFromFee, trading, swapAndLiquify, transferFrom, approve, mint, burn, renounceOwnership, liquidity.

Зверніть особливу увагу на реалізацію transfer, _transfer і transferFrom — перевірте, чи вони по-різному обробляють to == pair або from == pair (щоб розрізняти операції купівлі та продажу).

Якщо ви знайдете такий код, як

вимагати(!_в чорному списку[від]); if (to == pair) { fee = 99; }

це явний червоний прапор. ​
Перевірте, чи контракт викликає маршрутизатор (наприклад, Pancake/Uniswap Router) і чи включає процес swap складну логіку, таку як lockTheSwap або _tax, яка може перешкоджати нормальному свопу.

Ви отримали відповідь на своє запитання?