메인 콘텐츠로 건너뛰기

Documentation Index

Fetch the complete documentation index at: https://docs.raydium.io/llms.txt

Use this file to discover all available pages before exploring further.

이 페이지는 AI 자동 번역입니다. 모든 내용은 영문판을 기준으로 합니다.영문판 보기 →

결합곡선이란 무엇인가

결합곡선은 토큰 가격과 현재 유통량(s는 “판매된 공급량”의 약자)을 연결하는 결정론적 가격 함수 p(s)입니다. 구매자는 계약에 담보를 보내어 구매하고, 계약은 곡선이 지시하는 한계 가격으로 새로운 토큰 단위를 발행합니다. 판매자는 토큰 단위를 반환하고 통합 환금을 받습니다. CPMM 풀과 비교했을 때 두 가지 핵심 특성:
  • 상대방이 필요 없음. 발행 계약이 시장 조성자이며, 유동성은 자동으로 존재합니다.
  • 단조 가격. 모든 순 매수로 가격이 상승하고 모든 순 매도로 가격이 하락합니다.
결합곡선은 발행 주체가 AMM 풀에 담보를 미리 준비하고 싶지 않을 때 표준 출시 메커니즘입니다.

일반적인 가격 공식

모든 연속 가격 함수 p(s)에 대해: s에서의 현물 가격:
p(s) = 곡선 공식
s_0에서 s_1로의 공급 구매 비용 (s_1 > s_0):
cost(s_0, s_1) = ∫_{s_0}^{s_1} p(s) ds = P(s_1) − P(s_0)
여기서 P(s) = ∫ p(s) ds는 곡선의 부정적분입니다. 기하학적으로 costs_0s_1 사이 p 아래 면적입니다. s_1에서 s_0로 판매하여 얻는 수익:
proceeds(s_1, s_0) = cost(s_0, s_1)
(대칭성: 같은 구간에서 매수와 매도는 동일한 담보를 교환합니다 - 수수료 제외) 구매의 평균 가격:
avg = cost(s_0, s_1) / (s_1 − s_0)

일반적인 곡선 유형

1차

p(s) = a + b · s
P(s)            = a·s + (b/2)·s²
cost(s_0, s_1)  = a·(s_1 − s_0) + (b/2)·(s_1² − s_0²)
가격은 공급에 비례하여 상승합니다. 발행자가 수명 기간 동안 예측 가능하고 적당한 마크업을 원하는 “안정적인” 출시에 사용됩니다.

2차

p(s) = k · s²                      // 또는 정규화된 형식의 k · (s / S_max)²
P(s)            = (k / 3) · s³
cost(s_0, s_1)  = (k / 3) · (s_1³ − s_0³)
가격은 2차로 상승합니다. 초기 구매자는 거의 0에 가까운 가격을 받고(평탄한 시작 영역), 후기 구매자는 더 가파른 프리미엄을 지불합니다. 이것이 LaunchLab의 기본값 곡선 유형입니다(curve_type = 0).

가상 예비금 CPMM (Pump 스타일)

곡선은 가짜 초기 담보 예비금 V_q가 있는 표준 CPMM입니다:
effective_y = V_q + collateral_received
effective_x = S_max − s
(effective_x) · (effective_y) = V_q · S_max      // 불변식
현물 가격:
p(s) = effective_y / effective_x
     = V_q · S_max / (S_max − s)² · ... (음함수 미분을 통해 도출 가능)
s_0에서 s_1로 이동하는 비용:
cost(s_0, s_1) = V_q · S_max / (S_max − s_1) − V_q · S_max / (S_max − s_0)
              = V_q · (s_1 − s_0) · S_max / ((S_max − s_0) · (S_max − s_1))
이 변형은 졸업 지점(여기서 s = S_graduate)에서 한계 가격이 예비금 (S_max − S_graduate, V_q + cost(0, S_graduate))로 시드된 다운스트림 CPMM 풀의 개시 가격과 일치한다는 우아한 특성을 가집니다. 전환이 원활합니다. LaunchLab은 이를 curve_type = 1로 노출합니다.

이산 구현

온체인에서 scost는 모두 정수(최소 단위)입니다. 연속 적분 cost(s_0, s_1)은 존재할 때마다 닫힌 형식에서 직접 계산됩니다(1차, 2차). 닫힌 형식의 역이 없는 곡선의 경우(2차, cost가 주어지면 s_1을 찾음), Newton 반복이 사용됩니다:
# 2차 풀기: (k/3)·s_1³ = (k/3)·s_0³ + cost
# s_guess ≈ cbrt(3·cost/k + s_0³)로 초기화
for i in 0..MAX_ITER:
    f    = (k/3)·s_guess³ − (k/3)·s_0³ − cost
    f'   = k·s_guess²
    step = f / f'
    s_guess -= step
    if |step| < precision_floor: break
LaunchLab은 반복을 약 10회로 제한하고 잔차가 여전히 허용 범위 이상이면 NotConverged로 되돌립니다. 실제로 이것은 도메인의 극값 근처에서만 트리거되며, 본격적인 스왑은 2-3회 반복 내에 수렴합니다.

수수료 통합

수수료는 곡선 비용 위에 적용되며 내부에 적용되지 않습니다. 매수 시:
cost_curve  = cost(base_sold, base_sold + base_out)
fee         = ceil(cost_curve · buy_numerator / buy_denominator)
quote_in    = cost_curve + fee
매도 시:
proceeds_curve = cost(base_sold − base_in, base_sold)
fee            = ceil(proceeds_curve · sell_numerator / sell_denominator)
quote_out      = proceeds_curve − fee
수수료의 LP 부분은 quote_vault에 유지되며 실질적으로 후기 구매자를 위해 곡선을 더 가파르게 만듭니다 - 예비금은 더 많은 공급을 발행하지 않고 증가합니다. 프로토콜과 크리에이터 부분은 나중에 회수할 수 있도록 별도의 카운터에서 추적됩니다.

졸업 임계값

곡선은 현재 곡선 가격과 일치하는 가격으로 외부 AMM 풀을 시드할 수 있을 만큼 충분한 담보를 받으면 “졸업”합니다. 매개변수 (k, S_max, S_graduate)가 있는 2차 곡선의 경우:
quote_to_graduate = cost(0, S_graduate) · (1 + buy_fee_rate)
                  = (k / 3) · S_graduate³ · (1 + f_buy)
quote_vault ≥ quote_to_graduate가 되면 Graduate 명령어는 다음을 포함하는 CPMM 풀을 생성합니다:
cpmm_base_reserve  = S_max − S_graduate        // 미판매 곡선 공급
cpmm_quote_reserve = quote_vault − accrued_fee_counters
cpmm_initial_price = cpmm_quote_reserve / cpmm_base_reserve
가상 예비금 곡선의 경우, 구조상:
cpmm_initial_price == p(S_graduate)           // 정확한 동일성
2차의 경우 동일성은 근사치입니다. “여유”는 S_graduate의 반올림(일반적으로 0.8 · S_max)과 최종 임계값 교차 매수의 잉여 담보로 흡수됩니다.

CPMM 풀과의 비영구성

순수 결합곡선 출시는 Uniswap 의미에서 비영구성이 없습니다: 시장의 “다른 쪽”이 없어 재조정할 수 없습니다. 곡선은 수요에 따라 공급을 발행하며, 유일한 “LP”는 계약 자체입니다. 졸업 후, 결과 CPMM 풀은 다른 CPMM 풀처럼 작동합니다 - LP가 소각되지 않은 경우, 일반적인 비영구 손실 역학을 받습니다. 이것이 공개 출시에서 졸업 후 소각 정책이 지배적인 이유입니다: 풀을 영구적으로 유지하고 LP 출금 중심의 가격 충격을 제거합니다.

작업 예시

곡선: 2차, k = 40, S_max = 1e9, S_graduate = 0.8 · S_max = 8e8. 매수 수수료 1%.

s = 5e8에서의 가격

p(5e8) = 40 · (5e8 / 1e9)² = 40 · 0.25 = 10
기본 단위당 10 담보 단위입니다.

첫 1e6 기본 매수 비용

cost(0, 1e6) = (40/3) · (1e6)³
             = (40/3) · 1e18
             ≈ 1.333e19     (가장 작은 담보 단위)
1% 수수료로:
quote_in = 1.333e19 · 1.01 ≈ 1.347e19

졸업 임계값

cost(0, 8e8) = (40/3) · (8e8)³
             = (40/3) · 5.12e26
             ≈ 6.827e27
quote_to_graduate ≈ 6.827e27 · 1.01 ≈ 6.895e27

졸업 시 가격

p(8e8) = 40 · 0.64 = 25.6

졸업 후 CPMM 예비금

cpmm_base  = 1e9 − 8e8 = 2e8
cpmm_quote ≈ 6.827e27  (수수료 카운터 공제 제외)
cpmm_price ≈ 3.41e19 per base — 단위가 고려된 후 p(8e8)과 일치합니다
(단위: 소수점은 신중하게 추적해야 합니다. 예시는 설명용입니다.)

포인터

출처:
  • Raydium LaunchLab 프로그램 소스(2차 및 가상 예비금 곡선 구현).
  • Bancor 백서(1차 결합곡선, 역사적).
  • Pump.fun 공개 사후분석(가상 예비금 변형).