Pinjaman dari orang asing tanpa mengharuskan pengguna mengorbankan uang sendiri? Ada kemungkinan, dengan satu syarat: peminjam harus melunasinya dalam transaksi yang sama dengan transaksi saat dana dikeluarkan. Kedengarannya aneh, bukan? Apa yang dapat Anda lakukan dengan pinjaman yang harus dilunasi beberapa saat kemudian?
Nah, ternyata Anda bisa memanggil smart contract dalam transaksi yang sama tersebut. Jika Anda dapat menghasilkan lebih banyak uang menggunakan pinjaman, Anda dapat mengembalikan uang tersebut dan mengantongi laba dalam sekejap mata. Namun, tidak semudah itu. Baca terus untuk mengetahui lebih lanjut mengenai tambahan terbaru ke ekosistem DeFi ini.
Ada banyak hiruk-pikuk dan kemeriahan di dunia mata uang kripto karena ditemukannya sistem keuangan, mirip dengan sistem yang lama, tetapi yang ini di blockchain. Orang yang skeptis mungkin tidak setuju dengan gagasan tersebut, namun, ada beberapa infrastruktur menarik yang benar-benar sedang dibangun di sektor ini.
Memang, seluruh tujuan DeFi (atau keuangan terdesentralisasi) adalah untuk menghidupkan ekosistem keuangan yang bersifat permissionless, terdesentralisasi, dan transparan di atas jaringan blockchain. Mata uang kripto membuktikan bahwa ini bisa dilakukan dengan uang. Setiap hari, sistem seperti Bitcoin digunakan untuk mentransfer nilai di seluruh dunia.
Gelombang baru teknologi DeFi menawarkan lapisan tambahan. Hari ini, Anda dapat mengambil pinjaman yang didukung kripto, menukar aset digital tanpa harus mempercayai lawan transaksi, dan menyimpan kekayaan dalam koin yang meniru harga mata uang fiat.
Dalam artikel ini, kita akan membahas satu kategori pinjaman –pinjaman kilat atau flash loan. Ini merupakan sarana tambahan yang benar-benar unik dalam keuangan desentralisasi yang terus bertumbuh.
Bagaimana cara kerja pinjaman biasa?
Kebanyakan dari kita sudah memahami cara kerja pinjaman biasa. Namun, kali ini kita akan mengulangnya agar dapat membuat perbandingan nantinya.
Pinjaman tanpa jaminan
Pinjaman tanpa jaminan merupakan pinjaman di mana Anda tidak perlu memberikan jaminan apa pun. Dengan kata lain, tidak ada aset yang Anda setujui untuk diambil oleh pemberi pinjaman, jika Anda tidak melunasi pinjaman tersebut. Misalnya, Anda sangat menginginkan rantai emas senilai $3.000 dengan logo Binance yang menggantung. Anda tidak memiliki uang tunai yang tersedia saat ini, tetapi minggu depan ada.
Anda berbicara dengan Bob, seorang teman baik. Anda menjelaskan kepadanya betapa Anda sangat menginginkan rantai itu, dengan meyakinkannya bahwa rantai tersebut bisa meningkatkan kemujuran perdagangan setidaknya 20%, jadi, ia setuju untuk meminjamkan uang kepada Anda. Dengan syarat, tentu saja, Anda membayarnya segera setelah Anda menerima gaji.
Bob adalah teman dekat, jadi dia tidak memanfaatkan keadaan saat meminjamkan $3.000 kepada Anda. Tidak semua orang mau melakukannya – tetapi, mengapa Bob melakukannya? Dia meyakini bahwa Anda akan membayarnya kembali. Orang lain mungkin tidak mengenal Anda, jadi mereka tidak tahu apakah Anda akan melunasi utang atau malah membawa kabur uang mereka.
Biasanya, pinjaman tanpa jaminan dari institusi memerlukan semacam pemeriksaan kredit. Mereka akan melihat rekam jejak Anda (skor kredit) untuk mengukur kemampuan melunasi. Jika mereka melihat bahwa Anda telah mengambil beberapa pinjaman dan melunasinya tepat waktu, mereka mungkin berpikir ya, orang ini dapat diandalkan. Mari kita berikan dia pinjaman.
Pada tahap ini, institusi memberikan uang kepada Anda, tetapi bantuan tersebut tentu saja tidak tanpa pamrih. Ada tingkat bunga yang menjadi kewajiban tambahan. Untuk mendapatkan uang sekarang, Anda harus menerima kenyataan bahwa Anda akan melunasi dalam jumlah yang lebih tinggi nantinya.
Anda mungkin tidak asing dengan model ini jika Anda menggunakan kartu kredit. Jika tidak membayar tagihan tepat waktu, akan dikenakan bunga sampai Anda melunasi seluruh utang (dan biaya tambahan).
Pinjaman dengan jaminan
Terkadang skor kredit yang baik pun tidak cukup. Meskipun Anda telah melunasi semua pinjaman tepat waktu selama beberapa dekade, Anda akan kesulitan meminjam uang dalam jumlah besar hanya berdasarkan kelayakan kredit. Dalam kasus ini, Anda perlu memberikan jaminan.
Jika Anda meminta pinjaman dalam jumlah besar kepada seseorang, orang tersebut akan menerima risiko yang cukup berat. Untuk sedikit menurunkan risikonya, Anda akan dituntut mengorbankan sesuatu. Aset Anda – bisa apa saja mulai dari perhiasan hingga properti – akan menjadi milik pemberi pinjaman jika Anda gagal melunasinya tepat waktu. Idenya di sini adalah bahwa pemberi pinjaman kemudian dapat memulihkan sebagian dari nilai yang telah hilang. Singkatnya, itulah jaminan.
Misalkan Anda menginginkan mobil seharga $50.000. Bob mempercayai Anda, tetapi dia tidak ingin memberikan uang dalam bentuk pinjaman tanpa jaminan. Sebaliknya, dia meminta Anda untuk menyediakan jaminan – koleksi perhiasan Anda. Sekarang, jika Anda gagal melunasi pinjaman, Bob dapat menyita koleksi tersebut dan menjualnya.
Bagaimana cara kerja flash loan?
Sebut saja flash loan atau pinjaman kilat sebagai pinjaman tanpa jaminan, semata-mata karena Anda tidak memberikan jaminan apa pun. Tetapi Anda juga tidak perlu melewati pemeriksaan kredit atau semacamnya. Cukup bertanya apakah Anda dapat meminjam $50.000 dalam ETH, kemudian pemberi pinjaman berkata ya! Ini, ambil! dan Anda pergi.
Bagaimana bisa? Nah, Flash loan harus dilunasi dalam transaksi yang sama. Mungkin ini terdengar tidak intuitif sama sekali, tapi hanya karena kita terbiasa dengan format transaksi tradisional di mana dana berpindah dari satu pengguna ke pengguna lainnya. Seperti saat Anda membayar barang atau jasa, atau menyetor token ke bursa.
Namun, jika Anda mengetahui sedikit mengenai Ethereum, Anda akan paham bahwa platformnya cukup fleksibel – itulah sebabnya beberapa orang menyebutnya sebagai uang yang dapat diprogram. Dalam kasus flash loan, Anda dapat menganggap "program" transaksi Anda terdiri dari tiga bagian: menerima pinjaman, melakukan sesuatu dengan pinjaman tersebut, melunasi pinjaman. Dan itu semua terjadi secepat kilat!
Coba kita kaitkan dengan keajaiban teknologi blockchain. Transaksi dikirimkan ke jaringan, meminjamkan dana tersebut kepada Anda untuk sementara waktu. Anda dapat melakukan beberapa hal pada transaksi bagian kedua. Lakukan apa pun yang Anda inginkan, yang penting dana kembali tepat waktu di bagian ketiga. Jika tidak, jaringan akan menolak transaksi tersebut, artinya pemberi pinjaman mendapatkan kembali dananya. Sebenarnya, sejauh menyangkut blockchain, pemberi pinjaman selalu memiliki dana tersebut.
Itu menjelaskan mengapa pemberi pinjaman tidak membutuhkan jaminan dari Anda. Kontrak untuk melunasi diterapkan oleh kode.
Tapi, apa manfaatnya?
Pada tahap ini, Anda mungkin bertanya-tanya apa gunanya mengambil flash loan. Jika semuanya terjadi dalam satu transaksi, Anda tidak bisa benar-benar membeli Lambo, bukan?
Nah, sebenarnya bukan itu tujuannya di sini. Mari berfokus pada bagian kedua dari transaksi yang dijelaskan sebelumnya, di mana Anda bisa melakukan apa saja dengan pinjaman tersebut. Idenya adalah untuk memasukkan dana ke dalam smart contract (atau rantai kontrak), mencari laba, dan melunasi pinjaman awal pada akhir transaksi. Seperti yang Anda lihat, inti dari flash loan adalah laba.
Ada beberapa tempat di mana ini bisa berguna. Jelas, saat ini Anda tidak dapat melakukan hal-hal off-chain, tetapi Anda dapat memanfaatkan protokol DeFi untuk menghasilkan lebih banyak uang menggunakan pinjaman tersebut. Aplikasi paling populer adalah arbitrase, di mana Anda memanfaatkan perbedaan harga di berbagai tempat perdagangan.
Misalkan sebuah token diperdagangkan seharga $10 di DEX A, dan $10,50 di DEX B. Dengan asumsi biaya nol, membeli sepuluh token di DEX A sebelum menjualnya kembali di DEX B akan menghasilkan laba $5. Aktivitas semacam ini memang tidak akan menghasilkan pulau pribadi dalam waktu dekat, tetapi Anda dapat melihat bagaimana ini bisa menghasilkan uang dengan memperdagangkan volume yang besar. Jika Anda membeli 10.000 token seharga $100.000 dan berhasil menjualnya di harga $105.000, Anda akan mendapatkan laba $5.000.
Jika Anda memperoleh flash loan (melalui protokol Aave, misalnya), Anda dapat memanfaatkan peluang arbitrase seperti ini di bursa terdesentralisasi. Berikut adalah contoh kasarnya:
Ambil pinjaman $10.000
Gunakan pinjaman tersebut untuk membeli token di DEX A
Jual kembali token ke DEX B
Lunasi pinjaman (plus bunga)
Simpan labanya
Semua dalam satu transaksi! Namun secara realistis, biaya untuk bertransaksi, dikombinasikan dengan persaingan yang tinggi, tingkat bunga, dan slippage, membuat laba arbitrase sangat tipis. Anda perlu menemukan cara untuk mempermainkan perbedaan harga agar aktivitas tersebut menguntungkan. Jika Anda bersaing dengan ribuan pengguna lain yang mencoba melakukan hal yang sama, Anda tidak akan beruntung.
Serangan flash loan
Mata uang kripto, termasuk juga DeFi, merupakan bidang yang sangat eksperimental. Ketika begitu banyak uang yang dipertaruhkan, hanya masalah waktu sebelum ditemukan kerentanan-kerentanan. Di Ethereum, kita telah melihat contohnya, peretasan DAO 2017 yang ikonik. Sejak saat itu, banyak protokol terkena serangan 51% demi keuntungan finansial.
Di tahun 2020, dua serangan flash loan tingkat tinggi membuat para penyerang meraup hampir $1.000.000. Kedua serangan tersebut mengikuti pola yang sama.
Yang pertama, peminjam mengambil flash loan ether di dYdX (DApp lending). Kemudian, membagi pinjaman itu dan mengirimkannya ke dua platform lending lainnya: Compound dan Fulcrum.
Di Fulcrum (dibangun di atas protokol bZx), penyerang menggunakan sebagian pinjaman untuk membuka posisi short terhadap ETH menggunakan wrapped Bitcoin (WBTC), yang berarti bahwa Fulcrum sekarang memperoleh WBTC. Informasi ini diteruskan ke protokol DeFi lainnya, Kyber, yang mengisi order di Uniswap, DEX berbasis Ethereum yang populer. Namun, karena likuiditas Uniswap yang rendah, harga WBTC naik secara signifikan, yang berarti Fulcrum membayar lebih untuk WBTC yang dibelinya.
Pada saat yang sama, penyerang mengambil Compound loan WBTC menggunakan sisa pinjaman dari dYdX. Harganya melonjak, mereka menjual WBTC yang dipinjam di Uniswap dan menghasilkan laba yang lumayan besar. Terakhir, mereka melunasi pinjaman dari dYdX dan mengantongi sisa ETH.
Sepertinya ini merupakan pekerjaan yang rumit, dan bahkan mungkin sulit untuk diikuti. Intinya adalah bahwa penyerang memanfaatkan lima protokol DeFi yang berbeda untuk memanipulasi pasar. Hebatnya, semua ini terjadi dalam waktu yang sama dengan waktu konfirmasi flash loan awal.
Anda dapat mengidentifikasi di mana masalahnya? Ada dalam protokol bZx yang digunakan oleh Fulcrum. Dengan memanipulasi pasar, penyerang dapat mengelabui protokol yang mengira bahwa WBTC berharga jauh lebih tinggi dari harga yang sebenarnya.
Serangan flash loan kedua
Ini bukan minggu yang baik untuk bZx. Hanya beberapa hari kemudian, protokolnya diserang oleh serangan lain. Pelaku mengambil flash loan dan mengonversinya menjadi stablecoin (sUSD). Anda mungkin sudah tahu bahwa stablecoin meniru harga mata uang fiat. Lagipula, ada USD di namanya.
Terlepas dari namanya, smart contract sebenarnya tidak begitu cerdas. Kontrak tidak mengetahui apa arti harga stablecoin. Jadi ketika penyerang memasang order besar untuk membeli sUSD (menggunakan ETH pinjaman), harganya naik dua kali lipat di Kyber.
bZx mengira bahwa sUSD bernilai $2, bukan $1. Penyerang kemudian mengambil pinjaman ETH yang jauh lebih besar daripada yang biasanya diizinkan di bZx, karena koin $1 mereka memiliki daya beli $2. Akhirnya, penyerang melunasi flash loan awal dan membawa kabur sisanya.
Apakah flash loan berisiko?
Benar atau salah, vektor-vektor serangan ini sangat mengesankan, karena menunjukkan seberapa jauh penyerang mampu melakukan aksinya. Sangat mudah untuk melihat ke belakang metode yang digunakan, dan mengatakan bahwa bZx seharusnya menggunakan oracle harga yang berbeda untuk mengambil datanya. Tetapi kenyataannya, pencurian semacam ini sangat murah: tidak memerlukan banyak investasi dari penyerang. Tidak ada penghalang dari sisi finansial yang mencegah mereka melakukannya.
Secara tradisional, mata uang kripto dalam jumlah besar dibutuhkan seseorang atau kelompok untuk memanipulasi pasar. Tetapi dengan flash loan, siapa pun bisa menjadi whale selama beberapa detik. Dan, seperti yang telah kita lihat, hanya beberapa detik yang Anda butuhkan untuk menghasilkan ether senilai ratusan ribu dolar.
Sisi baiknya, kita bisa belajar dari dua serangan yang terjadi. Apakah mungkin orang lain akan berhasil melakukannya lagi? Mungkin. Oracle memiliki sejumlah kelemahan, seperti yang terlihat pada serangan kedua, dibutuhkan kerja keras untuk menyingkirkan kerentanan tersebut.
Secara keseluruhan, ini bukan kesalahan flash loan – kerentanan yang dieksploitasi terdapat di protokol lain, sementara flash loan hanya mendanai serangan itu. Bentuk lending DeFi ini dapat memiliki banyak penggunaan yang menarik di masa depan, terutama mengingat risiko yang rendah baik bagi peminjam maupun pemberi pinjaman.
Konklusi
Flash loan merupakan tambahan baru ke dunia DeFi, tetapi tambahan ini pasti akan mengukir kesan abadi. Konsep pinjaman tanpa jaminan, yang hanya dijalankan dengan kode, membuka banyak kemungkinan di dalam sistem keuangan baru.
Penggunaannya masih terbatas saat ini, namun, flash loan telah meletakkan fondasi bagi aplikasi-aplikasi baru yang inovatif dalam keuangan desentralisasi.
Ada pertanyaan mengenai flash loan atau DeFi? Silakan menuju Ask Academy, tempat di mana komunitas akan menjawab pertanyaan-pertanyaan Anda.