Перейти к основному содержанию
Эта страница переведена с помощью ИИ. За эталон принимается английская версия.Открыть английскую версию →
В каждой программе Raydium есть хотя бы одна привилегированная роль — ключ, который может обновлять программу, создавать новые конфиги или выводить протокольные комиссии. Минимизация полномочий этих ролей (и защита их мультисигами с задержкой) — главная защита от компрометации администратора. На этой странице описаны все роли и способы их защиты на практике.

Роли по программам

AMM v4

CPMM

CLMM

limit_order_admin — намеренно узкая операционная роль. Она существует для того, чтобы off-chain кипер мог исполнять заполненные ордера без участия их владельцев. Ключ кипера горячий (хранится на VM кипера) и ротируется независимо от мультисигов выше. Конкретно, полномочия кипера ограничены:
  • SettleLimitOrder — отправить заполненный выход ордера в ATA владельца по лимитной цене ордера.
  • CloseLimitOrder — закрыть аккаунт полностью исполненного ордера для возврата ренты (рента идёт владельцу ордера).
Кипер не может вызвать OpenLimitOrder, IncreaseLimitOrder, DecreaseLimitOrder, изменить какое-либо поле пула или подписать любую другую инструкцию — эти проверки реализованы on-chain через seed и has_one ограничения в структуре Accounts инструкции. Скомпрометированный кипер в худшем случае становится недоступным (ордера остаются незакрытыми, пока владелец не исполнит их самостоятельно) или исполняет/закрывает правомерно заполненные ордера не в том порядке; он не может переместить средства пользователей куда-либо, кроме уже авторизованного владельцем места назначения.

Farm v6

Отдельные фармы не имеют протокольного администратора — создатель каждого фарма управляет только своим фармом, а его полномочия ограничены (нельзя изъять стейки пользователей, нельзя изменить mint стейкинга).

LaunchLab

У запусков нет протокольного администратора, который мог бы изменять кривые или изымать собранные средства.

Авторитет обновления программы

Программы Raydium используют стандартный механизм обновления Solana — BPF Loader v3. Авторитет обновления для всех программ принадлежит мультисигу Squads с порогом 3/4. Почему 3/4: достаточно подписантов, чтобы единственная компрометация не давала контроля, и достаточно мало, чтобы согласование легитимного обновления оставалось управляемым. Четыре авторитета — независимые, air-gapped подписанты на холодных устройствах у ключевых участников команды. Последовательное подписание исключает параллельные подтверждения одной транзакции; транзакции имеют фиксированное окно истечения. Операции мультисига периодически проверяются в рамках партнёрства с Solana STRIDE Program (Asymmetric Research).

Удаление авторитета обновления

Raydium не установил авторитет обновления ни одной программы в null. Протокол придерживается принципа, что программы должны быть обновляемыми (для исправления ошибок, добавления расширений вроде Token-2022, устранения дрейфа интеграций). Компромисс: пользователи доверяют тому, что мультисиг 3/4 будет разворачивать только тщательно проверенные обновления. Для пользователей, предпочитающих неизменяемую альтернативу: более старая программа AMM v4 остаётся стабильной с момента последнего аудита — ноль обновлений за 18 месяцев. Этот путь фактически заморожен, несмотря на то что авторитет всё ещё существует.

Авторитет AmmConfig

Создание каждого нового AmmConfig требует разрешения — казначейский мультисиг 3/5 авторизует новые уровни комиссий и шаги тиков. Существующие пулы ссылаются на свой AmmConfig по PDA; уровень комиссии пула определяется именно AmmConfig. Могут ли администраторы изменить существующий AmmConfig? Технически да — updateAmmConfig доступен администратору. На практике изменения развёрнутых AmmConfigs избегаются, поскольку они незаметно меняют экономику всех пулов, использующих этот конфиг. Политика протокола — создавать новый AmmConfig при любых изменениях и мигрировать. Могут ли администраторы украсть протокольные комиссии через конфиг? Нет — AmmConfig содержит параметры комиссий, но не адрес получателя протокольных комиссий; это отдельный неизменяемый адрес для каждого пула.

Получение протокольных комиссий

Часть комиссий swap (как правило, 3–12 bps от 25 bps комиссии swap, в зависимости от конфига) накапливается в хранилище протокольных комиссий. Мультисиг может выводить эти накопленные комиссии. Баланс LP пользователей при этом не изменяется — это заранее выделенная доля протокола, а не средства LP.

Авторитет создателя фарма

В Farm v6 создатель фарма имеет право:
  • Пополнять хранилище вознаграждений (добавлять токены).
  • Продлевать расписание (откладывать дату окончания).
  • Вызывать withdrawReward после окончания для возврата неиспользованного баланса хранилища.
Создатели фармов не могут:
  • Выводить застейканные LP пользователей.
  • Изменять mint стейкинга.
  • Ретроактивно изменять ставки эмиссии (только в будущем через setRewards).
  • Замораживать харвесты пользователей.
Злоумышленник-создатель фарма в худшем случае может недофинансировать хранилище, чтобы фарм иссяк; основная ставка пользователей всегда в безопасности.

Конфигурация мультисига Squads

Raydium использует два отдельных мультисига Squads для разных категорий рисков. Оба можно проверить on-chain через интерфейс Squads Protocol. Операционные свойства мультисига обновлений:
  • Таймлок 24 часа на любую транзакцию. Обновление, одобренное сегодня, выполнится не ранее чем через 24 часа, давая пользователям время отреагировать.
  • Air-gapped холодные устройства для подписания. Из холодных устройств физически извлечены сетевые карты; они подключаются только к аппаратному кошельку и получают данные транзакций через QR-код с отдельного горячего устройства.
  • Последовательное подписание. Только после того как одно холодное устройство создаст и подпишет транзакцию, следующее может начать свой процесс подписания — это исключает конфликтующие или параллельные подписи одной транзакции.
  • Истечение транзакций. Каждая транзакция имеет фиксированное окно истечения, поэтому устаревшие транзакции аннулируются автоматически.
  • TOTP + физический ключ на горячих устройствах, используемых для инициирования транзакций и on-chain трансляции.
  • Публичная очередь транзакций. Любой желающий может отслеживать ожидающие обновления через интерфейс Squads.
Казначейский мультисиг не имеет таймлока — его область действия уже, а рутинные операции (создание AmmConfigs, сбор комиссий) должны выполняться в тот же день. Казначейский мультисиг также держит ограниченный программный авторитет, указанный в таблицах по программам выше; это временное решение, которое периодически пересматривается совместно с партнёрами по безопасности.

Проверка авторитета on-chain

Простейший способ проверить текущий авторитет обновления программы:
Вывод включает:
Если Authority не совпадает с ожидаемым адресом мультисига Squads, что-то не так. Raydium публикует ожидаемые адреса авторитетов на reference/program-addresses. Для ролей AmmConfig / администратора пула — получите on-chain аккаунт и декодируйте:

История изменений авторитетов

Рекомендации для пользователей

Что стоит делать пользователю/LP/интегратору?
  1. Проверяйте авторитет обновления перед крупными вложениями. Убедитесь, что он совпадает с задокументированным мультисигом.
  2. Следите за активностью мультисига. Squads UI показывает ожидающие транзакции; запланированное обновление даёт 24 часа на выход, если вы не согласны с изменением.
  3. Стратегии вывода с учётом таймлока. Если вы используете авто-компаундер, убедитесь, что путь вывода не зависит от инструкции, которая в данный момент изменяется.
  4. Не рассчитывайте на неизменяемость программ. Каждая программа Raydium может быть обновлена; планируйте это заранее.

Подводные камни для интеграторов

1. Кэширование адресов авторитетов

Если вы жёстко прописываете авторитет обновления или адрес мультисига администратора в коде, а он впоследствии меняется, ваша проверка перестаёт работать. Получайте актуальные данные с reference/program-addresses во время выполнения или обновляйте их периодически.

2. Предположение о стабильности AmmConfigs

Новый AmmConfig может быть создан в любое время. Ваш агрегатор/роутер должен периодически (раз в час достаточно) перезагружать полный список конфигов.

3. Векторы злоупотреблений со стороны создателя фарма

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

Ссылки

  • reference/program-addresses — канонические адреса авторитетов.
  • security/attack-vectors — как проявляются компрометации администратора.
  • ray/treasury — адреса казначейства и сбора комиссий.
  • security/disclosure — сообщение о подозрительных проблемах с администратором.
Источники: