Oracle dan Transaksi Front-Running - Seri Penelitian Sudut Bagian 1

Menengah2/20/2025, 5:32:13 AM
Artikel ini memberikan analisis mendalam tentang desain orakel Angle Protocol dan mekanisme pertahanannya terhadap transaksi front-running. Dengan menggabungkan Chainlink dan Uniswap V3 TWAP, Angle menawarkan solusi inovatif yang bertujuan melindungi protokol dari serangan front-running sambil memastikan pengguna menerima harga transaksi yang adil.

Pengenalan

Angle memungkinkan pengguna untuk melebur dan membakar agTokens (stablecoin) sebagai pertukaran dengan token lainnya. Trader juga dapat membuka posisi long pada pasangan agunan/stablecoin yang tersedia. Ini bukan kontrak perpetu tertentu, karena keseimbangan tidak bergantung pada tingkat pendanaan, dan harga eksekusi berasal langsung dari oracle. Mengingat penggunaan kasus ini, protokol memerlukan metode yang dapat diandalkan untuk membandingkan harga aset yang tersedia untuk menawarkan penawaran yang adil kepada pengguna sambil melindungi diri dari transaksi front-running. Dalam FAQ artikel ini, Samcszun menjelaskan mengapa hal ini tidak semudah menggunakan harga spot.

Front-running telah menjadi masalah yang berkepanjangan di pasar. Ini berkaitan dengan beberapa peserta yang mendapatkan akses ke informasi lebih awal dari yang lain, memungkinkan mereka memanfaatkan keunggulan ini untuk mengekstrak keuntungan tanpa risiko atas biaya pihak lain. Secara historis, mencegah fenomena ini di rantai telah sangat menantang. Biaya tinggi dan kecepatan rendah transaksi Ethereum membuat sulit bagi orakel untuk memperbarui harga dengan cepat dan sering. Hal ini menyebabkan keterlambatan antara harga di luar rantai dan di dalam rantai, menciptakan kesempatan bagi front-runner untuk mengeksploitasi.

Tidak semua protokol stablecoin khawatir tentang risiko front-running yang timbul dari keterlambatan oracle. Dalam kasus DAI Maker, keterlambatan oracle seringkali menguntungkan protokol. Misalnya, jika seorang pengguna melihat bahwa posisinya akan dilikuidasi dalam pembaruan oracle berikutnya karena penurunan harga, maka dia termotivasi untuk menyetor lebih banyak dana ke vault, meningkatkan kesehatan protokol dan rasio agunan.

Synthetix, yang memungkinkan pertukaran nilai berbasis oracle antara aset sintetis dan agunan, adalah contoh sempurna dari protokol stablecoin yang menghadapi tantangan front-running. Pos blog mereka menguraikan sejarah panjang protokol dengan front-running, termasuk beberapa serangan masa lalu yang mereka alami.

Sama seperti Synthetix, Angle memungkinkan pertukaran aset pada nilai oracle dengan nol penyusutan harga. Akibatnya, Angle menghadapi isu front-running yang sama. Tim inti Angle telah melakukan upaya signifikan untuk mengurangi front-running. Dua perbaikan kunci telah diimplementasikan: desain oracle khusus dan struktur biaya dinamis. Dalam artikel ini, kami akan menjelaskan desain oracle Angle dan alasan di baliknya.

Pembaruan Oracle Front-Running: Sebuah Contoh

Sebelum mempelajari solusi Angle, mari kita mencoba memahami bagaimana front-running dapat merugikan protokol. Kita akan mempertimbangkan contoh di mana ETH diterima sebagai jaminan untuk mendukung stablecoin Angle.

Tidak Ada Biaya Transaksi

Misalkan seorang penyerang sedang memantau harga ETH di luar rantai dan melihat bahwa oracle Chainlink akan memperbarui data di rantai ke harga yang lebih tinggi (dari p0 menjadi p1, di mana p0 < p1). Penyerang ini dapat mengirim transaksi untuk membakar x stablecoin dengan harga p0 sebagai imbalan x/p0 senilai ETH. Kemudian, setelah harga diperbarui menjadi p1, penyerang dapat menjualnya kembali ke protokol, menghasilkan keuntungan:

Karena transaksi front-running ini pada pembaruan oracle, bagian keuntungan ini diambil dari cadangan protokol. Jika kita atur x = 100 ETH dan p1 = 1.01 * p0 (kenaikan harga 1%), ini berarti penyerang telah mengambil 1 ETH dari cadangan protokol.

Dengan Biaya Transaksi

Untungnya, biaya transaksi yang meningkat dapat meredakan masalah ini, karena hal tersebut menggerus keuntungan para pengejar keuntungan dan mengurangi peluang.

Sebagai contoh, jika biaya transaksi pencetakan dan pembakaran konstan dan sama dengan f, seorang penyerang yang membakar x stablecoin pada p0 dan kemudian menjual kembali kepada protokol untuk ETH pada p1 akan memiliki keuntungan akhir berikut:

Dibandingkan dengan skenario sebelumnya, biaya mengurangi keuntungan:

Ketika biaya transaksi adalah f = 0,3% dan mengikuti contoh di atas, keuntungan penyerang sekarang hanya 0,39 ETH.

