Перейти к содержанию

Как выбрать окно TWAP

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

Обновлено

Только в образовательных целях; это не инвестиционная рекомендация и не совет по безопасности. Ошибочный ценовой оракул может вызвать неверные ликвидации, недообеспеченные займы и убытки протокола.

Краткий ответ

Универсально безопасного окна TWAP нет. Выберите самое короткое окно, при котором прибыльная манипуляция конкретным пулом и протоколом всё ещё нереалистична, а затем убедитесь, что задержка при реальном движении цены приемлема. Более длинное окно обычно требует дольше влиять на рынок, но и старые цены остаются в среднем дольше. Оно не исправляет низкую или находящуюся вне нужного ценового пути ликвидность, чрезмерный риск и ошибки интеграции.

Это расчёт бюджета риска, а не выбор между 5 минутами, 30 минутами и 1 часом. Зафиксируйте пул и метод усреднения, допустимые ошибку и задержку, извлекаемую стоимость, цену атаки, историю наблюдений и аварийное поведение. Повторяйте анализ при изменении ликвидности, стимулов, производства блоков, лимитов залога или структуры рынка.

Как это работает

Оракул с аккумулятором записывает цену во времени. Для арифметического аккумулятора среднее от t1 до t2 равно:

TWAP(t1,t2) = (cumulativePrice(t2) - cumulativePrice(t1)) / (t2 - t1)

Uniswap v2 накапливает цену в начале каждого блока, а потребитель хранит два значения. Uniswap v3 хранит наблюдения накопленного тика, поэтому преобразование среднего тика даёт взвешенное по времени геометрическое среднее. Способ усреднения, направление котировки, ёмкость, округление и обновление входят в спецификацию. Не всякий TWAP является арифметическим средним спотовых выборок.

Используйте такой процесс:

  1. Определите функцию потерь. Запишите влияние цены на заём, ликвидацию, выпуск, погашение или расчёт и установите максимальные ошибку и задержку для роста и падения.
  2. Измерьте исполнимую ликвидность. Смоделируйте резервы, комиссии и активную ликвидность по всему ценовому пути атаки. TVL и недавний объём сами по себе устойчивость не доказывают.
  3. Ограничьте выигрыш атакующего. Учтите лимиты залога и займов, бонусы ликвидации, открытые позиции, совместимость с другими протоколами и прибыль до паузы. Сравнивайте цену атаки со всей извлекаемой стоимостью.
  4. Смоделируйте возможные атаки. Проверьте искажение одного и нескольких блоков, flash-капитал, контроль proposer или порядка, арбитраж, back-running, перегрузку и закрытие позиции. Исследования показывают, что линейная зависимость цены атаки от окна может не работать при сильной модели атакующего.
  5. Переберите окна. Для каждого периода смоделируйте исторические скачки и враждебные пути. Отбросьте варианты с прибыльной манипуляцией или недопустимо старой ценой.
  6. Добавьте независимые меры. Используйте лимиты риска, проверку отклонения от независимой цены, предел давности, консервативное обеспечение и проверенные правила паузы или резерва. Они ограничивают ущерб, но не делают плохой источник безопасным.

Результат относится только к данному пулу, уровню комиссии, сети, реализации, паре и состоянию протокола. Копирование окна в 30 минут не копирует чужую ликвидность и предел потерь.

Пример

Пусть упрощённый арифметический TWAP использует цену, которая мгновенно меняется со 100 до 70 и остаётся 70. Через 15 минут скользящее 30-минутное окно содержит по 15 минут каждой цены:

(15 x 100 + 15 x 70) / 30 = 85

Через 30 минут старые наблюдения 100 полностью выходят и TWAP достигает 70. Окно 5 минут достигает 70 через 5 минут, но атакующему также нужно меньше времени удерживать искажение. Если кредитный рынок оценивает залог около 85, когда исполнимая цена близка к 70, ликвидация может запоздать и создать плохой долг; другой сценарий может допускать медленную цену.

Пример показывает только задержку, не цену манипуляции, а 85 неприменимо к геометрическому среднему. Настоящая проверка должна воспроизвести точную формулу с наблюдениями, активной ликвидностью, комиссиями, порядком блоков и позициями.

Риски и меры контроля

  • Слишком короткое окно: нескольких искажённых блоков может хватить для прибыли. Усильте источник или рынок, снизьте риск либо используйте более разнообразный ориентир.
  • Слишком длинное окно: оракул отстаёт от скачка, задерживает ликвидацию при падении или недооценивает залог при росте. Измерьте худшую задержку и задайте консервативные параметры.
  • Ошибка оценки ликвидности: TVL может быть неактивным, узко сосредоточенным, односторонним или вне пути атаки. Используйте исполнимую глубину на нужных тиках и ценах.
  • Сбой наблюдений: нехватка истории, старые данные, неинициализированная ёмкость, неверные время, пул или направление делают расчёт недействительным. Выполняйте revert или переходите в описанное безопасное состояние без скрытой подмены.
  • Неполная модель атакующего: flash-ликвидность, proposer нескольких блоков, порядок и межпротокольная прибыль снижают чистые затраты. Проводите стресс-тест; «комиссия на минуты» не доказательство.
  • Изменения управления и рынка: миграция, комиссии, новый залог, рост лимитов, обновление или смена сети могут отменить результат. Контролируйте входные данные и задайте пороги пересмотра.
  • Сбой резерва: независимый источник может отличаться охватом, десятичными знаками, задержкой и отказами. Точно задайте паузу, отказ, ограничение или переключение и проверьте путь on-chain.

До запуска опубликуйте единицы, направление, метод, окно, минимальную историю, критерии пула, лимиты и поведение при сбое. Затем следите за отклонением от ориентира и экономическими входами модели атаки.

Распространённые заблуждения

  • «Чем длиннее, тем всегда безопаснее». Время атаки может вырасти, но растёт и задержка; слабая ликвидность и неполная модель не исправляются.
  • «TWAP за 30 минут — отраслевая гарантия». Длительность — лишь один параметр наряду с глубиной, активной ликвидностью, комиссиями, блоками, формулой и риском.
  • «Flash loan не влияет на TWAP». Он снимает ограничение капитала внутри транзакции. Результат зависит от выборки, доступной части окна и окружающей логики.
  • «Высокий TVL означает высокую цену манипуляции». Только исполнимая ликвидность на нужном ценовом пути прямо сопротивляется смоделированной сделке.
  • «TWAP — текущая рыночная цена». Это среднее исторических on-chain состояний одного рынка; оно намеренно запаздывает и может не отражать широкий рынок.

Похожие темы

Источники

Навигация

Поиск по вики...