﻿---
title: "AMM с постоянным произведением"
description: "Автоматический маркет-мейкер с постоянным произведением рассчитывает обмены по двум резервам токенов с помощью x * y = k. Разберитесь в котировке с учетом комиссии, влиянии на цену, арбитраже и рисках поставщиков ликвидности."
image: "https://wiki.fcontext.com/og.png"
---

> Documentation Index
> Fetch the complete documentation index at: https://wiki.fcontext.com/llms.txt
> Use this file to discover all available pages before exploring further.

# AMM с постоянным произведением

> Материал предназначен только для образовательных целей и не является инвестиционной рекомендацией. Инвестиции могут привести к убыткам.

<a id="answer"></a>

## Краткий ответ

Автоматический маркет-мейкер с постоянным произведением (CPMM) хранит резервы двух токенов и принимает обмен только тогда, когда балансы после сделки удовлетворяют инварианту на основе `x * y = k`. Здесь `x` и `y` — размеры резервов. Их соотношение задает мгновенную цену в пуле; сделка изменяет это соотношение, поэтому чем она крупнее относительно ликвидности, тем менее выгодной становится цена.

Кривая — это правило котировки и расчетов, а не оракул и не гарантия ценности какого-либо токена. Арбитражеры обычно приближают цену пула к внешним рынкам, зарабатывая на разнице и одновременно меняя состав активов поставщиков ликвидности (LP).

<a id="mechanism"></a>

## Как это работает

До учета комиссий обмен, который добавляет `deltaX` единиц токена X и выводит `deltaY` единиц токена Y, удовлетворяет равенству:

`(x + deltaX) * (y - deltaY) = x * y`

Следовательно, `deltaY = y * deltaX / (x + deltaX)`. Если комиссия с входящего токена равна `f`, обозначим `gamma = 1 - f`; обычная котировка с учетом комиссии имеет вид:

`deltaY = y * gamma * deltaX / (x + gamma * deltaX)`

Предельная цена X в единицах Y равна `y / x`. Конечная по размеру сделка проходит вдоль кривой, поэтому ее средняя цена отличается и от начальной, и от конечной спотовой цены. Эта разница называется влиянием на цену; допустимое проскальзывание пользователя — отдельное ограничение транзакции, защищающее котировку от неблагоприятных изменений до исполнения.

В реализациях с комиссией, таких как Uniswap v2, весь входящий объем остается в резервах, а при проверке инварианта вход уменьшается на комиссию. Поэтому записанное произведение резервов после обмена обычно увеличивается. Внесение и вывод ликвидности меняют размеры резервов и доли LP, поэтому это отдельные события ликвидности, а не обмены вдоль одной неизменной кривой.

<a id="example"></a>

## Пример

Рассмотрим пул с `100 ETH` и `200,000 USDC`. Цена по резервам составляет `2,000 USDC/ETH`. Трейдер отправляет `10,000 USDC`, чтобы купить ETH, а пул взимает `0.30%`, поэтому эффективный вход равен `9,970 USDC`.

`ETH out = 100 * 9,970 / (200,000 + 9,970) = 4.7483 ETH`

Средняя цена исполнения составляет около `2,106.02 USDC/ETH`, то есть примерно на `5.30%` выше начальной цены резервов. После расчетов в пуле остается приблизительно `95.2517 ETH` и `210,000 USDC`, что дает новую цену около `2,204.69 USDC/ETH`. Эти расчеты не учитывают газ, маршрутизацию через другие пулы и неблагоприятные изменения состояния до включения транзакции в блок.

Котировку интерфейса следует сверять с точными адресами токенов, уровнем комиссии, использованными резервами или блоком, минимальной суммой получения, маршрутом и сроком действия. Налог на перевод токена или нестандартное поведение баланса могут сделать простой расчет неверным.

<a id="risks"></a>

## Риски

- **Влияние на цену и MEV:** низкая ликвидность и публичные ожидающие транзакции могут привести к невыгодному исполнению, sandwich-атакам или неудачным обменам.
- **Риск состава активов LP:** из-за арбитража у LP остается меньше токена, который дорожает сильнее, и больше токена, который отстает; комиссии могут не покрыть непостоянные потери.
- **Проблемные активы и контракты:** потеря привязки, вредоносные токены, комиссии за перевод, ошибки контрактов, скомпрометированные интерфейсы и административный контроль находятся за пределами защиты кривой.
- **Неверное применение как оракула:** значение `y / x` можно изменить внутри одной транзакции. Протоколам не следует считать манипулируемое спотовое соотношение резервов независимой рыночной ценой.
- **Различия параметров:** логика комиссий, округление, концентрированная ликвидность, хуки, взвешенные кривые и stable-swap могут привести к поведению, отличному от этой модели.

<a id="misconceptions"></a>

## Распространенные заблуждения

### Миф 1: `k` всегда остается строго постоянным

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

### Миф 2: Пул определяет справедливую цену

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

### Миф 3: Проскальзывание и влияние на цену — одно и то же

Влияние на цену — это движение по кривой, вызванное предлагаемой сделкой. Проскальзывание — разница между ожидаемым и фактическим результатом либо допуск, ограничивающий эту разницу.

### Миф 4: Больший объем всегда выгоден LP

Объем создает комиссионный доход, но информированный арбитраж может передавать стоимость от LP. Итоговый результат зависит от комиссий, траектории цены, волатильности, глубины пула и рисков контрактов или активов.

<a id="related"></a>

## Похожие темы

- [Автоматический маркет-мейкер](/ru/crypto/amm/)
- [Непостоянные потери](/ru/crypto/impermanent-loss/)
- [Пул ликвидности](/ru/crypto/liquidity-pool/)
- [Проскальзывание при торговле криптоактивами](/ru/crypto/slippage-crypto/)

<a id="sources"></a>

## Источники

- [How Uniswap Works](https://developers.uniswap.org/docs/get-started/concepts/how-uniswap-works) - Uniswap Labs (дата обращения: 2026-08-20)
- [UniswapV2Pair.sol](https://github.com/Uniswap/v2-core/blob/master/contracts/UniswapV2Pair.sol) - Uniswap (дата обращения: 2026-08-20)

Source: https://wiki.fcontext.com/ru/crypto/constant-product-amm/index.mdx