Dengan Biaya Transaksi dan Dua Solusi Oracle

Untuk lebih mengurangi peluang ini, kita dapat mengandalkan oracle sekunder untuk menyediakan dua sumber harga potensial: pC (harga Chainlink) dan pU (harga Uniswap). Protokol dapat menggunakan harga yang paling menguntungkan (harga lebih rendah saat pencetakan, saat membeli token pengguna, dan harga lebih tinggi saat membakar, saat menjual ETH ke pengguna), sehingga peluang front-running menjadi kurang menarik.

Bayangkan seorang pedagang mencoba untuk mendapatkan keuntungan dari kesempatan yang sama seperti di atas, dengan asumsi pC0 < pC1.

Di sisi lain, kita dapat mempertimbangkan bahwa pU konstan dan lebih dekat dengan pC0. Oleh karena itu, seperti yang akan kita lihat nanti, karena desain harga rata-rata tertimbang waktu (TWAP) Uniswap, pU cenderung tertinggal di belakang pC.

Dalam hal ini, seorang penyerang yang berusaha untuk mendapatkan keuntungan dari peluang potensial akan membeli token dari protokol pada pC0 (membakar stablecoin) dan menerima x(1-f)/pC0 senilai ETH. Kemudian, mereka akan menjualnya lagi pada pU1 dengan harga lebih tinggi. Hal ini akan mengakibatkan kerugian bagi penyerang:

Jika kita tetap menggunakan angka dari contoh tersebut, penyerang pada akhirnya akan kehilangan 0.6 ETH dalam transaksi ini.

Solusi Sudut

Desain Angle ditujukan khusus untuk menghilangkan risiko transaksi front-running. Oleh karena itu, protokol akan menerapkan mekanisme yang sangat mirip dengan contoh yang dibahas di atas. Pada bagian ini, kita akan menjelajahi opsi eksisting yang potensial lebih detail, berfokus pada spesifik desain yang kami rencanakan untuk menerapkan dan menganalisis pilihan kami terhadap jendela waktu TWAP.

Opsi

Solusi oracle utama yang dapat cocok dengan kasus penggunaan Angle adalah:

  • Tautan rantai
  • Uniswap V3 TWAP
  • Pakan Pembuat

Chainlink adalah pilihan pertama yang jelas: ini adalah solusi oracle terdesentralisasi yang banyak digunakan yang menyediakan berbagai sumber data yang mencakup berbagai aset. Harga berasal dari berbagai sumber dan disalurkan melalui jaringan terdesentralisasi, memastikan bahwa data tersebut dapat diandalkan, dapat diakses, dan sulit untuk dimanipulasi. Namun, beberapa sumber data biasanya hanya diperbarui setelah perubahan harga “signifikan” (seperti perubahan 0,5% dalam ETH/USD) atau setelah jangka waktu tertentu, yang berarti bahwa harga Chainlink selalu tertunda dibandingkan dengan harga pasar aktual. Oleh karena itu, pembaruan harga Chainlink mungkin di-front-run dengan memeriksa harga off-chain atau mempool.

Harga Rata-Rata Terbobot Waktu (TWAP) Uniswap V3 adalah solusi oracle yang jelas dan banyak digunakan lainnya. TWAP dapat dikueri dari kontrak Uniswap untuk mendapatkan harga rata-rata terbobot waktu token dalam sebuah pool selama periode waktu tertentu, mulai dari beberapa detik hingga 9 hari. Harga dihitung berdasarkan harga rata-rata dua token dalam pool selama periode yang ditentukan. Hal ini membuat manipulasi TWAP memerlukan jumlah modal yang besar dan periode waktu yang lebih lama, yang tidak efisien dalam kebanyakan kasus.

Meskipun demikian, karena TWAP adalah harga rata-rata selama blok-blok sebelumnya, mereka umumnya mengalami keterlambatan dibandingkan dengan harga di luar rantai waktu nyata atau bahkan sumber harga Chainlink. Jika digunakan sendirian, mereka tidak akan cukup untuk melindungi protokol dari transaksi front-running.

Selain itu, karena TWAP hanya melaporkan harga pasangan token on-chain, mereka tidak dapat memenuhi tujuan protokol untuk memberikan akses ke aset yang tidak diwakili di on-chain (dan oleh karena itu tidak ada di kolam Uniswap), seperti stablecoin yang didukung forex.

Menggunakan Oracle Maker bisa menjadi pilihan lain untuk Angle, tetapi ini akan berarti harus mempercayai MakerDAO dan melalui proses tata kelola untuk mendapatkan akses ke data harga. Sumber harga juga akan terbatas pada yang digunakan oleh Maker, yang tidak mencukupi bagi kami karena kami bertujuan untuk mengakses nilai tukar forex.

Desain Angle: Chainlink + UniV3 TWAP = 💪

Dengan ini diingatkan, diputuskan untuk menggabungkan oracle Chainlink Angle Protocol dengan 10-menit Uni V3 TWAP. Ini memungkinkan harga paling adil yang mungkin pada setiap waktu sambil melindungi protokol dari serangan front-running.

