Роль Strategy Layer
Strategy Layer — единственное место в Agent Economy, где живёт дискреция — и эта дискреция принадлежит сообществу, не любому индивиду или команде. Он определяет границы, внутри которых работают агенты. Агенты оптимизируют как и когда. Strategy определяет что и сколько. Каждый параметр, который мог бы внести оценочное суждение, риск или мнение по выбору активов, поднимается на этот слой и управляется futarchy. Слой агентов намеренно лишён выборов уровня политики.StrategyConfig — on-chain конфигурация
Каждая управляемая поверхность (RWT Vault, Liquidity Nexus, Areal Treasury) поддерживает свой собственный PDAStrategyConfig. Агенты читают этот конфиг при каждом действии и проверяют, что действие остаётся внутри его границ.
RWT Vault StrategyConfig — ключевые параметры
Nexus StrategyConfig
Treasury StrategyConfig
Каждая инструкция, вызываемая агентом, читает соответствующий PDA
StrategyConfig и отклоняется с типизированной ошибкой (StrategyConfigViolation, KillSwitchActive, TimelockNotElapsed), если любая граница нарушена. Это не «бот проверяет» — это «контракт отклоняет». Агенты не могут произвести состояние вне границ даже если скомпрометированы.Двухуровневый timelock
Не все изменения параметров несут равный риск. Ужесточение slippage на 10 bps — рутина. Добавление нового OT в whitelist — решение об аллокации капитала с асимметричным риском. Модель timelock отражает это:Operational-уровень — timelock 24ч
Параметры, изменение которых влияет только на поведение исполнения внутри уже одобренной вселенной. Обновления применяются через 24 часа после разрешения предложения futarchy.Включает:
max_slippage_bpsrebalance_deviation_bpsrebalance_cooldown_secsmax_daily_swap_volume_usdc/max_single_swap_volume_usdcgeometric_density_r_bpsmax_active_zone_width
Critical-уровень — 7-дневный timelock
Параметры, изменение которых расширяет вселенную разрешённых действий или переформирует экономику. Обновления применяются через 7 дней после разрешения предложения — время для держателей выйти, если они не согласны.Включает:
allowed_ot_mints(любое добавление или удаление)allowed_swap_venues/allowed_third_party_venuesmax_alloc_per_ot_bpsmax_total_ot_exposure_bpsmin_reserve_usdc_bps/runway_months_minimumyield_split(любое перераспределение)
Kill switch — мгновенно вкл, медленно выкл
Полеkill_switch_active — единственный параметр с асимметричным timelock:
Активация: мгновенно
Три независимых пути могут выставить
kill_switch_active = true с нулевой задержкой: (1) Halt Bond — любой вносит стейк 1% от supply ARL как залог под остановку, (2) Pause Authority (Team Multisig) как операционная страховка, или (3) разрешённое аварийное предложение futarchy. У каждого пути свой компромисс доверие / скорость.Деактивация: 7-дневный timelock
Повторное включение активности агентов требует полного 7-дневного timelock, даже если активация была запущена по ошибке. Безопасность склоняется к осторожности. Деактивация — governance-действие уровня critical; ни один останавливающий не может в одностороннем порядке отменить свою остановку.
Halt Bond — экономический триггер остановки
Вместо выборного органа стражей протокол использует модель со ставкой в игре. Любой может запустить аварийную остановку, но должен внести реальную экономическую ставку как залог под легитимность вызова остановки. Плохие решения дороги; хорошие — вознаграждаются.Размер залога — 1% от supply ARL
Вносится в токенах ARL, рассчитывается относительно текущего supply в обращении на момент отправки. Достаточно велик, чтобы отпугнуть спам (существенный капитал под риском); достаточно мал, чтобы решительные держатели или координирующиеся группы могли его собрать при необходимости.
Мгновенная остановка при стейке
Та же транзакция, которая блокирует залог, выставляет
kill_switch_active = true. Протокол останавливается в пределах одного блока. Никакой координации, никакого multisig, никаких выборов — экономического обязательства достаточно.Обзор — была ли остановка оправдана
В течение 7-дневного окна обзора назначенный ревьюер (V1: Team Multisig / V2: предложение futarchy) оценивает, была ли остановка обоснована. Доказательства публикуются on-chain; вердикт обязателен к исполнению.
Асимметричные исходы
Оправдан → залог возвращается вызывающему + опциональный бонус из Treasury, масштабируемый к предотвращённому ущербу. Не оправдан → залог полностью уходит в Казначейство Areal. Никаких промежуточных исходов.
Поток активации
Обнаружение
Любой участник наблюдает аномалию через on-chain мониторы, отчёты сообщества, отправки bug bounty или аудит-события.
Стейк залога
Вызывающий отправляет инструкцию
activate_kill_switch_with_bond, переводящую 1% от supply ARL в обращении в токенах ARL в замороженный PDA HaltBondEscrow. Та же транзакция выставляет kill_switch_active = true.Автоматическая остановка
Все инструкции агентов в RWT Vault, Nexus и Treasury отклоняются с
KillSwitchActive на следующем вызове. Пользовательские операции не затронуты.Открытие окна обзора
7 дней. Вызывающий публикует обоснование (on-chain memo в транзакции стейка). Ревьюер (Team Multisig в V1, futarchy в V2) изучает доказательства и выносит вердикт.
Вердикт: Оправдан
Залог освобождается обратно вызывающему. Опциональный бонус выплачивается из Казначейства Areal, пропорциональный предотвращённому ущербу (задаётся governance, предлагаемый потолок 5% от предотвращённой потери). Вызывающий может предложить повторную активацию через стандартный 7-дневный поток governance.
Параметры
| Параметр | Значение | Обоснование |
|---|---|---|
| Размер залога | 1% от ARL в обращении (измеряется на момент транзакции) | Высокий барьер для ложных остановок; достижим для скоординированного ответа на реальные угрозы |
| Окно обзора | 7 дней | Симметрично с timelock повторной активации kill switch |
| Потолок бонуса | 5% от предотвращённого ущерба (задаётся governance) | Осмысленная награда без перекоса в сторону избыточных остановок |
| Cooldown после потери | 30 дней на кошелёк | Предотвращает цикл повторяющегося нарушителя |
| Деноминация стейка | ARL (не USDC) | Интересы останавливающего согласованы с выживанием протокола |
Почему экономический залог лучше выборного совета
Прошлый дизайн рассматривал выборный сообществом Safety Council (7 членов, supermajority 4-of-7). Модель залога строго проще и экономически чище:| Проблема | Safety Council | Halt Bond |
|---|---|---|
| Кто может запустить | 7 конкретных людей | Любой с 1% ARL |
| Накладные расходы выборов | Ежегодно на каждое место | Нет |
| Личное раскрытие | Требуется | Не нужно |
| Компенсация | Ежемесячная стипендия из Treasury | Нет; останавливающий финансируется своим стейком |
| Исход плохой остановки | Ущерб репутации, возможное удаление | Treasury получает 1% от supply |
| Устойчивость к griefing | Репутационная ставка | 1% от supply под риском |
| Согласованность с этикой futarchy | Личная ответственность | Экономическая ответственность |
Резервные полномочия
Два параллельных пути остаются для сценариев, где Halt Bond слишком медленный или неуместный:- Pause Authority (Team Multisig) — независимая мгновенная остановка без требования залога, зарезервирована для zero-day эксплойтов, наблюдаемых во время активной атаки, где даже сборка 1% ARL занимает слишком долго
- Аварийное предложение governance — остановка через futarchy без залога, но медленнее (требует жизненный цикл предложения для разрешения)
Жизненный цикл предложения futarchy
Разбор — обновление operational-уровня
Предложение #83: Ужесточитьmax_slippage_bps с 100 (1%) до 50 (0.5%) на RWT Vault.
- Держатель ARL отправляет с полезной нагрузкой
{surface: RwtVault, param: max_slippage_bps, from: 100, to: 50} - Рынки pass / fail открываются с начальной ликвидностью 5k ARL на сторону
- 72-часовое окно торговли. Pass-TWAP оседает на 1.084, fail-TWAP на 1.076 — pass выигрывает
- Timelock 24ч (operational-уровень)
- После истечения 24ч crank
apply_strategy_updateзапускается: config_version 18 → 19 - Следующее действие агента читает config v19, принудительно применяет новый slippage 50 bps
Разбор — обновление critical-уровня
Предложение #91: Добавить новый OTPROJ2K3mint... в allowed_ot_mints на RWT Vault.
- Отправка включает полное обоснование и ожидаемую цель аллокации
- Рынки pass / fail открываются с начальной ликвидностью 20k ARL на сторону (больше для critical)
- 168-часовое окно торговли. Разрешается в пользу pass
- Timelock 7 дней
- В течение 7 дней:
pending_update_unlock_tsвиден on-chain- Держатели, которые не согласны, имеют полную неделю для выхода через DEX или через путь погашения
mint_rwt(если включён) - Агенты не читают ожидающее обновление
- После 7 дней
apply_strategy_updateделает изменение whitelist действующим
Матрица покрытия параметров
| Параметр | Поверхность | Уровень | Обоснование |
|---|---|---|---|
allowed_ot_mints | RWT Vault | Critical (7д) | Расширяет вселенную разрешённых приобретений |
allowed_swap_venues | RWT Vault, Nexus, Treasury | Critical (7д) | Подвергает капитал контрактам новых контрагентов |
max_alloc_per_ot_bps | RWT Vault | Critical (7д) | Лимиты концентрации ограничивают максимальную потерю по одному активу |
max_total_ot_exposure_bps | RWT Vault | Critical (7д) | Отношение резерва к развёрнутому капиталу |
min_reserve_usdc_bps | RWT Vault | Critical (7д) | Минимум ликвидности |
yield_split | RWT Vault | Critical (7д) | Перераспределяет экономические потоки |
max_daily_swap_volume_usdc | RWT Vault, Nexus | Operational (24ч) | Circuit breaker — ужесточение или ослабление |
max_single_swap_volume_usdc | RWT Vault, Nexus | Operational (24ч) | Лимит на транзакцию |
max_slippage_bps | Все | Operational (24ч) | Параметр качества исполнения |
rebalance_deviation_bps | Nexus | Operational (24ч) | Чувствительность триггера |
rebalance_cooldown_secs | Nexus | Operational (24ч) | Anti-thrash |
geometric_density_r_bps | Nexus | Operational (24ч) | Форма density в существующем диапазоне |
kill_switch_active (→ on) | Все | Мгновенно | Безопасность не может ждать |
kill_switch_active (→ off) | Все | Critical (7д) | Повторная активация серьёзна |
Почему не один большой timelock
Единый длинный timelock (скажем, все изменения занимают 7 дней) кажется безопаснее, но ломается операционно: если параметр slippage выставлен слишком широко и агенты теряют ценность на MEV, протокол не может реагировать неделю. Единый короткий timelock (24ч на всё) теряет свойство окна выхода для критических изменений. Многоуровневая модель сохраняет оба:- Операционные параметры настраиваются в течение дня — протокол остаётся гибким
- Критические параметры дают несогласным держателям полную неделю голосовать ногами
- Kill switch всегда мгновенен — безопасность не торгуема
Что не может быть изменено governance
Некоторые инварианты захардкожены в слое контракта и не могут быть изменены даже успешными предложениями futarchy. Попытка требует обновления программы, подписанного upgrade authority (Team Multisig при запуске) — отдельный, более медленный путь. Примеры жёстких инвариантов:- Fund conservation во время
compress_liquidity(общий капитал не должен уменьшаться) - Kill switch не может быть обойдён никакой инструкцией
- Пропуск комиссии на пути mint применяется только к подлинным маршрутам mint
- Permanent tail bins никогда не списываются
- NAV RWT не может быть снижен ниже
MIN_CAPITAL_FLOOR(предотвращает NAV = 0)
Резюме
Агенты, связанные governance
Каждый агент читает StrategyConfig как жёсткие ограничения — не может превысить границы даже при компрометации
Двухуровневый timelock
24ч operational / 7д critical — баланс между гибкостью и возможностью выхода держателей
Мгновенный kill switch
Активация имеет нулевую задержку. Деактивация — 7-дневный timelock. Безопасность асимметрична по дизайну.
Конфиг на поверхность
RWT Vault, Nexus и Treasury — у каждого свой StrategyConfig — независимые пути обновления
Аудит-след встроен
Каждое изменение параметра несёт ID предложения, свидетельство TWAP, версию конфига, временную метку разблокировки
Захардкоженные инварианты
Fund conservation, достижимость kill switch и критические проверки безопасности не могут быть изменены governance