Laporan penelitian teknis ini ditulis oleh Polaris dari tim peneliti ScaleBit, dengan ucapan terima kasih khusus kepada Norman dan Henry dari SnapFingers atas komentar revisinya.

TL;DR

Artikel ini melakukan studi mendalam tentang keragaman dan skenario penerapan leverage DeFi, menganalisis kerentanan pada tingkat kode secara mendetail, dan mengusulkan poin keamanan utama dari protokol leverage.

Pengantar Leverage DeFi

Peluncuran dYdX V4 baru-baru ini telah menarik banyak perhatian dan partisipasi dalam pertukaran kontrak abadi. dYdX telah berhasil menerapkan kasus perdagangan leverage, dan kita tidak hanya harus menantikan potensi besar dYdX V4, namun juga memperhatikan keamanan protokol leverage. Selanjutnya, kami akan menggunakan analisis kode spesifik dan contoh untuk membiasakan Anda dengan berbagai strategi leverage dan pertimbangan keamanan.

apa itu leverage

Di bidang keuangan, leverage adalah strategi yang mengandalkan pinjaman dana untuk meningkatkan potensi pengembalian investasi. Sederhananya, seorang investor atau pedagang meminjam dana untuk meningkatkan eksposur terhadap jenis aset, proyek, atau instrumen tertentu jauh melampaui apa yang dapat dicapai hanya dengan mengandalkan modal mereka sendiri. Biasanya, melalui penggunaan leverage, investor dapat memperkuat daya beli mereka di pasar.

Leverage dalam Perdagangan DeFi

Penggunaan leverage merupakan salah satu fitur terpenting dan umum dalam perdagangan aset kripto. Tak lama setelah berdirinya bursa terdesentralisasi, perdagangan dengan leverage menjadi semakin populer, meskipun pasar kripto sudah menunjukkan tingkat volatilitas yang tinggi.

Seperti halnya keuangan tradisional, pedagang menggunakan leverage baik hanya untuk meminjam dana guna meningkatkan daya beli mereka atau untuk memanfaatkan berbagai derivatif keuangan seperti kontrak berjangka dan opsi.

Leverage juga meningkat dari 3x, 5x menjadi lebih dari 100x. Leverage yang lebih tinggi berarti risiko yang lebih tinggi, namun seperti yang terlihat pada sebagian besar bursa terpusat, seiring dengan meningkatnya volume perdagangan leverage, ini adalah risiko yang bersedia diambil oleh pedagang agresif yang mencari keuntungan lebih tinggi.

Penjelasan rinci tentang klasifikasi leverage

Sejauh menyangkut DeFi, produk leverage pada dasarnya dibagi menjadi empat jenis, dengan mekanisme berbeda untuk menghasilkan leverage: pinjaman leverage, leverage perdagangan margin, leverage kontrak abadi, dan token leverage.

Pinjaman dengan leverage

Pinjam-meminjamkan DeFi adalah salah satu aplikasi DeFi yang paling awal dan terbesar, dan raksasa seperti MakerDao, Compound, AAVE, Venus, dll. sudah beroperasi di pasar. Logika untuk mendapatkan leverage dengan meminjamkan aset kripto itu sederhana.

Misalnya, jika Anda memiliki $10.000 dalam Ethereum (ETH) dan bersifat bullish, Anda dapat menyetorkan ETH Anda ke dalam Compound sebagai jaminan, meminjamkan $5.000 dalam USDC, dan kemudian memperdagangkan $5.000 tersebut dalam USDC dengan $5.000 ETH lainnya. Ini akan memberi Anda leverage 1,5x pada ETH, memberi Anda eksposur ETH sebesar $15.000 dibandingkan dengan modal awal Anda sebesar $10.000.

Demikian pula, jika Anda bearish, Anda dapat memilih untuk menyetor stablecoin dan meminjamkan ETH. Jika harga ETH turun, Anda bisa membeli ETH di pasar dengan harga lebih murah dan melunasi utangnya.

Penting untuk dicatat bahwa karena Anda akan meminjam dari protokol terdesentralisasi, Anda mungkin dilikuidasi jika nilai agunan turun atau nilai aset yang Anda pinjam melebihi ambang batas tertentu.

Leverage perdagangan margin

Dengan pinjaman DeFi, Anda dapat melakukan apapun yang Anda inginkan dengan aset digital ini. Perdagangan margin DeFi lebih berfokus pada peningkatan ukuran posisi (meningkatkan daya beli) dan dianggap sebagai “posisi leverage” yang sebenarnya. Namun, ada perbedaan penting – meskipun posisi margin tetap terbuka, aset trader bertindak sebagai jaminan atas dana pinjaman.

dYdX adalah platform perdagangan margin terdesentralisasi terkenal yang memungkinkan leverage maksimum 5x. Dalam perdagangan margin di dYdX, pedagang menggunakan dana mereka sendiri sebagai jaminan, memperkuat pokok asli mereka beberapa kali dan menggunakan dana yang diperkuat ini untuk melakukan investasi yang lebih besar.

Pedagang diharuskan membayar biaya bunga dan biaya yang terkait dengan perdagangan. Posisi ini tidak dibangun secara virtual, namun melibatkan peminjaman dan pembelian/penjualan yang sebenarnya.

Jika pasar bergerak ke arah yang merugikan, aset pedagang mungkin tidak dapat membayar kembali uang pinjaman secara penuh. Untuk mencegah hal ini terjadi, protokol akan melikuidasi posisi Anda sebelum mencapai rasio likuidasi tertentu.

Bagaimana perubahan leverage dalam perdagangan margin—

Katakanlah Anda memiliki margin 3x long ETH, tetapi tidak ingin menyesuaikan eksposur Anda dari waktu ke waktu.

Anda memegang $100 dalam USDC, meminjam $200 lagi dalam USDC, dan memperdagangkan $300 dalam ETH untuk menetapkan posisi buy yang diinginkan di ETH. Tingkat leverage adalah $300 / $100 = 3x.

Jika harga ETH naik 20%, keuntungan Anda akan menjadi 300 (1+20%) - 300 = $60. Risiko Anda relatif terhadap likuidasi lebih rendah, dan tingkat leverage aktual berkurang menjadi 360/(360-200) = 2,25x. Dengan kata lain, Anda secara otomatis menghilangkan leverage ketika harga ETH naik.

Jika harga ETH turun 20%, kerugian Anda adalah 300 (1-20%) -300 = -$60. Anda berada dalam posisi yang lebih berisiko dalam hal likuidasi, dan tingkat leverage aktual secara otomatis meningkat menjadi 240/(240-200) = 6x. Dengan kata lain, Anda menyeimbangkan kembali leverage Anda ketika harga ETH turun, yang menunjukkan bahwa Anda berada dalam posisi berisiko lebih tinggi daripada sebelumnya.

Jadi meskipun Anda mungkin berpikir bahwa dengan berdagang pada margin tetap 3x, Anda mempertahankan leverage yang konstan, leverage real-time terus berubah. Lihat grafik di bawah untuk melihat bagaimana leverage akan berubah berdasarkan perubahan harga[1].

Leverage Kontrak Abadi

Kontrak abadi mirip dengan kontrak berjangka tradisional, namun tidak memiliki tanggal kedaluwarsa. Kontrak abadi meniru pasar spot berbasis margin dan oleh karena itu diperdagangkan mendekati harga indeks referensi yang mendasarinya.

Ada banyak proyek DeFi yang menawarkan kontrak abadi kepada para pedagang, seperti dYdX, MCDEX, Perpetual Protocol, Injective, dll. Banyak pedagang mungkin kesulitan membedakan antara perdagangan margin dan kontrak abadi – pada kenyataannya, keduanya melibatkan leverage pengguna.

Namun, terdapat beberapa perbedaan dalam mekanisme leverage, biaya, dan tingkat leverage.

