DEV Community

Axion
Axion

Posted on

Что на самом деле происходит за «одной кнопкой» в DeFi

Что на самом деле происходит за «одной кнопкой» в DeFi

«DeFi в один клик» звучит просто.

Выбрать стратегию.

Внести средства.

Дальше система делает всё остальное.

С точки зрения пользователя именно так и должен выглядеть хороший продукт.

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

Funding-стратегии — хороший тому пример.

Сам финансовый механизм можно объяснить достаточно быстро. Но превратить его в простой продукт — это уже полноценная инфраструктурная задача.

Разберём, что на самом деле может происходить за тем самым «одним кликом».


Интерфейс — самая простая часть

Для пользователя весь процесс может выглядеть так:

Подключить кошелёк
        ↓
Выбрать стратегию
        ↓
Внести средства
        ↓
Следить за результатом
Enter fullscreen mode Exit fullscreen mode

Четыре действия.

Теперь посмотрим на возможную цепочку внутри системы:

Депозит пользователя
        ↓
Проверка транзакции
        ↓
Распределение капитала
        ↓
Получение рыночных данных
        ↓
Логика стратегии
        ↓
Управление позициями
        ↓
Контроль рисков
        ↓
Постоянный мониторинг
        ↓
Ребалансировка
        ↓
Отчётность
Enter fullscreen mode Exit fullscreen mode

Сложность никуда не исчезла.

Она просто переместилась с пользователя внутрь инфраструктуры.

В этом и заключается смысл хорошей автоматизации.


Шаг 1. Система должна понять, что произошло

Прежде чем стратегия начнёт работать, необходимо корректно обработать действие пользователя.

Прошла ли транзакция?

Использован ли нужный актив?

В правильной ли сети она совершена?

Получено ли необходимое количество подтверждений?

Даже обычный депозит запускает внутреннюю цепочку:

Транзакция обнаружена
        ↓
Проверка сети
        ↓
Проверка актива
        ↓
Проверка суммы
        ↓
Подтверждение
        ↓
Обновление состояния системы
Enter fullscreen mode Exit fullscreen mode

Пользователь видит:

«Депозит успешно выполнен».

Для backend это уже несколько последовательных операций.


Шаг 2. Депозит и открытие позиции — не одно и то же

Получение капитала не обязательно означает, что его нужно немедленно направлять в стратегию.

Сначала система может проверить текущие условия.

Например:

Капитал доступен
        ↓
Проверка рынка
        ↓
Проверка ликвидности
        ↓
Проверка параметров стратегии
        ↓
Распределение капитала
Enter fullscreen mode Exit fullscreen mode

Это важное различие.

Автоматизация не должна работать по принципу:

«Деньги поступили — немедленно что-то сделать».

Правильнее:

«Деньги поступили — запускаем заранее определённую последовательность действий».


Шаг 3. Нужны качественные рыночные данные

Funding-стратегия зависит от постоянно меняющегося рынка.

Система может отслеживать:

  • funding rate;
  • spot-цены;
  • perpetual-цены;
  • ликвидность;
  • состояние позиций;
  • обеспечение;
  • стоимость исполнения.

Но просто получить данные через API недостаточно.

Внешние источники могут перестать отвечать.

Информация может приходить с задержкой.

Форматы данных отличаются.

Иногда встречаются аномальные значения.

Поэтому архитектура может выглядеть так:

Источники данных
        ↓
Сбор
        ↓
Проверка
        ↓
Нормализация
        ↓
Логика стратегии
Enter fullscreen mode Exit fullscreen mode

Стратегия получает уже подготовленное представление о состоянии рынка, а не набор несвязанных ответов от разных API.


Шаг 4. Решение стратегии ещё не означает исполнение

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

Это ещё не означает, что операция должна выполняться немедленно.

Между решением и исполнением нужен дополнительный уровень:

Решение стратегии
        ↓
Проверка рисков
        ↓
Запрос на исполнение
        ↓
Исполнение
        ↓
Проверка результата
Enter fullscreen mode Exit fullscreen mode

У каждого уровня своя задача.

Стратегия: что необходимо сделать?

Risk layer: допустимо ли это сейчас?

Execution layer: как именно это выполнить?

Такую архитектуру проще контролировать, тестировать и масштабировать.


Шаг 5. После открытия позиций работа не заканчивается

