Skip to main content
Halaman ini diterjemahkan secara otomatis oleh AI. Versi bahasa Inggris adalah acuan resmi.Lihat versi bahasa Inggris →
Setiap program Raydium memiliki setidaknya satu peran istimewa — kunci yang dapat meningkatkan program, membuat konfigurasi baru, atau menarik biaya protokol. Meminimalkan apa yang dapat dilakukan peran-peran ini (dan menempatkannya di belakang multisig dengan penundaan) adalah pertahanan utama terhadap admin yang dikompromikan. Halaman ini mencantumkan peran-peran dan bagaimana mereka diamankan dalam praktik.

Peran menurut program

AMM v4

CPMM

Pengumpulan biaya kreator tidak memperkenalkan peran istimewa. CollectCreatorFeePermissionless menerima pembayar apa pun, membatasi pemilik penerima ke PoolState.pool_creator, dan membatasi kedua tujuan ke ATA kanonik kreator itu. Pemanggil dapat mendanai ATA yang hilang dan memicu penyapuan tetapi tidak dapat mengalihkan biaya.

CLMM

Membuat pool tambahan untuk pasangan di alamat yang diturunkan seed_index (CreateCustomizablePoolV2) tidak memerlukan peran. Sebelum upgrade 2026-10-22 memerlukan PDA Permission yang dikeluarkan oleh kunci permission_pda_admin khusus; peran itu, akun Permission dan dua instruksi adminnya dihapus. limit_order_admin adalah peran operasional yang sengaja sempit. Ini ada sehingga penjaga off-chain dapat menyapu pesanan yang terisi tanpa pemilik pesanan harus online. Kunci penjaga panas (hidup di VM penjaga) dan dirotasi secara independen dari multisig di atas. Secara konkret, otoritas penjaga dibatasi untuk:
  • SettleLimitOrder — dorong output pesanan yang terisi ke ATA pemilik pada harga batas pesanan.
  • CloseLimitOrder — tutup akun pesanan yang sepenuhnya diselesaikan untuk mengembalikan sewa (sewa pergi ke pemilik pesanan).
Tidak dapat memanggil OpenLimitOrder, IncreaseLimitOrder, DecreaseLimitOrder, mengubah bidang pool apa pun, atau menandatangani instruksi lain — pemeriksaan itu ditegakkan on-chain oleh seed dan batasan has_one dalam struct Accounts instruksi. Penjaga yang dikompromikan paling buruk dapat tidak tersedia (pesanan tetap diparkir sampai pemilik menyelesaikannya sendiri) atau menyelesaikan/menutup pesanan yang dapat diisi secara sah di luar urutan; tidak dapat memindahkan dana pengguna ke mana pun selain tempat pemilik sudah mengotorisasinya.

Farm v6

Farm individual tidak memiliki admin protokol — setiap pembuat farm hanya mengontrol farm mereka, dan kekuatan pembuat dibatasi (tidak dapat merampas stake pengguna, tidak dapat mengubah mint staking).

LaunchLab

Daftar izin admin platform membatasi diri sendiri: membatasi akun GlobalConfig mana yang dapat digunakan peluncuran di bawah platform itu. Tidak memberikan otoritas atas platform lain atau dana peluncuran yang ada. Alamat otoritas yang didelegasikan kanonik hidup di reference/program-addresses.

Otoritas peningkatan program

Program Raydium menggunakan mekanisme peningkatan BPF Loader v3 standar Solana. Otoritas peningkatan untuk semua program adalah multisig Squads 3/4. Mengapa 3/4: cukup penandatangan sehingga kompromi tunggal tidak cukup; cukup sedikit sehingga mengoordinasikan peningkatan yang sah dapat dilakukan. Empat otoritas adalah penandatangan perangkat dingin independen yang terpisah secara udara yang dipegang oleh anggota tim inti. Penandatanganan berurutan mencegah persetujuan paralel pada transaksi yang sama; transaksi membawa jendela kedaluwarsa tetap. Operasi multisig ditinjau secara berkala dalam kemitraan dengan Program STRIDE Solana (Asymmetric Research).

Menghapus otoritas peningkatan

Raydium belum menetapkan otoritas peningkatan program apa pun ke null. Protokol beroperasi di bawah prinsip bahwa program perlu dapat ditingkatkan (untuk menambal bug, menambahkan ekstensi seperti Token-2022, memperbaiki pergeseran integrasi). Pertukaran: pengguna mempercayai bahwa multisig 3/4 hanya akan menerapkan peningkatan yang ditinjau dengan baik. Tidak ada program Raydium yang saat ini beku atau bergerak cukup lambat untuk diperlakukan sebagai alternatif yang tidak dapat diubah — AMM v4, secara historis yang paling statis di antara mereka, sendiri diterapkan kembali pada 2026-07-22. Slot yang terakhir diterapkan untuk setiap program adalah publik; bacalah sebelum menganggap salah satu dari mereka sedang tidur: (Dari akun ProgramData setiap program; solana program show <PROGRAM_ID> melaporkan slot yang sama.)

Otoritas AmmConfig

Setiap pembuatan AmmConfig baru memiliki izin — multisig treasury 3/5 mengotorisasi tingkat biaya dan spasi tick baru. Pool yang ada mereferensikan AmmConfig mereka dengan PDA; tingkat biaya pool adalah apa pun yang dikatakan AmmConfig. Bisakah admin mengubah AmmConfig yang ada? Ya, secara teknis. updateAmmConfig dapat dipanggil oleh admin. Dalam praktik, modifikasi AmmConfig yang diterapkan dihindari karena mengubah ekonomi semua pool yang menggunakan konfigurasi itu secara diam-diam. Kebijakan protokol adalah membuat AmmConfig baru untuk perubahan apa pun dan bermigrasi. Bisakah admin mencuri biaya protokol melalui konfigurasi? Tidak — AmmConfig berisi parameter biaya tetapi bukan penerima biaya protokol; itu adalah alamat terpisah yang tidak dapat diubah per pool.

Klaim biaya protokol

Sebagian dari biaya swap (biasanya 3–12 bps dari 25 bps biaya swap, tergantung konfigurasi) terakumulasi ke vault biaya protokol. Multisig dapat menarik biaya yang terakumulasi ini. Pengguna tidak pernah melihat saldo LP mereka berubah dari ini — ini adalah bagian yang dialokasikan sebelumnya protokol, bukan uang LP.

Otoritas pembuat farm

Farm v6 memberikan pembuat kekuatan untuk:
  • Danai vault reward (tambahkan lebih banyak token).
  • Perpanjang jadwal (dorong waktu akhir lebih lambat).
  • Panggil withdrawReward setelah waktu akhir untuk mengembalikan saldo vault yang tidak digunakan.
Pembuat farm tidak dapat:
  • Tarik LP stake pengguna.
  • Ubah mint staking.
  • Ubah tingkat emisi secara retroaktif (hanya ke depan melalui setRewards).
  • Bekukan panen pengguna.
Pembuat farm yang berbahaya paling buruk dapat kurang mendanai vault sehingga farm kehabisan; stake pokok pengguna selalu aman.

Konfigurasi multisig Squads

Raydium mengoperasikan dua multisig Squads terpisah untuk permukaan risiko yang berbeda. Keduanya dapat diperiksa on-chain melalui UI Squads Protocol. Properti operasional multisig peningkatan:
  • Timelock 24 jam pada transaksi apa pun. Peningkatan yang disetujui hari ini tidak dieksekusi lebih awal dari 24 jam kemudian, memberi pengguna waktu untuk merespons.
  • Penandatanganan perangkat dingin yang terpisah udara. Perangkat dingin memiliki kartu jaringan yang dihapus secara fisik; mereka terhubung hanya ke dompet perangkat keras dan membaca data transaksi melalui kode QR dari perangkat panas terpisah.
  • Penandatanganan berurutan. Hanya setelah satu perangkat dingin menghasilkan dan menandatangani transaksi dapat perangkat dingin berikutnya memulai proses penandatanganannya — mencegah tanda tangan yang bertentangan atau paralel pada transaksi yang sama.
  • Kedaluwarsa transaksi. Setiap transaksi membawa jendela kedaluwarsa tetap, sehingga transaksi basi secara otomatis tidak valid.
  • Penegakan TOTP + kunci fisik pada perangkat panas yang digunakan untuk inisiasi transaksi dan siaran on-chain.
  • Antrian transaksi publik. Siapa pun dapat memantau peningkatan yang tertunda di UI Squads.
Multisig treasury tidak memiliki timelock — cakupannya lebih sempit dan ops rutin (membuat AmmConfig, menyapu biaya) perlu mendarat hari yang sama. Multisig treasury juga memegang otoritas admin program terbatas yang tercantum dalam tabel per-program di atas; ini adalah pengaturan sementara dan ditinjau secara berkala dengan mitra keamanan proyek.

Memverifikasi otoritas di rantai

Cara paling sederhana untuk memverifikasi otoritas upgrade program saat ini:
Output mencakup:
Jika Authority bukan alamat multisig Squads yang diharapkan, ada yang tidak sesuai. Raydium menerbitkan alamat otoritas yang diharapkan di reference/program-addresses. Untuk peran admin AmmConfig / pool, ambil akun di rantai dan dekode:
AmmConfig tidak memiliki field admin — admin program adalah pubkey yang dikompilasi ke dalam program (crate::admin::ID), dan otoritas operasional per-config adalah protocolOwner / fundOwner. Otoritas upgrade BPF adalah masalah terpisah di tingkat loader; bacanya dengan solana program show.

Perubahan otoritas historis

Pertimbangan sisi pengguna

Apa yang harus Anda lakukan sebagai pengguna/LP/integrator?
  1. Periksa otoritas upgrade sebelum alokasi besar. Konfirmasi bahwa itu cocok dengan multisig yang didokumentasikan.
  2. Pantau aktivitas multisig. Squads UI menampilkan transaksi yang tertunda; upgrade yang dijadwalkan memberi Anda 24 jam untuk membatalkan jika Anda tidak setuju dengan perubahan.
  3. Strategi penebusan yang menyadari time-lock. Jika Anda menjalankan auto-compounder, pastikan jalur unwind Anda tidak memerlukan instruksi yang sedang diubah.
  4. Jangan asumsikan immutabilitas program. Setiap program Raydium dapat diupgrade; rencanakan untuk itu.

Jebakan untuk integrator

1. Caching alamat otoritas

Jika Anda hardcode otoritas upgrade atau alamat multisig admin dalam kode Anda dan kemudian berputar, verifikasi Anda gagal. Ambil dari reference/program-addresses saat runtime atau segarkan secara berkala.

2. Mengasumsikan AmmConfigs stabil

AmmConfig baru dapat dibuat kapan saja. Aggregator/router Anda harus mengambil ulang daftar config lengkap secara berkala (setiap jam sudah cukup).

3. Vektor grief farm-creator

Jika Anda menyetor ke farm dengan reputasi rendah, pembuat dapat mengakhiri farm lebih awal dan mengklaim vault reward (dengan asumsi tidak ada pengguna yang telah melakukan staking). Setelah pengguna melakukan staking, hak pro-rata ditegakkan oleh program; reclaim hanya mendapatkan sisa setelah rational end.

Referensi

Sumber: