Swop.fi — обменник криптовалют на основе модели AMM (automated market maker). Это означает, что цена обмена для каждой пары токенов зависит только от количества токенов на смарт-конкракте. Смарт-контракты Swop.fi не используют оракулы или другие внешние источники данных для определения обменных курсов.
Swop.fi предлагает для каждой пары токенов наиболее подходящую формулу расчета цены:
- Constant Product Market Maker (CPMM)
- Flat
Расскажем, как работают эти формулы и почему формула Flat уменьшает проскальзывание и обеспечивает лучшую цену обмена для стейблкоинов.
CPMM
Большинство пулов Swop.fi основаны на широко известной формуле, используемой проектом Uniswap и многими другими AMM. Эта формула гласит, что произведение количества токенов не меняется при обменах:
где:
x — количество токена X,
y — количество токена Y,
k — постоянная.
Если пользователь хочет обменять количество a токена X, то эквивалентное количество b токена Y соответствует пропорции:
На самом деле пользователь получает не b, а 0,997b из-за комиссии 0,3%, взимаемой смарт-контрактом.
Допустим, что x = 1000 и y = 200. Посмотрим, как сумма обмена влияет на цену.
Для небольших сумм цена близка к x/y. Чем больше сумма обмена относительно общего количества токена в пуле, тем сильнее смещается цена. Такой эффект называется проскальзыванием. Гиперболическая кривая цены приводит к значительному проскальзыванию в крупных сделках.
Flat: уменьшение проскальзывания
CPMM-формула работает не лучшим образом для пары токенов, цена которых не должна сильно отличаться — например, для стейблкоинов, привязанных к одной и той же фиатной валюте. При обмене небольших сумм цена должна быть как можно ближе к постоянной цене, которая описывается формулой
Curve удалось уменьшить проскальзывание в пулах стейблкоинов благодаря формуле, которая объединяет произведение (1) и сумму (2) количества токенов. Вдохновленные подходом Curve, мы разработали собственную оригинальную формулу, которая применяется в паре USDT-USDN:
Параметр s (skewness) отражает перекос балансов токенов X и Y. Чем больше перекос, тем больше вклад произведения балансов, как в формуле (1). Если балансы примерно одинаковы, больше вклад суммы балансов, как в формуле (2).
Моделирование показало, что значения α = 0,5 и β = 0,46 позволяют добиться наименьшего проскальзывания при соотношении балансов, близком к 1:1. Кривая цены в этом случае выглядит следующим образом:
Например, пусть смарт-контракт хранит 1000 монет токена X и 1000 монет токена Y. При использовании CPMM-формулы (1) результаты обмена были бы такими:
Улучшенная Flat-формула (3) дает цену, которая гораздо меньше отклоняется от 1:
Фактически пользователь получает не b, а 0,9995b, поскольку комиссия 0,05% остается в пуле.