Skip to content
Semua panduan opsi dan kontrak berjangka
Eksekusi swap DEX11 menit baca

Swap DEX: dampak harga, slippage, dan MEV

Pelajari bagaimana kedalaman pool memengaruhi dampak harga yang diperkirakan, bagaimana minimum penerimaan membatasi swap yang menunggu, dan mengapa toleransi slippage yang lebar dapat menerima eksekusi yang lebih buruk.

Dalam panduan iniDampak harga, slippage, dan toleransi menjawab pertanyaan berbeda

Ringkasan singkat

Kuotasi DEX dapat berubah karena dua hal: swap itu sendiri menggeser harga pool, atau aktivitas lain mengubahnya sebelum transaksi Anda dieksekusi. Dampak harga menjelaskan efek pertama; slippage adalah perubahan antara kuotasi dan eksekusi akhir. Toleransi slippage menetapkan batas hasil, bukan janji harga yang lebih baik.

Dampak harga, slippage, dan toleransi menjawab pertanyaan berbeda

Dampak harga terjadi ketika order Anda besar dibandingkan likuiditas yang tersedia dan order itu sendiri menggeser harga pool. Kuotasi yang realistis sudah memperhitungkan efek ini: di pool yang tipis, order besar mendapat harga rata-rata yang lebih buruk daripada order kecil. Slippage adalah selisih antara jumlah yang diperkirakan saat kuotasi dibuat dan hasil saat transaksi dieksekusi. Swap lain, pergerakan pasar, penundaan, atau rute berbeda dapat mengubah hasil selagi transaksi menunggu.

Toleransi slippage adalah syarat yang harus dipenuhi swap. Untuk swap dengan jumlah input tetap, toleransi biasanya berupa jumlah minimum yang harus diterima; jika hasil eksekusi di bawah batas itu, kontrak dapat membatalkan swap. Toleransi tidak menghapus dampak harga yang sudah tercermin dalam kuotasi dan tidak menunjukkan berapa besar slippage yang akan terjadi. Panduan Uniswap tentang dampak harga dan slippage harga juga membedakan keduanya. Antarmuka dapat memakai perhitungan atau label yang berbeda.

Mengapa kuotasi AMM memburuk saat ukuran order bertambah

Bursa dengan buku order mencocokkan pesanan beli dan jual yang menunggu pada harga berbeda. AMM dengan produk konstan menghitung swap dari cadangan token di pool. Dalam model sederhana dua token, x × y = k. Membeli lebih banyak satu token mengeluarkan lebih banyak token itu dari pool dan memasukkan token lainnya. Rasio pertukaran pun berubah selama transaksi; makin besar order dibandingkan kedalaman yang dapat digunakan, makin buruk harga rata-ratanya.

Ini adalah model, bukan aturan universal untuk semua DEX. Dokumentasi pengembang Uniswap menjelaskan struktur produk konstan v2 dan membedakannya dari likuiditas terkonsentrasi pada rentang harga di v3 dan v4, yang juga dapat memiliki hooks serta aturan biaya berbeda. Kuotasi dapat menggabungkan beberapa pool atau platform. Bandingkan jumlah yang diperkirakan untuk ukuran dan rute persis ini, bukan harga terakhir pada grafik atau total nilai yang dikunci di pool. Lihat dokumentasi swap Uniswap v2 untuk mekanismenya.

Ilustrasi tanpa teks tentang koin yang masuk ke pool biru sementara koin lain keluar melalui jalur terpisah.
Gambaran konseptual satu token masuk ke cadangan bersama pool sementara token lain keluar; tidak menampilkan harga, jumlah cadangan, biaya, atau kuotasi langsung.

Contoh hitungan: swap 10.000 USDC dengan pool tipis

Anggap sebuah pool hipotetis memiliki 100 ETH dan 200.000 USDC, tanpa biaya swap atau perubahan harga eksternal, serta mengikuti kurva produk konstan. Rasio awalnya 200.000 ÷ 100 = 2.000 USDC per ETH. Ketika 10.000 USDC dimasukkan, cadangan USDC naik menjadi 210.000. Agar produknya tetap sama, cadangan ETH turun menjadi 20.000.000 ÷ 210.000 = sekitar 95,238095 ETH. Pengguna menerima sekitar 4,761905 ETH.

Dengan rasio awal, 10.000 USDC akan membeli 5 ETH. Selisih 0,238095 ETH adalah sekitar 4,76% dari jumlah tanpa dampak. Harga eksekusi rata-rata ialah 10.000 ÷ 4,761905 = 2.100 USDC per ETH, atau 5% lebih tinggi daripada rasio sebelum swap. Harga marginal pool setelah transaksi adalah 210.000 ÷ 95,238095 = 2.205 USDC per ETH. Kekurangan dibandingkan jumlah tanpa dampak, harga rata-rata, dan harga marginal baru adalah perbandingan yang berbeda. Kuotasi nyata juga memasukkan biaya dan bentuk likuiditas rute. Ini hitungan hipotetis, bukan perkiraan pasar.

Pisahkan biaya pool dari dampak kurva

Gunakan cadangan hipotetis yang sama, tetapi asumsikan biaya 0,30% dari nilai input dengan satu konvensi biaya tertentu. Input yang dipakai dalam kuotasi produk konstan menjadi 10.000 × (1 − 0,003) = 9.970 USDC. Outputnya adalah 100 × 9.970 ÷ (200.000 + 9.970), atau sekitar 4,748297 ETH. Hasil ini sekitar 0,013607 ETH lebih rendah daripada 4,761905 ETH tanpa biaya pada kurva yang sama. Dibandingkan dengan 5 ETH pada rasio awal, kekurangan totalnya sekitar 0,251703 ETH. Jika hasil kurva tanpa biaya dijadikan langkah perantara, sekitar 0,238095 ETH berasal dari dampak kurva dan 0,013607 ETH lagi dari penyesuaian biaya. Pembagian ini bergantung pada patokan perbandingan.

Angka 0,30% adalah asumsi, bukan biaya universal untuk semua DEX. Penyesuaian input ini mengikuti perhitungan biaya pada pustaka getAmountOut Uniswap v2. Namun, cadangan kontrak tetap mencatat seluruh input; penggunaan 9.970 USDC sebagai input efektif dalam rumus bukan berarti hanya jumlah itu yang masuk ke pool. Pool lain dapat memakai tarif atau dasar biaya yang berbeda, atau menggabungkan beberapa biaya. Rute multi-hop dapat mengenakan biaya di setiap pool selain biaya antarmuka dan jaringan. Periksa rute dan rincian biaya yang sebenarnya, jangan terapkan persentase contoh ini ke semua swap.

Minimum penerimaan adalah batas, bukan hasil kuotasi

Misalkan suatu rute mengutip 4,7619 ETH untuk input yang sama dan antarmuka menerapkan toleransi 1%. Minimum penerimaan menjadi sekitar 4,7143 ETH: 4,7619 × (1 − 0,01). Eksekusi sebesar 4,72 ETH memenuhi batas; 4,70 ETH berada di bawahnya dan swap dapat dibatalkan sesuai perlindungan rute tersebut. Kuotasinya tetap 4,7619 ETH. Jumlah minimum hanya hasil terburuk yang masih diterima transaksi yang dikirim.

Batas yang lebih ketat dapat membuat swap yang valid gagal bila pasar bergerak saat jaringan padat atau kuotasi sudah kedaluwarsa. Batas yang lebih longgar dapat menerima hasil yang lebih buruk sebelum transaksi ditolak. Dokumentasi pengembang Uniswap menjelaskan output minimum sebagai kondisi perlindungan, tetapi parameter dan perilaku kegagalan bergantung pada router atau produk. Transaksi yang masuk ke blok lalu dibatalkan tetap dapat menimbulkan biaya jaringan, tergantung chain dan alurnya. Jangan menaikkan toleransi hanya untuk menghilangkan pesan kesalahan: periksa dulu apakah kuotasi, token, rute, biaya, atau kondisi jaringan berubah.

Periode menunggu menambahkan pergerakan yang tidak ada di kuotasi

Di antara penandatanganan dan penyertaan dalam blok, swap lain dapat mengubah cadangan. Arbitrase bisa mendekatkan harga pool ke harga di pasar lain; pergerakan cepat juga dapat membuat kuotasi lama tidak realistis. Order Anda tidak berubah, tetapi jumlah akhir bisa berubah. Tawaran gas yang lebih tinggi dapat memengaruhi prioritas penyertaan pada sebagian chain, tetapi tidak menjamin waktu atau harga eksekusi. Tenggat waktu dapat menolak transaksi yang terlalu lama menunggu; tenggat tidak mempertahankan kuotasi sebelumnya.

Pisahkan perkiraan saat kuotasi dibuat dari bukti transaksi akhir. Dampak harga adalah pengaruh yang diperkirakan dari order Anda terhadap likuiditas rute. Perubahan tambahan setelah kuotasi dibuat adalah slippage eksekusi menurut acuan antarmuka. Sebagian antarmuka menggabungkan keduanya dalam satu peringatan atau menggunakan pembanding lain. Jika perlu mencocokkan hasilnya nanti, catat kuotasi, waktu, rute, dan minimum penerimaan sebelum menandatangani.

Toleransi lebar dapat dimanfaatkan dalam sandwich MEV

Sandwich adalah salah satu bentuk nilai ekstraksi maksimum (MEV). Searcher melihat swap yang menunggu, bertransaksi lebih dahulu untuk menggeser harga pool sehingga merugikan pengguna, membiarkan swap pengguna dieksekusi, lalu bertransaksi ke arah sebaliknya untuk menutup posisi. Pengguna dapat menerima lebih dari minimum yang dikirim tetapi tetap memperoleh harga lebih buruk daripada kuotasi awal. Batas output yang ketat dapat membatalkan sebagian eksekusi yang merugikan, tetapi tidak mencegah semua strategi pengurutan transaksi atau pergerakan pasar biasa.

Panduan MEV Ethereum.org menjelaskan urutan sandwich dan mengapa pengguna yang terkena dampak memperoleh eksekusi lebih buruk. Tidak semua MEV merupakan serangan: arbitrase dapat mendekatkan harga pool ke pasar lain, sedangkan sandwich dapat memperburuk eksekusi pengguna. Jalur transaksi privat seperti Flashbots Protect menjelaskan perlindungan dan ketentuannya sendiri. Cakupannya bergantung pada chain dan penyedia, tidak menjamin harga tertentu, serta menambah ketergantungan pada jalur transaksi lain. Periksa jaringan dan ketentuan yang saat ini didukung.

Biaya, perilaku token, dan rute mengubah hasil total

Jumlah token yang diterima bukan keseluruhan biaya swap. Pisahkan biaya pool, biaya antarmuka jika ada, biaya jaringan, dampak harga yang sudah termasuk dalam kuotasi, slippage eksekusi, dan biaya transfer atau jual/beli khusus token. Beberapa token memiliki perilaku transfer nonstandar; swap dapat gagal atau memindahkan jumlah yang berbeda dari asumsi ERC-20 biasa. Persetujuan token dapat berupa transaksi terpisah dengan biaya jaringan sendiri.

Agregator rute dapat membagi swap ke beberapa pool atau memakai token perantara agar hasil kuotasi lebih baik. Ini dapat mengurangi dampak harga suatu rute, tetapi menambah pemanggilan kontrak, biaya, atau risiko khusus token. Kuotasi tidak menjamin eksekusi terbaik di semua platform. Bandingkan input tepat, output yang diharapkan, minimum penerimaan, jalur pool, rincian biaya, jaringan, dan tenggat. Untuk konteks terkait, baca panduan persetujuan token, biaya gas Ethereum, dan bridge serta token wrapped.

