Skip to main content
이 페이지는 AI 자동 번역입니다. 모든 내용은 영문판을 기준으로 합니다.영문판 보기 →
LaunchLab은 Initialize에서 선택할 수 있는 세 가지 곡선 형태를 지원합니다: constant-product (가장 일반적이며, 표준 x · y = k 곡선의 가상 예비금 형태), linear-price, fixed-price. 졸업 임계값 공식은 세 가지 모두에서 동일합니다. 이 페이지에서는 constant-product 수학을 자세히 설명하고, linear 및 fixed 형태는 끝부분에 요약되어 있습니다.

LaunchState에 저장된 파라미터

Rust 구조체의 필드 이름은 accounts에 설명된 PoolState 필드와 일치합니다. 위의 단위는 개념적입니다.

가상 예비금이 있는 Constant-product 곡선 (curve_type = 0)

기본값이며 가장 많이 사용되는 곡선입니다. Pump 스타일 런칭은 모두 이 형태를 사용합니다. 곡선은 처음부터 가상 견적 예비금 V_q가상 기본 예비금 V_b가 있다고 가정합니다 (PoolStatevirtual_quotevirtual_base로 저장됨). 따라서 유효한 풀은 이러한 예비금을 가진 CPMM처럼 보입니다. 매수는 x · y = k 수학을 따릅니다:
base_out에 대해 풀면:
기본 판매량 s에서의 유효 가격:
LaunchLab이 졸업 전에 적용하는 동일한 x · y = k 불변식은 졸업 후 CPMM 곡선이므로, 인수인계는 기계적으로 원활합니다: base_sold = base_supply_graduation에서의 한계 가격은 졸업 후 풀이 (quote_vault, base_vault_remaining)을 예비금으로 하여 개설되는 가격과 같습니다.

Fixed-price 곡선 (curve_type = 1)

평탄한 가격 곡선입니다. 모든 매수/매도는 Initialize에서 설정 가능한 상수 가격으로 발생합니다:
팀이 매수 시점과 관계없이 모든 참여자에게 균일한 가격을 원하는 공정한 런칭에 유용합니다. 졸업은 base_supply_graduation이 판매되었을 때 트리거됩니다 (선형 비용 관계는 quote_reserve_target을 간단하게 도출합니다).

Linear-price 곡선 (curve_type = 2)

가격이 base_sold에 따라 선형으로 증가합니다:
통합 비용:
base_sold에 대해 이차식입니다 — 초기 매수자는 거의 0에 가까운 가격을 지불하고, 후기 매수자는 상당히 더 많이 지불하며, 한계 가격은 항상 고정된 기울기로 상승합니다. 온체인 구현은 curve/linear_price.rs에 있습니다.

곡선 형태 비교

졸업 임계값

quote_reserve_targetInitialize에서 base_sold를 0에서 base_supply_graduation으로 구동하는 데 필요한 견적으로 계산됩니다:
런칭은 quote_vault.balance ≥ quote_reserve_target이 되는 즉시 졸업합니다. 매수가 이산적인 크기로 들어오기 때문에, 졸업 시점의 실제 잔액은 목표를 약간 초과할 수 있습니다 — 잉여는 결과 CPMM 풀의 추가 견적 측 유동성이 됩니다.

실제 예시 — 이차 런칭

파라미터:
  • base_supply_max = 1_000_000_000 (10억 기본 토큰, 6 소수점)
  • base_supply_graduation = 800_000_000 (80% 판매 시 졸업 트리거)
  • k = 40 (가격 스케일)
  • 수수료: 1% 매수, 1% 매도, 분할 lp:creator:protocol = 60:20:20.
초기 가격 (s = 0): 0 (순수 이차식은 0에서 시작). 50% 판매 시 가격 (s = 500_000_000):
졸업 시 가격 (s = 800_000_000):
졸업에 도달하는 데 필요한 견적 (통합 비용):
따라서 약 6.827 견적 네이티브 단위 (설정된 6소수점 견적 민트, 예: 견적이 USDC인 경우 약 6,827 USDC). 상단에 적용된 수수료:
첫 번째 매수 10 USDC:
  • 가상 상태: s = 0, quote_vault = 0.
  • 수수료 차감: quote_after_fee = 10 × 0.99 = 9.9.
  • (40 / (3e18)) × s³ = 9.9 풀면 ⇒ s ≈ 6.22e6 기본 토큰 매수.
  • 1% 수수료 (0.1 USDC) 분할: lp 0.06, creator 0.02, protocol 0.02. lp 몫은 quote_vault에 남고, 나머지 둘은 각각의 누적 카운터로 라우팅됩니다.
75% 판매 시 매수 (졸업에 접근): 동일한 10 USDC는 이제 곡선이 가파르기 때문에 훨씬 적은 기본을 매수합니다. s₀ = 750e6에서 quote_in_after_fee = 9.9로 Newton 풀이를 하면 대략 ∆s ≈ 0.4e6을 얻습니다 — 첫 번째 매수에 비해 USDC당 기본의 약 15배 감소입니다.

곡선 단계 중 수수료 메커니즘

모든 Buy에서:
  • lp_sharequote_vault에 남습니다. 이것이 유효한 곡선을 더 타이트하게 만드는 것입니다 (동일한 기본 공급에 대해 더 많은 견적 예비금).
  • protocol_shareLaunchState.state_data.protocol_fees_quote를 증가시킵니다.
  • creator_shareLaunchState.state_data.creator_fees_quote를 증가시킵니다.
Sell에서 동일한 분할이 적용되지만 수수료는 아웃바운드 quote_out에서 차감됩니다. 두 카운터 모두 CollectFees를 통해 스윕됩니다 (관리자 또는 크리에이터, 각각 자신의 카운터로).

정밀도

  • 기본 측 금액: u64.
  • 견적 측 금액: u64.
  • 중간 세제곱 / 곱: u128.
  • “정확한 견적 매수” 및 “정확한 견적 매도”에 대한 Newton 풀이는 설정 가능한 최대 반복 횟수 (기본값 10)로 u128 고정 소수점에서 반복됩니다. 실패 모드는 NotConverged입니다 — 졸업 근처 엣지 케이스 외에는 드뭅니다.

CPMM으로의 인수인계

Graduate가 실행될 때:
이차 곡선의 경우, cpmm_initial_price는 기계적으로 price(base_sold)입니다 (인수인계 순간의 한계 곡선 가격입니다). CPMM 풀은 정확히 그 가격으로 개설되므로, 곡선 UI에서 CPMM UI로 전환하는 관찰자는 점프를 보지 않습니다.

다음 단계

출처: