Ingin mendapat untung dari dunia Defi? Lihat Pinjaman Flash dan The Graph digabungkan! Dengan menggunakan alat pasar terdesentralisasi ini, Anda dapat membuka dunia arbitrase segitiga yang menguntungkan hanya dengan beberapa klik. Tapi harus mulai dari mana? Tentu saja di sini! Kami akan mempelajari seluk beluk strategi ini dan memberi Anda materi yang cukup untuk memulai.

rencana

  • Menggunakan The Graph untuk mengindeks data pasar terdesentralisasi untuk mainnet Ethereum

  • Bangun algoritme untuk menemukan dan memeriksa peluang arbitrase segitiga

  • Bangun kontrak cerdas dengan pinjaman kilat untuk mengeksekusi perdagangan dengan peluang arbitrase segitiga yang menguntungkan.

prasyarat

  • Terminologi Web3 (kolam likuiditas, DEX, AMM, dll.)

  • Uniswaps CFMM (Pembuat Pasar Fungsi Konstan)

  • pengetahuan tentang grafik

  • Pengetahuan tentang kontrak pintar dan pinjaman kilat

Jika Anda sudah benar-benar memahami prasyarat di atas, Anda dapat melewati bagian berikutnya. Jika Anda memerlukan penyegaran singkat, kami akan membahas beberapa hal mendasar sebelum mulai membuat algoritme.

Apa itu arbitrase segitiga?

Arbitrase segitiga adalah akibat dari perbedaan harga, yang terjadi ketika nilai tukar tiga mata uang tidak sesuai. Mengenai Defi (keuangan terdesentralisasi), perbedaan ini dapat ditemukan antara tiga kumpulan likuiditas (LP) terpisah yang disimpan di DEX (bursa terdesentralisasi). Kami akan fokus pada tiga DEX terpisah, yang akan memperluas jaringan dan kemampuan kami untuk menemukan diferensiasi yang lebih besar di pasar Defi.

Pasar yang akan kami fokuskan

Uniswap V2, Uniswap V3, dan Sushiswap semuanya merupakan DEX. Keduanya serupa dalam banyak hal, tetapi dalam jangka panjang, keduanya bermanfaat bagi kami karena tiga alasan.

  • Mereka semua adalah AMM (pembuat pasar otomatis) yang berbagi CFMM (pembuat pasar fungsi konstan) yang sama.

  • Keduanya memiliki pola subgraf serupa yang dihosting di protokol The Graphs

  • Setiap DEX memiliki cara yang cepat dan efisien untuk melakukan pinjaman kilat.

Jenis CFMM apa yang kami gunakan?

Mari kita tinjau CFMM Uniswaps dengan cepat. Menurut kertas putih Uniswap, rumus berikut secara otomatis menetapkan harga dalam LP transaksi tertentu.

CFMM

  • Ra adalah jumlah cadangan Token A

  • Rb adalah jumlah cadangan Token B

  • Δb adalah kuantitas input (apa yang Anda miliki)

  • Δa adalah kuantitas keluaran (apa yang Anda terima)

  • r adalah biaya yang sudah termasuk (setiap LP memiliki biaya transaksi, biasanya 3%), dalam hal ini r direpresentasikan sebagai r — 3%

  • Terakhir, k dapat diperoleh sebagai hasil kali dua cadangan: Ra * Rb = k

Dengan menjaga total cadangan tetap konstan, kita dapat dengan mudah menguraikan rumus ini dan menentukan berapa banyak token yang akan kita terima dalam suatu transaksi. Kuis pop!

Asumsikan bahwa dalam kumpulan likuiditas, Token A memiliki cadangan token sebesar 5 dan Token B memiliki cadangan token sebesar 20. Jika pedagang Ryan ingin menukarkan 1 Token A miliknya dengan Token B, berapa banyak token yang diterima Ryan?

Dengan memecah persamaan di atas, kita dapat mengganti persamaan berikut:

Selanjutnya, kita dapat menyederhanakan persamaan tersebut dan menyelesaikan Δb untuk mendapatkan besaran akhir. Tapi pertama-tama, mari kita hilangkan biaya penukaran dari jumlah Ryan, yang akan membuat jumlah Ryan menjadi 0,997.

