Пользователь открывает DEX, вводит сумму обмена и видит расчет: за 1 000 USDC он должен получить определенное количество токенов. Через несколько секунд после подтверждения результат оказывается немного другим. Иногда разница почти незаметна, иногда — ощутима. Одна из причин называется slippage.
Коротко: slippage, или проскальзывание, — это разница между ожидаемой ценой или количеством токенов в момент формирования сделки и фактическим результатом ее исполнения.
Проскальзывание особенно важно на DEX, где цена способна измениться между расчетом маршрута и включением транзакции в блокчейн. Но похожий эффект встречается и на централизованных рынках, особенно при рыночных заявках и низкой ликвидности.
Почему возникает slippage
Крипторынок не останавливается, пока пользователь нажимает кнопку подтверждения. Другие участники продолжают торговать, пулы меняют соотношение активов, арбитражеры выравнивают цены, а транзакция некоторое время ожидает включения в блок.
Представим, что интерфейс рассчитал покупку по цене $1 за токен. Пользователь ожидает получить 1 000 токенов за 1 000 USDC.
Пока транзакция исполняется, рыночная цена меняется до $1,005. Фактическое количество к получению становится меньше.
Эта разница и относится к price slippage.
Slippage и price impact — не одно и то же
Термины часто смешивают, хотя они описывают разные процессы.
Uniswap Labs определяет price impact как изменение цены, которое вызывает непосредственно ваша сделка. Чем крупнее сделка относительно ликвидности пула, тем сильнее она сдвигает цену.
Price slippage — разница между ожидаемым результатом swap и фактическим результатом после исполнения.
| Параметр | Slippage | Price Impact |
|---|---|---|
| Причина | Изменение рынка во время исполнения | Влияние самой сделки на пул |
| Зависит от времени | Да | Не обязательно |
| Зависит от размера сделки | Косвенно | Напрямую |
| Усиливается при низкой ликвидности | Да | Да |
| Можно ограничить настройкой tolerance | Да | Только косвенно через размер/маршрут |
Если пользователь покупает мало токенов в глубоком пуле, price impact может быть почти нулевым, но slippage все равно возможен из-за движения рынка.
Что такое slippage tolerance
Slippage tolerance — максимально допустимое отклонение результата, при котором пользователь согласен исполнить swap.
Если интерфейс показывает 1 000 токенов, а tolerance установлен на 1%, сделка должна защитить пользователя от результата хуже заданного минимального значения, если механика конкретного маршрута работает именно так.
Упрощенно:
ожидаемый output: 1 000 токенов
max slippage: 1%
минимальный приемлемый output: около 990 токенов
Если к моменту исполнения расчет становится хуже установленного ограничения, транзакция может revert.
Важно понимать: даже failed transaction в некоторых сетях способна потребовать gas, потому что валидаторы уже выполняли вычисления.
Почему нельзя просто ставить slippage 20–50%
Высокий tolerance увеличивает вероятность, что swap пройдет, но одновременно разрешает намного худший результат.
Если пользователь допускает 20% проскальзывания, это не означает, что он обязательно потеряет 20%. Но он фактически сообщает контракту, что готов принять сильное ухудшение условий в пределах заданного ограничения.
На низколиквидных и волатильных токенах это особенно опасно.
Высокий slippage также способен повысить привлекательность транзакции для некоторых видов MEV-стратегий, если исполнение можно выгодно окружить другими операциями.
Поэтому совет «если swap не проходит — поставь 50%» нельзя считать нормальным универсальным решением.
Почему слишком низкий slippage тоже проблема
Допустим, пользователь устанавливает 0,01% на активно движущемся токене. Даже небольшого изменения цены до исполнения может хватить, чтобы транзакция отклонилась.
В результате пользователь не получает токены, но может потратить gas.
Uniswap Labs прямо предупреждает: если slippage установлен слишком низко, transaction может revert или fail; если слишком высоко — пользователь способен получить меньше токенов, чем ожидал.
Поэтому tolerance — компромисс между защитой цены и вероятностью исполнения.
Какой slippage ставить
Универсального процента нет.
Значение зависит от:
- ликвидности;
- волатильности;
- размера сделки;
- скорости сети;
- token fee;
- маршрута;
- механики конкретного DEX;
- типа токена.
Для глубокой пары стейблкоинов допустимое отклонение обычно можно держать очень небольшим. Для нового токена с низкой ликвидностью рынок способен требовать больший диапазон, но сам факт этого уже является сигналом повышенного риска сделки.
Современные интерфейсы часто предлагают Auto slippage, рассчитывая значение автоматически. Например, Uniswap Web App использует автоматическую настройку в зависимости от параметров swap и сети, при этом пользователь может выбрать Custom.
Почему swap не проходит даже после повышения slippage
Причина может быть вообще не в рыночном движении.
Uniswap перечисляет среди возможных факторов:
- variable token fee;
- нестандартную approval-функцию;
- неподдерживаемую механику rebasing/reflection;
- математические особенности токена;
- недостаток native token для network cost;
- истекший transaction deadline.
Кроме того, существуют malicious tokens, которые позволяют купить актив, но ограничивают продажу.
Поэтому бесконечно увеличивать slippage при ошибке — плохая стратегия. Сначала нужно понять источник сбоя.
Slippage на токенах с buy/sell tax
Некоторые токены содержат комиссию внутри контракта. Например, при продаже удерживается 5%.
В таком случае DEX должен учитывать token fee. Если tolerance меньше встроенной комиссии или расчет маршрута не поддерживает такую механику, swap может не исполниться.
Высокая или изменяемая buy/sell tax — отдельный риск. Перед покупкой малоизвестного токена полезно проверить контракт и возможность обратной продажи небольшой суммы.
Slippage и ликвидность
Чем глубже рынок, тем меньше обычно влияние отдельных сделок и тем стабильнее исполнение.
Представим два пула.
Pool A: ликвидность $20 млн.
Pool B: ликвидность $40 тыс.
Swap на $5 000 почти не влияет на первый пул, но способен существенно изменить цену во втором.
Поэтому пользователь, который смотрит только на красивую цену токена, но не смотрит глубину ликвидности, не понимает реальную стоимость входа и выхода.
У OPX уже есть отдельный материал о том, почему ликвидность токена важнее номинальной цены.
Как уменьшить проскальзывание
Самый простой способ — уменьшить размер сделки относительно доступной ликвидности.
Для крупной суммы иногда выгоднее разбить операцию, хотя нужно учитывать дополнительные network fees и изменение рынка между транзакциями.
Другой вариант — выбрать более глубокий пул или маршрутизатор, который использует несколько источников ликвидности.
Также можно совершать сделку в менее волатильный момент, использовать limit order там, где он доступен, и проверять minimum received перед подтверждением.
Что такое minimum received
Minimum received — минимальное количество токенов, которое пользователь согласен получить при заданных условиях исполнения.
Это один из самых полезных параметров окна подтверждения.
Если интерфейс показывает:
Expected output: 5 000 ABC
Minimum received: 4 950 ABC
пользователь сразу понимает нижнюю границу исполнения.
Если значение неожиданно далеко от ожидаемого output, стоит разобраться, почему: высокий slippage, price impact, fee токена или необычный маршрут.
Что такое price impact на практике
Price impact возникает даже при идеально мгновенном исполнении, если ваша сделка велика относительно пула.
Uniswap отмечает: в пуле с высокой ликвидностью price impact обычно меньше, в малом пуле — больше.
Это фундаментальное свойство AMM. Покупая токен, пользователь меняет соотношение активов внутри пула, а вместе с ним и расчетную цену.
Поэтому огромный price impact нельзя «исправить» высоким slippage. Увеличив tolerance, пользователь лишь разрешит исполнить невыгодную сделку.
Пример расчета
Пользователь хочет обменять 10 000 USDC на XYZ.
Интерфейс показывает:
- рыночная цена до сделки: $1;
- expected output: 9 850 XYZ;
- price impact: 1,2%;
- max slippage: 0,5%;
- minimum received: 9 800 XYZ.
Уже до подписания видно, что часть разницы связана с тем, что сделка сама влияет на пул. Slippage tolerance затем защищает от дополнительного ухудшения результата во время исполнения.
Если пользователь увеличит max slippage до 10%, price impact не исчезнет. Просто нижняя граница приемлемого результата станет намного хуже.
Slippage на CEX
На централизованной бирже термин встречается реже в интерфейсе, но механика существует.
Market order исполняется по доступным заявкам в order book. Если заявка крупная, она может «съесть» несколько уровней цены.
Пользователь видит среднюю цену исполнения хуже верхней котировки.
Limit order дает больший контроль над ценой, но не гарантирует, что заявка будет исполнена полностью или вообще.
Таким образом, проблема исполнения существует и на CEX, и на DEX, просто реализована по-разному.
FAQ
Что такое slippage простыми словами?
Это разница между результатом сделки, который пользователь ожидал до подтверждения, и фактическим результатом после исполнения.
Чем slippage отличается от price impact?
Price impact вызывается самой сделкой и ее размером относительно ликвидности. Slippage связан с изменением условий между расчетом и исполнением.
Чем выше slippage, тем лучше проходит swap?
Вероятность исполнения может вырасти, но пользователь разрешает более неблагоприятный результат. Поэтому бесконтрольно повышать tolerance нельзя.
Почему транзакция failed при низком slippage?
Цена могла выйти за установленный пользователем диапазон до исполнения. Причиной также могут быть token fee, gas, deadline или особенности контракта.
Как уменьшить slippage?
Использовать более глубокую ликвидность, уменьшить размер сделки, выбирать эффективный маршрут и избегать высокой волатильности.
Slippage 1% означает, что я точно потеряю 1%?
Нет. Это допустимый предел отклонения, а не обязательная потеря.