Перейти к основному содержанию

Documentation Index

Fetch the complete documentation index at: https://docs.raydium.io/llms.txt

Use this file to discover all available pages before exploring further.

Эта страница переведена с помощью ИИ. За эталон принимается английская версия.Открыть английскую версию →
AMM — привлекательная цель для вредоносного кода: средства LP находятся в полностью видимых пулах; каждый своп изменяет цену детерминированно. Эта страница классифицирует типы атак, доказанные на AMM в других системах, как они применимы к Raydium, и какие защиты применяет Raydium (и интеграторы).

1. Sandwich-атаки / MEV

Атака

Бот отслеживает mempool / gossip-поток, видит своп пользователя, опережает его транзакцией в том же направлении (повышая цену), затем позволяет транзакции пользователя выполниться по худшей цене и завершает бэкран-атакой в противоположном направлении. Бот получает прибыль на спреде.

Уязвимость

  • Максимально уязвимы: CPMM-пулы с низким TVL и AMM v4 пулы — даже малые своды значительно движут цену.
  • Менее уязвимы: глубокие CLMM-пулы — своды внутри тика не движат цену.
  • Не уязвимы: сбор фарма, депозиты LP (соотношение фиксировано, не чувствительно к цене в том же смысле).

Защиты

  • Jito bundles (integration-guides/routing-and-mev) скрывают транзакцию из публичного mempool.
  • Плотный slippage — минимальный результат, близкий к ожидаемому, делает sandwich-атаки неприбыльными. Ниже ~0,3%, большинство sandwich-атак теряют деньги.
  • Меньшие размеры сводов — разделите своп на $100k на 10× $10k; каждый движет цену меньше.

Позиция Raydium

Базовые программы Raydium не навязывают защиту от MEV — они нейтральны на уровне программы. Защита происходит на уровне отправки (Jito, встроенная защита кошельков). UI по умолчанию устанавливает slippage 0,5%, что разумно для большинства пулов.

2. Манипуляция ценой

Атака

Крупный трейдер временно движет цену в пуле (через flash-кредит или собственные средства), запускает некое действие, зависящее от цены (ликвидацию, заимствование, основанное на оракуле, выплату производного инструмента), затем возвращает цену в норму.

Уязвимость

  • Нативные операции Raydium: не уязвимы. Спотовый своп туда и обратно просто несет круговые комиссии; трейдер теряет деньги.
  • Интегрированные программы: уязвимы, если наивно читают цену пула Raydium.

Защиты

  • Используйте TWAP, не спотовые цены, для композиции (см. security/oracle-and-token-risks).
  • CLMM ObservationState дает короткое окно TWAP, которое не манипулируется без устойчивого обязательства капитала.
  • Консенсус многих оракулов: если ваша программа читает Raydium, Pyth и Jupiter и действует только когда они согласны в пределах 1%, flash-loan манипуляция любого одного источника недостаточна.

Позиция Raydium

CLMM поставляется с поддержкой ObservationState TWAP; интеграторы, которые игнорируют это и используют спотовые цены, на свой риск. Frontend Raydium использует несколько источников цен для отображения в USD.

3. Атаки на пожертвования / инфляцию

Атака

Первый LP в новом пуле депонирует крошечное количество (например, по 1 токену из 6-decimal мints → выдается 1 единица LP). Затем атакующий «пожертвует» 1 000 000 токенов прямо в хранилище пула через SPL Token transfer. Теперь 1 единица LP представляет 500 000 каждого mint. Любой последующий LP, депонирующий меньше того, округляется до 0 единиц LP и теряет свой депозит.

Уязвимость

  • CPMM / AMM v4: потенциально уязвимы на новоcозданных пулах с низкой ликвидностью.
  • CLMM: не уязвимы (нет общего LP mint; каждая позиция — это собственный NFT с явным значением ликвидности).

Защиты

Инструкция initialize CPMM блокирует минимальное количество LP в пул (вдохновлено паттерном MINIMUM_LIQUIDITY Uniswap V2). Это означает, что первый LP получает sqrt(x × y) - MINIMUM_LIQUIDITY, причем MINIMUM_LIQUIDITY (1000 единиц) сжигается в null. Атака пожертвования требует, чтобы атакующий пожертвовал >> начального депозита, что становится неэкономичным. Кроме того, SDK Raydium громко предупреждает, когда начальный депозит крошечный, и направляет пользователей на разумные суммы.