Secara umum, kontrak Angle akan membandingkan harga dari kedua saluran dan menggunakan harga yang paling menguntungkan bagi protokol. Dengan desain ini, front-running protokol menjadi lebih kompleks karena untuk mengeksploitasi nilai tukar protokol, seorang penyerang harus memanipulasi atau front-run kedua orakel.

Secara khusus, kontrak kami akan mengambil harga terbaik untuk semua pasangan aset volatile/stablecoin antara Chainlink dan Uniswap dan menggunakan oracle forex Chainlink untuk mengonversi harga ke mata uang fiat yang diperlukan. Setiap pasangan jaminan/stablecoin akan memiliki kontrak oracle yang didedikasikan dengan sumber harga independen sendiri.

Bagaimana cara kerjanya?

Sebagai contoh, anggap seorang pengguna ingin melakukan perdagangan pasangan ETH/agEUR. Kontrak kami perlu mengambil harga untuk pasangan ETH/USD dan USD/EUR. Ini akan menyimpan harga terbaik untuk ETH/USD dari Chainlink dan TWAP 10 menit dari kolam ETH/USDC UniV3. Kemudian, itu akan mengambil harga forex USD/EUR dari Chainlink.

Contoh: Uniswap ETH/USDC TWAP: 1900 USD (protokol mengasumsikan USDC umumnya mempertahankan peg-nya, yaitu 1 USDC setara dengan 1 USD) Harga ETH Chainlink: 1850 USD Harga USD Chainlink: 1.16 EUR

Jika pengguna ingin mencetak agEUR dalam hal ini, protokol akan menggunakan harga ETH/USD yang lebih rendah, yaitu harga Chainlink sebesar 1850 USD per ETH. Sebaliknya, jika pengguna ingin membakar agEUR untuk wETH dalam situasi yang sama, protokol akan menggunakan harga yang lebih tinggi, yaitu TWAP ETH/USDC Uni sebesar 1900. Dalam kedua kasus tersebut, protokol akan menggunakan nilai USD/EUR Chainlink sebesar 1,16 untuk mengonversi ETH/USD ke ETH/EUR.

Demikian pula, protokol akan menggunakan harga tertinggi bagi pengguna yang ingin membuka kontrak perpetual, dan harga terendah bagi mereka yang ingin menutupnya.

Lebih umum:

  1. Kontrak pengguna yang membutuhkan harga akan memanggil kontrak oracle yang relevan.
  2. Bergantung pada jenis transaksi, kontrak orakel dapat membaca kutipan dari UniV3 TWAP dan Chainlink, atau hanya dari Chainlink (misalnya, untuk pertukaran stablecoin ke stablecoin), dan mengembalikannya ke kontrak utama.
  3. Tergantung pada operasi yang sedang dilaksanakan (pencetakan, pembakaran, pembukaan, atau penutupan), kontrak terkait akan tetap mempertahankan harga terbaik untuk protokol dan melaksanakan transaksi.

Memilih Jendela Waktu TWAP Uni V3

Kontrak Angle akan menggunakan jendela waktu 10 menit untuk TWAP. Pilihan ini dibuat setelah pertimbangan matang, karena jendela waktu yang berbeda dapat menghasilkan struktur harga yang berbeda secara signifikan.

Perbedaan Antara Jendela Waktu

Dalam kasus Angle, di satu sisi, jendela waktu harus cukup lama untuk memberikan cukup keterlambatan antara harga protokol dan harga spot. Ini memungkinkan spread yang lebih besar antara harga pencetakan dan pembakaran selama fluktuasi harga, terutama ketika risiko front-running pada Chainlink berlipat ganda. Selain itu, semakin lama jendela waktu, semakin sulit untuk memanipulasi harga TWAP, karena observasi terbaru memiliki dampak yang lebih kecil pada harga.

Di sisi lain, protokol masih harus menawarkan pengguna penawaran yang adil dan terkini: menggunakan jendela waktu yang terlalu luas akan menciptakan selisih harga yang terlalu besar antara protokol dan harga pasar saat ini, sementara menggunakan jendela waktu yang terlalu sempit tidak akan memberikan perbedaan harga yang diinginkan.

Bandikan TWAP 10 menit dan 60 menit dengan umpan harga Chainlink

Untuk memberi Anda pemahaman mengapa kami pada akhirnya memilih jendela waktu 10 menit, berikut adalah perbandingan antara 10 menit dan 60 menit ETH/USDC TWAPs dan harga ETH/USD Chainlink serta harga penutupan Coinbase.

Anda dapat melihat bagaimana tingkat atas dan bawah yang digunakan oleh protokol ketika pengguna melakukan pencetakan/pencetakan dan pembakaran/pembukaan bergerak antara harga paling menguntungkan dari Chainlink dan TWAP Uniswap selama transisi harga.


Meskipun blok TWAP 60 menit sering memberikan harga yang jauh dari pasar, TWAP 10 menit memberikan buffer yang bermanfaat untuk sumber harga Chainlink, menjaga harga cukup dekat dengan pasar.

