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 →

Tóm tắt một đoạn

CPMM — Constant Product Market Maker, chính thức gọi là “Standard AMM” trong giao diện Raydium — là một triển khai native trên Solana của AMM cổ điển x · y = k. Không có sổ lệnh OpenBook, không có di sản Serum, không có phụ thuộc bên ngoài ngoài SPL Token và Token-2022. Mỗi pool là một bộ ba gồm (hai kho token, một LP mint) được quản lý bởi một PDA có quyền sở hữu chương trình, được định giá bằng tích của số dư kho. Đây là AMM mà Raydium khuyến nghị cho tất cả các pool constant-product mới, và đây là những gì mà endpoint /pools/create và luồng “Create pool” của giao diện web nhắm đến theo mặc định.

CPMM mang lại cho bạn những gì

Cập nhật thu thập phí người tạo. Bất kỳ người thanh toán nào cũng có thể kích hoạt CollectCreatorFeePermissionless. Quỹ vẫn chỉ đi đến các tài khoản token chính tắc của người tạo pool, và CollectCreatorFee được ký bởi người tạo hiện có vẫn khả dụng. Xem Instructions.
  • Token-2022 với danh sách cho phép extension được kiểm chứng. CPMM không chấp nhận các mint Token-2022 tùy ý. Chương trình thực thi danh sách trắng các extension an toàn khi tạo pool: TransferFeeConfig, MetadataPointer, TokenMetadata, InterestBearingConfig, và ScaledUiAmount. Bất kỳ extension nào khác trên mint sẽ khiến Initialize bị từ chối với NotSupportMint — trừ khi bản thân mint nằm trong danh sách cho phép mint được mã hóa cứng nhỏ được duy trì trong chương trình (được sử dụng để onboard các mint cụ thể từng trường hợp một). Phí chuyển nhượng đặc biệt ảnh hưởng đến toán học swap và được áp dụng ở phía chính xác của giao dịch — xem algorithms/token-2022-transfer-fees.
  • Phí dự đoán được. Mỗi pool tham chiếu một AmmConfig được chọn khi tạo. Config mang theo tỷ lệ phí giao dịch (chia giữa LP, giao thức và quỹ) và tỷ lệ phí người tạo riêng biệt, độc lập. Phí người tạo là bucket riêng của nó — không bao giờ là một phần của phí giao dịch. Pool chọn tính phí này khi tạo. Các giá trị mặc định và toán học chia tách đầy đủ nằm trong products/cpmm/fees.
  • TWAP trên chuỗi thông qua vòng đệm quan sát. Mỗi swap cập nhật một tài khoản observation. Các hợp đồng bên ngoài có thể đọc một quan sát giá tích lũy để tính toán TWAP mà không cần oracle tùy chỉnh.
  • Bố cục tài khoản phẳng. Một pool được mô tả đầy đủ bởi sáu PDA (authority, pool state, LP mint, hai vault, observation). Không có tài khoản OpenBook theo thị trường, không có event queue, không có request queue. Các giao dịch rẻ hơn cả về compute và số lượng tài khoản so với AMM v4.
  • Tương thích burn-and-earn. Các token LP có thể bị khóa theo chương trình LP Lock để người tạo pool có thể tiếp tục yêu cầu phí mà không giữ lại quyền rút thanh khoản. Được sử dụng cho các lần phát hành thanh khoản “vĩnh viễn”.

CPMM không phải là gì

  • Không tập trung. Thanh khoản được phân bổ đều trên toàn bộ phạm vi giá, giống như Uniswap v2. Nếu bạn cần market making hiệu quả về vốn — tức là tập trung thanh khoản gần giá hiện tại — hãy sử dụng CLMM.
  • Không hybrid. Không giống như AMM v4, các pool CPMM không đặt lệnh đang chờ xử lý trên thị trường OpenBook. Định tuyến qua các pool CPMM xảy ra thông qua chương trình AMM Routing, không phải thông qua CLOB.
  • Không thể khởi chạy cho các đường cong tùy ý. Đường cong được mã hóa cứng thành constant product. Nếu bạn muốn một bonding curve cho việc phát hành token, hãy sử dụng LaunchLab, nó sẽ chuyển sang pool CPMM khi nó được lấp đầy.

CPMM khác với AMM v4 như thế nào

Một xử lý sâu hơn về câu chuyện di chuyển nằm trong protocol-overview/versions-and-migration.

Mô hình tư duy

Một pool CPMM là một đối tượng do chương trình sở hữu giữ ba số dư: vault0 (token0), vault1 (token1), và cung cấp của LP mint. Cung cấp của LP mint theo dõi yêu cầu của người gửi tiền trên pool; các kho token giữ các tài sản thực tế. Mọi thứ khác — PDA authority, tài khoản observation, con trỏ fee-config — là sổ sách để làm cho mối quan hệ ba biến đó có thể giao dịch, thu thập phí và quan sát được. Mỗi hoạt động hướng đến người dùng sụp đổ thành một chuyển đổi trạng thái được xác định rõ:
  • Deposit: chuyển token0 và token1 vào, mint LP cho người dùng, không thay đổi giá.
  • Withdraw: đốt LP từ người dùng, chuyển token0 và token1 ra theo tỷ lệ hiện tại của pool, không thay đổi giá.
  • Swap: chuyển một token vào, chuyển token khác ra; tỷ lệ di chuyển dọc theo đường cong x · y = k (trừ phí); tài khoản observation lấy mẫu giá mới.
Thu thập phí là một giao dịch riêng biệt; nó không xảy ra trên mỗi swap. Thu thập giao thức và quỹ yêu cầu các quyền hạn tương ứng của chúng. Phí người tạo có thể được thu thập bằng đường dẫn được ký bởi người tạo hoặc bằng một người gọi không cần phép thông qua đường dẫn bị ràng buộc đích đến. Toán học được giải thích trong products/cpmm/math và bộ hướng dẫn trong products/cpmm/instructions.

Khi nào nên chọn CPMM

Chọn CPMM khi:
  • Bạn đang phát hành một token mới hoặc một cặp mới và không có ý kiến mạnh mẽ về phạm vi nào sẽ thấy giao dịch.
  • Một hoặc cả hai token sử dụng các extension Token-2022.
  • Bạn muốn một mô hình phí đơn giản trên mỗi giao dịch thay vì một mô hình động dựa trên tick.
  • Bạn đang tích hợp và muốn định tuyến qua Raydium mà không phải chịu độ phức tạp của các vị trí CLMM.
Ưu tiên CLMM khi:
  • Cặp ổn định hoặc tương quan cao (stablecoin-stablecoin, LST-SOL) và bạn muốn tập trung thanh khoản xung quanh parity.
  • Bạn là một nhóm market-making sẵn sàng quản lý các phạm vi một cách tích cực để có APR phí cao hơn trên mỗi đô la TVL.
Ưu tiên AMM v4 khi:
  • Bạn đang di chuyển công cụ AMM v4 hiện có và không tạo pool mới.
(Lưu ý: Chế độ hybrid OpenBook của AMM v4 không còn hoạt động — đó không phải là lý do để chọn AMM v4 nữa.)

Tiếp theo đi đâu

  • Accounts — sáu PDA của một pool CPMM và cách lấy chúng.
  • MathSwapBaseInput vs SwapBaseOutput, xử lý phí chuyển nhượng Token-2022, cập nhật observation.
  • Instructions — bề mặt hướng dẫn hoàn chỉnh với danh sách tài khoản.
  • Fees — chia tách phí bốn chiều và cách thu thập.
  • Code demos — các đoạn TypeScript có thể chạy được cho create / swap / deposit / withdraw.
Nguồn: