Комиссии на DEX: тест стоимости обмена в популярных сетях

Комиссии на DEX: тест стоимости обмена в популярных сетях

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

Поэтому вопрос «сколько стоит обмен?» без уточнения почти бессмысленен. Один и тот же обмен USDC на ETH может обойтись в доли цента на одной сети и в несколько долларов на другой. А если добавить тонкий пул, слишком широкий допуск по проскальзыванию и кошелёк со встроенным swap-виджетом, то пользователь заплатит ещё до того, как поймёт, по какому курсу его действительно исполнили.

Разберём, как проверить тест стоимости обмена в популярных сетях не по рекламной цифре в интерфейсе, а по полной механике транзакции: что уходит валидаторам и сиквенсерам, сколько забирает пул, где возникает slippage и почему иногда неудачный swap всё равно стоит денег.

Анатомия свопа: из чего складывается цена обмена

Любой обмен на DEX — это не одна операция, а вызов смарт-контракта роутера. Роутер может обратиться к одному пулу или собрать маршрут из нескольких: например, провести USDC через пул со стейблкоином, затем через ETH и только после этого выдать пользователю нужный токен. В Uniswap, Curve, Sushi, Raydium, Orca и Meteora логика различается, но принцип один: контракт получает входной актив, проверяет условия сделки и возвращает рассчитанный выход.

Формула тоже не всегда одна и та же. В классическом пуле постоянного произведения используется модель x*y=k, в стейблкоин-пулах — более сложные кривые, рассчитанные на торговлю активами с близкой ценой, а в concentrated liquidity ликвидность распределена по диапазонам цен. Для пользователя это означает простую вещь: комиссия и проскальзывание зависят не только от названия DEX, но и от конкретного пула, его глубины и выбранного маршрута.

Газ: плата за исполнение, а не за сам факт нажатия кнопки

Первый слой — сетевой газ. В EVM-сетях транзакция потребляет определённое количество gas units, а итоговая сумма зависит от цены газа. В Ethereum она выражается в gwei. В L2 формула дополнительно учитывает расходы сиквенсера и передачу данных в базовый слой. В Solana используется другая модель: транзакция оплачивается в lamports, а при повышенной конкуренции можно добавить priority fee за более высокий приоритет исполнения.

Простой перевод нативного токена в Ethereum обычно требует базовый объём газа около 21 000 единиц. Перевод ERC-20 сложнее: контракт должен проверить баланс, права доступа и обновить состояние, поэтому расход выше. При первом взаимодействии с конкретным контрактом может понадобиться отдельный approve. Это не комиссия DEX, а разрешение контракту потратить определённый токен от имени пользователя. В некоторых схемах используется permit или другой механизм подписи, позволяющий объединить разрешение с обменом, но поддержка зависит от токена и протокола.

Своп на EVM обычно требует заметно больше вычислений, чем перевод. Один пул — это одна нагрузка, маршрут через несколько пулов — другая. Дополнительные шаги появляются при обёртке нативного актива, проверке разрешений, использовании агрегатора и подключении защитных механизмов. Поэтому две транзакции на одну и ту же сумму могут иметь разный gas limit.

В Solana вместо gas units используются compute units. Сама транзакция часто остаётся дешёвой, но её стоимость зависит от приоритета, текущего спроса на блоки и конкретного маршрута. В загруженной сети высокая базовая стоимость может быть не главным фактором: большее значение получает priority fee, если пользователю нужно попасть в ближайший слот.

Комиссия пула: кто получает процент от сделки

Второй слой — комиссия пула ликвидности. Она списывается из объёма обмена и обычно распределяется между поставщиками ликвидности. В некоторых протоколах предусмотрена дополнительная доля протокола или казны, но это уже зависит от конкретной модели управления и текущих параметров.

В Uniswap v3 fee tier не выбирается трейдером произвольно в момент свопа. Fee tier — это параметр конкретного пула, который задаётся при его создании из доступных вариантов. LP выбирает, в каком пуле с определённой комиссией размещать ликвидность, а трейдер при обмене фактически выбирает уже существующий пул или маршрут через него. Если для одной пары есть несколько пулов с разными fee tier, роутер сравнивает их ликвидность, цену и расходы, а не позволяет пользователю «назначить» комиссию прямо в окне свопа.

Для Uniswap v3 типичны уровни 0,01%, 0,05%, 0,3% и 1%, но конкретная доступность и параметры зависят от версии протокола и сети. У Uniswap v4 модель гибче: комиссии и логика пула могут быть связаны с настройками пула и хуками. Это не означает, что трейдер получает бесконечный регулятор комиссии. Он по-прежнему выбирает маршрут среди реально существующих вариантов, а итоговую цену нужно оценивать вместе с глубиной ликвидности.

Низкая комиссия сама по себе не делает пул выгодным. Пул с fee tier 0,01% может дать худший результат, если в нём мало ликвидности и крупный ордер сильнее двигает цену. Иногда более дорогой пул с глубокой ликвидностью оказывается дешевле по итоговому output.

Проскальзывание: разница между котировкой и исполнением

Третий слой — slippage. Это не фиксированный сбор протокола, а отклонение между ожидаемой и фактической ценой. Оно возникает потому, что цена в AMM меняется по мере прохождения ордера через пул. Чем крупнее сделка относительно ликвидности, тем сильнее она сдвигает кривую.

Есть важное различие между price impact и slippage tolerance:

  • price impact — влияние самого ордера на цену пула;
  • slippage tolerance — максимальное отклонение, которое пользователь разрешает контракту принять;
  • фактическое проскальзывание — то, что произошло между котировкой и исполнением.

Если фактическая цена выходит за установленный допуск, транзакция может завершиться revert. Если допуск слишком широкий, сделка с большей вероятностью исполнится, но пользователь разрешает получить менее выгодный результат. Если слишком узкий — растёт риск неудачной транзакции в быстро меняющемся рынке.

Своп — это не одна цена, а сумма нескольких цен. Если ты не считаешь каждую, рынок считает тебя.

Агрегатор может разбить ордер между несколькими пулами, но и это не магия. Маршрут добавляет дополнительные вызовы контрактов, а иногда и дополнительный газ. Оптимальный вариант — не тот, где минимальная комиссия пула на бумаге, а тот, где после газа, fee и impact остаётся максимальный объём выходного актива.

Сравнение сетей: от дорогого Ethereum до L2 и Solana

Чтобы проверить стоимость обмена в популярных сетях, нужно смотреть не только на строку «network fee». Сравнивать следует одинаковую пару, одинаковый объём и сопоставимый маршрут. Обмен USDC на ETH через один пул и обмен того же USDC на малоликвидный токен через четыре промежуточных пула — это разные операции даже при одинаковой сумме.

Ethereum L1

Ethereum Mainnet остаётся дорогим, но его ценность не сводится к низкой комиссии. Здесь сосредоточены крупные пулы, ликвидность, сложные DeFi-протоколы и активы, для которых важен базовый уровень расчётов. Если сделка крупная, а глубина рынка критична, дополнительные расходы на L1 могут быть оправданы.

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

Отдельно нужно учитывать approve. Если токен ещё не разрешён роутеру, первая операция может потребовать дополнительную транзакцию. Иногда кошелёк предлагает разрешить «безлимитный» расход токена, иногда — ограничить allowance размером текущей сделки. Безлимитное разрешение экономит повторный шаг в будущем, но расширяет последствия компрометации контракта. Это уже вопрос не только комиссии, но и модели риска.

После Dencun расходы на публикацию данных для L2 снизились, однако это не превратило Ethereum L1 в дешёвую сеть для любых розничных свопов. Улучшение прежде всего сказалось на экономике роллапов. Сам Mainnet по-прежнему реагирует на собственный спрос и может быть нерациональным местом для небольшого обмена.

Arbitrum, Optimism и Base

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

Но у L2 есть собственная структура расходов. В ней участвует execution fee, плата за данные и иногда дополнительная наценка сиквенсера. При высокой активности стоимость может вырасти, хотя обычно скачки не сопоставимы с экстремальными пиками L1. Роутер с длинным маршрутом также может стоить заметно дороже простого обмена через один пул.

Есть и стоимость входа в сеть. Если актив находится в Ethereum L1, его нужно перевести через мост или использовать ликвидность стороннего бриджа. Этот расход нельзя приписывать самому свопу, но в реальной экономике позиции он существует. Для одного обмена на небольшую сумму bridge fee способен оказаться важнее, чем комиссия DEX.

Ещё одна тонкость — время вывода из некоторых оптимистических роллапов. Быстрое подтверждение операции внутри L2 и окончательное получение средств в L1 — не одно и то же. Для повседневного трейдинга важна скорость включения и подтверждения внутри сети. Для вывода на Ethereum нужно смотреть на правила конкретного моста, а не переносить срок вывода в таблицу как будто это время финализации каждого свопа.

Solana

Solana работает по другой архитектуре и не является «дешёвым Ethereum». Здесь собственные программы, аккаунты, модель комиссий и требования к compute budget. Своп через Jupiter может проходить через Raydium, Orca, Meteora и другие площадки, причём маршрут иногда включает несколько программ.

В обычной ситуации базовая комиссия невелика относительно большинства EVM-сетей. Но при ажиотаже значение получают priority fees, конкуренция за включение и особенности локального рынка комиссий. Поэтому рекламная цифра «почти бесплатно» не заменяет проверку итоговой стоимости конкретной транзакции.

Быстрое появление слота тоже не равно окончательной необратимости. Сначала транзакция попадает в слот и получает подтверждения, затем растёт уровень уверенности в том, что она не будет вытеснена или отменена. Для трейдера это обычно вопрос нескольких стадий подтверждения, а не одна универсальная цифра «400 мс».

ПараметрEthereum L1Arbitrum / Optimism / BaseSolana
Основная модель расходовGas price и gas unitsИсполнение в L2 плюс расходы на публикацию данныхБазовая комиссия, compute budget и priority fee
Стоимость свопаСильно зависит от загрузки и маршрутаОбычно ниже L1, но зависит от сиквенсера и числа вызововОбычно низкая, но может расти при конкуренции за включение
Что считать подтверждениемВключение в блок, затем подтверждения и экономическая финальностьПодтверждение внутри L2 и отдельный процесс вывода в L1Подтверждения слотов и рост уровня уверенности
Главный скрытый расходApprove и дорогой газ в пикеМост, вывод и длинный маршрутPriority fee, дополнительные аккаунты и сложность маршрута
Когда уместнаКрупные сделки, глубокая ликвидность, базовый settlementРегулярные DeFi-операции и розничные свопыБыстрые операции, активные рынки и небольшие сделки

Эта таблица не отвечает на вопрос «какая сеть лучше». Она показывает, где именно искать расходы. Если ты меняешь крупную сумму в глубоком пуле и тебе нужна ликвидность Ethereum, переход на дешёвую сеть может создать больше операционных проблем, чем сэкономить на газе. Если же ты гоняешь небольшие объёмы, L1 способен съесть значительную часть сделки ещё до учёта проскальзывания.

Скрытые потери: комиссии кошелька, маршрутизация и MEV

Сетевой газ и комиссия пула обычно видны в интерфейсе. Хуже с сервисными сборами кошельков: они могут быть включены в котировку отдельной строкой, спрятаны в расчёте output или показаны только перед подтверждением.

Встроенный swap-виджет — это не обязательно плохой инструмент. Он удобен, когда важна скорость, не хочется подключать отдельный агрегатор или нужно обменять актив в привычном интерфейсе. Но удобство оплачивается. Кошелёк может получать комиссию с обмена, использовать партнёрский маршрут или добавлять собственную наценку к котировке. Сравнивать нужно не подпись «fee», а два значения: сколько активов ты отдаёшь и сколько получаешь после всех удержаний.

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

Проскальзывание и глубина пула

Проверять нужно четыре значения:

  • объём входного актива;
  • ожидаемый output;
  • минимально допустимый output после slippage;
  • итоговый output с учётом комиссии и газа.

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

Для крупного ордера полезно сравнить несколько вариантов размера. Если обмен половины суммы даёт почти тот же курс, а удвоение ордера резко ухудшает output, проблема не в «дорогой сети», а в глубине ликвидности. Разбить сделку на несколько транзакций иногда помогает, но не всегда: каждая новая транзакция платит газ, а цена между частями может уйти в другую сторону.

Установка slippage tolerance на 5–10% «чтобы наверняка прошло» — не решение. Такой допуск увеличивает пространство, в котором сделка может быть исполнена по плохой цене. Слишком узкий допуск тоже не идеален: в волатильном рынке транзакция может регулярно ревертиться. Настройка должна соответствовать ликвидности, скорости движения цены и типу актива, а не быть универсальным числом из настроек кошелька.

Sandwich-атаки: риск есть, но защита не абсолютна

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

Private order flow, защищённые RPC и intent-based протоколы уменьшают вероятность такой атаки, но не превращают торговлю в герметичный контейнер. У каждой системы свои предположения о доверии, маршрутизации, раскрытии намерения и доступности исполнителей. Кроме того, приватная отправка может повлиять на скорость включения или лишить пользователя части конкуренции между маршрутами.

Поэтому корректная формулировка звучит так: приватная отправка и специальные механизмы исполнения могут снизить экспозицию к публичному мемпулу, но не гарантируют отсутствие MEV и не отменяют необходимость проверять итоговую цену.

Почему транзакции сгорают: revert, нехватка газа и гонка за включение

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

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

Чаще всего встречаются следующие сценарии.

1. Slippage exceeded. Цена ушла дальше установленного допуска до момента исполнения. Контракт отменил операцию, потому что выдавать пользователю меньше минимального output нельзя. Газ за уже выполненное при этом не возвращается.

2. Недостаточный allowance. Пользователь разрешил роутеру потратить меньше токенов, чем указано в свопе. Сначала потребуется approve, затем повторная попытка обмена.

3. Неверный gas limit или compute budget. Транзакции не хватило ресурсов для выполнения маршрута. В EVM это может выглядеть как out of gas, в Solana — как превышение доступного compute budget.

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

5. Проблема с маршрутом или аккаунтами. Особенно характерно для сложных путей и сетей, где программе нужно подготовить или указать дополнительные аккаунты.

Пользователь не может отменить уже включённую транзакцию. До включения иногда можно заменить pending-транзакцию повышенной комиссией, но это не «возврат газа», а новая попытка протолкнуть или заменить операцию. Если ошибка повторяется, повышать fee вслепую бессмысленно: сначала нужно понять, что именно ломается.

Как вернуть контроль над газом

Перед подтверждением полезно пройти короткую процедуру:

  • проверить, одна ли это транзакция или связка approve + swap;
  • посмотреть gas limit / compute budget и предлагаемую цену приоритета;
  • убедиться, что выбран правильный контракт и сеть;
  • сравнить quote с минимальным output;
  • оценить, не слишком ли сложен маршрут для небольшой суммы;
  • проверить, не устарела ли котировка, если окно подтверждения долго открыто.

В EVM пользователь может выбрать скорость и иногда вручную изменить лимит, но слишком низкий лимит приведёт к неудаче, а чрезмерный не всегда означает пропорционально большую оплату: итоговая комиссия обычно зависит от фактически использованного газа, тогда как правила конкретного кошелька могут отличаться. В Solana важно учитывать compute units и priority fee вместе, а не смотреть только на базовую комиссию.

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

Инструменты оптимизации: как агрегаторы находят лучшие маршруты

DEX-агрегатор сравнивает доступную ликвидность и пытается найти маршрут с лучшим итоговым результатом. Он может сопоставить несколько пулов, разбить ордер между площадками, учесть стоимость газа и отсеять варианты, где ожидаемый output слишком мал.

На EVM для этого используют разные источники ликвидности и роутеры. В экосистеме Ethereum и L2 пользователь может встретить 1inch, Matcha, ParaSwap и другие интерфейсы. Для самостоятельной проверки котировки полезно сравнить её с данными DefiLlama и оценить не название сервиса, а финальный output после газа.

В Solana похожую роль часто выполняет Jupiter: он ищет путь через Raydium, Orca, Meteora и другие источники, учитывая ограничения конкретной транзакции. Но агрегатор не делает сделку автоматически выгодной. Он может использовать партнёрский источник ликвидности или работать через кошелёк, который добавляет сбор. Поэтому строку с итоговым output нужно читать целиком, а не доверять ярлыку «best route».

Актуальная проверка состоит из нескольких сравнений:

1. Открой одну и ту же пару и укажи одинаковую сумму в двух или трёх интерфейсах.

2. Сравни ожидаемый output до газа и после него.

3. Посмотри, сколько вызовов и промежуточных пулов содержит маршрут.

4. Проверь slippage tolerance и минимальный output.

5. Отдельно изучи комиссии кошелька, партнёрские сборы и стоимость approve.

6. Убедись, что котировки получены почти одновременно: рынок меняется быстрее, чем обновляются вкладки.

Для небольших операций длинный маршрут может проиграть простому пулу из-за газа. Для крупной сделки разбиение ордера между источниками, наоборот, способно уменьшить price impact. А иногда лучший результат даст не тот агрегатор, который показывает самый высокий output до комиссии, а тот, кто точнее оценивает стоимость исполнения и не перегружает транзакцию лишними вызовами.