Perlu dicatat bahwa, seperti yang terlihat dalam grafik pertama, semakin besar volatilitasnya, semakin besar perbedaan harga antara harga Chainlink dan Uniswap. Sebaliknya, ketika harga tetap relatif stabil dari waktu ke waktu, sumber harga dari Uniswap dan Chainlink lebih dekat satu sama lain. Menggunakan TWAP sebagai perlindungan tambahan terhadap front-running pada dasarnya merupakan cara untuk secara dinamis menagih lebih banyak biaya selama periode volatilitas tinggi, karena risiko front-running lebih besar akibat keterlambatan dalam oracles on-chain. Biaya dari biaya efektif yang lebih tinggi ini adalah bahwa ini mengurangi kemampuan pedagang arbitrase untuk secara langsung menyesuaikan kembali stablecoin dari protokol. Dalam kebanyakan kasus, harga Uniswap dan Chainlink akan sangat mirip, dan pengguna hampir tidak akan memperhatikan penggunaan dua solusi oracle. Namun, selama periode volatilitas tinggi, ketika protokol berisiko front-running karena perbedaan harga yang signifikan antara harga Chainlink saat ini dan masa depan, harga protokol akan berbeda, melindunginya dari front-running.

Fokus pada Pemulihan/ Pengembalian Biaya Synthetix

Penelitian orakel Angle sangat terinspirasi oleh diskusi tata kelola Synthetix dan pos blog terkait tentang front-running. Dalam penelitian kami, kami juga menemui opsi lain yang mereka implementasikan pada Februari 2020, pemulihan/pengembalian biaya, yang akhirnya menjadi solusi sementara.

Apa yang mereka lakukan adalah menambahkan periode menunggu ke transaksi, di mana pengguna tidak dapat memanipulasi Synth yang ingin mereka gunakan. Selama periode ini, orakel dapat memeriksa apakah transaksi tersebut terpengaruh oleh inkonsistensi, khususnya apakah ada perbedaan harga antara waktu eksekusi dan akhir periode menunggu. Jika ada perbedaan harga, perbedaan tersebut harus dibayar oleh pengguna atau protokol kepada pihak lain (protokol atau pengguna), atau akan diselesaikan dalam transaksi berikutnya dengan Synthetix.

Solusi ini sangat efektif dalam mengurangi front-running, tetapi mereka harus memperpanjang periode menunggu dan menaikkan biaya, yang menciptakan pengalaman pengguna yang sangat buruk bagi semua pedagang. Hal ini juga mencegah Synth untuk berintegrasi dengan protokol lain dalam banyak kasus penggunaan. Dalam SIP-120, mereka mengganti solusi ini dengan rencana yang menambah penggunaan orakel TWAP untuk transaksi besar.

Kesimpulan

Desain orakel khusus Angle memiliki dua dampak utama pada protokol:

Penyerang perlu memanipulasi dua pasar untuk menipu protokol, yang secara signifikan mengurangi risiko perdagangan front-running yang sukses.

Selama periode stres pasar, protokol kemungkinan tidak akan menawarkan pengguna harga terbaik yang mungkin.

Dampak terakhir telah dibahas di forum tata kelola Fei. Karena menyediakan pelaksanaan perdagangan terbaik bukan tujuan inti protokol, kami percaya bahwa resistensi front-running lebih penting untuk memastikan keamanan protokol. Di pasar sekunder selama periode volatilitas tinggi, pelaksanaan perdagangan yang lebih baik akan ditawarkan.

Tujuan kami dalam proyek Angle adalah merancang protokol stablecoin yang didukung sepenuhnya dan efisien. Untuk mencapai hal ini, diperlukan pertimbangan banyak aspek dari protokol untuk memastikan bahwa protokol tersebut tidak dapat ditipu ke posisi yang merugikan, salah satunya adalah resistensi front-running. Hal ini sangat penting karena stabilitas stablecoin terdesentralisasi on-chain yang bergantung pada orakel bergantung pada kualitas orakel mereka.

Menambahkan umpan harga sekunder dalam bentuk TWAP dapat membantu protokol mengurangi dampak buruk potensial dari volatilitas pasar yang tinggi dan peluang front-running yang muncul selama saat-saat tersebut.

Terakhir, penting untuk dicatat bahwa solusi oracle ini mempertahankan fleksibilitas dan skalabilitas. Di satu sisi, tata kelola Angle dapat memberikan suara dan memperbarui kontrak oraclenya kapan saja. Di sisi lain, orakel dapat diciptakan untuk feed harga apa pun yang didukung oleh Chainlink. Ini adalah tingkat dukungan minimum yang diperlukan untuk mencapai visi Angle dalam membawa aset keuangan ke dalam rantai dengan cara yang efisien secara modal!

Penafian:

  1. Artikel ini dicetak ulang dari [komunitas Denglink]. Semua hak cipta adalah milik penulis asli [Sudut]. Jika ada keberatan terhadap cetak ulang ini, silakan hubungi Gate Belajartim, dan mereka akan menanganinya dengan cepat.
  2. Penyangkalan Tanggung Jawab: Pandangan dan opini yang terdapat dalam artikel ini semata-mata merupakan milik penulis dan tidak merupakan nasihat investasi apa pun.
  3. Terjemahan artikel ke dalam bahasa lain dilakukan oleh tim Belajar gate. Kecuali disebutkan, menyalin, mendistribusikan, atau melakukan plagiarisme terhadap artikel yang diterjemahkan dilarang.

Oracle dan Transaksi Front-Running - Seri Penelitian Sudut Bagian 1

Menengah2/20/2025, 5:32:13 AM
Artikel ini memberikan analisis mendalam tentang desain orakel Angle Protocol dan mekanisme pertahanannya terhadap transaksi front-running. Dengan menggabungkan Chainlink dan Uniswap V3 TWAP, Angle menawarkan solusi inovatif yang bertujuan melindungi protokol dari serangan front-running sambil memastikan pengguna menerima harga transaksi yang adil.

Pengenalan

Angle memungkinkan pengguna untuk melebur dan membakar agTokens (stablecoin) sebagai pertukaran dengan token lainnya. Trader juga dapat membuka posisi long pada pasangan agunan/stablecoin yang tersedia. Ini bukan kontrak perpetu tertentu, karena keseimbangan tidak bergantung pada tingkat pendanaan, dan harga eksekusi berasal langsung dari oracle. Mengingat penggunaan kasus ini, protokol memerlukan metode yang dapat diandalkan untuk membandingkan harga aset yang tersedia untuk menawarkan penawaran yang adil kepada pengguna sambil melindungi diri dari transaksi front-running. Dalam FAQ artikel ini, Samcszun menjelaskan mengapa hal ini tidak semudah menggunakan harga spot.

Front-running telah menjadi masalah yang berkepanjangan di pasar. Ini berkaitan dengan beberapa peserta yang mendapatkan akses ke informasi lebih awal dari yang lain, memungkinkan mereka memanfaatkan keunggulan ini untuk mengekstrak keuntungan tanpa risiko atas biaya pihak lain. Secara historis, mencegah fenomena ini di rantai telah sangat menantang. Biaya tinggi dan kecepatan rendah transaksi Ethereum membuat sulit bagi orakel untuk memperbarui harga dengan cepat dan sering. Hal ini menyebabkan keterlambatan antara harga di luar rantai dan di dalam rantai, menciptakan kesempatan bagi front-runner untuk mengeksploitasi.

Tidak semua protokol stablecoin khawatir tentang risiko front-running yang timbul dari keterlambatan oracle. Dalam kasus DAI Maker, keterlambatan oracle seringkali menguntungkan protokol. Misalnya, jika seorang pengguna melihat bahwa posisinya akan dilikuidasi dalam pembaruan oracle berikutnya karena penurunan harga, maka dia termotivasi untuk menyetor lebih banyak dana ke vault, meningkatkan kesehatan protokol dan rasio agunan.

Synthetix, yang memungkinkan pertukaran nilai berbasis oracle antara aset sintetis dan agunan, adalah contoh sempurna dari protokol stablecoin yang menghadapi tantangan front-running. Pos blog mereka menguraikan sejarah panjang protokol dengan front-running, termasuk beberapa serangan masa lalu yang mereka alami.

Sama seperti Synthetix, Angle memungkinkan pertukaran aset pada nilai oracle dengan nol penyusutan harga. Akibatnya, Angle menghadapi isu front-running yang sama. Tim inti Angle telah melakukan upaya signifikan untuk mengurangi front-running. Dua perbaikan kunci telah diimplementasikan: desain oracle khusus dan struktur biaya dinamis. Dalam artikel ini, kami akan menjelaskan desain oracle Angle dan alasan di baliknya.

Pembaruan Oracle Front-Running: Sebuah Contoh

Sebelum mempelajari solusi Angle, mari kita mencoba memahami bagaimana front-running dapat merugikan protokol. Kita akan mempertimbangkan contoh di mana ETH diterima sebagai jaminan untuk mendukung stablecoin Angle.

Tidak Ada Biaya Transaksi

Misalkan seorang penyerang sedang memantau harga ETH di luar rantai dan melihat bahwa oracle Chainlink akan memperbarui data di rantai ke harga yang lebih tinggi (dari p0 menjadi p1, di mana p0 < p1). Penyerang ini dapat mengirim transaksi untuk membakar x stablecoin dengan harga p0 sebagai imbalan x/p0 senilai ETH. Kemudian, setelah harga diperbarui menjadi p1, penyerang dapat menjualnya kembali ke protokol, menghasilkan keuntungan:

Karena transaksi front-running ini pada pembaruan oracle, bagian keuntungan ini diambil dari cadangan protokol. Jika kita atur x = 100 ETH dan p1 = 1.01 * p0 (kenaikan harga 1%), ini berarti penyerang telah mengambil 1 ETH dari cadangan protokol.

Dengan Biaya Transaksi

Untungnya, biaya transaksi yang meningkat dapat meredakan masalah ini, karena hal tersebut menggerus keuntungan para pengejar keuntungan dan mengurangi peluang.

Sebagai contoh, jika biaya transaksi pencetakan dan pembakaran konstan dan sama dengan f, seorang penyerang yang membakar x stablecoin pada p0 dan kemudian menjual kembali kepada protokol untuk ETH pada p1 akan memiliki keuntungan akhir berikut:

Dibandingkan dengan skenario sebelumnya, biaya mengurangi keuntungan:

Ketika biaya transaksi adalah f = 0,3% dan mengikuti contoh di atas, keuntungan penyerang sekarang hanya 0,39 ETH.

Dengan Biaya Transaksi dan Dua Solusi Oracle

Untuk lebih mengurangi peluang ini, kita dapat mengandalkan oracle sekunder untuk menyediakan dua sumber harga potensial: pC (harga Chainlink) dan pU (harga Uniswap). Protokol dapat menggunakan harga yang paling menguntungkan (harga lebih rendah saat pencetakan, saat membeli token pengguna, dan harga lebih tinggi saat membakar, saat menjual ETH ke pengguna), sehingga peluang front-running menjadi kurang menarik.

Bayangkan seorang pedagang mencoba untuk mendapatkan keuntungan dari kesempatan yang sama seperti di atas, dengan asumsi pC0 < pC1.

Di sisi lain, kita dapat mempertimbangkan bahwa pU konstan dan lebih dekat dengan pC0. Oleh karena itu, seperti yang akan kita lihat nanti, karena desain harga rata-rata tertimbang waktu (TWAP) Uniswap, pU cenderung tertinggal di belakang pC.

Dalam hal ini, seorang penyerang yang berusaha untuk mendapatkan keuntungan dari peluang potensial akan membeli token dari protokol pada pC0 (membakar stablecoin) dan menerima x(1-f)/pC0 senilai ETH. Kemudian, mereka akan menjualnya lagi pada pU1 dengan harga lebih tinggi. Hal ini akan mengakibatkan kerugian bagi penyerang:

Jika kita tetap menggunakan angka dari contoh tersebut, penyerang pada akhirnya akan kehilangan 0.6 ETH dalam transaksi ini.

Solusi Sudut

Desain Angle ditujukan khusus untuk menghilangkan risiko transaksi front-running. Oleh karena itu, protokol akan menerapkan mekanisme yang sangat mirip dengan contoh yang dibahas di atas. Pada bagian ini, kita akan menjelajahi opsi eksisting yang potensial lebih detail, berfokus pada spesifik desain yang kami rencanakan untuk menerapkan dan menganalisis pilihan kami terhadap jendela waktu TWAP.

Opsi

Solusi oracle utama yang dapat cocok dengan kasus penggunaan Angle adalah:

  • Tautan rantai
  • Uniswap V3 TWAP
  • Pakan Pembuat

Chainlink adalah pilihan pertama yang jelas: ini adalah solusi oracle terdesentralisasi yang banyak digunakan yang menyediakan berbagai sumber data yang mencakup berbagai aset. Harga berasal dari berbagai sumber dan disalurkan melalui jaringan terdesentralisasi, memastikan bahwa data tersebut dapat diandalkan, dapat diakses, dan sulit untuk dimanipulasi. Namun, beberapa sumber data biasanya hanya diperbarui setelah perubahan harga “signifikan” (seperti perubahan 0,5% dalam ETH/USD) atau setelah jangka waktu tertentu, yang berarti bahwa harga Chainlink selalu tertunda dibandingkan dengan harga pasar aktual. Oleh karena itu, pembaruan harga Chainlink mungkin di-front-run dengan memeriksa harga off-chain atau mempool.

Harga Rata-Rata Terbobot Waktu (TWAP) Uniswap V3 adalah solusi oracle yang jelas dan banyak digunakan lainnya. TWAP dapat dikueri dari kontrak Uniswap untuk mendapatkan harga rata-rata terbobot waktu token dalam sebuah pool selama periode waktu tertentu, mulai dari beberapa detik hingga 9 hari. Harga dihitung berdasarkan harga rata-rata dua token dalam pool selama periode yang ditentukan. Hal ini membuat manipulasi TWAP memerlukan jumlah modal yang besar dan periode waktu yang lebih lama, yang tidak efisien dalam kebanyakan kasus.

Meskipun demikian, karena TWAP adalah harga rata-rata selama blok-blok sebelumnya, mereka umumnya mengalami keterlambatan dibandingkan dengan harga di luar rantai waktu nyata atau bahkan sumber harga Chainlink. Jika digunakan sendirian, mereka tidak akan cukup untuk melindungi protokol dari transaksi front-running.

Selain itu, karena TWAP hanya melaporkan harga pasangan token on-chain, mereka tidak dapat memenuhi tujuan protokol untuk memberikan akses ke aset yang tidak diwakili di on-chain (dan oleh karena itu tidak ada di kolam Uniswap), seperti stablecoin yang didukung forex.

Menggunakan Oracle Maker bisa menjadi pilihan lain untuk Angle, tetapi ini akan berarti harus mempercayai MakerDAO dan melalui proses tata kelola untuk mendapatkan akses ke data harga. Sumber harga juga akan terbatas pada yang digunakan oleh Maker, yang tidak mencukupi bagi kami karena kami bertujuan untuk mengakses nilai tukar forex.

Desain Angle: Chainlink + UniV3 TWAP = 💪

Dengan ini diingatkan, diputuskan untuk menggabungkan oracle Chainlink Angle Protocol dengan 10-menit Uni V3 TWAP. Ini memungkinkan harga paling adil yang mungkin pada setiap waktu sambil melindungi protokol dari serangan front-running.

Secara umum, kontrak Angle akan membandingkan harga dari kedua saluran dan menggunakan harga yang paling menguntungkan bagi protokol. Dengan desain ini, front-running protokol menjadi lebih kompleks karena untuk mengeksploitasi nilai tukar protokol, seorang penyerang harus memanipulasi atau front-run kedua orakel.

Secara khusus, kontrak kami akan mengambil harga terbaik untuk semua pasangan aset volatile/stablecoin antara Chainlink dan Uniswap dan menggunakan oracle forex Chainlink untuk mengonversi harga ke mata uang fiat yang diperlukan. Setiap pasangan jaminan/stablecoin akan memiliki kontrak oracle yang didedikasikan dengan sumber harga independen sendiri.

Bagaimana cara kerjanya?

Sebagai contoh, anggap seorang pengguna ingin melakukan perdagangan pasangan ETH/agEUR. Kontrak kami perlu mengambil harga untuk pasangan ETH/USD dan USD/EUR. Ini akan menyimpan harga terbaik untuk ETH/USD dari Chainlink dan TWAP 10 menit dari kolam ETH/USDC UniV3. Kemudian, itu akan mengambil harga forex USD/EUR dari Chainlink.

Contoh: Uniswap ETH/USDC TWAP: 1900 USD (protokol mengasumsikan USDC umumnya mempertahankan peg-nya, yaitu 1 USDC setara dengan 1 USD) Harga ETH Chainlink: 1850 USD Harga USD Chainlink: 1.16 EUR

Jika pengguna ingin mencetak agEUR dalam hal ini, protokol akan menggunakan harga ETH/USD yang lebih rendah, yaitu harga Chainlink sebesar 1850 USD per ETH. Sebaliknya, jika pengguna ingin membakar agEUR untuk wETH dalam situasi yang sama, protokol akan menggunakan harga yang lebih tinggi, yaitu TWAP ETH/USDC Uni sebesar 1900. Dalam kedua kasus tersebut, protokol akan menggunakan nilai USD/EUR Chainlink sebesar 1,16 untuk mengonversi ETH/USD ke ETH/EUR.

Demikian pula, protokol akan menggunakan harga tertinggi bagi pengguna yang ingin membuka kontrak perpetual, dan harga terendah bagi mereka yang ingin menutupnya.

Lebih umum:

  1. Kontrak pengguna yang membutuhkan harga akan memanggil kontrak oracle yang relevan.
  2. Bergantung pada jenis transaksi, kontrak orakel dapat membaca kutipan dari UniV3 TWAP dan Chainlink, atau hanya dari Chainlink (misalnya, untuk pertukaran stablecoin ke stablecoin), dan mengembalikannya ke kontrak utama.
  3. Tergantung pada operasi yang sedang dilaksanakan (pencetakan, pembakaran, pembukaan, atau penutupan), kontrak terkait akan tetap mempertahankan harga terbaik untuk protokol dan melaksanakan transaksi.

Memilih Jendela Waktu TWAP Uni V3

Kontrak Angle akan menggunakan jendela waktu 10 menit untuk TWAP. Pilihan ini dibuat setelah pertimbangan matang, karena jendela waktu yang berbeda dapat menghasilkan struktur harga yang berbeda secara signifikan.

Perbedaan Antara Jendela Waktu

Dalam kasus Angle, di satu sisi, jendela waktu harus cukup lama untuk memberikan cukup keterlambatan antara harga protokol dan harga spot. Ini memungkinkan spread yang lebih besar antara harga pencetakan dan pembakaran selama fluktuasi harga, terutama ketika risiko front-running pada Chainlink berlipat ganda. Selain itu, semakin lama jendela waktu, semakin sulit untuk memanipulasi harga TWAP, karena observasi terbaru memiliki dampak yang lebih kecil pada harga.

Di sisi lain, protokol masih harus menawarkan pengguna penawaran yang adil dan terkini: menggunakan jendela waktu yang terlalu luas akan menciptakan selisih harga yang terlalu besar antara protokol dan harga pasar saat ini, sementara menggunakan jendela waktu yang terlalu sempit tidak akan memberikan perbedaan harga yang diinginkan.

Bandikan TWAP 10 menit dan 60 menit dengan umpan harga Chainlink

Untuk memberi Anda pemahaman mengapa kami pada akhirnya memilih jendela waktu 10 menit, berikut adalah perbandingan antara 10 menit dan 60 menit ETH/USDC TWAPs dan harga ETH/USD Chainlink serta harga penutupan Coinbase.

Anda dapat melihat bagaimana tingkat atas dan bawah yang digunakan oleh protokol ketika pengguna melakukan pencetakan/pencetakan dan pembakaran/pembukaan bergerak antara harga paling menguntungkan dari Chainlink dan TWAP Uniswap selama transisi harga.


Meskipun blok TWAP 60 menit sering memberikan harga yang jauh dari pasar, TWAP 10 menit memberikan buffer yang bermanfaat untuk sumber harga Chainlink, menjaga harga cukup dekat dengan pasar.

Perlu dicatat bahwa, seperti yang terlihat dalam grafik pertama, semakin besar volatilitasnya, semakin besar perbedaan harga antara harga Chainlink dan Uniswap. Sebaliknya, ketika harga tetap relatif stabil dari waktu ke waktu, sumber harga dari Uniswap dan Chainlink lebih dekat satu sama lain. Menggunakan TWAP sebagai perlindungan tambahan terhadap front-running pada dasarnya merupakan cara untuk secara dinamis menagih lebih banyak biaya selama periode volatilitas tinggi, karena risiko front-running lebih besar akibat keterlambatan dalam oracles on-chain. Biaya dari biaya efektif yang lebih tinggi ini adalah bahwa ini mengurangi kemampuan pedagang arbitrase untuk secara langsung menyesuaikan kembali stablecoin dari protokol. Dalam kebanyakan kasus, harga Uniswap dan Chainlink akan sangat mirip, dan pengguna hampir tidak akan memperhatikan penggunaan dua solusi oracle. Namun, selama periode volatilitas tinggi, ketika protokol berisiko front-running karena perbedaan harga yang signifikan antara harga Chainlink saat ini dan masa depan, harga protokol akan berbeda, melindunginya dari front-running.

Fokus pada Pemulihan/ Pengembalian Biaya Synthetix

Penelitian orakel Angle sangat terinspirasi oleh diskusi tata kelola Synthetix dan pos blog terkait tentang front-running. Dalam penelitian kami, kami juga menemui opsi lain yang mereka implementasikan pada Februari 2020, pemulihan/pengembalian biaya, yang akhirnya menjadi solusi sementara.

Apa yang mereka lakukan adalah menambahkan periode menunggu ke transaksi, di mana pengguna tidak dapat memanipulasi Synth yang ingin mereka gunakan. Selama periode ini, orakel dapat memeriksa apakah transaksi tersebut terpengaruh oleh inkonsistensi, khususnya apakah ada perbedaan harga antara waktu eksekusi dan akhir periode menunggu. Jika ada perbedaan harga, perbedaan tersebut harus dibayar oleh pengguna atau protokol kepada pihak lain (protokol atau pengguna), atau akan diselesaikan dalam transaksi berikutnya dengan Synthetix.

Solusi ini sangat efektif dalam mengurangi front-running, tetapi mereka harus memperpanjang periode menunggu dan menaikkan biaya, yang menciptakan pengalaman pengguna yang sangat buruk bagi semua pedagang. Hal ini juga mencegah Synth untuk berintegrasi dengan protokol lain dalam banyak kasus penggunaan. Dalam SIP-120, mereka mengganti solusi ini dengan rencana yang menambah penggunaan orakel TWAP untuk transaksi besar.

Kesimpulan

Desain orakel khusus Angle memiliki dua dampak utama pada protokol:

Penyerang perlu memanipulasi dua pasar untuk menipu protokol, yang secara signifikan mengurangi risiko perdagangan front-running yang sukses.

Selama periode stres pasar, protokol kemungkinan tidak akan menawarkan pengguna harga terbaik yang mungkin.

Dampak terakhir telah dibahas di forum tata kelola Fei. Karena menyediakan pelaksanaan perdagangan terbaik bukan tujuan inti protokol, kami percaya bahwa resistensi front-running lebih penting untuk memastikan keamanan protokol. Di pasar sekunder selama periode volatilitas tinggi, pelaksanaan perdagangan yang lebih baik akan ditawarkan.

Tujuan kami dalam proyek Angle adalah merancang protokol stablecoin yang didukung sepenuhnya dan efisien. Untuk mencapai hal ini, diperlukan pertimbangan banyak aspek dari protokol untuk memastikan bahwa protokol tersebut tidak dapat ditipu ke posisi yang merugikan, salah satunya adalah resistensi front-running. Hal ini sangat penting karena stabilitas stablecoin terdesentralisasi on-chain yang bergantung pada orakel bergantung pada kualitas orakel mereka.

Menambahkan umpan harga sekunder dalam bentuk TWAP dapat membantu protokol mengurangi dampak buruk potensial dari volatilitas pasar yang tinggi dan peluang front-running yang muncul selama saat-saat tersebut.

Terakhir, penting untuk dicatat bahwa solusi oracle ini mempertahankan fleksibilitas dan skalabilitas. Di satu sisi, tata kelola Angle dapat memberikan suara dan memperbarui kontrak oraclenya kapan saja. Di sisi lain, orakel dapat diciptakan untuk feed harga apa pun yang didukung oleh Chainlink. Ini adalah tingkat dukungan minimum yang diperlukan untuk mencapai visi Angle dalam membawa aset keuangan ke dalam rantai dengan cara yang efisien secara modal!

Penafian:

  1. Artikel ini dicetak ulang dari [komunitas Denglink]. Semua hak cipta adalah milik penulis asli [Sudut]. Jika ada keberatan terhadap cetak ulang ini, silakan hubungi Gate Belajartim, dan mereka akan menanganinya dengan cepat.
  2. Penyangkalan Tanggung Jawab: Pandangan dan opini yang terdapat dalam artikel ini semata-mata merupakan milik penulis dan tidak merupakan nasihat investasi apa pun.
  3. Terjemahan artikel ke dalam bahasa lain dilakukan oleh tim Belajar gate. Kecuali disebutkan, menyalin, mendistribusikan, atau melakukan plagiarisme terhadap artikel yang diterjemahkan dilarang.
ابدأ التداول الآن
اشترك وتداول لتحصل على جوائز ذهبية بقيمة
100 دولار أمريكي
و
5500 دولارًا أمريكيًا
لتجربة الإدارة المالية الذهبية!