Skip to main content
Trang này được dịch tự động bằng AI. Phiên bản tiếng Anh là bản chính thức.Xem bản tiếng Anh →
LaunchLab hỗ trợ ba hình dạng đường cong được chọn tại Initialize: constant-product (hình thức phổ biến nhất, dạng virtual-reserve của đường cong x · y = k tiêu chuẩn), linear-price, và fixed-price. Công thức ngưỡng tốt nghiệp được chia sẻ trên cả ba loại. Trang này hướng dẫn chi tiết toán học constant-product; các hình thức linear và fixed được tóm tắt ở cuối.

Các tham số được lưu trữ trên LaunchState

Tên trường trong struct Rust khớp với các trường PoolState được mô tả trong accounts; các đơn vị trên là khái niệm.

Đường cong constant-product với virtual reserves (curve_type = 0)

Đường cong mặc định và được sử dụng nhiều nhất. Tất cả các lần phát hành kiểu Pump đều sử dụng hình thức này. Đường cong giả định có một virtual quote reserve V_q và một virtual base reserve V_b từ đầu (được lưu trữ dưới dạng virtual_quote và virtual_base trên PoolState), vì vậy pool hiệu quả trông giống như một CPMM với những reserve đó. Các lần mua tuân theo toán học x · y = k:
giải cho base_out:
Giá hiệu quả tại base-sold s:
Bất biến x · y = k tương tự mà LaunchLab áp dụng trước tốt nghiệp sau đó là đường cong CPMM sau tốt nghiệp, vì vậy việc chuyển giao là liền mạch về mặt cơ học: giá biên tại base_sold = base_supply_graduation bằng giá mà pool sau tốt nghiệp mở ra với (quote_vault, base_vault_remaining) làm reserve của nó.

Đường cong fixed-price (curve_type = 1)

Một đường cong giá phẳng. Mỗi lần mua/bán xảy ra ở một giá không đổi, có thể cấu hình tại Initialize:
Hữu ích cho các lần phát hành công bằng nơi nhóm muốn định giá thống nhất cho tất cả những người tham gia bất kể khi nào họ mua. Tốt nghiệp được kích hoạt khi base_supply_graduation đã được bán (mối quan hệ chi phí tuyến tính làm cho quote_reserve_target dễ dàng dẫn xuất).

Đường cong linear-price (curve_type = 2)

Giá tăng tuyến tính với base_sold:
Chi phí tích phân:
Bậc hai trong base_sold — những người mua sớm trả gần như không, những người mua muộn trả nhiều hơn đáng kể, với giá biên luôn tăng với một độ dốc cố định. Việc triển khai on-chain nằm trong curve/linear_price.rs.

So sánh hình dạng đường cong

Ngưỡng tốt nghiệp

quote_reserve_target được tính toán tại Initialize là quote cần thiết để đẩy base_sold từ 0 đến base_supply_graduation:
Một lần phát hành tốt nghiệp ngay khi quote_vault.balance ≥ quote_reserve_target. Vì các lần mua đến ở các kích thước rời rạc, số dư thực tế tại tốt nghiệp có thể vượt quá mục tiêu một chút — phần dư trở thành thankhoản quote bổ sung trong pool CPMM kết quả.

Ví dụ chi tiết — một lần phát hành bậc hai

Tham số:
  • base_supply_max = 1_000_000_000 (1 tỷ token base, 6 decimals)
  • base_supply_graduation = 800_000_000 (80% được bán kích hoạt tốt nghiệp)
  • k = 40 (thang giá)
  • Phí: 1% mua, 1% bán, chia lp:creator:protocol = 60:20:20.
Giá ban đầu (s = 0): 0 (bậc hai thuần túy bắt đầu từ không). Giá tại 50% được bán (s = 500_000_000):
Giá tại tốt nghiệp (s = 800_000_000):
Quote cần thiết để đạt tốt nghiệp (chi phí tích phân):
Vì vậy ≈ 6.827 đơn vị quote gốc (trong bất kỳ mint quote 6-decimal nào được cấu hình, ví dụ ~6,827 USDC nếu quote là USDC). Phí được áp dụng trên cùng:
Lần mua đầu tiên của 10 USDC:
  • Trạng thái virtual: s = 0, quote_vault = 0.
  • Trừ phí: quote_after_fee = 10 × 0.99 = 9.9.
  • Giải (40 / (3e18)) × s³ = 9.9e6 — 9.9 USDC theo đơn vị gốc 6 chữ số thập phân, cùng đơn vị với 6.827e9 ở trên ⇒ s ≈ 9.06e7 token base được mua.
  • Phí 1% (0.1 USDC) chia: lp 0.06, creator 0.02, protocol 0.02. Phần lp ở lại trong quote_vault; hai phần kia định tuyến đến các bộ đếm tích lũy tương ứng của chúng.
Mua tại 75% được bán (tiếp cận tốt nghiệp): Cùng 10 USDC mua được ít base hơn nhiều bây giờ vì đường cong dốc. Giải tại s₀ = 750e6 với quote_in_after_fee = 9.9e6 cho ∆s ≈ 4.4e5 — giảm ~200× lượng base trên mỗi USDC so với lần mua đầu tiên.

Cơ chế phí trong giai đoạn đường cong

Trên mỗi Buy:
  • lp_share được để lại trong quote_vault. Đây là điều làm cho đường cong hiệu quả chặt hơn (nhiều quote reserve hơn so với cùng một cung base).
  • protocol_share tăng LaunchState.state_data.protocol_fees_quote.
  • creator_share tăng LaunchState.state_data.creator_fees_quote.
Trên Sell cùng một chia tách áp dụng nhưng phí được lấy từ quote_out gửi đi. Cả hai bộ đếm được quét qua CollectFees (admin hoặc creator, mỗi cái đến bộ đếm của chính nó).

Độ chính xác

  • Số lượng phía base: u64.
  • Số lượng phía quote: u64.
  • Các khối / tích trung gian: u128.
  • “Mua quote chính xác” và “bán quote chính xác” nghịch đảo ở dạng đóng — đường cong constant-product bằng đại số, đường cong fixed-price bằng một phép chia, đường cong linear-price bằng một căn bậc hai. Không có bộ giải Newton nào trong chương trình, không có giới hạn số lần lặp, và không có lỗi NotConverged.

Chuyển giao đến CPMM

Khi Graduate kích hoạt:
Đối với đường cong constant-product — loại mặc định của LaunchLab và là loại duy nhất đang hoạt động — cpmm_initial_price chính xác bằng price(base_sold), giá đường cong biên tại thời điểm chuyển giao, nên một người quan sát chuyển từ UI đường cong sang UI CPMM không thấy bước nhảy nào. Đối với đường cong giá bậc hai thì không: giá trung bình tích phân nằm trên giá biên (theo hệ số 4/3 trong ví dụ ở trên), nên một bước nhảy tại thời điểm chuyển giao là điều được dự kiến.

Tiếp theo đi đâu

Nguồn: