> ## 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.

# Ключи администратора и мультисиг

> Привилегированные роли в программах Raydium — что может делать каждый администратор, как устроен мультисиг и как проверить on-chain, кто в данный момент занимает каждую роль.

<Info>
  **Эта страница переведена с помощью ИИ. За эталон принимается английская версия.**

  [Открыть английскую версию →](/security/admin-and-multisig)
</Info>

<Info>
  В каждой программе Raydium есть хотя бы одна привилегированная роль — ключ, который может обновлять программу, создавать новые конфиги или выводить протокольные комиссии. Минимизация полномочий этих ролей (и защита их мультисигами с задержкой) — главная защита от компрометации администратора. На этой странице описаны все роли и способы их защиты на практике.
</Info>

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

### AMM v4

| Роль                 | Адрес авторитета        | Что может делать                                                 |
| -------------------- | ----------------------- | ---------------------------------------------------------------- |
| Обновление программы | Squads multisig (3/4)   | Разворачивает новый байткод программы                            |
| Администратор пула   | Treasury multisig (3/5) | Переключает статус пула, обновляет комиссии в существующих пулах |

### CPMM

| Роль                                         | Адрес авторитета        | Что может делать                                                     |
| -------------------------------------------- | ----------------------- | -------------------------------------------------------------------- |
| Обновление программы                         | Squads multisig (3/4)   | Разворачивает новый байткод программы                                |
| Администратор AmmConfig                      | Treasury multisig (3/5) | Создаёт новые AmmConfigs (уровни комиссий); переключает существующие |
| Получатель разовой комиссии за создание пула | Treasury multisig (3/5) | Получает единовременную комиссию за создание пула                    |

### CLMM

| Роль                                  | Адрес авторитета                                           | Что может делать                                                                                                                                                                                                                                                                                                                                                                                                                              |
| ------------------------------------- | ---------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Обновление программы                  | Squads multisig (3/4)                                      | Разворачивает новый байткод программы                                                                                                                                                                                                                                                                                                                                                                                                         |
| Администратор AmmConfig               | Treasury multisig (3/5)                                    | Создаёт и изменяет AmmConfigs                                                                                                                                                                                                                                                                                                                                                                                                                 |
| Администратор DynamicFeeConfig        | Treasury multisig (3/5)                                    | `CreateDynamicFeeConfig` / `UpdateDynamicFeeConfig` — настраивает динамические уровни комиссий, доступные при вызове `CreateCustomizablePool`                                                                                                                                                                                                                                                                                                 |
| `limit_order_admin` (общепрограммный) | **Горячий кошелёк операционного назначения, не мультисиг** | Исполняет и закрывает лимитные ордера от имени их владельцев. Ключ кипера — единственная общепрограммная константа (разные значения для mainnet и devnet), проверяемая через `signer == limit_order.owner \|\| signer == limit_order_admin::ID` в инструкциях `SettleLimitOrder` / `CloseLimitOrder`. Выходные средства всегда поступают в ATA исходного владельца; кипер не может перенаправить средства, изменить ордера или открыть новые. |

`limit_order_admin` — намеренно узкая операционная роль. Она существует для того, чтобы off-chain кипер мог исполнять заполненные ордера без участия их владельцев. Ключ кипера горячий (хранится на VM кипера) и ротируется независимо от мультисигов выше. Конкретно, полномочия кипера ограничены:

* `SettleLimitOrder` — отправить заполненный выход ордера в ATA **владельца** по лимитной цене ордера.
* `CloseLimitOrder` — закрыть аккаунт полностью исполненного ордера для возврата ренты (рента идёт владельцу ордера).

Кипер не может вызвать `OpenLimitOrder`, `IncreaseLimitOrder`, `DecreaseLimitOrder`, изменить какое-либо поле пула или подписать любую другую инструкцию — эти проверки реализованы on-chain через seed и `has_one` ограничения в структуре `Accounts` инструкции. Скомпрометированный кипер в худшем случае становится недоступным (ордера остаются незакрытыми, пока владелец не исполнит их самостоятельно) или исполняет/закрывает правомерно заполненные ордера не в том порядке; он не может переместить средства пользователей куда-либо, кроме уже авторизованного владельцем места назначения.

### Farm v6

| Роль                                | Адрес авторитета        | Что может делать                                                                                      |
| ----------------------------------- | ----------------------- | ----------------------------------------------------------------------------------------------------- |
| Обновление программы                | Squads multisig (3/4)   | Разворачивает новый байткод программы                                                                 |
| Создатель фарма (для каждого фарма) | Кошелёк создателя фарма | Пополняет хранилища вознаграждений, продлевает расписания, возвращает неиспользованные вознаграждения |

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

### LaunchLab

| Роль                                    | Адрес авторитета          | Что может делать                                                                   |
| --------------------------------------- | ------------------------- | ---------------------------------------------------------------------------------- |
| Обновление программы                    | Squads multisig (3/4)     | Разворачивает новый байткод программы                                              |
| Создатель запуска (для каждого запуска) | Кошелёк создателя запуска | Собирает комиссии создателя после graduation; выводит остаток незавершённой кривой |

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

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

Программы 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](https://app.squads.so).

| Мультисиг               | Порог   | Таймлок     | Область действия                                                                                                                                                                                                                                                                                                                                              |
| ----------------------- | ------- | ----------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **Обновление программ** | **3/4** | **24 часа** | Единственный авторитет для развёртывания нового байткода программ AMM v4, CPMM, CLMM, LaunchLab, Lock, AMM Routing, Stable Swap и устаревших программ Farm/Staking. Просмотр: [`app.squads.so/.../FytDr…ceZQK`](https://app.squads.so/squads/FytDrVzDybM1TwFQPGb8qaxZR7dBCzNeqT3vtQsceZQK/home).                                                              |
| **Казначейство**        | **3/5** | нет         | Казначейские активы, доходы протокола, операционные расходы. Также временно держит ограниченный программный авторитет Raydium (создание AmmConfigs, сбор протокольных комиссий, настройка параметров пулов). Просмотр: [`v3.squads.so/dashboard/RVha…dHdtYz09`](https://v3.squads.so/dashboard/RVhaWTdGUGNjTnVFdmdIWk1DTXB3dzJGZW44b0xXQlNKemRnQ3NYM0Rqd20=). |

Операционные свойства мультисига обновлений:

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

Казначейский мультисиг не имеет таймлока — его область действия уже, а рутинные операции (создание AmmConfigs, сбор комиссий) должны выполняться в тот же день. Казначейский мультисиг также держит ограниченный программный авторитет, указанный в таблицах по программам выше; это временное решение, которое периодически пересматривается совместно с партнёрами по безопасности.

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

Простейший способ проверить текущий авторитет обновления программы:

```bash theme={null}
solana program show <PROGRAM_ID>
```

Вывод включает:

```
Program Id:          CPMMoo8L3F4NbTegBCKVNunggL7H1Zpdmwpwh8KMoZ0F
Owner:               BPFLoaderUpgradeab1e11111111111111111111111
ProgramData Address: <ProgramDataPDA>
Authority:           <EXPECTED_MULTISIG_ADDRESS>
Last Deployed In Slot: <slot>
Data Length: <n> bytes
```

Если `Authority` не совпадает с ожидаемым адресом мультисига Squads, что-то не так. Raydium публикует ожидаемые адреса авторитетов на [`reference/program-addresses`](/ru/reference/program-addresses).

Для ролей AmmConfig / администратора пула — получите on-chain аккаунт и декодируйте:

```ts theme={null}
const config = await raydium.cpmm.getAmmConfig(configPda);
console.log("AmmConfig admin:", config.admin.toBase58());
// Expected: 3/5 treasury multisig.
```

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

| Дата    | Программа     | Изменение                                                                            |
| ------- | ------------- | ------------------------------------------------------------------------------------ |
| 2022-12 | AMM v4        | Авторитет обновления перенесён с одиночной подписи на мультисиг 3/4 после инцидента  |
| 2023-02 | Все программы | Все операционные роли объединены под казначейским мультисигом 3/5                    |
| 2023-11 | CLMM          | Добавлен второй мультисиг только для операций с вознаграждениями для снижения рисков |
| 2024-05 | CPMM          | Первоначальное развёртывание с авторитетом мультисига с нулевого дня                 |

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

Что стоит делать пользователю/LP/интегратору?

1. **Проверяйте авторитет обновления перед крупными вложениями.** Убедитесь, что он совпадает с задокументированным мультисигом.
2. **Следите за активностью мультисига.** [Squads UI](https://v4.squads.so) показывает ожидающие транзакции; запланированное обновление даёт 24 часа на выход, если вы не согласны с изменением.
3. **Стратегии вывода с учётом таймлока.** Если вы используете авто-компаундер, убедитесь, что путь вывода не зависит от инструкции, которая в данный момент изменяется.
4. **Не рассчитывайте на неизменяемость программ.** Каждая программа Raydium может быть обновлена; планируйте это заранее.

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

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

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

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

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

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

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

## Ссылки

* [`reference/program-addresses`](/ru/reference/program-addresses) — канонические адреса авторитетов.
* [`security/attack-vectors`](/ru/security/attack-vectors) — как проявляются компрометации администратора.
* [`ray/treasury`](/ru/ray/treasury) — адреса казначейства и сбора комиссий.
* [`security/disclosure`](/ru/security/disclosure) — сообщение о подозрительных проблемах с администратором.

Источники:

* [Squads Protocol](https://v4.squads.so) — интерфейс мультисига.
* [Solana BPF Loader docs](https://docs.solana.com/developing/runtime-facilities/programs#bpf-loader) — механизм обновления.
