Halaman ini diterjemahkan secara otomatis oleh AI. Versi bahasa Inggris adalah acuan resmi.Lihat versi bahasa Inggris →
AMM adalah target yang menggiurkan bagi kode yang bersifat adversarial: dana LP berada di pool yang sepenuhnya terlihat; setiap swap mengubah harga secara deterministik. Halaman ini mengkatalogkan kelas serangan yang telah didemonstrasikan terhadap AMM di mana pun, bagaimana penerapannya pada Raydium secara spesifik, dan apa yang Raydium (dan integrator) lakukan untuk mempertahankan diri.
1. Serangan sandwich / MEV
Serangan
Bot mengawasi mempool / aliran gossip, melihat swap pengguna, front-run dengan pembelian searah (mendorong harga), membiarkan tx pengguna dieksekusi dengan harga yang lebih buruk, kemudian back-run dengan penjualan berlawanan arah. Bot mendapat keuntungan dari spread.Eksposur
- Paling terekspos: pool CPMM TVL rendah dan pool AMM v4 — bahkan perdagangan kecil menggerakkan harga secara bermakna.
- Kurang terekspos: pool CLMM dalam — perdagangan dalam-tick tidak menggerakkan harga.
- Tidak terekspos: pemanenan farm, deposit LP (rasio ditegakkan, tidak sensitif harga dengan cara yang sama).
Pertahanan
- Jito bundles (
integration-guides/routing-and-mev) menyembunyikan tx dari mempool publik. - Slippage ketat — minimum-out yang lebih dekat dengan yang diharapkan membuat sandwich tidak menguntungkan. Di bawah ~0,3%, sebagian besar sandwich kehilangan uang.
- Ukuran perdagangan lebih kecil — pisahkan swap $100k menjadi 10× $10k; masing-masing menggerakkan harga lebih sedikit.
Postur Raydium
Program inti Raydium tidak menerapkan perlindungan anti-MEV — mereka netral di tingkat program. Perlindungan terjadi di lapisan submission (Jito, perlindungan bawaan dompet). UI default slippage ke 0,5% yang masuk akal untuk sebagian besar pool.2. Manipulasi harga
Serangan
Pedagang besar secara sementara menggerakkan harga pool (melalui flash loan atau whale yang didanai sendiri), memicu beberapa tindakan hilir yang bergantung pada harga (likuidasi, pinjaman yang diturunkan dari oracle, pembayaran derivatif), kemudian mengembalikan harga ke normal.Eksposur
- Operasi Raydium asli: tidak terekspos. Swap spot masuk dan keluar hanya menimbulkan biaya round-trip; pedagang kehilangan uang.
- Program terintegrasi: terekspos jika mereka membaca harga pool Raydium secara naif.
Pertahanan
- Gunakan TWAP, bukan harga spot, untuk komposabilitas (lihat
security/oracle-and-token-risks). - CLMM ObservationState memberikan TWAP jendela pendek yang tidak dapat dimanipulasi tanpa komitmen modal berkelanjutan.
- Konsensus multi-oracle: jika program Anda membaca Raydium dan Pyth dan Jupiter dan hanya bertindak ketika mereka setuju dalam 1%, manipulasi flash-loan dari sumber mana pun tidak cukup.
Postur Raydium
CLMM mengirimkan dukungan TWAP ObservationState; integrator yang mengabaikannya dan menggunakan harga spot adalah tanggung jawab mereka sendiri. Frontend Raydium menggunakan beberapa sumber harga untuk tampilan USD.3. Serangan donation / inflasi
Serangan
LP pertama di pool baru menyetor jumlah kecil (misalnya, 1 token masing-masing dari 6-decimal mints → 1 unit LP dikeluarkan). Kemudian penyerang “menyumbangkan” 1.000.000 token langsung ke vault pool melalui transfer SPL Token. Sekarang 1 unit LP mewakili 500.000 dari setiap mint. Setiap LP berikutnya yang menyetor kurang dari itu dibulatkan menjadi 0 unit LP dan kehilangan deposit mereka.Eksposur
- CPMM / AMM v4: berpotensi terekspos pada pool yang baru dibuat dengan likuiditas rendah.
- CLMM: tidak terekspos (tidak ada mint LP bersama; setiap posisi adalah NFT-nya sendiri dengan nilai likuiditas eksplisit).
Pertahanan
Instruksiinitialize CPMM mengunci jumlah LP minimum ke pool (terinspirasi oleh pola MINIMUM_LIQUIDITY Uniswap V2). Ini berarti LP pertama menerima sqrt(x × y) - MINIMUM_LIQUIDITY, dengan MINIMUM_LIQUIDITY (1000 unit) terbakar ke null. Serangan donation memerlukan penyerang untuk menyumbangkan >> deposit awal, yang menjadi tidak ekonomis.
Selain itu, SDK Raydium memperingatkan dengan keras ketika deposit awal sangat kecil dan memandu pengguna menuju jumlah yang masuk akal.
Postur Raydium
LockupMINIMUM_LIQUIDITY dikirim di CPMM; AMM v4 memiliki mekanisme serupa. Pengguna yang membuat pool harus seed dengan setidaknya 10.000+ unit dari setiap mint untuk membuat serangan donation tidak ekonomis dalam hal apa pun.
4. Penyalahgunaan transfer-hook Token-2022
Serangan
Hook transfer mint dapat ditingkatkan. Penyerang menerapkan hook yang tidak bersalah saat peluncuran mint, mendapatkan listing di Raydium, mengumpulkan LP dari pengguna. Kemudian, meningkatkan hook untuk memblokir semua transfer (secara efektif soft-rug — pengguna tidak dapat menarik). Penyerang membuat pool dapat diperdagangkan hanya dalam satu arah, membeli LP murah, membuka kunci hook, menang.Eksposur
Pool yang mencakup mint dengan transfer-hook.Pertahanan
- Tingkat program: Program Raydium memanggil hook selama swap; jika hook memblokir, swap kembali. Ini tidak mencegah serangan secara mekanis.
- Tingkat UI: Raydium menandai pool dengan mint transfer-hook.
- Tingkat integrator: agregator harus melewati mint transfer-hook secara default dan hanya allow-list hook yang diverifikasi.
Postur Raydium
Raydium tidak melarang pool transfer-hook (hook yang sah ada), tetapi menandainya dengan jelas. Agregator yang memfilter padatags.includes("TRANSFER_HOOK") dapat mengecualikan jika diinginkan.
5. Eksploitasi komposabilitas / CPI
Serangan
Program mengkomposisi Raydium melalui CPI dan memperkenalkan bug: misalnya, melewatkanobservation_state yang salah, array tick yang salah untuk swap CLMM, atau double-spend akun. Penyerang mengidentifikasi komposisi yang buggy dan mengeksploitasi.
Eksposur
- Integrator yang buggy — biasanya sumber bug.
- Raydium — hanya jika bug memicu perilaku yang tidak dimaksudkan dalam program Raydium itu sendiri.
Contoh historis
Tidak ada program Raydium yang telah dieksploitasi melalui CPI — validator akun Raydium menangkap akun yang salah bentuk dan kembali. Eksploitasi di ekosistem yang lebih luas telah terjadi melalui bug program kustom yang mengkomposisi dengan AMM tetapi tidak berasal dari AMM.Pertahanan
- Program yang memanggil harus menggunakan helper CPI Anchor (bukan instruksi yang dibangun tangan) jika memungkinkan — keamanan tipe menangkap sebagian besar penyalahgunaan.
- Tes integrasi terhadap state mainnet-forked mencakup kasus komposisi.
6. Kompromi admin / kunci
Serangan
Kunci admin (upgrade authority, AmmConfig admin, protocol fee claim) dikompromikan. Penyerang menerapkan upgrade berbahaya yang menguras pool, atau memodifikasi AmmConfigs untuk mengarahkan biaya ke dompet penyerang, atau menguras biaya protokol.Eksposur
Semua peran yang didokumentasikan dalamsecurity/admin-and-multisig.
Pertahanan
- Multisig 3/4 pada upgrade authority memerlukan kompromi 4 penandatangan independen.
- Timelock 24 jam pada upgrade memberi pengguna waktu untuk unwind sebelum upgrade berbahaya diaktifkan.
- Pemantauan operasional — alert pada aktivitas multisig apa pun melalui antrian publik Squads.
Insiden historis
Kunci pool authority AMM v4 dikompromikan pada Desember 2022 (pre-multisig). Perbaikan: memindahkan semua authority ke multisig Squads. Pasca-perbaikan, tidak ada insiden.7. Serangan ekonomi pada matematika tick CLMM
Serangan
Penyerang canggih mengeksploitasi pembulatan atau edge case akuntansi biaya dalam matematika tick CLMM. Contoh yang telah ditemukan di implementasi CLMM lain (bukan Raydium):- Akuntansi pertumbuhan biaya yang dibulatkan terhadap pengguna, mengumpulkan debu.
- Tick crossing yang mengkredit/mendebit delta fee_growth yang salah.
- Integer overflow dalam produk
sqrtPrice * liquidity.
Eksposur
Matematika bespoke yang kompleks. Audit dan fuzzing adalah pertahanan utama.Postur Raydium
CLMM telah menjalani dua audit independen (OtterSec + MadShield) ditambah fuzzing berbasis properti yang berkelanjutan. Tidak ada bug yang berdampak produksi yang ditemukan hingga saat ini. Aritmatikasqrt_price_x64 Q64.64 menggunakan matematika 128-bit yang jenuh dengan unit test yang mencakup tick batas.
8. Kebingungan position-NFT
Serangan
Pengguna ditipu untuk menandatangani transaksi yang mentransfer NFT posisi CLMM mereka ke penyerang. Penyerang sekarang memiliki likuiditas posisi.Eksposur
Setiap pemegang position NFT.Pertahanan
- UI dompet harus mengenali NFT posisi Raydium dan menampilkannya secara berbeda (bukan sebagai NFT generik untuk “dikirim”).
- Pengguna harus waspada terhadap penandatanganan transaksi yang mentransfer NFT.
- Posisi baru dibekukan hanya ketika menggunakan jalur open V2 dan freeze authority mint vault yang mendasar cocok dengan daftar restricted-issuer CLMM. Posisi yang cocok itu tidak dapat ditransfer atau memiliki pemilik token-account yang diubah; semua posisi baru lainnya tetap dapat ditransfer.
Postur Raydium
NFT posisi mengimplementasikan standar metadata Metaplex; aplikasi dompet yang memahami posisi CLMM menampilkannya sebagai posisi likuiditas daripada NFT yang dapat diperdagangkan. Sebagian besar dompet Solana utama menampilkannya secara khusus sejak 2026. Pembekuan restricted-issuer ditargetkan dan tidak melindungi posisi yang dapat ditransfer biasa.9. Manipulasi aliran reward farm
Serangan
Pembuat farm mendanai vault reward, menarik staker, kemudian memanggilrestartRewards dengan parameter yang membuat komputasi pending-reward kacau, mencuri nilai harvest.
Eksposur
Farm dengan pembuat berbahaya. Farm v6 membatasi kekuatan pembuat dengan ketat; serangan ini tidak berfungsi.Pertahanan
Instruksi admin Farm v6 (setRewards, restartRewards, addReward) mempertahankan hak pro-rata — reward_per_share disesuaikan pada saat perubahan, sehingga tidak ada akrual pre-change yang secara retroaktif rusak.
Postur Raydium
Audit farm OtterSec secara khusus menguji skenario restart-rewards; tidak ada eksploitasi yang ditemukan.10. Divergensi simulasi-vs-eksekusi
Serangan
Penyerang membangun transaksi yang mensimulasikan dengan sukses tetapi kembali pada eksekusi (atau sebaliknya). Digunakan untuk mengganggu dompet yang mengandalkan simulasi untuk tampilan.Eksposur
Dompet menampilkan “Anda akan menerima X” berdasarkan simulasi.Pertahanan
- Gunakan
simulateTransactiondengan blockhash yang sama dengan submission nyata. - Tampilkan output yang diharapkan sebagai ”≈” (kira-kira) bukan tepat.
- Re-simulasi segera sebelum submission.
Postur Raydium
Simulasi CLMM deterministik mengingat state pool saat ini; divergensi hanya terjadi jika state berubah antara simulasi dan eksekusi (kasus normal, ditangani melalui batas slippage).Tabel ringkasan
Apa yang dapat dilakukan pengguna
- Default ke slippage ketat; naikkan hanya jika diperlukan.
- Gunakan dompet / aliran swap yang diaktifkan Jito.
- Verifikasi ekstensi mint sebelum LP.
- Pantau multisig Squads untuk upgrade yang tertunda.
- Diversifikasi di seluruh pool; jangan konsentrasikan semua LP Anda di satu pool peluncuran baru.
Apa yang dapat dilakukan integrator
- Gunakan TWAP ObservationState untuk penetapan harga derivatif.
- Validasi batasan akun saat mengkomposisi melalui CPI.
- Filter pool berdasarkan bidang
tags(lewatiscam,honeypot, transfer-hook yang tidak diverifikasi). - Tetapkan batas slippage yang masuk akal; jangan terima slippage 0 dari input pengguna.
- Gunakan
simulateTransactiondengan hati-hati — dokumentasikan bahwa itu adalah perkiraan.
Penunjuk
security/oracle-and-token-risks— Risiko Token-2022 secara mendalam.security/admin-and-multisig— Struktur authority.security/disclosure— Program bug-bounty.integration-guides/routing-and-mev— Mitigasi MEV.
- Rekt News — Post-mortem DeFi yang menginformasikan daftar ini.
- Laporan audit yang ditautkan dalam
security/audits.

