Оригинальный журнал Odaily Planet Daily

Автор | Нань Чжи

Токен Pixiu обычно относится к ситуации, когда определенный токен можно только купить, но нельзя продать, и разработчик удалит LP, чтобы получить прибыль через определенный период времени, и вытащит покупателя. Отложенным Pixiu можно торговать в течение короткого периода времени, когда токен сначала открывается для торговли, а затем переходит в состояние Pixiu. Для этого типа метода Rug Pull многие инструменты обнаружения контрактов еще не добавили соответствующие функции обнаружения, и он становится одним из основных методов получения прибыли для злоумышленников.

Ниже Odaily Planet Daily объяснит, как реализуется задержка Pixiu, посредством краткого обзора принципов ERC 20 и Uniswap.

Примечание: некоторые аналогии в статье приведены для простоты понимания и не являются абсолютно строгими.

Основы ERC 20

Подавляющее большинство токенов на рынке соответствуют стандарту ERC-20. Что такое ERC-20? Ответ ChatGPT следующий:

ERC-20 — это стандарт токенов на блокчейне Ethereum, определяющий набор правил и интерфейсов, которым должны соответствовать контракты токенов. Этот стандарт регламентирует базовые функции токенов, включая переводы, запросы баланса и авторизацию расходования токенов от имени других лиц.

Вот некоторые основные правила и функции стандарта токенов ERC-20:

  • Перевод: токены ERC-20 можно переводить с помощью смарт-контрактов, что позволяет пользователям отправлять токены на другие адреса Ethereum.

  • BalanceOf: пользователи могут запрашивать баланс своих токенов ERC-20, чтобы узнать, сколько токенов им принадлежит.

BalanceOf:

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

Примечание: Ethereum использует модель, основанную на учетных записях.

Таким образом, пользователи по сути не «владеют» своими активами, а функция «определяет» количество токенов, которые вы можете «потратить».

  • То есть: X токенов баланса [счета A] = количество X токенов, которые счет A может потратить внешне.

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

Передача

Все токены ERC-20 должны иметь полную функцию передачи. Согласно предыдущей модели реестра, при передаче происходит не «передача» токена со счёта A на счёт B, а списание токенов X со счёта A и увеличение количества токенов X на счёте B.

  • То есть: баланс [счета A] - X и баланс [счета B] + X

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

Передаточная функция является фундаментальным источником большинства механизмов Pixiu.

Uniswap

В предыдущем разделе каждый токен сравнивался с «банком», поэтому Uniswap можно рассматривать как посредника, принимающего транзакции, обменивающего два токена по принципу AMM xy=k.

Процесс обмена происходит следующим образом:

  • Пользователь переводит токен A на контракт Uniswap

  • Uniswap рассчитывает токены, подлежащие возврату, по формуле y=k/x и вычитает комиссию за обработку.

  • Uniswap переводит токен A в пул LP и выводит токен B

  • Uniswap переводит токены пользователям B

Конечно, Uniswap на самом деле включает в себя множество функций и процессов. Важно понимать, что Uniswap торгует только «полученными токенами», и когда пользователи выполняют операции «перевода», их количество может измениться.

Механизм Пиксиу

В этом разделе механизмы Pixiu делятся на две категории:

① Высокие транзакционные налоги, в результате чего пользователи не получают доход от продажи токенов;

② Невозможно перевести средства, в результате чего пользователи не могут торговать с Uniswap.

Высокие транзакционные налоги

В этом разделе показан процесс расчета монеты Meme с учетом транзакционного налога, как показано на рисунке ниже (обратите внимание только на красную часть).

  1. Рассчитать налог(ы) на транзакцию

  2. Вычесть всю сумму из кошелька пользователя (BalancerOf[user] уменьшает токены A)

  3. Перевод на кошелек разработчика или адрес LP (BalancerOf[Dev] увеличивает токен A × налог S)

  4. Переведите часть токенов в Uniswap для обмена на токен B (токен A × (1-S))

  5. Пользователь получает недостаточно токенов B

Как упоминалось в предыдущем разделе, Uniswap обрабатывает только «полученные токены», и разработчики могут произвольно изменять сумму, передаваемую Uniswap и пользователям.

Здесь, если ставка налога на транзакцию изменяется до 100%, то на третьем шаге «③ Перевод на кошелек разработчика или адрес LP» Pixiu реализуется, и пользователь больше не может получать токены.

Невозможно перевести деньги

В Solidity разработчики могут ограничивать транзакции с помощью require:

Если разработчик ограничит обмен токенами определёнными адресами из белого списка, пользователи не смогут отправлять свои токены в Uniswap. На втором этапе «2. Списание средств с кошелька пользователя» реализуется Pixiu, и разработчик может настроить маршрутизатор Uniswap для отправки токенов. Результат:

Пользователи могут только покупать (Uniswap передает токены пользователям), но не могут продавать (поскольку токены нельзя передать в Uniswap для обмена на ETH и т. д.).

В качестве альтернативы разработчики могут установить лимит переводов на 0, отключить переключатель транзакций и выполнить другие операции, но в конечном итоге они все контролируют сам акт «перевода».

Задержка Пиксиу

Дополнительная задержка в Pixiu достигается за счет требования ограничения по времени (высоте блока).

Например, в определенном токене ограничения следующие:

    require(block.number < _allowance)

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

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

Как это предотвратить

Учитывая, что этот метод сбора данных распространён среди «собак Чонгту», покупатели часто гонятся за эффективностью, игнорируя безопасность, и мы пока не видели, чтобы какая-либо зрелая компания, занимающаяся безопасностью, выпустила специальные инструменты для обнаружения этого метода. Поэтому Odaily Planet Daily напоминает покупателям с определёнными навыками программирования, что им также следует изучить код контракта (или использовать инструменты, такие как ChatGPT, для быстрого просмотра) для своих активов, особенно обращая внимание на контракт selpair, и избегая проектов, содержащих нетипичные области кода.