Эта страница переведена с помощью ИИ. За эталон принимается английская версия.Открыть английскую версию →
Что такое кривая привязки
Кривая привязки — это детерминированная функция ценыp(s), которая связывает цену токена с объёмом, находящимся в обращении (s — количество проданного предложения). Покупатели отправляют залог контракту; контракт выпускает новые единицы токена по предельной цене, задаваемой кривой. Продавцы возвращают единицы токена и получают интегрированный возврат.
Два ключевых отличия от CPMM-пула:
- Контрагент не требуется. Контракт-издатель — это маркет-мейкер; ликвидность существует по определению.
- Монотонная цена. Цена растёт с каждой чистой покупкой и падает с каждой чистой продажей.
Универсальные формулы цены
Для любой непрерывной функции ценыp(s):
Спотовая цена при предложении s:
s_0 до s_1 (где s_1 > s_0):
P(s) = ∫ p(s) ds — первообразная кривой. Геометрически cost — это площадь под кривой p между s_0 и s_1.
Доход от продажи предложения обратно от s_1 к s_0:
Распространённые типы кривых
Линейная
Квадратичная
p(s) = k · s² отбросьте S_max²: P(s) = (k/3) · s³. Выберите одно соглашение и придерживайтесь его — разобранный ниже пример везде использует нормализованную форму.)
Цена растёт квадратично. Ранние покупатели получают почти нулевую цену (плоская начальная область); поздние покупатели платят крутую премию.
LaunchLab не реализует квадратичную кривую цены. Его три типа кривых —
0 = ConstantProduct (по умолчанию), 1 = FixedPrice и 2 = LinearPrice. Ближайшая по форме
к этому разделу — LinearPrice, у которой цена равна p(s) = a·s, а стоимость поэтому
квадратична. Этот раздел сохранён как общее рассмотрение полиномиальной кривой.Virtual-reserves CPMM (стиль Pump)
Кривая — это стандартный CPMM с воображаемым начальным резервом quoteV_q:
s_0 к s_1:
s = S_graduate), предельная цена равна цене открытия нижестоящего CPMM-пула, заполненного резервами (S_max − S_graduate, V_q + cost(0, S_graduate)). Передача неразрывна. LaunchLab предоставляет это как curve_type = 0 (ConstantProduct) — тип по умолчанию и единственный, для которого сегодня существуют активные конфигурации.
Дискретная реализация
На цепиs и cost — оба целые числа (единицы минимального номинала). Непрерывный интеграл cost(s_0, s_1) вычисляется прямо из закрытой формы, когда она существует (линейная, квадратичная). Для кривых без закрытой обратной формы (квадратичная, при известной cost найти s_1) используется итерация Ньютона:
Это общий численный рецепт, а не реализация LaunchLab. В LaunchLab нет решателя Ньютона
и нет ошибки
NotConverged — ни одной из трёх его кривых он не нужен. Кривая постоянного
произведения обращается в замкнутой форме, кривая фиксированной цены — это деление, а
квадратичная стоимость кривой линейной цены обращается через квадратный корень. Даже
приведённый выше случай квадратичной цены имеет точную замкнутую форму
s₁ = ∛(s₀³ + 3·cost/k), которая и используется в сниппете как начальное приближение.Интеграция комиссий
Комиссии применяются поверх стоимости кривой, не внутри неё. При покупке:quote_vault и фактически делает кривую более крутой для будущих покупателей — резерв растёт без выпуска дополнительного предложения. Части протокола и создателя отслеживаются в отдельных счётчиках для последующего снятия.
Порог выпуска
Кривая «выпускается», когда она получила достаточно залога для запуска внешнего AMM-пула по цене, соответствующей текущей цене кривой. Для квадратичной кривой с параметрами(k, S_max, S_graduate):
quote_vault ≥ quote_to_graduate, инструкция Graduate создаёт CPMM-пул с:
p(S_graduate) на фиксированный множитель (см. разобранный пример). Только кривая постоянного произведения / виртуальных резервов — та, которую LaunchLab действительно использует — непрерывна по цене при передаче.
Непостоянство против CPMM-пула
Чистый запуск с кривой привязки имеет нулевое непостоянство в смысле Uniswap: нет «другой стороны» рынка для переуравновешивания. Кривая выпускает предложение по требованию, и единственный «LP» — это сам контракт. После выпуска полученный CPMM-пул ведёт себя как любой другой CPMM-пул — если LP не был сожжён, он подвержен обычной динамике непостоянных потерь. Вот почему сжигание после выпуска — доминирующая политика в публичных запусках: оно делает пул постоянным и устраняет ценовые шоки, вызванные выводом LP.Выполненный пример
Кривая: квадратичная,k = 40, S_max = 1e9, S_graduate = 0.8 · S_max = 8e8. Комиссия на покупку 1%.
Цена при s = 5e8
Стоимость первой покупки 1e6 base
Порог выпуска
Цена при выпуске
Резервы CPMM после выпуска
Ссылки
/ru/products/launchlab/bonding-curve— реализация этих формул на цепи в LaunchLab./ru/products/launchlab/instructions— спецификации уровня аккаунта дляBuy,Sell,Graduate./ru/algorithms/constant-product— что нижестоящий CPMM делает с резервами.
- Исходный код программы Raydium LaunchLab (реализация квадратичной кривой и virtual-reserves).
- Белая книга Bancor (линейные кривые привязки, исторический контекст).
- Публичные анализы ошибок Pump.fun (вариант virtual-reserves).