Позиция Raydium

Блокировка MINIMUM_LIQUIDITY поставляется в CPMM; AMM v4 имеет похожий механизм. Пользователи, создающие пулы, должны засеять как минимум 10 000+ единиц каждого mint, чтобы сделать атаки пожертвований неэкономичными в любом случае.

4. Злоупотребление transfer-hook Token-2022

Атака

Transfer-hook mint является обновляемым. Атакующий разворачивает невинный хук при запуске mint, получает листинг на Raydium, накапливает LP от пользователей. Позже обновляет хук, чтобы блокировать все трансферы (практически софт-rug — пользователи не могут вывести). Атакующий делает пул торгуемым только в одном направлении, покупает LP дешево, разблокирует хуки, побеждает.

Уязвимость

Пулы, включающие mint с transfer-hook.

Защиты

  • На уровне программы: Raydium программы вызывают хук при своп; если хук блокирует, своп отменяется. Это не предотвращает механически атаку.
  • На уровне UI: Raydium помечает пулы с transfer-hook mints.
  • На уровне интегратора: агрегаторы должны пропускать transfer-hook mints по умолчанию и создавать whitelist только верифицированных хуков.

Позиция Raydium

Raydium не запрещает пулы с transfer-hook (легитимные хуки существуют), но четко их помечает. Агрегаторы, фильтрующие по полю tags (пропускающие scam, honeypot, неверифицированные transfer-hook), могут исключить при желании.

5. Баги композиции / CPI

Атака

Программа компонует Raydium через CPI и вводит баг: например, передает неправильный observation_state, неправильные tick arrays для свопа CLMM, или double-spends аккаунт. Атакующий определяет багу и эксплуатирует.

Уязвимость

  • Багу программе — обычно источник баги.
  • Raydium — только если баг запускает непредвиденное поведение в самих программах Raydium.

Исторические примеры

Ни одна из программ Raydium не была эксплуатирована через CPI — валидаторы аккаунтов Raydium отлавливают mis-shaped аккаунты и отменяют. Эксплуатации в более широкой экосистеме происходили через баги кастомных программ, которые компонировались с AMM, но не проистекали из AMM.

Защиты

  • Вызывающие программы должны использовать Anchor CPI helpers (не ручно построенные инструкции), когда возможно — type-safety отлавливает большинство злоупотреблений.
  • Интеграционные тесты против mainnet-forked state покрывают случаи композиции.

6. Компрометация admin / ключа

Атака

Ключ администратора (upgrade authority, AmmConfig admin, protocol fee claim) скомпрометирован. Атакующий разворачивает вредоносное обновление, которое сливает пулы, или модифицирует AmmConfigs, чтобы маршрутизировать комиссии на кошелек атакующего, или сливает комиссии протокола.

Уязвимость

Все роли, задокументированные в security/admin-and-multisig.

Защиты

  • 3/4 multisig на upgrade authority требует компрометации 4 независимых подписантов.
  • 24-часовой timelock на обновления дает пользователям время развернуть до активации вредоносного обновления.
  • Операционный мониторинг — алерты на любую активность multisig через публичную очередь Squads.

Исторический инцидент

Ключ pool authority AMM v4 был скомпрометирован в декабре 2022 (до multisig). Исправление: переместили всю authority в Squads multisig. После исправления инцидентов не было.

7. Экономические атаки на математику tick CLMM

Атака

Изощренный атакующий эксплуатирует округление или edge cases учета комиссий в математике tick CLMM. Примеры, найденные в других реализациях CLMM (не Raydium):
  • Учет fee-growth, который округляет против пользователя, накапливая пыль.
  • Пересечение tick, которое кредитует/дебитует неправильный fee_growth delta.
  • Integer overflow в произведениях sqrtPrice * liquidity.

Уязвимость

Сложная своеобразная математика. Аудиты и fuzzing — основная защита.

Позиция Raydium

CLMM прошел две независимые аудиты (OtterSec + MadShield) плюс текущий property-based fuzzing. К настоящему времени не найдено никаких багов, влияющих на production. Арифметика sqrt_price_x64 Q64.64 использует насыщающую 128-bit математику с unit тестами, покрывающими граничные тики.

8. Путаница position-NFT

Атака

Пользователю подсовывают подписать транзакцию, которая передает его position NFT CLMM атакующему. Атакующий теперь владеет ликвидностью позиции.

Уязвимость

Любой держатель position NFT.

Защиты

  • UI кошельков должны распознавать position NFT Raydium и показывать их отдельно (не как общие NFT для «отправки»).
  • Пользователи должны опасаться подписания транзакций, которые передают NFT.

Позиция Raydium

Position NFT реализуют стандарт метаданных Metaplex; приложения кошельков, понимающие позиции CLMM, отображают их как позиции ликвидности, а не как торгуемые NFT. Большинство основных Solana кошельков поверхностно отображают их специально по состоянию на 2026.

9. Манипуляция потоком вознаграждения Farm

Атака

Создатель фарма финансирует хранилище вознаграждения, привлекает стейкеров, затем вызывает restartRewards с параметрами, которые делают вычисление pending-reward странным, крадя ценность сбора.

Уязвимость

Фармы с вредоносными создателями. Farm v6 строго ограничивает полномочия создателя; эта атака не работает.

Защиты

Инструкции администратора Farm v6 (setRewards, restartRewards, addReward) сохраняют pro-rata права — reward_per_share корректируется в момент изменения, поэтому никакое доизменение accrual не коррумпируется ретроспективно.

Позиция Raydium

Аудит OtterSec фарма специально тестировал сценарии restart-rewards; эксплуатация не найдена.

10. Расхождение симуляция-выполнение

Атака

Атакующий конструирует транзакцию, которая симулируется успешно, но отменяется при выполнении (или наоборот). Используется для griefa кошельков, которые полагаются на симуляцию для отображения.

Уязвимость

Кошельки, показывающие «вы получите X» на основе симуляции.

Защиты

  • Используйте simulateTransaction с тем же blockhash, что и реальная отправка.
  • Выводите ожидаемый результат как «≈» (приблизительно), не точно.
  • Пересимулируйте прямо перед отправкой.

Позиция Raydium

Симуляция CLMM детерминирована при заданном текущем состоянии пула; расхождение происходит только если состояние изменяется между симуляцией и выполнением (нормальный случай, обрабатывается через bounds slippage).

Таблица резюме

ВекторСпецифично для RaydiumЗащита на уровнеОстаточный риск для пользователей
Sandwich / MEVДаСлой отправки (Jito, slippage)Низкий при использовании Jito
Манипуляция ценойТолько композицияИспользуйте TWAPНизкий при потреблении TWAP
Атака пожертвованияCPMMMINIMUM_LIQUIDITYНизкий
Злоупотребление transfer-hookToken-2022 пулыUI флагиСредний для неверифицированных хуков
CPI эксплуатацииБаги интеграторовВалидаторы Raydium отменяютНизкий (баг остается в интеграторе)
Компрометация adminВсе программыMultisig + timelockНизкий (24ч для реакции)
Математика tick CLMMCLMMАудиты + fuzzingНизкий
Путаница position NFTCLMMUX кошелькаНизкий с современными кошельками
Манипуляция FarmFarm v6Ограниченные полномочия создателяНизкий
Расхождение симуляцииЛюбойUX кошелькаНизкий

Что могут делать пользователи

  • По умолчанию используйте плотный slippage; поднимайте только когда необходимо.
  • Используйте Jito-enabled кошельки / своп потоки.
  • Проверяйте mint расширения перед LP.
  • Следите за Squads multisig на предмет pending обновлений.
  • Диверсифицируйте по пулам; не сосредоточивайте весь ваш LP в одном пуле new-launch.

Что могут делать интеграторы

  • Используйте ObservationState TWAP для ценообразования производных.
  • Валидируйте ограничения аккаунтов при композиции через CPI.
  • Фильтруйте пулы по полю tags (пропускайте scam, honeypot, неверифицированные transfer-hook).
  • Устанавливайте разумные bounds slippage; не принимайте 0 slippage от пользовательского ввода.
  • Используйте simulateTransaction с осторожностью — задокументируйте, что это оценка.

Ссылки

Источники:
  • Rekt News — DeFi post-mortems, информирующие этот список.
  • Отчеты аудитов, ссылки на которые в security/audits.