Kontrak abadi adalah derivatif yang memperdagangkan aset sintetis dan memiliki karakteristik diperdagangkan dengan margin. Harga aset dasar dilacak secara sintetis tanpa perlu memperdagangkan aset dasar sebenarnya. Namun, perdagangan margin melibatkan peminjaman dan perdagangan aset kripto yang sebenarnya.

Dengan munculnya kontrak abadi, muncullah konsep tingkat pendanaan, yang tujuannya adalah untuk menjaga harga perdagangan kontrak abadi tetap konsisten dengan harga referensi yang mendasarinya. **Jika harga kontrak lebih tinggi dari harga spot, posisi beli akan menghasilkan posisi pendek. **Dengan kata lain, pedagang harus terus-menerus membayar biaya untuk meminjam uang.

Leverage dalam kontrak abadi biasanya lebih tinggi daripada margin trading dan bisa mencapai 100x. Mekanisme likuidasi dan leverage riil sama dengan perdagangan margin.

Token dengan Leverage

Token dengan leverage adalah derivatif yang memberikan pemegangnya eksposur leverage ke pasar mata uang kripto tanpa khawatir untuk secara aktif mengelola posisi leverage. Meskipun mereka memberikan eksposur leverage kepada pemegangnya, mereka tidak mengharuskan mereka berurusan dengan margin, likuidasi, agunan, atau tingkat pendanaan.

Perbedaan terbesar antara token leverage dan perdagangan margin/kontrak abadi adalah bahwa token leverage akan diseimbangkan kembali secara berkala atau ketika ambang batas tertentu tercapai untuk mempertahankan leverage tertentu.

Hal ini jelas berbeda dengan perdagangan margin dan kontrak abadi - leverage sebenarnya dari produk-produk ini terus berubah berdasarkan pergerakan harga, meskipun pedagang mungkin telah menentukan tingkat leverage pada awalnya.

Mari kita lihat cara kerja rebalancing pada contoh 3x ETH di atas:

Anda memegang $100 USDC dan membeli token leverage ETHBULL (3x). Protokol akan secara otomatis meminjam $200 USDC dan memperdagangkan $200 ETH.

Katakanlah harga ETH naik 20% dan harga token ETHBULL (3x) naik menjadi 300*(1+20%)-200 = $160 sebelum diseimbangkan kembali. Sekarang, leverage aktual Anda menjadi 2,25 (360/160), lebih rendah dari target leverage.

Sebagai bagian dari proses penyeimbangan kembali, protokol akan meminjam lebih banyak USD dari kumpulan stablecoin dan membeli token ETH tambahan untuk mengembalikan leverage ke 3x. Dalam contoh kita, protokol akan meminjam $120 lagi dan menukarnya dengan ETH. Oleh karena itu, total leverage kembali menjadi (360+120)/160 = 3 kali.

Katakanlah harga ETH turun 20% dan harga token ETHBULL (3x) turun menjadi 300*(1-20%)-200 = $40 sebelum diseimbangkan kembali. Sekarang, leverage aktual Anda akan menjadi 6 (240/40), lebih tinggi dari target leverage.

Dalam hal ini, protokol akan menjual token ETH dan membayar hutang untuk mengurangi leverage. Dalam contoh ini, protokol akan menjual ETH senilai $120 untuk membayar pool. Hutangnya akan menjadi $80 dan total leverage kembali (240-120)/40 = 3x.

Dengan kata lain, token dengan leverage akan secara otomatis memanfaatkan kembali keuntungan dan mengurangi kerugian untuk memulihkan tingkat leverage yang ditargetkan. Jika mekanisme ini berjalan dengan baik, bahkan dalam tren pasar yang buruk, pemegang token dengan leverage tidak akan dilikuidasi karena mekanisme deleveraging akan terus mengurangi tingkat leverage efektif pengguna.

Oleh karena itu, kumpulan pinjaman dalam model token leverage akan bebas dari risiko likuidasi dan lebih aman daripada kumpulan pinjaman dalam perdagangan margin.

Manfaatkan kasus aplikasi

Kita telah mempelajari beberapa jenis leverage protokol DeFi yang umum. Selanjutnya, kami akan menjelaskan penerapan leverage secara detail berdasarkan protokol DeFi tertentu.

GMX

GMX [2] adalah bursa spot dan abadi terdesentralisasi yang memberi pedagang kemampuan untuk memperdagangkan aset dengan leverage hingga 50x. Protokol saat ini berjalan di Arbitrum dan Avalanche. Di GMX, trader memiliki pengetahuan penuh tentang rekanan mereka, yang sangat berbeda dengan trading di CEX. GMX berbeda dari protokol kontrak abadi lainnya seperti dYdX karena ia beroperasi sepenuhnya secara on-chain dan menggunakan fungsionalitas AMM untuk memungkinkan perdagangan dengan leverage.

Apa yang membedakan GMX dari layanan lainnya adalah bahwa ini adalah bursa terdesentralisasi yang menawarkan layanan perdagangan dengan leverage. Dalam hal ini, ini menggabungkan pengalaman yang mirip dengan bursa DeFi lainnya seperti Uniswap dengan layanan perdagangan leverage yang ditawarkan oleh Binance.

GMX memiliki kumpulan likuiditas, GLP, yang merupakan kumpulan multi-aset yang menyediakan likuiditas untuk perdagangan margin: pengguna dapat mengambil posisi long/short dan mengeksekusi perdagangan dengan mencetak dan membakar token GLP. Kumpulan tersebut menghasilkan biaya LP dari perdagangan dan perdagangan leverage, yang didistribusikan ke pemegang GMX dan GLP.

Untuk berdagang dengan leverage, pedagang menyetorkan jaminan ke dalam protokol. Trader dapat memilih leverage hingga 50x. Semakin tinggi leverage, semakin tinggi harga likuidasi, yang secara bertahap akan meningkat seiring dengan kenaikan biaya pinjaman.

Misalnya, saat membeli ETH, pedagang "menyewa" sisi atas ETH dari kumpulan GLP; saat menjual ETH, pedagang "menyewa" sisi atas stablecoin relatif terhadap ETH dari kumpulan GLP. Namun aset di kumpulan GLP sebenarnya tidak disewakan.

Saat menutup posisi, jika pedagang bertaruh dengan benar, keuntungan akan dibayarkan dari kumpulan GLP dalam bentuk token panjang; jika tidak, kerugian akan dipotong dari jaminan dan dibayarkan ke dalam kumpulan. GLP mendapat untung dari kerugian pedagang dan untung dari keuntungan pedagang.

Dalam prosesnya, pedagang membayar biaya perdagangan, biaya pembukaan/penutupan, dan biaya pinjaman sebagai imbalan atas keuntungan dari posisi panjang/pendek terhadap dolar AS pada token yang ditentukan (BTC, ETH, AVAX, UNI, dan LINK).

Perdagangan Merkle

Merkle Trade[3] adalah platform perdagangan terdesentralisasi yang menawarkan perdagangan mata uang kripto, valuta asing, dan komoditas dengan leverage hingga 1.000x dan fitur perdagangan canggih yang berpusat pada pengguna. Merkle Trade didukung oleh blockchain Aptos, menawarkan kinerja dan skalabilitas terbaik di kelasnya. Dibandingkan dengan Gains Network, ia memiliki penundaan transaksi dan biaya penanganan yang lebih rendah sekaligus memberikan leverage yang sama tinggi.

Tidak seperti kebanyakan bursa, tidak ada buku pesanan di Merkle Trade. Sebaliknya, Merkle LP bertindak sebagai rekanan dalam setiap perdagangan, mengumpulkan jaminan ketika pedagang kehilangan uang, dan membayar keuntungan pada perdagangan yang ditutup dengan keuntungan positif.

  • Perdagangkan mata uang kripto, valas, dan komoditas dengan leverage hingga 1.000x

Merkle Trade bertujuan untuk menawarkan beragam pasangan perdagangan sejak hari pertama, termasuk mata uang kripto, Valas, dan komoditas, serta menawarkan leverage tertinggi di pasar hingga 150x pada kripto dan 1.000x pada FX.

  • Eksekusi order dengan harga wajar, latensi milidetik, slippage minimal

Didukung oleh blockchain yang dihasilkan Aptos dengan latensi terendah hingga saat ini, pengalaman transaksi on-chain tercepat yang mungkin ada. Bagi trader, ini berarti pengalaman trading lebih cepat dengan lebih sedikit selip harga karena penundaan eksekusi.

  • Perdagangan terdesentralisasi dan non-penahanan tanpa risiko pihak lawan

Trader berdagang dengan kumpulan likuiditas (Merkle LP) yang bertindak sebagai rekanan untuk setiap perdagangan dalam protokol. Semua transaksi dan penyelesaian dilakukan dengan kontrak pintar, dan tidak ada penyimpanan dana pengguna kapan pun.

  • Biaya penanganan minimum

Merkle Trade mengklaim memiliki salah satu biaya terendah di pasar hingga saat ini. Saat peluncuran, biayanya serendah 0,05% untuk pasangan perdagangan mata uang kripto dan serendah 0,0075% untuk pasangan perdagangan FX.

dYdX

dYdX[4] adalah bursa terdesentralisasi (DEX) yang memberi pengguna kemampuan untuk memperdagangkan kontrak abadi secara efisien sambil mengendalikan aset mereka sepenuhnya. Sejak diluncurkan pada tahun 2021, dYdX V3 telah mengadopsi solusi penskalaan lapisan 2 non-penahanan yang unik untuk mengimplementasikan pertukarannya, namun buku pesanan dan mesin pencocokannya masih dikelola secara terpusat.

Dan sekarang, dengan dYdX V4, protokol tersebut berkembang menjadi rantainya sendiri dan sepenuhnya memfaktorkan ulang seluruh protokol untuk mencapai desentralisasi penuh sekaligus meningkatkan throughput. dYdX juga mencakup tiga fungsi: peminjaman, perdagangan margin, dan kontrak abadi. Perdagangan margin hadir dengan fungsi peminjaman, dana yang disimpan oleh pengguna secara otomatis membentuk kumpulan dana, jika dana tidak mencukupi selama transaksi, mereka secara otomatis akan meminjam dan membayar bunga.

Analisis Keamanan Leverage

Kami telah memperkenalkan jenis umum dan penerapan leverage di DeFi. Demikian pula, masih banyak masalah keamanan dalam desain leverage yang perlu kami perhatikan. Kami akan menganalisis masalah keamanan dan poin audit leverage DeFi dengan kasus audit tertentu.

Bedakan antara limit dan order pasar

Di sebagian besar aplikasi pertukaran leverage, terdapat limit order dan market order, dan penting untuk membedakan dan memverifikasi limit order dan market order secara ketat. Selanjutnya, kami akan melakukan analisis rinci terhadap masalah yang kami temukan dalam audit Merkle Trade [5].

biarkan sekarang = stempel waktu::sekarang_detik(); if (sekarang - order.created_timestamp > 30) { cancel_order_internal<PairType, CollateralType>( orderid, order, T_CANCEL_ORDER_EXPIRED ); kembali };

Bagian kode ini untuk melakukan verifikasi pada fungsi pesanan. Dalam fungsi ini, ia memeriksa apakah lebih dari 30 detik telah berlalu sejak pesanan dibuat. Jika kondisi terpenuhi, cancel_order_internal() dipanggil untuk membatalkan pesanan. Namun, jika order tersebut merupakan limit order, berarti order tersebut memiliki harga tertentu yang ditetapkan oleh trader di mana mereka bersedia membeli atau menjual aset tersebut. Penilaian ini tidak boleh digunakan saat mengeksekusi limit order, yang dapat mengakibatkan sebagian besar limit order tidak dieksekusi. Oleh karena itu, penting untuk membedakan secara tegas logika perdagangan limit order dan market order.

Kesalahan perhitungan leverage

Kesalahan perhitungan selalu menjadi masalah yang sangat umum di DeFi, dan kesalahan ini sangat umum terjadi pada leverage. Kami akan menggunakan masalah yang ditemukan dalam audit pihak ketiga pada protokol Unstoppable[6] untuk melakukan studi mendalam tentang perhitungan leverage. .

Mari kita lihat kode di Unstoppable yang menghitung leverage:

def hitung leverage (nilai posisi: uint256, nilai utang: uint256, nilai margin: uint256 ) -> uint256: jika nilai posisi <= nilai utang: # pengembalian utang macet max_value (uint256) pengembalian ( PRESISI * (_nilai_utang + nilai margin) / (_posisi_nilai - nilai utang) / PRESISI ) Fungsi hitung leverage menyebabkan leverage dihitung secara salah dengan menggunakan nilai utang + nilai margin sebagai pembilang, bukan nilai posisi. Tiga parameter input dari fungsi ini, positionvalue, _debt_value dan marginvalue, semuanya ditentukan oleh informasi harga yang disediakan oleh oracle pada rantai Chainlink. dimana _debt_value mewakili nilai konversi bagian utang posisi menjadi jumlah utang USD. _margin_value mewakili nilai saat ini (dalam USD) dari jumlah margin awal posisi. _position_value mewakili nilai saat ini (dalam USD) dari jumlah posisi awal.

Permasalahan pada perhitungan di atas adalah nilai utang + nilai margin tidak merepresentasikan nilai posisi. Leverage adalah rasio antara nilai posisi saat ini dan nilai margin saat ini. _position_value - debtvalue benar, mewakili nilai margin saat ini, namun debtvalue + marginvalue tidak mewakili nilai posisi saat ini, karena tidak ada jaminan bahwa token liabilitas dan token posisi akan memiliki fluktuasi harga yang terkait.

Misalnya:

Token tanggung jawabnya adalah ETH dan token posisinya adalah BTC.

Menggunakan 1 ETH sebagai margin, Alice meminjam 14 ETH ($2,000 per ETH) dan menerima 1 BTC ($30,000 per BTC) dalam token posisi. Leverage adalah 14.

Keesokan harinya, harga ETH masih $2.000/ETH, tetapi harga BTC turun dari $30.000/BTC menjadi $29.000/BTC.

Pada titik ini, leverage seharusnya (_position_value == 29.000)/(_position_value == 29.000 - debtvalue == 28.000) = 29

Daripada nilai yang dihitung dalam kontrak: (_debt_value == 28.000 + marginvalue == 2.000) / (_position_value == 29.000 - debtvalue == 28.000) = 30.

Oleh karena itu, untuk mengatasi masalah ini, rumus yang benar yang disebutkan di atas harus digunakan untuk menghitung leverage dalam kontrak pintar. Kesalahan penghitungan leverage dapat menyebabkan likuidasi yang tidak adil atau posisi leverage yang berlebihan jika terjadi volatilitas harga.

Dalam kontrak pintar, memastikan penghitungan leverage yang benar sangat penting untuk menjaga ketahanan sistem dan kepentingan pengguna. Perhitungan leverage yang benar harus didasarkan pada rasio antara nilai posisi saat ini dan nilai margin saat ini. Jika rumus penghitungan yang digunakan salah, hal ini dapat menyebabkan sistem bereaksi secara tidak tepat terhadap perubahan harga, melikuidasi posisi yang tidak boleh dilikuidasi, atau membiarkan posisi dengan leverage berlebih tetap ada, sehingga meningkatkan risiko bagi sistem dan pengguna.

kesalahan logis

Kesalahan logika memerlukan perhatian khusus dalam audit kontrak pintar, terutama pada logika kompleks seperti transaksi leverage DeFi.

Mari kita gunakan masalah yang ditemukan dalam audit pihak ketiga oleh Tigris[7] (Tigris adalah platform perdagangan leverage sintetis terdesentralisasi berdasarkan Arbitrum dan Polygon) untuk membahas masalah logis yang perlu diperhatikan dalam leverage DeFi.

Mari kita lihat logika fungsi penutupan limit di Tigris:

fungsi limitClose( uint id, bool tp, PriceData calldata priceData, byte calldata tanda tangan ) eksternal { checkDelay(id, false); (uint limitPrice, alamat tigAsset) = tradingExtension._limitClose(_id, tp, priceData, tanda tangan); closePosition(_id, DIVISION_CONSTANT, limitPrice, alamat(0), tigAsset, true); } fungsi limitClose( uint id, bool tp, PriceData calldata priceData, byte calldata tanda tangan ) tampilan eksternal kembali (uint limitPrice, alamat tigAsset) { checkGas(); IPosition.Trade memori perdagangan = position.trades(id); tigAsset = perdagangan.tigAsset; getVerifiedPrice(_trade.asset, priceData, tanda tangan, 0); uint256 harga = hargaData.harga; if (_trade.orderType != 0) revert("4"); //IsLimit if (_tp) { if (_trade.tpPrice == 0) revert("7"); //LimitNotSet if (_trade.direction) { if (_trade.tpPrice > harga) revert("6"); //LimitNotMet } else { if (trade.tpPrice < harga) revert("6"); //LimitNotMet } limitPrice = trade.tpPrice; } else { if (trade.slPrice == 0) revert("7"); //LimitNotSet if (_trade.direction) { if (_trade.slPrice < harga) revert("6"); //LimitNotMet } else { if (trade.slPrice > harga) revert("6"); //LimitNotMet } //@audit stop loss ditutup pada harga yang ditentukan pengguna BUKAN batas harga pasarPrice = _trade.slPrice; } }

Saat menggunakan stop loss untuk menutup posisi, harga penutupan pengguna adalah harga stop loss yang ditetapkan oleh pengguna, bukan harga aset saat ini. Dalam pasar yang terarah dan leverage yang tinggi, pengguna dapat menyalahgunakan hal ini untuk mencapai perdagangan bebas risiko. Pengguna dapat membuka posisi buy dan menetapkan harga stop loss $0,01 di bawah harga saat ini.

Jika harga langsung turun pada update berikutnya, mereka akan menutup posisi pada harga masuknya dan hanya membayar biaya pembukaan dan penutupan. Jika harga naik, mereka akan memperoleh keuntungan yang signifikan. Akibatnya, pengguna dapat menyalahgunakan metode pengaturan harga stop-loss untuk membuka transaksi dengan leverage tinggi, potensi kenaikan tinggi, dan risiko penurunan rendah.

fluktuasi harga

Dampak fluktuasi harga terhadap leverage DeFi sangatlah penting. Hanya dengan selalu mempertimbangkan fluktuasi harga Anda dapat memastikan keamanan perjanjian leverage. Mari kita ambil masalah yang ditemukan dalam audit pihak ketiga terhadap protokol DeFiner[8] sebagai contoh untuk analisis mendalam:

Protokol DeFiner melakukan dua pemeriksaan sebelum memproses penarikan.

Pertama, metode ini memeriksa apakah jumlah yang diminta oleh pengguna untuk ditarik melebihi saldo aset:

function penarikan(alamat akunAddr, token alamat, jumlah uint256) hanya eksternal Pengembalian resmi(uint256) { // Periksa apakah jumlah penarikan kurang dari yang dibutuhkan saldo pengguna(jumlah <= getDepositBalanceCurrent(_token, accountAddr), "Saldo tidak mencukupi."); uint256 peminjamanLTV = globalConfig.tokenInfoRegistry().getBorrowLTV(token);

Kedua, metode ini memeriksa apakah penarikan akan memberikan pengguna terlalu banyak leverage. Jumlah yang ditarik dikurangkan dari "kekuatan pinjaman" pengguna pada harga saat ini. Jika total nilai pinjaman pengguna melebihi kekuatan pinjaman baru, metode tersebut gagal karena pengguna tidak lagi memiliki cukup jaminan untuk mendukung posisi pinjamannya. Namun, persyaratan ini hanya akan diperiksa jika pengguna belum memanfaatkan leverage secara berlebihan:

jika (getBorrowETH(_accountAddr) <= getBorrowPower(_accountAddr)) memerlukan( getBorrowETH(_accountAddr) <= getBorrowPower(_accountAddr).sub( amount.mul(globalConfig.tokenInfoRegistry().priceFromAddress(token)) .mul(borrowLTV).div (Utils.getDivisor(address(globalConfig), _token)).div(100) ), "Agunan tidak mencukupi saat penarikan.");

Jika pengguna telah meminjam lebih dari yang dimungkinkan oleh "kekuatan meminjam" mereka, penarikan dapat dilakukan tanpa mempedulikan hal tersebut. Situasi ini dapat terjadi dalam berbagai situasi, yang paling umum adalah fluktuasi harga. Protokol tidak memperhitungkan dampak fluktuasi harga pada protokol yang menyebabkan masalah ini.

lainnya

Selain kegagalan dalam membedakan limit order dan market order, kesalahan perhitungan, kesalahan logika, dan dampak fluktuasi harga seperti yang disebutkan di atas, ada banyak poin keamanan terkait perjanjian leverage yang perlu kita perhatikan. Hal ini termasuk namun tidak terbatas pada permasalahan seperti serangan pinjaman kilat, manipulasi harga, keamanan oracle, kontrol akses, pemeriksaan leverage yang tidak memadai atau tidak ketat, dan permasalahan lainnya. Saat merancang dan menerapkan protokol leverage, faktor-faktor ini harus dipertimbangkan secara cermat dan hati-hati untuk memastikan kekuatan protokol dan keamanan aset pengguna. Tindakan pencegahan, pemantauan real-time, dan rencana tanggap darurat juga merupakan kunci untuk mengurangi potensi risiko dan melindungi kepentingan pengguna.

Meringkaskan

Pengenalan perdagangan leverage dalam protokol DeFi tidak memberikan pasar pengoperasian yang lebih baik, tetapi juga membawa mekanisme perdagangan yang lebih kompleks. Meskipun perdagangan dengan leverage memberi pengguna lebih banyak peluang investasi, potensi risiko dan tantangan terhadap keamanan protokol juga menjadi lebih signifikan.

Ketika leverage meningkat, pengoperasian protokol menjadi lebih fleksibel, namun juga menjadi lebih rapuh dan rentan terhadap berbagai ancaman keamanan. Hal ini mencakup potensi tidak dapat membedakan secara tegas antara limit dan order pasar, kesalahan perhitungan, kesalahan logika, dan sensitivitas ekstrem terhadap faktor-faktor seperti fluktuasi harga. Dalam hal ini, kita harus lebih memperhatikan keamanan protokol untuk memastikan bahwa aset pengguna terlindungi secara efektif.

ScaleBit adalah tim keamanan blockchain terkemuka di bidang Web3, berlokasi di Silicon Valley, Singapura, Hong Kong, Taiwan, dan tempat lain. Kami telah menyediakan solusi keamanan blockchain kepada 200+ institusi dan proyek di bidang Web3 global, mengaudit total 180.000+ baris kode, dan melindungi aset pengguna lebih dari 8 miliar+ dolar AS. Jadikan Keamanan Dapat Diakses oleh Semua Orang! Jika Anda memiliki kebutuhan audit keamanan, jangan ragu untuk menghubungi kami. Kami akan menyesuaikan solusi keamanan yang terperinci, komprehensif, dan profesional bagi Anda untuk melindungi Anda dan bidang Web3!