Эта страница переведена с помощью ИИ. За эталон принимается английская версия.Открыть английскую версию →
Каждая программа Raydium имеет как минимум одну привилегированную роль — ключ, который может обновить программу, создать новые конфигурации или вывести комиссии протокола. Минимизация возможностей этих ролей (и защита их мультиподписями с задержками) — основная защита от скомпрометированного администратора. На этой странице перечислены роли и способы их защиты на практике.
Роли по программам
AMM v4
CPMM
Сбор комиссии создателя не вводит привилегированную роль.
CollectCreatorFeePermissionless принимает любого плательщика, ограничивает владельца получателя на PoolState.pool_creator и ограничивает оба назначения каноническими ATA этого создателя. Вызывающий может финансировать отсутствующие ATA и запустить сбор, но не может перенаправить комиссии.
CLMM
Создание дополнительных пулов для пары по адресу, производному от
seed_index (CreateCustomizablePoolV2), не требует роли. До обновления 2026-10-22 требовалась Permission PDA, выданная выделенным ключом permission_pda_admin; эта роль, счет Permission и его две инструкции администратора были удалены.
limit_order_admin — это намеренно узкая операционная роль. Она существует, чтобы внецепной keeper мог собирать заполненные ордеры без необходимости быть в сети владельцу ордера. Ключ keeper горячий (находится на VM keeper) и ротируется независимо от мультиподписей выше. Конкретно, полномочие keeper ограничено:
SettleLimitOrder— отправить заполненный выход ордера в ATA владельца по лимитной цене ордера.CloseLimitOrder— закрыть счет полностью расчетного ордера для возврата аренды (аренда идет владельцу ордера).
OpenLimitOrder, IncreaseLimitOrder, DecreaseLimitOrder, изменять какие-либо поля пула или подписывать какую-либо другую инструкцию — эти проверки применяются на цепи через ограничения seed и has_one в структе Accounts инструкции. Скомпрометированный keeper в худшем случае может быть недоступен (ордеры остаются припаркованы, пока владелец не расчитает их сам) или расчитать/закрыть законно заполняемые ордеры не по порядку; он не может переместить пользовательские средства куда-либо, кроме того, куда владелец уже их авторизовал.
Farm v6
Отдельные фермы не имеют администратора протокола — каждой фермой управляет только ее создатель, и возможности создателя ограничены (не может захватить ставки пользователей, не может изменить mint для ставок).
LaunchLab
Список разрешений администратора платформы самоограничивается: он ограничивает, какие счета
GlobalConfig запуски под этой платформой могут использовать. Он не предоставляет полномочия над другими платформами или существующими средствами запуска. Канонические адреса делегированного полномочия находятся в reference/program-addresses.
Полномочие обновления программы
Программы Raydium используют стандартный механизм обновления BPF Loader v3 Solana. Полномочие обновления для всех программ — это мультиподпись 3/4 Squads. Почему 3/4: достаточно подписантов, чтобы одного компрометирования было недостаточно; достаточно мало, чтобы координировать законное обновление было практично. Четыре полномочия независимы, изолированы от сети, холодные устройства, удерживаемые членами основной команды. Последовательное подписание предотвращает параллельные одобрения одной и той же транзакции; транзакции имеют фиксированное окно истечения. Операции мультиподписи периодически проверяются в партнерстве с STRIDE Program Solana (Asymmetric Research).Удаление полномочия обновления
Raydium не установил полномочие обновления ни одной программы на null. Протокол работает на принципе, что программы должны быть обновляемы (для исправления ошибок, добавления расширений, таких как Token-2022, исправления дрейфа интеграции). Компромисс: пользователи доверяют, что мультиподпись 3/4 будет развертывать только хорошо проверенные обновления. Ни одна программа Raydium в настоящее время не заморожена и не движется достаточно медленно, чтобы рассматриваться как неизменяемая альтернатива — AMM v4, исторически самая статичная из них, сама была переразвернута 2026-07-22. Последний развернутый слот для каждой программы является общедоступным; прочитайте его перед предположением, что какая-либо из них неактивна:
(Из счета
ProgramData каждой программы; solana program show <PROGRAM_ID> сообщает тот же слот.)
Полномочие администратора AmmConfig
Каждое создание нового AmmConfig имеет разрешение — мультиподпись 3/5 treasury авторизует новые уровни комиссий и интервалы tick. Существующие пулы ссылаются на свой AmmConfig по PDA; уровень комиссии пула — это то, что говорит AmmConfig. Могут ли администраторы изменить существующий AmmConfig? Да, технически.updateAmmConfig может быть вызван администратором. На практике изменения развернутых AmmConfigs избегаются, потому что это молча изменяет экономику всех пулов, использующих эту конфигурацию. Политика протокола — создать новый AmmConfig для любого изменения и выполнить миграцию.
Могут ли администраторы украсть комиссии протокола через конфигурацию? Нет — AmmConfig содержит параметры комиссии, но не получателя комиссии протокола; это отдельный неизменяемый адрес для каждого пула.
Требование комиссии протокола
Часть комиссий за swap (обычно 3–12 bps из 25 bps комиссии за swap, в зависимости от конфигурации) накапливается в хранилище комиссии протокола. Мультиподпись может вывести эти накопленные комиссии. Пользователи никогда не видят изменения своего баланса LP из-за этого — это предварительно выделенная доля протокола, а не деньги LP.Полномочие создателя фермы
Фермы v6 дают создателю возможность:- Финансировать хранилище вознаграждений (добавить больше токенов).
- Продлевать расписание (отодвинуть время окончания позже).
- Вызывать
withdrawRewardпосле времени окончания для возврата неиспользованного баланса хранилища.
- Вывести поставленный пользователем LP.
- Изменить mint для ставок.
- Изменить коэффициенты эмиссии ретроактивно (только перспективно через
setRewards). - Заморозить сбор урожая пользователями.
Конфигурация мультиподписи Squads
Raydium работает с двумя отдельными мультиподписями Squads для различных поверхностей риска. Обе можно проверить на цепи через пользовательский интерфейс Squads Protocol.
Операционные свойства мультиподписи обновления:
- 24-часовой timelock на любую транзакцию. Обновление, одобренное сегодня, выполняется не ранее чем через 24 часа, давая пользователям время для ответа.
- Подписание на изолированных холодных устройствах. Холодные устройства имеют физически удаленные сетевые карты; они подключаются только к аппаратному кошельку и читают данные транзакции через QR-код с отдельного горячего устройства.
- Последовательное подписание. Только после того, как одно холодное устройство создаст и подпишет транзакцию, следующее холодное устройство может начать свой процесс подписания — предотвращая конфликтующие или параллельные подписи на одной и той же транзакции.
- Истечение транзакции. Каждая транзакция имеет фиксированное окно истечения, поэтому устаревшие транзакции автоматически становятся недействительными.
- Принудительное применение TOTP + физического ключа на горячих устройствах, используемых для инициирования транзакций и трансляции на цепь.
- Очередь общедоступных транзакций. Любой может отслеживать ожидающие обновления в пользовательском интерфейсе Squads.
Проверка полномочий в цепи
Самый простой способ проверить текущий орган обновления программы:Authority не совпадает с ожидаемым адресом мультиподписи Squads, что-то не так. Raydium публикует ожидаемые адреса органов на странице reference/program-addresses.
Для ролей администратора AmmConfig / пула получите учётную запись в цепи и декодируйте её:
AmmConfig не имеет поля admin — администратор программы — это открытый ключ, скомпилированный в программу (crate::admin::ID), а операционные органы для каждой конфигурации — это protocolOwner / fundOwner. Орган обновления BPF — это отдельная проблема уровня загрузчика; прочитайте его с помощью solana program show.
История изменений полномочий
Рекомендации для пользователей
Что вам следует делать как пользователю/LP/интегратору?- Проверьте орган обновления перед крупными выделениями средств. Убедитесь, что он совпадает с документированной мультиподписью.
- Отслеживайте активность мультиподписи. Интерфейс Squads показывает ожидающие транзакции; запланированное обновление даёт вам 24 часа на отмену, если вы не согласны с изменением.
- Стратегии погашения с учётом временной блокировки. Если вы запускаете автоматический компаундер, убедитесь, что ваш путь отмены не требует инструкции, которая изменяется.
- Не предполагайте неизменяемость программы. Каждая программа Raydium может быть обновлена; планируйте это.
Ловушки для интеграторов
1. Кэширование адресов органов
Если вы жёстко закодируете адрес органа обновления или адрес мультиподписи администратора в своём коде, а позже он изменится, ваша проверка не пройдёт. Получайте данные со страницыreference/program-addresses во время выполнения или обновляйте периодически.
2. Предположение об устойчивости AmmConfigs
Новый AmmConfig может быть создан в любой момент. Ваш агрегатор/маршрутизатор должен периодически повторно получать полный список конфигураций (ежечасно достаточно).3. Векторы атак создателя фермы
Если вы вносите средства в ферму с низкой репутацией, создатель может завершить ферму раньше и вернуть хранилище вознаграждений (при условии, что никто ещё не внёс средства). После того как пользователи внесли средства, пропорциональные права обеспечиваются программой; возврат получает только остаток после рационального завершения.Ссылки
reference/program-addresses— канонические адреса органов.security/attack-vectors— как проявляются компрометации администратора.ray/treasury— адреса казначейства и сбора комиссий.security/disclosure— сообщение о подозреваемых проблемах администратора.
- Squads Protocol — интерфейс мультиподписи.
- Документация программ и загрузчиков Solana — механизм обновления и способ отзыва органа обновления для создания неизменяемой программы.

