Uniswap: x*y=k, concentrated liquidity, LP economics и evolution V2→V4

Radar Expert разбирает Uniswap от V2 до V4: constant-product curve, price impact и arbitrage, impermanent loss, диапазоны V3, fee concentration, out-of-range риск, а затем singleton PoolManager, flash accounting и hooks V4.

Uniswap: x*y=k, concentrated liquidity, LP economics и evolution V2→V4
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.

Uniswap AMM pool: два token reserves формируют onchain market без центральной книги заявок
Официальная Uniswap Developers схема показывает anatomy liquidity pool, в котором swaps меняют соотношение reserves и тем самым price.

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.

Swap против reserves Uniswap изменяет reserve ratio и сдвигает AMM price
Официальный Uniswap visual показывает trade flow между пользователем и pool reserves.

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.

Concentrated liquidity Uniswap: LP выбирает price band вместо финансирования всей кривой
Официальная Uniswap range-order diagram иллюстрирует, как liquidity становится активной только в выбранном ценовом диапазоне.

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.

Liquidity provider вносит token pair в Uniswap и получает exposure к pool economics
Официальная Uniswap Developers иллюстрация LP deposit сопровождает раздел о диапазонах, fees и изменении состава position.

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.

Uniswap V4 flash accounting: промежуточные token deltas считаются внутри одной PoolManager session
Официальная Uniswap V4 схема показывает, как singleton accounting уменьшает количество промежуточных token transfers.

Архитектурная экономия особенно заметна для 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 доходности.

Trust 96 Importance 84 Noise 0% Связанный символ Информационный материал, не является финансовой рекомендацией.