Важно различать комиссию агрегатора и сборы его партнёров. 1inch, DefiLlama Swap и Jupiter не берут собственных комиссий за обмен, но в конкретном сценарии могут появиться комиссии партнёрского источника ликвидности, кошелька или интерфейса, через который пользователь подписывает транзакцию. Это проверяется в деталях котировки и финальном экране подтверждения, а не по одному названию агрегатора.

Как считать стоимость обмена на практике

Для сравнения сетей нужна не рекламная формула «комиссия почти нулевая», а единый тест. Возьми одинаковую пару, одинаковый объём и зафиксируй время. Затем посчитай стоимость в исходном активе или в одной условной валюте, не смешивая газ, комиссию пула и потери курса в одну строку.

Удобная модель выглядит так:

Полная стоимость = газ + комиссия пула + сервисные сборы + потери от price impact и фактического slippage + расходы на approve/bridge, если они нужны для сценария.

Это не бухгалтерская формула протокола, а способ не забыть отдельные компоненты. Комиссия пула обычно уже уменьшает output, поэтому нельзя бездумно прибавлять её второй раз, если интерфейс показывает итоговый результат после удержания. То же касается проскальзывания: нужно отличать ожидаемый impact от реально понесённой потери.

Запиши для каждой сети:

  • сумму, которую отправляешь;
  • сумму, которую обещает котировка;
  • минимально допустимый output;
  • сетевую комиссию;
  • pool fee, если она раскрывается отдельно;
  • сервисный или партнёрский сбор;
  • необходимость approve;
  • число вызовов в транзакции;
  • время получения подтверждения.

Такой журнал полезнее скриншота с одной цифрой. Он показывает, почему сеть оказалась дешевле: из-за газа, более глубокого пула, короткого маршрута или отсутствия дополнительного разрешения. При повторном тесте в другое время картина может измениться, и это нормально: стоимость обмена — переменная величина, а не свойство сети, высеченное в документации.

Для задачи «как проверить тест стоимости обмена в популярных сетях» ответ в итоге сводится к дисциплине измерения. Не сравнивай Ethereum L1 с Solana по одной строке network fee, не принимай slippage tolerance за фактическую потерю и не считай агрегатор независимым от кошелька. Смотри на полный путь: от approve и поиска маршрута до подтверждения и фактического количества полученных токенов.

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

Проверить тест стоимости обмена в популярных сетях можно только на конкретном сценарии: конкретная пара, сумма, маршрут, время и кошелёк. Один и тот же протокол будет выглядеть дешёвым для стейблкоин-свопа в глубоком пуле и невыгодным для малоликвидного токена с длинным маршрутом. Именно поэтому перед тем, как искать, как заработать на криптовалюте через трейдинг и DeFi, стоит научиться считать не обещанную цену, а цену исполнения.

Частые вопросы

Почему транзакция на DEX завершилась ошибкой, но я всё равно заплатил комиссию?
Транзакция может завершиться ошибкой (revert) из-за превышения допустимого проскальзывания, нехватки газа или изменения состояния пула. В этом случае пользователь платит за выполненные вычисления, которые были произведены до момента возникновения ошибки.
Что такое slippage tolerance и как его правильно настроить?
Это максимальное отклонение цены, которое пользователь готов допустить при исполнении сделки. Слишком узкий допуск повышает риск неудачной транзакции, а слишком широкий — риск исполнения по невыгодному курсу.
Нужно ли платить за approve каждый раз при обмене токенов?
Нет, approve — это разрешение смарт-контракту тратить определенный токен от вашего имени. Обычно оно требуется только при первом взаимодействии с конкретным контрактом, хотя некоторые протоколы позволяют использовать механизмы подписи для объединения разрешения с обменом.
Почему обмен через агрегатор может стоить дороже, чем напрямую через DEX?
Агрегатор может выстраивать сложные маршруты через несколько пулов, что увеличивает расход газа. Кроме того, некоторые кошельки или интерфейсы могут добавлять собственные сервисные сборы к итоговой котировке.
Как понять, выгодна ли комиссия пула в 0,01%?
Низкая комиссия не всегда выгодна, если в пуле мало ликвидности, так как крупный ордер сильнее сдвинет цену. Иногда пул с более высокой комиссией, но большей глубиной ликвидности, обеспечивает лучший итоговый результат.