Uniswap заменяет книгу заявок программируемой ликвидностью. В V2 цена возникает из резервов двух токенов и инварианта x*y=k. Арбитраж приводит pool price обратно к внешнему рынку, а LP получает комиссии, но одновременно продаёт растущий актив и покупает падающий — отсюда появляется divergence loss, часто называемый impermanent loss. V3 делает капитал концентрированным: LP выбирает диапазон цены и получает больше fee exposure на единицу капитала, пока рынок находится внутри него. V4 сохраняет concentrated-liquidity mathematics, но меняет архитектуру: pools живут в одном PoolManager, расчёты выполняются через flash accounting, а hooks позволяют добавлять логику до и после ключевых действий.
V2: AMM заменяет ордербук кривой x*y=k
Uniswap V2 pool хранит резервы двух токенов. Если обозначить их как x и y, то после обычного swap с учётом fee произведение резервов не должно уменьшаться. В идеализированной форме без комиссии:
**x · y = k**
Здесь k — invariant. Trader не ищет встречную limit order: он меняет состав резервов самого pool.
Цена выводится из отношения резервов
При reserves 100 ETH и 200 000 USDC marginal price около 2 000 USDC за ETH. Если trader покупает ETH за USDC, ETH reserve уменьшается, USDC reserve растёт, и следующий ETH становится дороже.
Price impact нелинеен
Маленький swap относительно глубины pool двигает reserves мало. Большой swap проходит по более длинному участку constant-product curve и получает хуже average execution price.
Fee V2 увеличивает value, принадлежащую LP
Классический V2 swap удерживает 0.30% input amount внутри pool. Поэтому после торгов k в fee-adjusted economic sense имеет тенденцию расти: комиссии остаются в reserves и принадлежат LP пропорционально их pool share.

LP token V2 представляет пропорциональную долю всего диапазона
V2 liquidity распределена от цены почти 0 до бесконечности. LP вносит оба assets по текущему ratio и получает fungible ERC-20 LP tokens, отражающие долю reserves.
Простота V2 покупается низкой capital efficiency
Большая часть капитала почти никогда не используется для торговли, если реальная цена стабильно колеблется в узком диапазоне. Активы всё равно зарезервированы по всей математической кривой.
Swap flow: почему arbitrage синхронизирует AMM с внешним рынком
Uniswap не имеет собственного oracle, который заставляет pool price совпадать с Binance, Coinbase или другим venue. Синхронизация происходит через торговлю.
Внешняя цена изменяется первой
Предположим, ETH на внешнем рынке вырос с 2 000 до 2 200 USDC, а Uniswap pool всё ещё подразумевает 2 000. ETH внутри AMM временно дешевле.
Arbitrageur покупает дешёвый ETH в pool
Он вносит USDC, забирает ETH и двигает reserve ratio до уровня, где дальнейшая операция перестаёт быть прибыльной после gas, fees и execution costs.
LP платит экономическую цену ребалансировки
Pool автоматически отдаёт asset, который дорожает относительно второго, и накапливает asset, который дешевеет. Именно этот механический rebalancing создаёт расхождение с passive holding.

Arbitrage полезен protocol price discovery, но не бесплатен LP
Он возвращает AMM к market-consistent price и делает pool пригодным для новых traders. Но прибыль arbitrageur частично является transfer value от stale pool composition, компенсируемым LP через fees только если fee revenue достаточно велик.
LP economics: fees нужно сравнивать не с нулём, а с HODL benchmark
Главная ошибка оценки LP — смотреть только на earned fees. Правильный benchmark: что произошло бы с теми же исходными assets, если бы LP просто держал их вне pool.
Пример: цена одного token удвоилась
Пусть LP внёс portfolio стоимостью $10 000 в V2 pool, 50/50 по value: $5 000 token A и $5 000 stablecoin. Если цена A удвоилась, passive portfolio стал бы стоить $15 000.
При constant-product rebalancing value LP position до fees будет примерно **$14 142**. Разница к HODL — около **−5.72%**.
Формула divergence loss для V2
Если price ratio изменился в r раз, относительный результат LP против hold без fees:
**IL(r) = 2√r / (1+r) − 1**
При r=2 получаем примерно −5.72%; при r=4 — около −20%.
«Impermanent» не означает гарантированно временный
Если LP withdraws после изменения цены, расхождение становится реализованным. Оно исчезает только если relative price вернётся к исходной точке до выхода, не считая fees и других факторов.
LP доходность = fee income + incentives − divergence loss − gas/rebalancing costs − adverse selection и прочие execution effects. APR в интерфейсе без этого decomposition мало что говорит о реальном PnL.
Fees могут перекрыть divergence loss
Если pool имеет большой volume относительно TVL, accumulated fees способны сделать LP прибыльнее hold benchmark. Но это empirical outcome, а не свойство формулы AMM.
V3: concentrated liquidity превращает LP в price-range market maker
Uniswap V3 изменил фундаментальную capital allocation model. LP выбирает lower и upper price bounds, внутри которых его liquidity активна.
Капитал работает только внутри выбранного диапазона
Пока spot price находится между bounds, position участвует в swaps и получает fees. Чем уже range при прочих равных, тем больше virtual liquidity на единицу deposited capital.
Цена дискретизирована ticks
V3 представляет price space через ticks. Каждый tick соответствует шагу геометрической price grid; pool tracks liquidity changes при переходе через initialized ticks.
Position больше не fungible LP share
Два LP могут иметь одинаковую пару tokens, но разные ranges и fee exposure. Поэтому positions обычно представлены NFT через NonfungiblePositionManager, а не одним fungible pool token.

Narrow range повышает capital efficiency и management risk
Узкий диапазон может генерировать больше fees per dollar, когда volume проходит внутри него. Но рынок чаще выходит за bounds, position перестаёт зарабатывать swap fees и становится односторонней.
Concentrated liquidity превращает passive LP в strategy
Выбор bounds, fee tier, rebalancing frequency и gas budget становится частью investment policy. V3 LP ближе к automated market-making strategy, чем к пассивному депозиту 50/50.
Что происходит, когда V3/V4 position выходит из range
Out-of-range mechanics — ключ к пониманию concentrated liquidity.
Выше верхней границы position становится одним asset
Для типичного token0/token1 orientation при движении price через upper bound liquidity постепенно конвертируется в один из assets. Ниже lower bound — в другой.
Fee earning останавливается вне active range
Position остаётся существовать, но не участвует в текущих swaps, пока price не вернётся в диапазон или LP не перестроит position.
Rebalancing не бесплатен
LP может закрыть старый range и открыть новый, но платит gas, potentially realizes unfavorable composition и может постоянно «гоняться» за рынком.
Range order напоминает limit order, но не идентичен CEX order
Очень узкая one-sided position способна конвертировать token по мере прохождения price range. Однако execution распределён по AMM curve и зависит от того, вернулся ли price обратно до withdrawal.

LP PnL V3 зависит от range, volume и path цены
Для V2 divergence loss можно выразить одной простой функцией конечного price ratio. V3 сложнее: важен путь цены относительно bounds.
Одинаковый terminal price может дать разный fee result
Если price долго oscillates внутри range, LP собирает много fees. Если быстро проходит диапазон один раз и остаётся снаружи, fee income может быть небольшим при похожем конечном composition.
Active liquidity конкурирует за fees локально
Fee распределяется между liquidity, активной в текущем price segment. LP не конкурирует с капиталом, размещённым далеко от spot.
Narrow range усиливает adverse-selection exposure
Высокая fee density привлекает LP около spot, но informed flow и быстрые price moves могут систематически торговать против stale liquidity до того, как LP успевает rebalance.
Stable pairs и volatile pairs требуют разных ranges
Для correlated assets вроде stablecoin pairs узкий range может быть естественнее, пока peg assumption работает. Для volatile pair та же ширина приводит к более частым exits.
| Фактор | Широкий range | Узкий range |
|---|---|---|
| Capital efficiency | Ниже | Выше |
| Вероятность быть in-range | Выше | Ниже |
| Fee density | Ниже | Потенциально выше |
| Rebalancing need | Ниже | Выше |
| Out-of-range risk | Ниже | Выше |
V2 → V3: что именно изменилось в архитектуре pool
V3 не отменил constant-product intuition, а локализовал её по price segments.
V2 имеет один fungible liquidity state на пару
Reserve ratio и total LP supply достаточно, чтобы описать pro-rata ownership всей curve.
V3 хранит ticks и liquidity net changes
При crossing tick pool активирует или деактивирует liquidity, заданную positions. Current state включает sqrtPrice, current tick и active liquidity.
Fee tiers становятся частью market selection
V3 supports multiple pools для одной token pair с разными fee tiers/tick spacing. LP и traders выбирают структуру, соответствующую volatility и flow.
Oracle observations встроены в pool state
V3 сохраняет time-series observations для TWAP-like uses. Но consumer всё равно обязан учитывать manipulation window и конкретную integration design.
V4: singleton PoolManager меняет инфраструктуру, а не AMM essence
Uniswap V4 сохраняет concentrated-liquidity core, но pools больше не разворачиваются как отдельные heavy contracts на каждую пару.
PoolManager — singleton для множества pools
Один contract управляет state и accounting многих pools. Pool identity задаётся currencies, fee, tick spacing и hook configuration.
Native ETH поддерживается напрямую
V4 architecture возвращает native ETH support, уменьшая необходимость постоянно оборачивать ETH в WETH для pool-level operations.
Multi-hop route меньше двигает ERC-20 между contracts
В V3 каждый hop проходит через отдельный pool contract и token transfer boundaries. V4 singleton позволяет учитывать промежуточные deltas внутри общей accounting session.

