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 →
Mỗi chương trình Raydium đều có ít nhất một vai trò được ưu tiên — một khóa có thể nâng cấp chương trình, tạo cấu hình mới hoặc rút phí giao thức. Giảm thiểu những gì các vai trò này có thể làm (và đặt chúng phía sau multisig có độ trễ) là phòng thủ chính chống lại quản trị viên bị xâm phạm. Trang này liệt kê các vai trò và cách chúng được bảo mật trong thực tế.

Vai trò theo chương trình

AMM v4

CPMM

Việc thu thập phí người tạo không giới thiệu vai trò được ưu tiên. CollectCreatorFeePermissionless chấp nhận bất kỳ người trả tiền nào, hạn chế chủ sở hữu người nhận thành PoolState.pool_creator, và hạn chế cả hai đích đến thành ATA chính tắc của người tạo đó. Người gọi có thể tài trợ cho ATA bị thiếu và kích hoạt quét nhưng không thể chuyển hướng phí.

CLMM

Nắm giữ PDA Permission cho phép quyền hạn của nó gọi CreatePermissionedPool — tạo các pool bổ sung cho một cặp đã có một cặp chính tắc, mỗi cặp ở một địa chỉ dẫn xuất seed_index riêng biệt. Quyền hạn được giới hạn chỉ trong tạo pool: nó không thể di chuyển quỹ, thay đổi phí hoặc chạm vào bất kỳ pool hiện có nào. Thu hồi nó (ClosePermissionPda) ngăn quyền hạn tạo thêm pool nhưng để lại các pool đã tạo không bị ảnh hưởng. limit_order_admin là một vai trò hoạt động được thiết kế cẩn thận. Nó tồn tại để một keeper ngoài chuỗi có thể quét các lệnh đã điền mà không cần chủ sở hữu lệnh phải trực tuyến. Khóa keeper nóng (sống trên VM keeper) và được xoay vòng độc lập với các multisig ở trên. Cụ thể, quyền hạn keeper được giới hạn trong:
  • SettleLimitOrder — đẩy đầu ra đã điền của lệnh đến ATA của chủ sở hữu ở giá giới hạn của lệnh.
  • CloseLimitOrder — đóng tài khoản lệnh đã giải quyết hoàn toàn để lấy lại tiền thuê (tiền thuê đi đến chủ sở hữu lệnh).
Nó không thể gọi OpenLimitOrder, IncreaseLimitOrder, DecreaseLimitOrder, thay đổi bất kỳ trường pool nào hoặc ký cho bất kỳ hướng dẫn nào khác — những kiểm tra này được thực thi trên chuỗi bằng các ràng buộc seed và has_one trong struct Accounts của hướng dẫn. Một keeper bị xâm phạm có thể tệ nhất là không khả dụng (các lệnh vẫn đỗ cho đến khi chủ sở hữu tự giải quyết chúng) hoặc giải quyết/đóng các lệnh có thể điền hợp lệ không theo thứ tự; nó không thể di chuyển quỹ người dùng đến bất kỳ nơi nào khác ngoài nơi chủ sở hữu đã ủy quyền cho chúng.

Farm v6

Các farm riêng lẻ không có quản trị viên giao thức — mỗi người tạo farm chỉ kiểm soát farm của họ, và quyền hạn của người tạo bị giới hạn (không thể chiếm đoạt cổ phần người dùng, không thể thay đổi mint cổ phần).

LaunchLab

Danh sách cho phép quản trị viên nền tảng tự hạn chế: nó giới hạn những tài khoản GlobalConfig nào mà các launch dưới nền tảng đó có thể sử dụng. Nó không cấp quyền hạn trên các nền tảng khác hoặc quỹ launch hiện có. Các địa chỉ quyền hạn được ủy quyền chính tắc sống trong reference/program-addresses.

Quyền hạn nâng cấp chương trình

Các chương trình Raydium sử dụng cơ chế nâng cấp BPF Loader v3 tiêu chuẩn của Solana. Quyền hạn nâng cấp cho tất cả các chương trình là multisig Squads 3/4. Tại sao 3/4: đủ người ký để một sự xâm phạm duy nhất là không đủ; ít đủ để phối hợp nâng cấp hợp pháp là dễ quản lý. Bốn quyền hạn là độc lập, người ký thiết bị lạnh được cách ly không khí được giữ bởi các thành viên nhóm cốt lõi. Ký tuần tự ngăn chặn phê duyệt song song trên cùng một giao dịch; các giao dịch mang cửa sổ hết hạn cố định. Các hoạt động multisig được xem xét định kỳ hợp tác với Chương trình STRIDE của Solana (Asymmetric Research).

Xóa quyền hạn nâng cấp

Raydium chưa đặt quyền hạn nâng cấp của bất kỳ chương trình nào thành null. Giao thức hoạt động theo nguyên tắc rằng các chương trình cần có khả năng nâng cấp (để vá lỗi, thêm tiện ích mở rộng như Token-2022, sửa chữa sự trôi dạt tích hợp). Sự đánh đổi: người dùng tin tưởng rằng multisig 3/4 sẽ chỉ triển khai các nâng cấp được xem xét kỹ lưỡng. Đối với những người dùng muốn một lựa chọn bất biến, chương trình AMM v4 cũ đã ổn định kể từ lần kiểm toán cuối cùng của nó; không có nâng cấp nào trong 18 tháng. Đường dẫn mã đó thực tế bị đóng băng mặc dù quyền hạn vẫn tồn tại.

Quyền hạn AmmConfig

Mỗi tạo AmmConfig mới được cấp phép — multisig kho bạc 3/5 ủy quyền các tầng phí mới và khoảng cách tick. Các pool hiện có tham chiếu AmmConfig của chúng bằng PDA; tầng phí của pool là bất kỳ AmmConfig nào nói. Quản trị viên có thể thay đổi AmmConfig hiện có không? Có, về mặt kỹ thuật. updateAmmConfig có thể được gọi bởi quản trị viên. Trong thực tế, các sửa đổi đối với AmmConfigs được triển khai được tránh vì nó thay đổi kinh tế của tất cả các pool sử dụng cấu hình đó một cách âm thầm. Chính sách giao thức là tạo AmmConfig mới cho bất kỳ thay đổi nào và di chuyển. Quản trị viên có thể đánh cắp phí giao thức qua cấu hình không? Không — AmmConfig chứa các tham số phí nhưng không phải người nhận phí giao thức; đó là một địa chỉ bất biến riêng biệt cho mỗi pool.

Yêu cầu phí giao thức

Một phần của phí swap (thường là 3–12 bps của 25 bps phí swap, tùy thuộc vào cấu hình) tích lũy vào kho phí giao thức. Multisig có thể rút những phí tích lũy này. Người dùng không bao giờ thấy số dư LP của họ thay đổi từ điều này — đó là phần được phân bổ trước của giao thức, không phải tiền LP.

Quyền hạn người tạo farm

Farms v6 cấp cho người tạo quyền hạn:
  • Tài trợ cho kho phần thưởng (thêm nhiều token hơn).
  • Mở rộng lịch trình (đẩy thời gian kết thúc muộn hơn).
  • Gọi withdrawReward sau thời gian kết thúc để lấy lại số dư kho chưa sử dụng.
Người tạo farm không thể:
  • Rút cổ phần LP người dùng.
  • Thay đổi mint cổ phần.
  • Thay đổi tỷ lệ phát hành theo hướng lùi (chỉ hướng tới thông qua setRewards).
  • Đóng băng thu hoạch người dùng.
Người tạo farm độc hại có thể tệ nhất là tài trợ không đủ cho kho để farm chạy hết; cổ phần chính của người dùng luôn an toàn.

Cấu hình multisig Squads

Raydium vận hành hai multisig Squads riêng biệt cho các bề mặt rủi ro khác nhau. Cả hai đều có thể được kiểm tra trên chuỗi qua giao diện người dùng Squads Protocol. Các thuộc tính hoạt động của multisig nâng cấp:
  • Timelock 24 giờ trên bất kỳ giao dịch nào. Một nâng cấp được phê duyệt hôm nay thực thi không sớm hơn 24 giờ sau, cho người dùng thời gian để phản ứng.
  • Ký thiết bị lạnh được cách ly không khí. Thiết bị lạnh có thẻ mạng bị loại bỏ vật lý; chúng chỉ kết nối với ví phần cứng và đọc dữ liệu giao dịch qua mã QR từ thiết bị nóng riêng biệt.
  • Ký tuần tự. Chỉ sau khi một thiết bị lạnh tạo và ký giao dịch thì thiết bị lạnh tiếp theo mới có thể bắt đầu quá trình ký của nó — ngăn chặn chữ ký xung đột hoặc song song trên cùng một giao dịch.
  • Hết hạn giao dịch. Mỗi giao dịch mang cửa sổ hết hạn cố định, vì vậy các giao dịch cũ tự động vô hiệu.
  • Thực thi TOTP + khóa vật lý trên các thiết bị nóng được sử dụng để khởi tạo giao dịch và phát sóng trên chuỗi.
  • Hàng đợi giao dịch công khai. Bất kỳ ai cũng có thể theo dõi các nâng cấp đang chờ xử lý trên giao diện người dùng Squads.
Multisig kho bạc không có timelock — phạm vi của nó hẹp hơn và các hoạt động thường xuyên (tạo AmmConfigs, quét phí) cần hạ cánh cùng ngày. Multisig kho bạc cũng nắm giữ quyền hạn quản trị viên chương trình hạn chế được liệt kê trong các bảng mỗi chương trình ở trên; đây là một sắp xếp tạm thời và được xem xét định kỳ với các đối tác bảo mật của dự án.

Xác minh quyền hạn trên chuỗi

Cách đơn giản nhất để xác minh quyền hạn nâng cấp hiện tại của chương trình:
Đầu ra bao gồm:
Nếu Authority không phải là địa chỉ multisig Squads dự kiến, có điều gì đó không ổn. Raydium xuất bản các địa chỉ quyền hạn dự kiến trên reference/program-addresses. Đối với các vai trò quản trị viên AmmConfig / pool, tìm nạp tài khoản trên chuỗi và giải mã:

Thay đổi quyền hạn lịch sử

Những cân nhắc phía người dùng

Bạn nên làm gì với tư cách là người dùng/LP/tích hợp?
  1. Kiểm tra quyền hạn nâng cấp trước khi phân bổ lớn. Xác nhận nó khớp với multisig được ghi chép.
  2. Theo dõi hoạt động multisig. Giao diện người dùng Squads hiển thị các giao dịch đang chờ xử lý; một nâng cấp được lên lịch cho bạn 24 giờ để thoát nếu bạn không đồng ý với thay đổi.
  3. Chiến lược chuộc lại nhận thức về time-lock. Nếu bạn đang chạy auto-compounder, hãy đảm bảo đường dẫn thoát của bạn không yêu cầu hướng dẫn đang được thay đổi.
  4. Đừng giả định tính bất biến của chương trình. Mỗi chương trình Raydium đều có thể được nâng cấp; hãy lên kế hoạch cho nó.

Những cạm bẫy cho các tích hợp

1. Địa chỉ quyền hạn bộ nhớ đệm

Nếu bạn mã hóa cứng địa chỉ quyền hạn nâng cấp hoặc địa chỉ multisig quản trị viên trong mã của bạn và nó sau đó xoay vòng, xác minh của bạn sẽ thất bại. Tìm nạp từ reference/program-addresses khi chạy hoặc làm mới định kỳ.

2. Giả định AmmConfigs ổn định

AmmConfig mới có thể được tạo bất kỳ lúc nào. Bộ tổng hợp/bộ định tuyến của bạn nên tìm nạp lại danh sách cấu hình đầy đủ định kỳ (hàng giờ là được).

3. Vectơ đau khổ người tạo farm

Nếu bạn đang gửi tiền vào một farm có danh tiếng thấp, người tạo có thể kết thúc farm sớm và lấy lại kho phần thưởng (giả sử không có người dùng nào đã cổ phần). Khi người dùng đã cổ phần, các quyền lợi pro-rata được thực thi bởi chương trình; lấy lại chỉ nhận được phần dư sau khi hợp lý kết thúc.

Con trỏ

Nguồn: