Skip to main content
Halaman ini diterjemahkan secara otomatis oleh AI. Versi bahasa Inggris adalah acuan resmi.Lihat versi bahasa Inggris →
Produk inti Raydium tidak bergantung pada oracle eksternal untuk penetapan harga — state pool adalah oracle-nya. Namun API dan SDK menggunakan oracle eksternal untuk penetapan harga USD yang ditampilkan kepada pengguna, dan mint Token-2022 membawa serangkaian kontrol yang lebih kaya daripada SPL Token, beberapa di antaranya secara fundamental mengubah model kepercayaan pool. Halaman ini mengkatalogkan keduanya.

Oracle di Raydium

Internal: pool adalah oracle

Untuk AMM v4, CPMM, dan CLMM, definisi protokol tentang “harga saat ini” diturunkan dari state pool saja:
  • AMM v4 / CPMM: price = vaultB_balance / vaultA_balance (memperhitungkan desimal).
  • CLMM: price = (sqrtPriceX64 / 2^64)^2 × 10^(decimalsA - decimalsB).
Tidak ada oracle eksternal yang dikonsultasikan selama swap, deposit, atau withdrawal. Ini adalah bagian “trustless” dari desain AMM: jika matematika pool benar, tidak ada manipulasi eksternal dari feed harga yang dapat merusaknya.

CLMM ObservationState sebagai oracle TWAP

Pool CLMM mempertahankan akun ObservationState yang mencatat snapshot sqrt_price historis. Program lain dapat berkomposisi terhadap ini untuk menurunkan harga rata-rata tertimbang waktu yang tahan manipulasi:
Ini adalah pola yang sama yang digunakan Uniswap V3. Manipulasi harga jangka pendek (paus yang sementara mendorong pool) tidak merusak TWAP karena dirata-ratakan selama ratusan slot. Program yang membutuhkan feed harga yang lebih aman untuk mint CLMM (oracle likuidasi, penetapan harga opsi, dll.) harus menggunakan TWAP ObservationState daripada harga instan. Jangan gunakan harga CLMM instan untuk komposabilitas. Satu swap besar dapat mendorong harga spot 10%+ pada pool yang dangkal; TWAP melemahkan ini. Lihat products/clmm/accounts#observation-state untuk tata letak data.

External: penetapan harga USD di frontend/API

Frontend Raydium dan api-v3.raydium.io menampilkan nilai USD (TVL, fee APR, $ volume). Ini berasal dari:
  • Pyth sebagai oracle utama untuk mint utama.
  • Harga agregator Jupiter sebagai fallback.
  • Harga yang diturunkan dari pool untuk mint long-tail tanpa cakupan oracle eksternal.
Tampilan USD murni kosmetik — operasi on-chain tidak pernah membaca Pyth, dan tidak ada matematika pool yang menggunakan USD. Jika Pyth berhenti menyediakan data untuk mint, UI menampilkan ”—”; pool terus berfungsi.

Manipulasi oracle tidak berlaku untuk pool Raydium

Karena state pool adalah oracle, tidak ada “serangan oracle” dalam arti yang dimaksud literatur bug-bounty — tidak ada sumber data eksternal yang dapat dimanipulasi penyerang. Serangan ekonomi pada state pool (manipulasi gaya flash-loan) tercakup dalam security/attack-vectors.

Risiko ekstensi Token-2022

SPL Token-2022 (alias “Token Extensions”) menambahkan perilaku yang dapat dikonfigurasi ke mint melalui ekstensi. Beberapa ekstensi mengubah properti kepercayaan pool yang menyertakannya. Program Raydium menangani beberapa secara otomatis dan menampilkan yang lain sebagai peringatan pengguna.

Transfer fee

Apa itu: Biaya yang dapat dikonfigurasi (persentase transfer, hingga batas maximum_fee dalam istilah absolut) yang dibayarkan oleh pengirim kepada otoritas mint pada setiap transfer. Risiko: Biaya dapat diubah oleh otoritas fee-config mint. Jika Anda menyetor likuiditas ketika biaya 1%, dan otoritas menaikkannya menjadi 50%, swap berikutnya mengembalikan jauh lebih sedikit dari yang diharapkan. Mitigasi di Raydium: Pool membaca transferFeeConfig saat ini pada waktu swap dan menyesuaikan matematika. Pool itu sendiri tidak rusak, tetapi pengguna melihat output yang lebih buruk. Otoritas biaya juga dapat menjadwalkan perubahan biaya tertunda; UI Raydium menandai pool dengan perubahan biaya yang akan datang. Risiko residual: Jika otoritas biaya yang berbahaya mengubah biaya selama swap Anda yang sedang berlangsung, minimumAmountOut Anda melindungi downside — tx kembali. Jika Anda mempercayai penerbit mint, ini baik-baik saja; jika tidak, jangan LP.

Transfer hook

Apa itu: Transfer memanggil program terpisah (the “hook”) untuk menjalankan validasi kustom atau efek samping. Risiko: Hook dapat memblokir transfer apa pun, termasuk transfer internal pool selama swap. Hook yang dapat diupgrade dapat menjadi berbahaya nanti — apa yang aman pada waktu deposit dapat menjadi tidak dapat ditukar pada waktu withdrawal. Mitigasi di Raydium: Raydium mencantumkan ID program hook dalam state pool. Integrasi harus menampilkan ID program hook kepada pengguna sehingga mereka dapat memverifikasi bahwa itu adalah program yang diharapkan (tidak dapat diupgrade, diaudit). Risiko residual: Jika hook dapat diupgrade dan otoritasnya menjadi bermusuhan, pool dapat dibekukan. Raydium tidak memblokir pool dengan transfer hook, tetapi menandainya. LP ke pool transfer-hook hanya jika hook diverifikasi aman.

Freeze authority

Apa itu: Otoritas freeze mint dapat membekukan akun token apa pun yang memegang mint itu, mencegah semua transfer. Risiko: Otoritas freeze dengan kemampuan untuk membekukan akun vault pool secara efektif menutup pool — pengguna tidak dapat menarik, trader tidak dapat swap. Ini berlaku untuk SPL Token dan Token-2022; ini bukan baru dengan Token-2022, tetapi masih merupakan risiko. Mitigasi di Raydium: Tidak ada di tingkat program — freeze SPL Token buram untuk pool. UI Raydium memperingatkan pada pool dengan mint yang dapat dibekukan. Pengguna yang menyetor harus memverifikasi bahwa otoritas freeze adalah null atau multisig yang mereka percayai (USDC memiliki otoritas freeze; itu adalah penerbit Circle). Risiko residual: Terima bahwa mint yang dapat dibekukan dapat dibekukan. Mint utama (USDC, USDT, USDY) memiliki otoritas freeze yang dipegang oleh penerbit dan digunakan hanya untuk kepatuhan regulasi; ini biasanya dapat diterima.

CLMM position NFT restricted-issuer

CLMM menerapkan kontrol tambahan untuk otoritas freeze issuer KYC-restricted yang dipilih. Ketika otoritas freeze mint pool mana pun cocok dengan daftar hardcoded program, posisi baru yang dibuka melalui OpenPositionV2 atau OpenPositionWithToken22Nft memiliki akun token NFT mereka dibekukan segera. PDA pool yang sesuai adalah otoritas freeze mint NFT posisi. Ini mencegah posisi ditransfer ke dompet yang tidak disetujui atau mengubah pemilik akun token-nya. Ini tidak memberikan kontrol penerbit token yang mendasar atas NFT posisi: hanya PDA pool CLMM yang merupakan otoritas freeze NFT posisi, dan program menggunakannya untuk mencairkan hanya sebagai bagian dari ClosePosition sebelum burn. Manajemen likuiditas dan pengumpulan biaya atau reward terus memerlukan pemilik NFT. Posisi yang ada tetap tidak dibekukan. Integrator harus memperlakukan transferabilitas sebagai state spesifik posisi dan membaca flag isFrozen akun token NFT.

Permanent delegate

Apa itu: Ekstensi Token-2022 yang menunjuk delegasi permanen yang dapat mentransfer token dari pemegang apa pun tanpa persetujuan. Risiko: Delegasi permanen dapat menguras vault pool kapan saja. Mitigasi di Raydium: CPMM dan CLMM menolak untuk membuat pool dengan mint yang memiliki delegasi permanen. Inisialisasi kembali. Tidak ada pool Raydium yang berjalan memiliki mint delegasi permanen. Risiko residual: Nol (selama pemeriksaan benar, yang kedua audit verifikasi).

Non-transferable

Apa itu: Mint yang tidak dapat ditransfer oleh pemegang. Risiko: Pool bergantung pada transferabilitas untuk memindahkan token antara ATA pengguna dan vault pool. Mint non-transferable secara trivial memecah pool. Mitigasi di Raydium: Pembuatan pool kembali pada mint non-transferable. Farm juga menolak mint staking non-transferable.

Default-frozen / close-authority / interest-bearing

Ekstensi dampak lebih rendah yang ditangani oleh Raydium:
  • Default-frozen: akun token baru perlu dicairkan sebelum digunakan. Raydium menangani ini secara transparan pada pembuatan ATA.
  • Close-authority: otoritas yang ditunjuk dapat menutup akun token. Vault pool dimiliki oleh otoritas yang diturunkan program pool, jadi close-authority pada mint tidak berlaku untuk vault.
  • Interest-bearing: saldo yang ditampilkan mengumpulkan bunga; amount tetap tetap tetapi uiAmount tumbuh. Matematika pool Raydium menggunakan amount, bukan bunga yang terakumulasi; tampilan menyesuaikan secara terpisah.

Mint authority

Bukan risiko spesifik Token-2022, tetapi patut dicatat: jika mint mempertahankan mint authority, pemegang dapat menginflasi pasokan sesuka hati. Untuk token yang diluncurkan, ini mengencerkan LP pada harga pool saat ini. LaunchLab menolak untuk membuat peluncuran kecuali otoritas mint adalah null.

Label risiko di UI

Frontend Raydium memberi label setiap pool dengan tag risiko yang berlaku:
  • TRANSFER_FEE — transfer fee bukan nol.
  • TRANSFER_HOOK — ekstensi transfer-hook aktif.
  • FREEZE — mint memiliki otoritas freeze.
  • MINT — mint memiliki otoritas mint (pasokan dapat menginflasi).
  • CLOSE — mint memiliki otoritas close.
Agregator yang mengonsumsi API Raydium harus menampilkan label ini kepada pengguna.

Daftar periksa integrator

Sebelum berkomposisi dengan pool Raydium:
  • Periksa ekstensi setiap mint melalui getMint(mint, TOKEN_2022_PROGRAM_ID).
  • Lewati pool di mana mint apa pun memiliki permanent_delegate atau non_transferable (ini seharusnya tidak ada di Raydium, tetapi pertahanan berlapis).
  • Periksa otoritas freeze untuk kedua mint; null atau otoritas terpercaya saja.
  • Sebelum menawarkan transfer posisi, escrow, atau Burn & Earn, konfirmasi akun token NFT posisi CLMM tidak dibekukan.
  • Untuk pool transfer-hook, verifikasi ID program hook terhadap daftar putih.
  • Ukuran eksposur terhadap skenario transfer-fee (bagaimana jika biaya naik ke maksimum?).
  • Gunakan CLMM TWAP (ObservationState) daripada harga spot untuk penetapan harga derivatif.

Pernyataan penerimaan risiko residual

Program Raydium memberlakukan apa yang dapat diberlakukan di tingkat program:
  • Pembuatan pool menolak mint permanent-delegate / non-transferable.
  • Matematika swap menyesuaikan dengan benar untuk biaya transfer saat ini.
  • ObservationState menyediakan oracle yang tahan manipulasi.
Risiko residual yang harus diterima pengguna:
  • Otoritas freeze mint dapat membekukan pool.
  • Otoritas biaya mint dapat menaikkan biaya transfer (hingga batas maximum_fee) kapan saja.
  • Program transfer-hook dapat diupgrade ke kode berbahaya.
  • Tingkat akrual mint yang bearing-interest dapat diubah.
Pertahanan yang tepat adalah ketekunan pre-LP: jangan menyetor ke pool dengan mint yang memiliki otoritas terkonsentrasi yang tidak Anda percayai. Raydium tidak dapat memutuskan kepercayaan itu untuk Anda; itu hanya dapat menampilkan fakta yang relevan.

Penunjuk

Sumber:
  • Dokumentasi ekstensi SPL Token-2022.
  • Logika validasi inisialisasi pool: src/raydium/cpmm/instrument.ts, src/raydium/clmm/instrument.ts.
  • Pyth — oracle harga eksternal yang digunakan di frontend.