Periksa kuotasi sebelum menandatangani, lalu cocokkan bukti transaksi

Sebelum menandatangani, periksa jaringan dan alamat kontrak token, jumlah input, rute dan kedalaman pool, dampak harga yang ditampilkan, output yang diharapkan dan minimum penerimaan, pengaturan slippage, tenggat, biaya pool, antarmuka, dan jaringan, serta peringatan token. Jika output tampak sangat kecil, bandingkan dengan input hipotetis yang lebih kecil atau rute lain. Jika transaksi gagal, telusuri alasannya sebelum mengirim ulang. Percobaan yang gagal tetap dapat menimbulkan biaya jaringan tergantung chain dan alur transaksi.

Setelah transaksi dijalankan, bandingkan jumlah token aktual pada bukti transaksi dengan kuotasi dan minimum penerimaan; catat rute, biaya, biaya jaringan, dan waktunya. Jangan menganggap minimum sebagai jumlah yang diharapkan atau menyimpulkan bahwa swap yang berhasil terlindung dari semua eksekusi yang merugikan. Perhitungan artikel ini menggunakan pool produk konstan tanpa biaya. Likuiditas terkonsentrasi, rute multi-langkah, pajak token, harga oracle, dan urutan transaksi spesifik tiap chain dapat menghasilkan hal berbeda.

Bedakan perlindungan untuk input tetap dan output tetap

Dalam contoh sebelumnya, input ditetapkan sebesar 10.000 USDC dan jumlah minimum ETH yang diterima menjadi batas. Input tidak berubah; jika hasilnya kurang dari batas, eksekusi dapat ditolak. Pada swap dengan output tetap, Anda lebih dahulu menentukan jumlah ETH yang diinginkan. Jumlah USDC yang dibutuhkan kemudian dapat melebihi perkiraan, sehingga batas maksimum input sering digunakan. Dokumentasi Uniswap membedakan output minimum untuk input tetap dari input maksimum untuk output tetap.

Karena itu, pengaturan 1% tidak melindungi jumlah yang sama pada setiap swap. Periksa apakah input atau output yang ditetapkan, token mana yang menentukan batas bawah atau atas, serta apakah agregator memasukkan rute dan biaya ke dalam kuotasi. Minimum penerimaan adalah syarat dalam satuan token, bukan jaminan nilai dolar. Jika harga pasar token yang diterima turun pada waktu yang sama, nilai dolarnya dapat berubah meskipun swap memenuhi minimum. Transaksi yang selesai tidak berarti harga kuotasi dijamin.

Pertanyaan umum

Q1Apakah dampak harga dan slippage sama?

Tidak. Dampak harga berasal dari order Anda terhadap likuiditas pool. Slippage adalah perbedaan antara kuotasi dan eksekusi akhir menurut acuan antarmuka.

Q2Apakah pengaturan slippage 1% berarti saya akan rugi 1%?

Tidak. Biasanya pengaturan itu menentukan batas eksekusi terhadap kuotasi. Hasilnya bisa lebih baik, swap dapat dibatalkan, atau eksekusinya mendekati batas yang diizinkan.

Q3Apakah toleransi yang lebih ketat menghentikan serangan sandwich?

Toleransi dapat mempersempit hasil yang diterima transaksi, tetapi tidak menghilangkan MEV atau pergerakan pasar normal. Jalur privat juga memiliki cakupan dan ketentuannya sendiri.

Sumber dan bacaan lanjutan

Laporkan masalah

Kami akan menyiapkan email berisi tautan artikel ini. Mark menerima laporan setelah Anda mengirimkannya

Cek cepat

Sudah membaca panduannya? Uji diri dengan 3 pertanyaan

Pertanyaan 1 / 3

Pertanyaan 01

Apa yang diukur oleh dampak harga dalam swap AMM?

Pilih jawaban untuk melihat penjelasannya

Glosarium opsi