Эта страница переведена с помощью ИИ. За эталон принимается английская версия.Открыть английскую версию →
Основные продукты Raydium не зависят от внешних оракулов для определения цены — состояние пула является оракулом. Но API и SDK используют внешние оракулы для отображения цен в USD пользователям, а минты Token-2022 предоставляют более богатый набор управления, чем SPL Token, некоторые из которых принципиально меняют модель доверия пула. На этой странице каталогизированы оба аспекта.
Оракулы в Raydium
Внутренний: пул является оракулом
Для AMM v4, CPMM и CLMM определение протокола «текущей цены» выводится только из состояния пула:- AMM v4 / CPMM:
price = vaultB_balance / vaultA_balance(с учётом decimals). - CLMM:
price = (sqrtPriceX64 / 2^64)^2 × 10^(decimalsA - decimalsB).
CLMM ObservationState как TWAP-оракул
Пулы CLMM поддерживают аккаунт ObservationState, который записывает исторические снимки sqrt_price. Другие программы могут компоноваться с этим для получения устойчивой к манипуляциям средневзвешенной по времени цены:
products/clmm/accounts#observation-state для макета данных.
Внешний: USD-ценообразование на фронтенде/API
Фронтенд Raydium иapi-v3.raydium.io отображают USD-значения (TVL, fee APR, $ volume). Они поступают из:
- Pyth как основной оракул для крупных минтов.
- Агрегатор цен Jupiter как резервный вариант.
- Цена, выведенная из пула для длинного хвоста минтов без покрытия внешним оракулом.
Манипуляция оракулом неприменима к пулам Raydium
Поскольку состояние пула является оракулом, нет «атаки на оракул» в смысле, который означает литература по поиску ошибок — нет внешнего манипулируемого источника данных, который злоумышленник может испортить. Экономические атаки на состояние пула (манипуляция в стиле flash-loan) рассмотрены вsecurity/attack-vectors.
Риски расширений Token-2022
SPL Token-2022 (также известный как «Token Extensions») добавляет настраиваемое поведение к минтам через расширения. Некоторые расширения меняют свойства доверия пулов, которые их включают. Программы Raydium обрабатывают некоторые автоматически и выводят другие как предупреждения пользователям.Transfer fee
Что это: Настраиваемый сбор (процент от передачи, доmaximum_fee cap в абсолютных терминах), выплачиваемый отправителем авторитету минта при каждой передаче.
Риск: Сбор может быть изменён авторитетом конфигурации сборов минта. Если вы вносите ликвидность при сборе 1%, а авторитет повышает его до 50%, последующие свопы возвращают намного меньше, чем ожидалось.
Смягчение в Raydium: Пулы читают текущий transferFeeConfig во время swap и корректируют математику. Сам пул не испорчен, но пользователи видят худший результат. Авторитет сборов также может запланировать отложенное изменение сборов; UI Raydium помечает пулы с предстоящими изменениями сборов.
Остаточный риск: Если злоумышленный авторитет сборов изменит сбор во время вашего in-flight swap, ваш minimumAmountOut защищает от минуса — tx откатывается. Если вы доверяете издателю минта, это нормально; если нет, не вносите LP.
Transfer hook
Что это: Передача вызывает отдельную программу («hook») для запуска пользовательской валидации или побочных эффектов. Риск: Hook может заблокировать любую передачу, включая внутренние передачи пула во время swap. Обновляемый hook может позже стать злоумышленным — то, что было безопасно во время депозита, может стать невозможным для обмена во время вывода. Смягчение в Raydium: Raydium указывает ID программы hook в состояние пула. Интеграции должны отображать ID программы hook пользователям, чтобы они могли проверить, что это ожидаемая (необновляемая, проверенная) программа. Остаточный риск: Если hook обновляемый и его авторитет становится враждебным, пул может быть заморожен. Raydium не блокирует пулы с transfer hooks, но помечает их. Вносите LP в пул с transfer hook только если hook проверен как безопасный.Freeze authority
Что это: Авторитет заморозки минта может заморозить любой аккаунт токена, содержащий этот минт, предотвращая все передачи. Риск: Авторитет заморозки с возможностью заморозить аккаунт хранилища пула фактически отключает пул — пользователи не могут вывести, трейдеры не могут совершить swap. Это применяется к SPL Token и Token-2022; это не ново с Token-2022, но это всё ещё риск. Смягчение в Raydium: Нет на уровне программы — заморозка SPL Token непрозрачна для пула. UI Raydium предупреждает о пулах с замораживаемыми минтами. Пользователи, вносящие депозит, должны проверить, что авторитет заморозки равен null или это мультиподпись, которой они доверяют (USDC имеет авторитет заморозки; это издатель Circle). Остаточный риск: Примите, что замораживаемые минты могут быть заморожены. Крупные минты (USDC, USDT, USDY) имеют авторитеты заморозки, удерживаемые издателем и используемые только для соответствия нормативным требованиям; это обычно приемлемо.CLMM позиции NFT с ограниченным издателем
CLMM применяет дополнительный контроль для выбранных авторитетов заморозки издателя с KYC-ограничениями. Когда авторитет заморозки любого из минтов пула совпадает с жёстко закодированным списком программы, новые позиции, открытые черезOpenPositionV2 или OpenPositionWithToken22Nft, имеют свой аккаунт токена NFT немедленно заморожен. Соответствующий PDA пула является авторитетом заморозки минта позиции NFT.
Это предотвращает передачу позиции на неодобренный кошелёк или изменение владельца аккаунта токена. Это не даёт издателю базового токена контроль над позицией NFT: только PDA пула CLMM является авторитетом заморозки позиции NFT, и программа использует его для разморозки только как часть ClosePosition перед сжиганием. Управление ликвидностью и сбор комиссий или вознаграждений продолжают требовать владельца NFT.
Существующие позиции остаются разморожены. Интеграторы должны рассматривать передаваемость как состояние, специфичное для позиции, и читать флаг isFrozen аккаунта токена NFT.
Permanent delegate
Что это: Расширение Token-2022, которое назначает постоянного делегата, который может передавать токены от любого держателя без одобрения. Риск: Постоянный делегат может осушить хранилище пула в любой момент. Смягчение в Raydium: CPMM и CLMM отказываются создавать пулы с минтами, которые имеют постоянного делегата. Инициализация откатывается. Ни один работающий пул Raydium не имеет минта с постоянным делегатом. Остаточный риск: Нулевой (при условии, что проверка корректна, что обе проверки подтвердили).Non-transferable
Что это: Минты, которые не могут быть переданы держателями. Риск: Пулы зависят от передаваемости для перемещения токенов между пользовательскими ATA и хранилищами пула. Непередаваемые минты тривиально ломают пулы. Смягчение в Raydium: Создание пула откатывается на непередаваемых минтах. Фермы также отказываются от непередаваемых минтов для ставок.Default-frozen / close-authority / interest-bearing
Расширения с меньшим влиянием, обрабатываемые Raydium:- Default-frozen: новые аккаунты токенов должны быть разморожены перед использованием. Raydium обрабатывает это прозрачно при создании ATA.
- Close-authority: назначенный авторитет может закрывать аккаунты токенов. Хранилища пула принадлежат авторитету, выведённому из программы пула, поэтому close-authority на минте не применяется к хранилищу.
- Interest-bearing: отображаемый баланс накапливает проценты;
amountостаётся фиксированным, ноuiAmountрастёт. Математика пула Raydium используетamount, не накопленные проценты; отображение корректируется отдельно.
Mint authority
Не специфичный для Token-2022 риск, но стоит отметить: если минт сохраняет mint authority, держатель может инфлировать предложение по желанию. Для запущенных токенов это разбавляет LP по текущей цене пула. LaunchLab отказывается создавать запуски, если mint authority не равен null.Метки рисков в UI
Фронтенд Raydium помечает каждый пул применимыми тегами рисков:- TRANSFER_FEE — ненулевой сбор за передачу.
- TRANSFER_HOOK — расширение transfer-hook активно.
- FREEZE — минт имеет авторитет заморозки.
- MINT — минт имеет mint authority (предложение может инфлироваться).
- CLOSE — минт имеет close authority.
Контрольный список интегратора
Перед компонуемостью с пулом Raydium:- Проверьте расширения каждого минта через
getMint(mint, TOKEN_2022_PROGRAM_ID). - Пропустите пулы, где любой минт имеет permanent_delegate или non_transferable (они не должны существовать в Raydium, но защита в глубину).
- Проверьте авторитет заморозки для обоих минтов; только null или доверенный авторитет.
- Перед предложением передачи позиции, эскроу или Burn & Earn подтвердите, что аккаунт токена NFT позиции CLMM не заморожен.
- Для пулов с transfer-hook проверьте ID программы hook против белого списка.
- Размер экспозиции против сценариев transfer-fee (что если сбор перейдёт на максимум?).
- Используйте CLMM TWAP (ObservationState) вместо спотовой цены для ценообразования производных.
Заявление о принятии остаточного риска
Программы Raydium обеспечивают то, что может быть обеспечено на уровне программы:- Создание пула отказывает минтам с permanent-delegate / non-transferable.
- Математика swap корректно корректируется для текущих сборов за передачу.
- ObservationState предоставляет устойчивый к манипуляциям оракул.
- Авторитет заморозки минта может заморозить пул.
- Авторитет сборов минта может повысить сбор за передачу (до
maximum_feecap) в любой момент. - Программа transfer-hook может быть обновлена на злоумышленный код.
- Скорость накопления процентов минта с процентами может быть изменена.
Ссылки
algorithms/token-2022-transfer-fees— корректировки математики для минтов с transfer-fee.security/attack-vectors— как эти риски проявляются как конкретные атаки.integration-guides/wallet-integration— отображение меток рисков Token-2022.products/clmm/accounts— макет ObservationState.
- Документация расширений SPL Token-2022.
- Логика валидации инициализации пула:
src/raydium/cpmm/instrument.ts,src/raydium/clmm/instrument.ts. - Pyth — внешний оракул цены, используемый на фронтенде.