Terakhir, Ryans akan menerima 3,324996 Token B dan meninggalkan kumpulan likuiditas dengan jumlah cadangan token yang baru. Jika kita menerapkan kembali rumus CFMM, kita melihat bahwa hasilnya tidak berubah. Itu sebabnya disebut pembuat pasar fungsi konstan.

Jadi sekarang kita telah meninjau cara menghitung jumlah token yang akan kita terima pada perdagangan tertentu, yang kita perlukan hanyalah data kumpulan likuiditas.

Bagaimana cara kami mendapatkan datanya?

Memperkenalkan The Graph, protokol pengindeksan sumber terbuka dan terdesentralisasi untuk data blockchain. Pengembang dapat membangun dan menerbitkan berbagai API yang disebut "subgraf" yang menjalankan kueri di GraphQL. Saat ini, sebagian besar DEX tidak mendukung permintaan API tradisional. Sebaliknya, sebagian besar DEX memiliki subgraf yang dirancang untuk menanyakan data yang ditemukan di platform mereka menggunakan API GraphQL standar.

Untuk menyiapkannya, lakukan permintaan postingan Axios berikut ke subgraf Uniswap V3,

Parameter ini akan mengambil kueri GraphQL untuk mengindeks data blockchain di subgraf Uniswap V3. Jangan khawatir, Anda tidak perlu membuat kueri ini sepenuhnya sendiri. Anda dapat melompat ke taman bermain DEX dan menguji pertanyaan Anda sendiri. Gunakan kueri subgraf Uniswap V3 berikut.

Ini mengindeks protokol Uniswap V3s untuk 1000 kumpulan likuiditas. Respons yang dihasilkan akan berupa array n objek, diurutkan berdasarkan volume perdagangan masing-masing kumpulan dalam jangka waktu tertentu (perhatikan bahwa beberapa kumpulan likuiditas mungkin tidak memiliki perdagangan).

Apa itu pinjaman kilat?

Mirip dengan pinjaman tradisional, pinjaman kilat adalah dana pinjaman yang diharapkan akan dilunasi pada akhirnya. Namun, keduanya dijalankan dengan identitas yang berbeda:

  • Itu adalah pinjaman tanpa jaminan

  • Mereka beroperasi melalui kontrak pintar

  • mereka terjadi seketika

I. Pinjaman cepat sebagai pinjaman tanpa jaminan

Berbeda dengan pinjaman tradisional, pinjaman kilat adalah pinjaman tanpa jaminan, artinya tidak diperlukan agunan. Karena pinjaman cepat tidak memiliki jaminan, maka pinjaman ini mempunyai risiko tinggi bagi pemberi pinjaman. Namun, pinjaman kilat memiliki seperangkat aturan ketat dalam kontrak pintar. Aturan ketat ini adalah keamanan yang diberikan, singkatnya akan melanjutkan transaksi jika terjadi kesalahan.

dua. Pinjaman Kilat dalam Kontrak Cerdas Pada dasarnya, kontrak pintar dapat didefinisikan sebagai skrip elektronik yang dijalankan secara otomatis berdasarkan peristiwa ketika skenario tertentu terjadi.

Namun, tidak seperti membuat kontrak pintar di mana Anda dapat menentukan persyaratannya sendiri, pinjaman kilat memiliki aturan yang telah ditentukan sebelumnya. Salah satu ketentuannya adalah peminjam harus melunasi seluruh pinjamannya sebelum kesepakatan ditutup. Misalnya, ketika suatu kesepakatan direncanakan, jika dana tidak dikembalikan seluruhnya kepada pemberi pinjaman awal pada akhir masa pinjaman, maka pinjaman tersebut akan dianggap batal dan kesepakatan tersebut akan dibatalkan. Sisi negatif dari hasil ini adalah biaya transaksi (biaya gas) dan biaya transaksi (biaya swap) yang dikeluarkan.

3. Pinjaman kilat bersifat instan

Mendapatkan persetujuan untuk pinjaman konvensional seringkali merupakan proses yang panjang. Peminjam harus menyerahkan dokumen, menunggu persetujuan dan membayar kembali pinjaman yang bisa memakan waktu berhari-hari, berbulan-bulan atau bertahun-tahun.

Pinjaman kilat dieksekusi secara instan. Kontrak pintar pinjaman harus dipenuhi selama transaksi peminjamannya. Oleh karena itu, peminjam perlu menghubungi kontrak pintar lainnya untuk melakukan transaksi instan menggunakan dana pinjaman.