Skip to content
Semua panduan opsyen
Pelaksanaan swap DEX11 min bacaan

Swap DEX: impak harga, gelinciran dan MEV

Ketahui cara kedalaman pool mempengaruhi impak harga yang dijangka, cara jumlah minimum diterima mengehadkan swap yang menunggu, dan sebab toleransi gelinciran yang luas boleh menerima pelaksanaan yang lebih buruk.

Dalam panduan iniImpak harga, gelinciran dan toleransi menjawab soalan berlainan

Ringkasan ringkas

Sebut harga DEX boleh berubah atas dua sebab: swap itu sendiri menggerakkan harga pool atau aktiviti lain mengubahnya sebelum transaksi anda dilaksanakan. Impak harga menerangkan kesan pertama; gelinciran ialah perubahan antara sebut harga dengan pelaksanaan akhir. Toleransi gelinciran menetapkan had hasil, bukannya menjanjikan harga yang lebih baik.

Impak harga, gelinciran dan toleransi menjawab soalan berlainan

Impak harga berlaku apabila pesanan anda besar berbanding kecairan yang tersedia lalu pesanan itu sendiri menggerakkan harga pool. Sebut harga yang realistik sudah mengambil kira kesan ini: dalam pool cetek, pesanan besar mendapat harga purata yang lebih buruk daripada pesanan kecil. Gelinciran ialah perbezaan antara jumlah yang dijangka ketika sebut harga disediakan dengan hasil semasa transaksi dilaksanakan. Swap lain, pergerakan pasaran, kelewatan atau laluan berlainan boleh mengubah hasil ketika transaksi menunggu.

Toleransi gelinciran ialah syarat yang mesti dipenuhi oleh swap. Dalam swap dengan input tetap, ia lazimnya dinyatakan sebagai jumlah minimum yang mesti diterima; jika hasil pelaksanaan lebih rendah, kontrak boleh membatalkan transaksi. Toleransi tidak menghapuskan impak harga yang sudah terkandung dalam sebut harga dan tidak menyatakan berapa banyak gelinciran akan berlaku. Panduan Uniswap tentang impak harga dan gelinciran harga juga membezakan kedua-duanya. Antara muka mungkin menggunakan pengiraan atau label yang berbeza.

Sebab sebut harga AMM merosot apabila saiz pesanan bertambah

Bursa buku pesanan memadankan tawaran beli dan jual yang menunggu pada harga berbeza. AMM hasil darab malar pula mengira swap berdasarkan rizab token dalam pool. Dalam model ringkas dua token, x × y = k. Membeli lebih banyak satu token mengeluarkan lebih banyak token itu daripada pool dan memasukkan token yang satu lagi. Oleh itu nisbah pertukaran berubah sepanjang transaksi; semakin besar pesanan berbanding kedalaman yang boleh digunakan, semakin buruk harga puratanya.

Formula ini ialah model, bukan peraturan sejagat bagi setiap DEX. Dokumentasi pembangun Uniswap menerangkan struktur hasil darab malar v2 dan membezakannya daripada kecairan tertumpu dalam julat harga pada v3 dan v4, yang juga boleh melibatkan hooks dan peraturan fi yang berlainan. Sebut harga boleh menggabungkan beberapa pool atau platform. Bandingkan hasil jangkaan untuk saiz pesanan dan laluan yang tepat ini, bukannya harga carta terkini atau jumlah nilai terkunci dalam pool. Lihat dokumentasi swap Uniswap v2 untuk penerangan mekanismenya.

Ilustrasi tanpa teks tentang syiling yang memasuki pool biru sementara syiling lain keluar melalui laluan berasingan.
Gambaran konsep satu token memasuki rizab kongsi pool sementara token lain keluar; tiada harga, jumlah rizab, fi atau sebut harga langsung dipaparkan.

Contoh kiraan: swap 10,000 USDC dengan pool cetek

Andaikan pool hipotetikal mengandungi 100 ETH dan 200,000 USDC, tanpa fi swap atau perubahan harga luaran, dan mengikut lengkung hasil darab malar. Nisbah awal ialah 200,000 ÷ 100 = 2,000 USDC bagi setiap ETH. Apabila 10,000 USDC dimasukkan, rizab USDC meningkat kepada 210,000. Untuk mengekalkan hasil darab, rizab ETH turun kepada 20,000,000 ÷ 210,000 = kira-kira 95.238095 ETH. Pengguna menerima kira-kira 4.761905 ETH.

Pada nisbah awal, 10,000 USDC boleh membeli 5 ETH. Kekurangan 0.238095 ETH bersamaan kira-kira 4.76% daripada jumlah tanpa impak. Harga pelaksanaan purata ialah 10,000 ÷ 4.761905 = 2,100 USDC bagi setiap ETH, iaitu 5% lebih tinggi daripada nisbah sebelum swap. Harga marginal pool selepas transaksi ialah 210,000 ÷ 95.238095 = 2,205 USDC bagi setiap ETH. Kekurangan berbanding jumlah tanpa impak, harga purata dan harga marginal baharu ialah perbandingan yang berlainan. Sebut harga sebenar turut merangkumi fi dan bentuk kecairan pada laluan. Ini pengiraan hipotetikal, bukan ramalan pasaran.

Asingkan fi pool daripada kesan lengkung

Kekalkan rizab hipotesis yang sama, tetapi andaikan fi 0.30% dikenakan pada input mengikut satu kaedah fi tertentu. Input yang digunakan dalam sebut harga produk malar ialah 10,000 × (1 − 0.003) = 9,970 USDC. Maka outputnya 100 × 9,970 ÷ (200,000 + 9,970), kira-kira 4.748297 ETH. Jumlah ini kira-kira 0.013607 ETH lebih rendah berbanding 4.761905 ETH tanpa fi pada lengkung yang sama. Berbanding 5 ETH pada nisbah awal, kekurangan keseluruhannya kira-kira 0.251703 ETH. Jika hasil lengkung tanpa fi dijadikan langkah perantaraan, kira-kira 0.238095 ETH dikaitkan dengan kesan lengkung dan 0.013607 ETH lagi dengan pelarasan fi. Pecahan ini bergantung pada asas perbandingan.

Kadar 0.30% ialah andaian, bukannya fi sejagat untuk semua DEX. Pelarasan input ini mengikuti pengiraan fi dalam pustaka getAmountOut Uniswap v2. Walau bagaimanapun, kontrak merekodkan keseluruhan input dalam rizab; input berkesan 9,970 USDC dalam formula tidak bermakna hanya jumlah itu sampai ke pool. Pool lain mungkin menggunakan kadar atau asas fi yang berbeza, atau menggabungkan beberapa fi. Laluan berbilang hop boleh mengenakan fi pada setiap pool selain fi antara muka dan kos rangkaian. Semak laluan serta pecahan fi sebenar dan jangan gunakan peratus contoh ini untuk semua swap.

Jumlah minimum diterima ialah had, bukannya hasil sebut harga

Katakan laluan memberikan sebut harga 4.7619 ETH untuk input yang sama dan antara muka menggunakan toleransi 1%. Jumlah minimum diterima kira-kira 4.7143 ETH: 4.7619 × (1 − 0.01). Pelaksanaan 4.72 ETH memenuhi had; 4.70 ETH berada di bawahnya lalu swap boleh dibatalkan mengikut perlindungan laluan tersebut. Sebut harga kekal 4.7619 ETH. Jumlah minimum cuma hasil terburuk yang masih diterima oleh transaksi yang dihantar.

Had yang lebih ketat boleh menyebabkan swap yang sah gagal apabila pasaran bergerak semasa kesesakan atau sebut harga menjadi lapuk. Had yang lebih luas membenarkan pelaksanaan yang lebih buruk sebelum ditolak. Dokumentasi pembangun Uniswap menerangkan output minimum sebagai syarat perlindungan, tetapi parameter dan cara kegagalan bergantung pada penghala atau produk. Transaksi yang dimasukkan ke blok kemudian dibatalkan masih boleh menyebabkan kos rangkaian, bergantung pada chain dan aliran transaksinya. Jangan luaskan toleransi sekadar untuk menghilangkan mesej ralat: periksa dahulu sama ada sebut harga, token, laluan, fi atau keadaan rangkaian berubah.

Tempoh menunggu menambah pergerakan yang tiada dalam sebut harga

Antara tandatangan dan kemasukan ke blok, swap lain boleh mengubah rizab. Arbitraj boleh merapatkan harga pool dengan harga pasaran lain; pergerakan pantas juga boleh menjadikan sebut harga terdahulu tidak lagi realistik. Pesanan anda kekal sama, tetapi jumlah akhir boleh berubah. Bidaan gas lebih tinggi boleh mempengaruhi keutamaan kemasukan pada sesetengah chain, tetapi tidak menjamin masa atau harga pelaksanaan. Tarikh akhir boleh menolak transaksi yang terlalu lama menunggu; ia tidak mengekalkan sebut harga terdahulu.

Asingkan anggaran ketika sebut harga dibuat daripada resit akhir. Impak harga ialah kesan yang dijangka daripada pesanan terhadap kecairan laluan. Perubahan tambahan selepas sebut harga disediakan ialah gelinciran pelaksanaan berdasarkan rujukan yang digunakan oleh antara muka. Sesetengah antara muka menggabungkan kedua-duanya dalam satu amaran atau menggunakan perbandingan lain. Jika anda mahu menyemak hasilnya kemudian, catat sebut harga, masa, laluan dan jumlah minimum diterima sebelum menandatangani.

Toleransi luas boleh dimanfaatkan dalam sandwich MEV

Sandwich ialah satu bentuk nilai maksimum boleh diekstrak (MEV). Searcher memerhatikan swap yang sedang menunggu, membuat transaksi terlebih dahulu untuk menggerakkan harga pool ke arah yang merugikan pengguna, membiarkan swap pengguna dilaksanakan, kemudian berdagang ke arah bertentangan untuk menutup posisi. Pengguna mungkin menerima lebih daripada jumlah minimum yang dihantar tetapi masih mendapat harga lebih buruk daripada sebut harga asal. Had output yang ketat boleh membatalkan sesetengah pelaksanaan yang merugikan, tetapi tidak menghalang setiap strategi susunan transaksi atau pergerakan pasaran biasa.

Panduan MEV Ethereum.org menerangkan susunan sandwich dan sebab pengguna yang terjejas menerima pelaksanaan yang lebih buruk. Bukan semua MEV ialah serangan: arbitraj boleh mendekatkan harga pool dengan pasaran lain, manakala sandwich boleh memburukkan pelaksanaan pengguna. Laluan transaksi persendirian seperti Flashbots Protect menerangkan perlindungan dan syaratnya sendiri. Liputannya bergantung pada chain dan penyedia, tidak menjamin harga tertentu dan mewujudkan kebergantungan pada laluan transaksi tambahan. Semak rangkaian dan syarat yang disokong pada masa ini.

Fi, tingkah laku token dan laluan mengubah hasil keseluruhan

Jumlah token yang diterima bukan keseluruhan kos swap. Asingkan fi pool, fi antara muka jika berkenaan, kos rangkaian, impak harga yang sudah termasuk dalam sebut harga, gelinciran pelaksanaan dan fi pemindahan atau jual beli khusus token. Sesetengah token mempunyai tingkah laku pemindahan yang tidak standard; swap boleh gagal atau memindahkan jumlah yang berlainan daripada andaian ERC-20 biasa. Kelulusan token mungkin transaksi berasingan dan mempunyai kos rangkaian sendiri.

Pengagregat laluan boleh membahagikan swap merentasi beberapa pool atau menggunakan token perantara untuk memperbaik output sebut harga. Ini mungkin mengurangkan impak harga pada satu laluan, tetapi menambah panggilan kontrak, fi atau risiko khusus token. Sebut harga tidak menjamin pelaksanaan terbaik pada semua platform. Bandingkan input tepat, output jangkaan, jumlah minimum diterima, laluan pool, pecahan fi, rangkaian dan tarikh akhir. Untuk topik berkaitan, baca panduan kelulusan token, fi gas Ethereum dan bridge serta token wrapped.

Semak sebut harga sebelum menandatangani dan padankan resit selepas itu

Sebelum menandatangani, semak rangkaian dan alamat kontrak token, jumlah input, laluan dan kedalaman pool, impak harga yang dipaparkan, output jangkaan dan jumlah minimum diterima, tetapan gelinciran, tarikh akhir, fi pool, antara muka dan rangkaian, serta amaran token. Jika output kelihatan luar biasa rendah, bandingkan dengan input hipotetikal yang lebih kecil atau laluan lain. Jika transaksi gagal, teliti sebabnya sebelum menghantarnya semula. Percubaan yang gagal mungkin masih menyebabkan kos rangkaian bergantung pada chain dan aliran transaksi.

Selepas pelaksanaan, bandingkan jumlah token sebenar dalam resit dengan sebut harga dan jumlah minimum diterima; catat laluan, fi, kos rangkaian dan masanya. Jangan anggap jumlah minimum sebagai output jangkaan atau menganggap swap yang berjaya terlindung daripada semua pelaksanaan yang merugikan. Pengiraan artikel ini menggunakan pool hasil darab malar tanpa fi. Kecairan tertumpu, laluan berbilang langkah, cukai token, harga oracle dan susunan transaksi khusus chain boleh menghasilkan keputusan berlainan.

Bezakan perlindungan input tetap daripada output tetap

Dalam contoh sebelumnya, input ditetapkan pada 10,000 USDC dan jumlah minimum ETH yang diterima ditentukan. Input tidak berubah; jika hasilnya di bawah had, pelaksanaan boleh ditolak. Dalam swap output tetap, anda menentukan dahulu jumlah ETH yang dikehendaki. Jumlah USDC yang diperlukan mungkin melebihi anggaran, maka had maksimum input lazimnya ditetapkan. Dokumentasi Uniswap membezakan output minimum untuk input tetap daripada input maksimum untuk output tetap.

Oleh itu, paparan 1% tidak melindungi jumlah yang sama bagi setiap swap. Semak sama ada input atau output yang ditetapkan, token yang menentukan had bawah atau atas dan sama ada pengagregat memasukkan laluan serta fi dalam sebut harga. Jumlah minimum diterima ialah syarat dalam unit token, bukannya jaminan nilai dolar. Jika harga pasaran token yang diterima turut jatuh, nilai dolarnya boleh berubah walaupun swap memenuhi minimum. Transaksi yang selesai tidak bermakna harga sebut harga dijamin.

Soalan lazim

Q1Adakah impak harga dan gelinciran perkara yang sama?

Tidak. Impak harga berpunca daripada pesanan anda berbanding kecairan pool. Gelinciran ialah perbezaan antara sebut harga dengan pelaksanaan akhir mengikut rujukan antara muka.

Q2Adakah tetapan gelinciran 1% bermaksud saya akan rugi 1%?

Tidak. Biasanya ia menetapkan had pelaksanaan berbanding sebut harga. Hasilnya boleh lebih baik, swap boleh dibatalkan atau pelaksanaan boleh hampir dengan had yang dibenarkan.

Q3Adakah toleransi yang lebih ketat menghentikan serangan sandwich?

Ia boleh mengecilkan julat hasil yang diterima transaksi, tetapi tidak menghapuskan MEV atau pergerakan pasaran biasa. Laluan persendirian juga mempunyai liputan dan batasannya sendiri.

Sumber dan bacaan lanjut

Laporkan masalah

Kami akan menyediakan e-mel dengan pautan artikel ini. Mark menerima laporan hanya selepas anda menghantarnya

Semakan pantas

Sudah membaca panduan? Uji diri dengan 3 soalan

Soalan 1 / 3

Soalan 01

Apakah yang diukur oleh impak harga dalam swap AMM?

Pilih jawapan untuk melihat penjelasan

Glosari opsyen