Funding меняется.

Цены двигаются.

Ликвидность меняется.

Экспозиция позиций может отклоняться.

Меняются условия обеспечения.

Поэтому система продолжает работать:

Мониторинг
     ↓
Оценка состояния
     ↓
Всё в пределах параметров?
     ↓
   Да → Продолжить мониторинг
     ↓
   Нет
     ↓
Ребалансировка
     ↓
Проверка результата
     ↓
Мониторинг
Enter fullscreen mode Exit fullscreen mode

Именно здесь становится особенно заметна разница между простой транзакцией и полноценной финансовой стратегией.

У обычного swap есть понятное завершение.

У постоянно работающей стратегии его фактически нет.


Ребалансировка — часть продукта

Представим market-neutral конструкцию.

Её задача — снизить зависимость результата от направления цены базового актива и сосредоточиться на другом источнике результата, например funding-платежах.

Но «нейтральная» не означает «настроил один раз и забыл».

Рынок движется.

И позиция, которая находилась в необходимом балансе несколько часов назад, может постепенно отклониться от него.

Система должна понимать:

  • какое отклонение допустимо;
  • когда нужна ребалансировка;
  • насколько необходимо изменить позиции;
  • достаточно ли текущей ликвидности;
  • оправдана ли операция с учётом её стоимости.

Поэтому ребалансировка — не просто техническая деталь.

Это часть жизненного цикла стратегии.


Ошибки в финансовой системе имеют другую цену

В обычном приложении ошибка API может закончиться сообщением:

Что-то пошло не так.
Попробуйте ещё раз.
Enter fullscreen mode Exit fullscreen mode

В финансовой инфраструктуре этого недостаточно.

Например:

Необходима ребалансировка
        ↓
Отправлена операция
        ↓
Соединение потеряно
Enter fullscreen mode Exit fullscreen mode

Что произошло?

Операция не выполнилась?

Или она выполнилась, но система не получила ответ?

Нужно повторить запрос?

А если повторное исполнение создаст вторую операцию?

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


Мониторинг самой системы тоже обязателен

Если стратегия должна работать без постоянного участия пользователя, разработчики должны видеть, что происходит внутри.

Например:

Состояние стратегии
Состояние источников данных
Открытые позиции
Текущая экспозиция
Статус исполнения
Последняя ребалансировка
Ошибки
Предупреждения
Enter fullscreen mode Exit fullscreen mode

Это необходимо не только для поиска багов.

Так команда понимает, что система прямо сейчас работает в соответствии с ожидаемой логикой.

Чем больше ответственности мы забираем у пользователя, тем лучше должны контролировать автоматизацию внутри продукта.


Axiona как практический пример

Именно такой подход актуален для Axiona — платформы, которая упрощает доступ к funding-стратегиям.

Со стороны пользователя идея выглядит максимально просто.

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

Но сама операционная работа не исчезает.

Она перемещается внутрь инфраструктуры.

И это хорошо показывает более широкий принцип разработки финансовых продуктов:

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


«Одна кнопка» на самом деле является уровнем абстракции

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

По сути пользователь говорит:

Я не хочу вручную выполнять каждый внутренний процесс. Я ожидаю, что продукт сделает это корректно.

Именно поэтому хорошая абстракция сложна в разработке.

Недостаточно просто спрятать процессы.

Нужно надёжно ими управлять.

Для funding-продукта это означает переход от:

Изучить
↓
Проанализировать
↓
Рассчитать
↓
Исполнить
↓
Контролировать
↓
Ребалансировать
Enter fullscreen mode Exit fullscreen mode

к:

Внести средства
↓
Следить за результатом
Enter fullscreen mode Exit fullscreen mode

Все пропущенные этапы остались.

Просто теперь они стали частью инфраструктуры.


Итог

«DeFi в один клик» — на самом деле история не про кнопку.

Это история про ответственность системы.

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

Нужно получать данные.

Анализировать условия.

Управлять позициями.

Контролировать риски.

Обрабатывать ошибки.

Проводить ребалансировку.

Следить за состоянием всей системы.

Именно поэтому самые простые снаружи финансовые продукты могут иметь одну из самых сложных архитектур внутри.

Одна кнопка не уничтожает сложность.

Она означает, что эту сложность согласилась взять на себя система.

Top comments (0)