Архитектурная экономия особенно заметна для complex routes
Чем больше hops и pool interactions, тем полезнее net settlement вместо последовательных transfers. Но gas зависит от hook logic, token behavior и конкретного route.
Singleton увеличивает centrality одного contract boundary
Это не означает административную централизацию: core contracts остаются permissionless/non-upgradeable по design. Но engineering blast radius bug в shared manager принципиально отличается от множества полностью отдельных pool contracts.
Flash accounting: сначала deltas, settlement — к концу unlock
V4 использует transient accounting model. Caller открывает unlock session, выполняет серию pool actions, а PoolManager tracks net currency deltas.
Не каждая intermediate операция требует немедленного transfer
Если swap A→B затем B→C происходит внутри session, intermediate B может существовать как accounting delta вместо полного ERC-20 transfer между pool contracts.
В конце все deltas должны быть settled
Caller обязан вернуть manager balance state к допустимому состоянию до завершения unlock. Незакрытые obligations приводят к revert всей transaction.
Atomicity становится инструментом composability
Complex route может включать swaps, liquidity modifications, takes и settlements в одной transaction. Либо весь set проходит, либо chain откатывает state.
Flash accounting — не бесплатный flash loan
Название относится к accounting lifecycle. Возможность временно иметь positive/negative deltas внутри atomic call не отменяет requirement settle value к завершению.
Hooks V4 превращают pool lifecycle в programmable extension points
Hook — внешний contract, address которого кодирует, какие callbacks он реализует. Pool может вызывать hook до или после initialize, add/remove liquidity, swap и donate operations.
beforeSwap и afterSwap позволяют менять market behavior
Hook способен обновить dynamic fee, вести custom accounting, ограничить или дополнить routing logic, реализовать oracle/auction-style mechanisms и другие extensions.
Hooks не являются governance plugins в уже существующий pool
Hook address является частью pool key. Trader взаимодействует с конкретным pool, созданным с конкретной hook configuration.
Hook code добавляет собственный trust surface
Core Uniswap может быть хорошо исследован, но custom hook может содержать bugs, owner controls, external dependencies или unusual fee logic. Security review должен анализировать pool + hook как единую систему.
Dynamic fees становятся first-class design space
V4 pool может использовать dynamic fee mechanism, а hook способен обновлять fee в зависимости от заданной стратегии. Это позволяет адаптироваться к volatility или flow, но создаёт новую model risk.
V4 делает Uniswap не «одним AMM», а framework для AMM-like markets. Чем сильнее hook меняет стандартное поведение, тем меньше пользователь может полагаться только на привычную интуицию x*y=k.
UNI, governance и protocol economics нужно отделять от LP returns
UNI — governance token Uniswap ecosystem, а LP returns возникают из liquidity provision в конкретных pools.
Holding UNI не даёт автоматическую долю fee каждого swap
Governance может управлять предусмотренными protocol fee mechanisms и другими governance-controlled параметрами, но token ownership само по себе не равно pro-rata claim на все LP fees.
Core contracts и governance имеют разные boundaries
Uniswap docs подчёркивают permissionless, non-upgradeable nature core deployments. Governance не может произвольно переписать уже выполненный swap или заменить logic существующего immutable core contract.
Protocol fee и LP fee — разные потоки
Swap fee может делиться/направляться согласно version-specific rules и governance-enabled protocol settings. Аналитик должен смотреть exact pool/version/configuration.
UNI valuation нельзя выводить только из TVL
TVL измеряет капитал LP, а не cash flow token holder. Для token economics важны governance rights, protocol fee decisions, ecosystem adoption и конкретные value-accrual mechanisms.
Как проверять Uniswap position и swap onchain
UI удобен, но production analysis лучше строить от exact chain, version и contracts.
Для swap проверьте route и pools
Один UI swap может пройти через несколько pools, versions или routing systems. Price impact нужно считать по фактическому route, а не только по ticker pair.
Для V3/V4 LP проверьте bounds и current tick
Position in-range или out-of-range определяется current pool price относительно lower/upper ticks. Это сразу объясняет, получает ли position swap fees сейчас.
Для V4 проверьте hook address
Наличие hook означает custom behavior. Изучите bytecode/source verification, permissions, callbacks и external dependencies.
Fee APR без PnL benchmark неполон
Сравнивайте текущую стоимость assets + earned fees − costs с HODL value тех же стартовых assets. Это базовая проверка, которую не заменяет annualized UI APR.
Liquidity screenshot — это snapshot, не стратегия
TVL, volume и active ranges быстро меняются. Для оценки LP нужны historical fees, price path, realized volatility, gas/rebalance cost и range uptime.
Главный вывод
Uniswap evolution — это последовательное увеличение **capital efficiency и programmability**.
V2 дал простой constant-product AMM: весь капитал распределён по полной curve, LP share fungible, price двигается reserve ratio, arbitrage синхронизирует pool с рынком. V3 сохранил AMM mathematics, но дал LP диапазоны и ticks: капитал стал эффективнее, а LP position превратилась в активно управляемую market-making strategy. V4 сохранил concentrated liquidity, но перенёс pools в singleton PoolManager, ввёл flash accounting и hooks — infrastructure стала дешевле для composability и гораздо более programmable.
Для LP главный вопрос не «какой APR показывает интерфейс», а **какой benchmark против hold, сколько времени position in-range, какая fee density, сколько стоит rebalancing и какой adverse flow проходит через liquidity.** Для trader — **какой actual route, глубина active liquidity, price impact и hook behavior**.
Uniswap поэтому полезнее воспринимать не как один DEX contract, а как evolving onchain market architecture: от одной формулы резервов к диапазонам капитала и далее к programmable pools.
FAQ
Что означает x*y=k?
Это constant-product invariant: произведение reserves двух токенов не должно уменьшаться при обычном swap после fee accounting. Из изменения reserve ratio возникает AMM price и price impact.
Что такое impermanent loss?
Это отставание стоимости LP position от стоимости тех же исходных assets при простом holding из-за автоматического rebalancing AMM. Для V2 при удвоении относительной цены loss до fees составляет около 5.72% против hold.
Почему concentrated liquidity эффективнее?
LP размещает капитал только в выбранном price range, поэтому на единицу капитала может предоставить больше active liquidity около spot. Цена этой эффективности — out-of-range risk и необходимость управления position.
Что происходит с V3 position вне диапазона?
Она перестаёт быть active liquidity и не получает swap fees, пока price не вернётся в range. Position обычно становится преимущественно или полностью одним из двух assets.
Что нового в Uniswap V4?
V4 использует singleton PoolManager, flash accounting, native ETH и hooks. Concentrated-liquidity mathematics сохраняется, но архитектура pool creation, routing и extensibility существенно меняется.
Hooks безопасны так же, как Uniswap core?
Не обязательно. Hook — отдельный custom contract и добавляет собственные bugs, permissions и dependencies. Каждый hooked pool нужно анализировать как core protocol плюс конкретный hook.
Материал носит образовательный характер и не является финансовой рекомендацией или обещанием LP доходности.
