Автор: Beosin
В этом году мемкойны остаются в центре внимания криптовалютного рынка и экосистем крупных публичных блокчейнов. С начала года в экосистеме Solana появилось множество мемкойнов с удивительным ростом цен и платформа запуска мемкойнов Pump.Fun, что привлекло множество пользователей к выпуску и торговле различными мем-токенами. Торговля мемкойнами в других экосистемах также необычайно активна, например в экосистеме TRON SunPump, которая за две недели заработала миллион долларов; сеть BNB Chain запустила «Битву за инновации мемов».
С проблемами, возникающими на фоне ажиотажа мемкойнов, пользователи должны избегать различных потенциальных рисков безопасности. Ранее Beosin провела подробный анализ безопасности платформ запуска мемкойнов, заранее предупредила о рисках централизации таких платформ, как Dexx, и провела аудит для нескольких платформ запуска мемкойнов, таких как Tokr.fun, Pumpup, Pump404.
Сегодня мы с точки зрения безопасности проанализируем распространенные риски и способы злоупотребления в мемкойнах, чтобы помочь пользователям без технической базы также овладеть некоторыми способами распознавания соответствующих рисков и избежать финансовых потерь.
Риск централизации
Недавно событие Dexx снова напомнило пользователям о необходимости обратить внимание на риски централизации платформы. В этой части мы проведем анализ текущей крупнейшей платформы запуска мемкойнов Pump.Fun:
По данным цепочки, мы можем найти адрес контракта Pump.Fun, который равен 6EF8rrecthR5Dkzon8Nwu78hRvfCKubJ14M5uBEwF6P. Код этого контракта не является открытым, он контролируется многоподписным адресом (7gZufwwAo17y5kg8FMyJy2phgpvv9RSdzWtdXiWHjFr8).
Однако при проверке этого многоподписного адреса оказалось, что на самом деле он контролируется одним адресом (4zJkeipCFGvfcJvKm4TY57ED9uEdL3sBRvs8TPdZKG5Q), что создает риск единой точки отказа.
Ссылка: https://solscan.io/account/6EF8rrecthR5Dkzon8Nwu78hRvfCKubJ14M5uBEwF6P
17 мая Pump.Fun понесла убытки в размере 1,9 миллиона долларов из-за утечки частного ключа. Управление частным ключом проекта и использование многоподписей особенно важны для предотвращения единой точки отказа.
При выпуске мемкойнов Pump.Fun пользователям необходимо минтить токены за $SOL в «внутреннем пуле», цена токенов в этом процессе определяется кривой связи (Bonding Curve). Для каждого мемкойна Pump.Fun создает соответствующую программу Bonding Curve, где следующие поля данных:
В этом токене totalSupply установлен на 1 миллиард, virtualSolReserves, virtualTokenReserves, realTokenReserves и realSolReserves используются как параметры AMM для расчета цены токена. Когда другие пользователи выпустили 800 миллионов токенов в «внутреннем пуле», поле complete изменилось на true, после чего этот мемкойн стал публично торговаться в ликвидном пуле Raydium.
Проверяя данные любого контракта мемкойна, выпущенного Pump.Fun, мы можем увидеть, что его адрес привилегированного обновления Authority равен Pump.fun Token Mint Authority (TSLvdd1pWpHVjahSpsvCXUbgwsL3JAcvokwaKt1eokM), ответственного за выпуск токенов. Поле «mint» соответствует адресу контракта мемкойна и информации о токенах.
Эти контракты мемкойнов не имеют функций расширения токенов и являются самыми простыми SPL токенами.
Таким образом, не существует привилегированных адресов, использующих функции Permanent Delegate, TransferFee и так далее, для злоупотреблений, причиняющих убытки пользователям, участвующим в сделках с мемкойнами.
$Cheems инцидент споры
25 ноября Binance объявила о запуске контракта Cheems. Его токены сразу же выросли на 35%, а затем менее чем за 1 минуту упали более чем на 60%, вызвав множество споров.
Анализируя торговлю токенами $Cheems в цепочке, мы можем увидеть, что адрес, осуществляющий продажу токенов, равен 0xbb8365B1BA2462ffDce9C894Ada84478f474Fefc. Проведя анализ этого адреса с помощью Beosin KYT, мы получили результаты, представленные на рисунке:
25 ноября этот адрес через Pancakeswap и агрегатор DEX OKX продал 3312 миллиардов $Cheems за 1 минуту, получив 406.21$BNB, а затем ввел все $BNB на адрес Binance.
График движения средств Beosin KYT хотя
Многие пользователи сомневаются, что этот адрес является «мышиным складом», но по анализу прошлых сделок этого адреса с помощью KYT, этот адрес может быть Smart Money Address с множественными спотовыми сделками:
С 18 ноября этот адрес начал накапливать $Cheems, при этом также происходили постоянные продажи. 18 ноября этот адрес сначала купил примерно 1310 миллиардов $Cheems, а через 4 часа продал 413 миллиардов $Cheems. 21 ноября этот адрес также вывел 3795 миллиардов $Cheems с биржи Gate.io, а через 2 часа снова продал 1758 миллиардов $Cheems в цепочке. 22 и 23 ноября также было много покупок и частичных продаж. Общий поток средств представлен на рисунке:
График движения средств Beosin KYT
Соответствующий адрес в этом споре:
0xbb8365b1ba2462ffdce9c894ada84478f474fefc
0x0d0707963952f2fba59dd06f2b425ace40b492fe
0xbff62cee932fe7496a88c9193e9ba3fd5eeff46d
Помимо рисков платформы и PVP в цепочке, пользователи, осуществляющие сделки с мемкойнами, также могут столкнуться с мошенничеством «пики». Ранее Beosin помогла пользователям понять такие схемы мошенничества и меры предосторожности, ниже представлены более полные сведения о мошенничествах с мемкойнами:
Подделки и фальшивые токены
На всех цепях ежедневно появляются новые мемкойны, и кажется, что возможности для быстрого обогащения повсюду. Но на самом деле поддельные проекты появляются одно за другим, и пользователям сложно отличить подлинные токены от подделок.
Многие эмитенты мемкойнов копируют названия и идентификаторы токенов уже популярных проектов, создавая контракты токенов с тем же названием. Пользователи могут случайно попасть на подделки, не проверив внимательно адрес контракта токена, либо даже мошеннические схемы, что приводит к невозможности продажи токенов.
Кроме того, споры о регистре мемкойнов в криптосообществе и среди эмитентов токенов также привели к резким колебаниям цен на соответствующие токены. Недавние споры и колебания цен на $NEIRO и $neiro, $ELIZA и $eliza подчеркивают чрезвычайно высокий риск мемкойнов, пользователи должны понимать информацию о соответствующих мемкойнах, отзывы сообществ и быть осторожными с манипуляциями рынка со стороны участников проектов.
Ограничение на продажу
В процессе покупки мемкойнов пользователи могут столкнуться с мошенничеством, подобным «пики», когда приобретенные токены невозможно продать или их трудно продать. Вот некоторые распространенные способы мошенников ограничить продажу пользователей через код контракта:
(1) Черный список / Белый список
Эмитенты токенов могут установить функции черного списка / белого списка в контракте токена для ограничения торговли токенами, например, если адрес пользователя добавлен в черный список, то этот пользователь может не иметь возможности вызвать функции transfer() или transferFrom() контракта токена для перевода токенов.
Только адреса, не входящие в черный список, могут производить перевод токенов
(2) Изменение баланса
Эмитенты токенов также могут манипулировать балансами токенов пользователей через смарт-контракт, изменяя баланс токенов пользователя на очень низкое значение. Если обновление баланса фиксируется только внутри контракта, жертва все равно сможет видеть свои токены на блокчейн-браузере, но фактически не сможет продать токены, превышающие количество, записанное в контракте. Если обновление баланса жертвы записывается в цепочку, то пользователь обнаружит, что его купленные мемкойны уменьшились или даже баланс стал равен 0.
Ниже приведен пример кода Solidity, который устанавливает баланс адресов черного списка на 0:
Помимо экосистемы EVM, в Solana также существует аналогичная функция изменения баланса — расширение Permanent Delegate токена:
Permanent Delegate — это официальное расширение функции токенов от Solana, администраторы в любое время имеют право перевести или уничтожить токены. Это предназначено для применения в определенных сценариях, например, для изъятия токенов, регулирования стейблкоинов. При создании токенов создатель может использовать команду createInitializePermanentDelegateInstruction для инициализации permanentDelegate.
Из-за слишком больших прав Permanent Delegate некоторые хакеры используют эту расширенную функцию для выпуска токенов, привлекая пользователей к покупке их токенов, а затем извлекая выгоду от уничтожения или перевода:
Использование Permanent Delegate для уничтожения токенов
(3) Торговый порог
Причина, по которой пользователи не могут продать некоторые мемкойны после покупки, заключается в том, что в контракте установлены строгие пороги продажи: пользователи должны превысить установленное количество токенов (которое значительно превышает их собственное количество токенов), чтобы продать, или им придется уплатить высокие торговые налоги.
Как показано в примере кода на рисунке, разработчик контракта может изменить параметр amountToBurn для настройки торгового налога, когда параметр установлен на 2, пользователю необходимо уплатить 50% от количества токенов.
В расширении токенов Solana также существует функция TransferFee, предназначенная для налогообложения каждой транзакции токена. Для настройки TransferFee необходимо установить следующие поля:
Комиссия в базисных пунктах: сбор комиссии за каждую передачу, в базисных пунктах.
Максимальная комиссия: верхний предел комиссии за перевод.
Полномочия по сбору комиссии: могут изменять адрес TransferFee
Адрес полномочий на вывод: может перемещать токены, удерживаемые на счету.
Из-за наличия верхнего предела комиссии за перевод, использование налога на транзакции для реализации схемы «пики» в Solana не является распространенной практикой, больше случаев, когда пользователи несут убытки из-за перемещения токенов или уничтожения токенов.
(4) Приостановка торговли
Эмитенты токенов могут контролировать состояние приостановки контракта, чтобы ограничить торговлю токенами, как только контракт входит в состояние приостановки, функции перевода контракта становятся недоступными, и пользователи не могут совершать сделки.
Например, как показано в примере кода Solidity на рисунке, перевод будет вызван _update для обновления баланса пользователя только в том случае, если контракт не находится в состоянии приостановки.
(5) Минимальное время владения токенами
После покупки мемкойнов пользователи должны подождать минимальный период времени, прежде чем могут снова совершить сделку. Однако это время устанавливается эмитентом токена и может быть изменено произвольно. Они могут установить минимальное время владения на максимально возможное значение, тем самым лишив пользователей возможности торговать.
Например, как показано в части кода Solidity на рисунке, перевод должен удовлетворять условию, что текущее время перевода должно быть больше или равно времени последнего обновления пользователя + установленному в контракте времени задержки.
Уникальная комиссия
После покупки мемкойнов пользователи не будут обременены комиссией за торговлю при совершении сделок с другими пользователями. Однако при продаже через DEX (например, Uniswap) будет взиматься комиссия, кроме того, доход от добавления ликвидности или участия в ставках также будет затронут.
Например, как показано в примере кода Solidity на рисунке, налог на торговлю будет взиматься только в случае, если адрес «to» является адресом контракта.
или сбор комиссии не вычитается из суммы перевода, а дополнительно уменьшает баланс отправителя, что, если неправильно обработать, может серьезно повлиять на цену на DEX, в результате чего стоимость токена станет равной 0.
Дополнительно уменьшить баланс адреса from
Эмиссия дополнительных токенов
Эмиссия дополнительных токенов является распространенным способом реализации Rug Pull. Поскольку владелец контракта или привилегированный адрес имеет право на выпуск токенов, они могут получать прибыль, увеличивая эмиссию токенов и продавая их. Это распространенный потенциальный риск в экосистеме EVM, Solana, TON, ниже приведена функция mint определенного токена Jetton в TON, которая имеет механизм эмиссии:
Централизация распределения токенов
Проблема централизации распределения токенов является распространенным риском в блокчейн-проектах, большая часть предложения токенов контролируется командой проекта, что позволяет манипулировать ключевыми решениями в управлении на блокчейне через голосование токенов или влиять на рыночную цену активов пользователей через крупные покупки и продажи.
Как показано в коде Solidity на рисунке, при развертывании токена все общее количество токенов распределяется среди развертывателя контракта.
Прокси-обновление
Использование прокси-обновления в токен-контрактах является распространенной моделью проектирования смарт-контрактов, которая позволяет обновлять логику через прокси-контракт, не изменяя структуру данных хранимого контракта. Хотя эта модель обеспечивает гибкость, она также сопряжена с некоторыми потенциальными рисками и опасностями. Эмитенты токенов могут произвольно изменять логику контракта, что приводит к потере или краже активов держателей токенов.
Как показано в коде Solidity на рисунке, администратор контракта может изменять адрес реализации контракта, и если он изменит его на неверный или злонамеренный контракт, это приведет к потере или краже активов пользователя.
Как избежать ловушек?
Мошенничества на фоне ажиотажа мемкойнов появляются одно за другим, и если пользователи не проявляют должной бдительности, они могут легко попасть в связанные мошеннические схемы и понести убытки. Поэтому команда безопасности Beosin советует пользователям:
1. Рассматривайте эффект мгновенного обогащения мемкойнов и эффект рекламы KOL с разумной точки зрения. После выхода нового токена на DEX пользователи должны оставаться разумными, не поддаваться FOMO и не следовать за толпой.
2. Не доверяйте «внутренней информации» или «конфиденциальным сообщениям». Это часто является методом ловли мошенников, целью которого является заманивание пользователей на рискованные инвестиции без предварительной фильтрации и исследования информации.
3. Перед покупкой токенов пользователи должны проверить следующие ключевые моменты:
Является ли контракт открытым исходным кодом
Существует ли отчет об аудите
Существует ли механизм черного / белого списка
Существует ли торговый налог и способ его взимания
Существует ли механизм приостановки
Существуют ли специальные механизмы, такие как ограничение объема сделок, минимальный объем токенов, минимальное время владения и т. д.
Функции, которые может вызывать владелец контракта, и не слишком ли высоки полномочия
Использует ли контракт прокси-модель
Как управляются полномочия владельца контракта, многофакторная подпись или отказ от полномочий
Beosin ранее провела подробный аудит безопасности для нескольких платформ запуска мемкойнов и контрактов токенов, включая Tokr.fun, Pumpup, Pump404, чтобы обеспечить безопасность кода контракта и правильность логики реализации бизнеса, защищая средства проекта и пользователей.
4. Многие торговые платформы и инструменты мониторинга рисков предоставляют пользователям список проверок контрактов токенов, обращение к этой информации помогает пользователям повысить точность распознавания мошенничества. Перед проведением сделок пользователи могут обратиться к результатам проверок нескольких инструментов безопасности, ниже приведены распространенные инструменты для мониторинга рисков:
Honeypot: https://honeypot.is/
Token Sniffer: https://tokensniffer.com/
OKX: https://www.okx.com/zh-hans/web3/dex-market
GoPlus: https://gopluslabs.io/token-security
De.Fi: https://de.fi/scanner
Beosin Alert: https://chromewebstore.google.com/detail/beosin-alert/lgbhcpagiobjacpmcgckfgodjeogceji
Итог
В этой статье мы обобщили распространенные способы злоупотребления мемкойнами, из чего можно сделать вывод, что хотя мемкойны полны возможностей и шансов, они также сопряжены с различными ловушками. Пользователи должны оставаться предельно бдительными и осторожными при торговле мемкойнами, чтобы снизить риск потерь. В мире Web3 безопасность всегда на первом месте.