Apa Itu Serangan Flash Loan?
Serangan flash loan adalah eksploitasi dalam mata uang kripto ketika penyerang menggunakan pinjaman besar tanpa agunan untuk memanipulasi atau mengeksploitasi kelemahan pada satu atau beberapa smart contract.Penyerang meminjam aset kripto, menjalankan serangkaian tindakan, mengambil nilai dari protokol yang rentan, lalu melunasi pinjaman dalam satu transaksi blockchain.Sisa mata uang kripto setelah pinjaman, biaya, biaya trading, dan biaya transaksi dibayar menjadi profit penyerang.Jika penyerang tidak dapat membayar jumlah yang diwajibkan sebelum transaksi selesai, seluruh transaksi biasanya dibatalkan (revert).Persyaratan pembayaran atomik ini memungkinkan penyerang mencoba strategi yang membutuhkan modal besar tanpa harus memiliki aset pinjaman sebelum transaksi dimulai.Serangan flash loan bukan jenis transaksi blockchain khusus yang hanya ditujukan untuk aktivitas kriminal.Flash loan memiliki kegunaan yang sah dalam arbitrase, swap agunan, refinancing utang, likuidasi, dan manajemen likuiditas.Serangan terjadi ketika modal sementara digabungkan dengan kelemahan dalam penetapan harga, akuntansi, tata kelola, kontrol akses, atau bagian lain dari protokol kripto.OWASP Smart Contract Top 10: 2026 mengklasifikasikan serangan yang memanfaatkan flash loan sebagai risiko keamanan smart contract utama.
OWASP menjelaskan bahwa flash loan dapat menjadi pengganda dampak yang mengubah kesalahan kecil dalam logika, penetapan harga, atau aritmetika menjadi kerugian besar.Bagaimana Cara Kerja Serangan Flash Loan?
Serangan flash loan menggabungkan peminjaman, manipulasi, eksploitasi, pembayaran kembali, dan pengambilan profit dalam satu transaksi atomik.Urutan persisnya berbeda-beda, tetapi banyak serangan mengikuti struktur umum yang sama.Langkah 1: Penyerang Menemukan Kerentanan
Penyerang mempelajari protokol keuangan terdesentralisasi dan menemukan asumsi yang tidak aman.Protokol mungkin mengandalkan harga dari satu pool dengan likuiditas rendah, menghitung share vault secara keliru, menerima saldo token sementara sebagai hak voting, atau gagal memvalidasi callback.Kerentanan tersebut mungkin tampak tidak berbahaya ketika transaksi hanya melibatkan jumlah mata uang kripto yang kecil.Likuiditas flash dapat membuat kelemahan yang sama sangat menguntungkan dengan memungkinkan penyerang menggunakan modal sementara senilai jutaan dolar.Langkah 2: Penyerang Meminjam Aset Kripto
Penyerang meminta flash loan dari smart contract yang kompatibel.Pinjaman dapat mencakup satu aset atau beberapa aset, bergantung pada desain pemberi pinjaman.Pemberi pinjaman mentransfer mata uang kripto yang diminta ke kontrak penerima yang dikendalikan penyerang.Kontrak penerima mendapatkan kendali sementara atas aset tersebut dan mulai menjalankan instruksi serangan.Langkah 3: Penyerang Memanipulasi State Protokol
Penyerang menggunakan modal pinjaman untuk mengubah harga, saldo likuiditas, rasio agunan, suplai token, nilai share, saldo governance, atau state lain yang digunakan protokol target.Manipulasi ini dapat melibatkan beberapa aplikasi terdesentralisasi dan banyak pemanggilan smart contract internal.Penyerang berusaha menciptakan state yang membuat protokol target menghitung nilai secara keliru atau mengizinkan tindakan yang tidak aman.Langkah 4: Penyerang Mengambil Nilai
Penyerang berinteraksi dengan protokol yang rentan saat state yang dimanipulasi masih aktif.Protokol dapat memberikan pinjaman dengan agunan yang tidak mencukupi, menilai deposit terlalu tinggi, mengizinkan penarikan yang tidak adil, melikuidasi agunan yang sehat, mencetak token secara berlebihan, atau menyetujui tindakan governance yang berbahaya.Penyerang mengonversi mata uang kripto yang diambil menjadi aset yang dapat digunakan untuk melunasi flash loan.Langkah 5: Penyerang Memulihkan atau Menutup Posisi
Penyerang dapat membalikkan sebagian transaksi sebelumnya untuk memperoleh kembali aset yang diperlukan untuk pembayaran.Harga dan rasio likuiditas dapat kembali mendekati level semula setelah transaksi serangan selesai.Namun, protokol target tetap dapat mengalami kekurangan cadangan, bad debt, share yang diterbitkan secara keliru, atau saldo pengguna yang terdampak.Langkah 6: Flash Loan Dilunasi
Penyerang mengembalikan pokok pinjaman dan biaya flash loan yang diwajibkan.Jika pembayaran berhasil, transaksi diterima dan semua perubahan state menjadi bagian dari riwayat blockchain.Jika pembayaran gagal, transaksi biasanya dibatalkan dan serangan tidak menghasilkan dampak on-chain yang diinginkan.Mengapa Serangan Flash Loan Dapat Menggunakan Modal Sebesar Itu
Penyerang biasa dibatasi oleh jumlah mata uang kripto yang dimiliki atau dapat dipinjam melalui pinjaman beragunan.Flash loan menghilangkan persyaratan agunan jika utang dilunasi dalam transaksi yang sama.Karena itu, penyerang dapat mengendalikan aset sementara yang nilainya jauh melampaui saldo wallet mereka sendiri.Besarnya pinjaman umumnya dibatasi oleh likuiditas yang tersedia, aturan pemberi pinjaman, perilaku token, dan batasan transaksi blockchain.Secara teori, seseorang yang memiliki cukup mata uang kripto untuk membayar gas dapat memulai transaksi flash loan yang jauh lebih besar melalui smart contract yang diprogram dengan benar.Efisiensi modal ini membuat flash loan berguna bagi trader yang sah, tetapi berbahaya ketika ada protokol yang rentan.Mengapa Transaksi Tidak Dibatalkan Setelah Pencurian
Transaksi flash loan hanya dibatalkan jika kondisi yang diprogram tidak terpenuhi.Pemberi pinjaman biasanya memeriksa apakah pokok pinjaman dan biaya telah diterima, bukan apakah semua protokol yang terhubung diperlakukan secara adil.Jika penyerang berhasil mengambil aset yang cukup dari protokol target dan melunasi pemberi pinjaman, persyaratan flash loan telah terpenuhi.Karena itu, kerugian protokol target dapat menjadi permanen meskipun flash loan telah dilunasi dengan benar.Atomicity melindungi pemberi flash loan dari gagal bayar biasa, tetapi tidak otomatis melindungi setiap smart contract yang dipanggil selama transaksi.Flash Loan Biasanya Bukan Kerentanan Utama
Flash loan biasanya merupakan sumber modal sementara, bukan kelemahan perangkat lunak yang mendasarinya.Kerentanan sebenarnya dapat berupa oracle harga yang mudah dimanipulasi, perhitungan share yang keliru, kontrol akses yang tidak aman, aturan likuidasi yang cacat, atau asumsi ekonomi yang salah.Penyerang yang sudah memiliki cukup aset mungkin dapat mengeksploitasi kerentanan yang sama tanpa menggunakan flash loan.Flash loan membuat serangan lebih murah, lebih mudah diperluas, dan tidak terlalu bergantung pada modal pribadi penyerang.Menghapus flash loan tidak otomatis memperbaiki protokol yang rentan.Developer harus memperbaiki asumsi yang memungkinkan modal sementara atau state yang dimanipulasi menghasilkan dampak yang tidak adil.Serangan Flash Loan vs. Flash Loan
Flash loan adalah alat finansial dan teknis yang memungkinkan mata uang kripto dipinjam dan dilunasi secara atomik.Serangan flash loan adalah penggunaan alat tersebut untuk mengeksploitasi logika smart contract yang rentan.Flash loan yang sah dapat membantu menyelaraskan harga, melakukan refinancing utang, mengganti agunan, menutup posisi, atau menjalankan likuidasi yang diizinkan protokol.Serangan mengambil nilai melalui perilaku yang tidak diinginkan dan merugikan protokol atau penggunanya.Karena itu, menyebut setiap transaksi flash loan sebagai serangan adalah tidak akurat.Atomicity dalam Serangan Flash Loan
Atomicity berarti setiap operasi dalam satu transaksi blockchain berhasil bersama-sama atau gagal bersama-sama.Serangan dapat mencakup peminjaman, swap token, deposit likuiditas, perubahan harga, tindakan terkait agunan, penarikan, dan pembayaran kembali.Operasi-operasi tersebut diperlakukan sebagai satu transaksi meskipun memanggil banyak smart contract.Jika kondisi akhir gagal, blockchain membatalkan perubahan state transaksi.Penyerang umumnya tetap kehilangan biaya jaringan yang dibayarkan untuk komputasi yang gagal.Dokumentasi Ethereum tentang keuangan terdesentralisasi menjelaskan bahwa flash loan dibatalkan seolah-olah tidak pernah terjadi jika tidak dilunasi dalam transaksi tersebut.
ERC-3156 dan Keamanan Flash Loan
ERC-3156 adalah standar antarmuka Ethereum yang telah difinalisasi untuk flash loan satu aset.Standar ini menentukan cara pemberi pinjaman melaporkan likuiditas yang tersedia, menghitung biaya, mentransfer aset, memanggil penerima, dan memperoleh pembayaran kembali.Penerima harus mengembalikan nilai tertentu untuk menunjukkan bahwa penerima mendukung callback flash loan yang diharapkan.Pemberi pinjaman harus memverifikasi pembayaran setelah operasi penerima selesai.Spesifikasi ERC-3156 juga mencakup panduan keamanan terkait verifikasi callback, kepercayaan terhadap pemberi pinjaman, validasi initiator, dan flash minting.
Kepatuhan terhadap ERC-3156 dapat meningkatkan kompatibilitas, tetapi tidak menjamin keamanan pemberi pinjaman, penerima, atau protokol yang terhubung.Logika bisnis di luar antarmuka dasar flash loan tetap dapat memiliki kelemahan yang bisa dieksploitasi.Serangan Manipulasi Oracle Harga
Manipulasi oracle harga adalah salah satu pola paling umum yang terkait dengan serangan flash loan.Oracle harga menyediakan informasi yang digunakan smart contract untuk menilai aset kripto.Protokol yang rentan mungkin menghitung harga aset berdasarkan nilai tukar saat ini di satu pool likuiditas terdesentralisasi.Jika likuiditas pool terbatas, transaksi besar dapat mengubah harganya secara signifikan.Penyerang dapat menggunakan aset hasil flash loan untuk melakukan transaksi besar tersebut dan mendistorsi rasio pool untuk sementara.Penyerang kemudian berinteraksi dengan protokol lending, derivatif, vault, atau agunan yang memercayai harga yang telah dimanipulasi.Harga yang dibuat terlalu tinggi dapat menyebabkan protokol target menilai agunan penyerang lebih tinggi dari nilai sebenarnya.Penyerang kemudian dapat meminjam lebih banyak mata uang kripto daripada nilai agunannya.Harga yang dibuat terlalu rendah dapat membuat posisi yang sehat tampak tidak aman dan memicu likuidasi yang tidak adil.Penyerang juga dapat membeli aset dari protokol yang rentan dengan harga di bawah nilai pasarnya secara luas.Panduan keamanan smart contract Ethereum secara khusus memperingatkan bahwa penyerang dapat menggunakan flash loan untuk menaikkan harga spot sebelum berinteraksi dengan kontrak lending yang rentan.
Contoh Serangan Manipulasi Oracle
Misalkan sebuah protokol lending menilai Token A berdasarkan harga saat ini di satu pool likuiditas kecil.Token A biasanya diperdagangkan seharga $10, dan penyerang memiliki 10,000 unit yang nilainya sekitar $100,000.Penyerang mengambil flash loan besar dan menggunakannya untuk membeli Token A dari pool yang dipilih.Pembelian besar tersebut untuk sementara mendorong harga pool dari $10 menjadi $50.Protokol lending kini secara keliru menilai 10,000 unit Token A milik penyerang sebesar $500,000.Penyerang mendepositkan token tersebut dan meminjam aset lain senilai $350,000.Penyerang membalikkan sebagian transaksi awal untuk memperoleh dana yang diperlukan guna melunasi flash loan.Setelah harga pasar kembali mendekati $10, protokol lending memiliki agunan senilai sekitar $100,000 untuk menjamin utang yang jauh lebih besar.Contoh sederhana ini tidak mencakup biaya, slippage, batas agunan, dan detail praktis lainnya, tetapi menunjukkan bagaimana manipulasi harga sementara dapat menciptakan bad debt permanen.Bagaimana Protokol Melindungi Diri dari Manipulasi Oracle
Protokol bernilai tinggi sebaiknya tidak sepenuhnya bergantung pada satu pasar spot yang mudah dimanipulasi.Developer dapat menggabungkan informasi harga dari beberapa sumber independen.Median atau rata-rata yang dirancang dengan cermat dapat mengurangi pengaruh satu pasar yang tidak normal.Harga rata-rata tertimbang waktu dapat mengurangi efektivitas manipulasi satu blok.Feed harga juga harus memiliki pemeriksaan kebaruan data agar data lama tidak diterima tanpa batas waktu.Pemeriksaan likuiditas dapat mencegah pool kecil mengendalikan valuasi pasar lending yang besar.Protokol dapat membatasi peminjaman, minting, penarikan, dan likuidasi ketika harga bergerak melampaui batas yang wajar.Panduan OWASP 2026 tentang manipulasi oracle harga menyarankan penggunaan beberapa sumber, penolakan deviasi yang tidak normal, penerapan jendela perataan yang memadai, dan penghindaran ketergantungan pada pool yang tidak likuid.
Serangan Flash Loan terhadap Governance
Serangan flash loan terhadap governance terjadi ketika kepemilikan token sementara memberikan kekuatan voting yang cukup untuk memengaruhi protokol terdesentralisasi.Sistem governance yang rentan mungkin menghitung kekuatan voting berdasarkan saldo token pengguna saat ini.Penyerang dapat meminjam banyak token governance, lalu membuat, menyetujui, atau menjalankan proposal.Proposal berbahaya tersebut dapat mentransfer dana treasury, mengubah izin kontrak, mengganti implementasi, atau melemahkan pengaturan keamanan.Penyerang mengembalikan token governance sebelum transaksi berakhir.Penyerang mungkin telah mengendalikan protokol tanpa memiliki posisi ekonomi jangka panjang dalam token governance-nya.Bagaimana Sistem Governance Mengurangi Risiko Flash Loan
Snapshot saldo historis dapat menghitung kekuatan voting berdasarkan kepemilikan token pada blok sebelumnya, bukan saldo dalam transaksi saat ini.Penyerang tidak dapat menggunakan token yang dipinjam setelah snapshot untuk meningkatkan kekuatan voting pada proposal tersebut.Jeda voting memisahkan pembuatan proposal dari dimulainya voting.Timelock memberikan jeda tambahan antara persetujuan proposal dan pelaksanaannya.Jeda ini memberi waktu kepada peserta untuk mengenali dan menanggapi tindakan governance yang berbahaya.Ambang batas proposal, periode voting, persyaratan kuorum, guardian darurat, dan kewenangan administratif yang terbatas dapat memberikan perlindungan tambahan.Dokumentasi governance OpenZeppelin terkini menjelaskan checkpoint voting historis, siklus proposal, dan eksekusi berbasis timelock.
Tidak ada desain governance yang aman hanya karena menggunakan timelock, sebab penyerang dapat menargetkan administrator timelock atau peran istimewa lainnya.Serangan Manipulasi Share Vault
Vault yang ditokenisasi umumnya menerbitkan share yang mewakili klaim atas kumpulan aset kripto.Jumlah share yang diterbitkan untuk sebuah deposit dapat bergantung pada hubungan antara total aset dan total share.Serangan flash loan dapat mengeksploitasi perhitungan rasio ini yang tidak aman.Penyerang dapat memanipulasi saldo vault sebelum melakukan deposit atau penarikan.Serangan dapat menyebabkan vault menerbitkan terlalu banyak atau terlalu sedikit share, atau memberikan aset dasar dalam jumlah berlebihan.Kondisi depositor pertama dapat sangat berbahaya ketika total suplai bernilai nol atau sangat kecil.Pembulatan yang tampak tidak signifikan untuk deposit biasa dapat menghasilkan keuntungan besar jika diulang menggunakan modal hasil flash loan.Panduan OWASP 2026 tentang kesalahan aritmetika memperingatkan bahwa kelemahan pembulatan dan presisi dapat diperbesar melalui flash loan dan interaksi bernilai tinggi yang berulang.
Serangan Donasi
Serangan donasi terjadi ketika penyerang mentransfer token langsung ke vault atau kontrak lending untuk mengubah saldo aset yang tampak dimiliki kontrak tersebut.Transfer ini dapat melewati fungsi deposit normal protokol sehingga tidak menghasilkan share yang sesuai.Jika protokol menghitung nilai share langsung dari saldo wallet-nya, aset yang didonasikan dapat meningkatkan nilai yang tampak dari share yang sudah ada.Penyerang dapat menggunakan flash loan untuk memberikan donasi sementara dalam jumlah sangat besar.Penyerang kemudian memanfaatkan nilai share yang dimanipulasi untuk meminjam, menebus, melikuidasi, atau mencetak aset secara tidak adil.Protokol yang aman harus membedakan deposit akuntansi yang diharapkan dari transfer token yang tidak diminta.Akuntansi internal dan mekanisme share virtual dapat mengurangi ketergantungan pada saldo token mentah yang dimiliki kontrak.Serangan Pembulatan dan Presisi
Smart contract merepresentasikan angka menggunakan bilangan bulat dengan presisi tetap.Operasi pembagian dapat membuang pecahan kecil karena banyak operasi blockchain tidak dapat menyimpan nilai desimal tanpa batas.Protokol dapat membulatkan hasil ke arah yang secara konsisten menguntungkan pengguna, bukan protokol.Keuntungan dari satu operasi mungkin sangat kecil dalam kondisi normal.Penyerang dapat menggunakan likuiditas flash untuk melakukan operasi dengan jumlah besar atau mengulanginya berkali-kali dalam satu transaksi.Keuntungan gabungan dapat melampaui biaya pinjaman dan biaya transaksi.Developer sebaiknya menguji perhitungan di dekat nol, mendekati nilai maksimum, pada deposit pertama, dan ketika rasio aset terhadap share sangat ekstrem.Arah pembulatan harus dipilih berdasarkan pihak mana yang perlu dilindungi dalam setiap operasi.Serangan Flash Loan yang Dibantu Reentrancy
Reentrancy terjadi ketika kontrak eksternal memanggil kembali suatu protokol sebelum fungsi awal selesai memperbarui state-nya.Penerima flash loan secara alami melibatkan callback sehingga menciptakan beberapa batas pemanggilan eksternal.Penyerang dapat menggabungkan modal sementara dengan reentrancy untuk menarik dana lebih dari sekali, melewati pemeriksaan agunan, atau menggunakan saldo yang sudah usang.Reentrancy dapat terjadi melalui pemanggilan langsung, hook token, callback vault, fungsi fallback, atau kontrak terhubung lainnya.Developer sebaiknya memperbarui state internal yang penting sebelum menyerahkan kendali ke alamat eksternal.Panduan keamanan resmi Solidity menyarankan pola checks-effects-interactions untuk mengurangi risiko reentrancy.
Pola checks-effects-interactions memverifikasi persyaratan terlebih dahulu, memperbarui state internal setelahnya, dan hanya memanggil kontrak eksternal sesudah pembaruan tersebut.Utilitas OpenZeppelin Contracts juga menyediakan perlindungan reentrancy dan mekanisme jeda untuk desain smart contract yang didukung.
Perlindungan reentrancy tidak memperbaiki logika ekonomi atau perhitungan harga yang tidak aman.Reentrancy Read-Only
Reentrancy read-only terjadi ketika protokol lain membaca state yang tidak konsisten saat suatu fungsi sedang berjalan.Fungsi yang rentan mungkin tidak secara langsung mengizinkan penarikan atau deposit kedua.Namun, kueri harga atau saldo eksternal dapat melihat nilai yang belum diperbarui secara konsisten.Penyerang flash loan dapat menggunakan state sementara ini untuk memengaruhi protokol lain yang memercayai hasil pembacaan tersebut.Developer harus mempertimbangkan cara kontrak terhubung mengamati state selama callback, bukan hanya apakah kontrak awal kehilangan dana akibat reentrancy langsung.Serangan terhadap Agunan dan Likuidasi
Protokol lending kripto menggunakan rasio agunan untuk menentukan jumlah yang dapat dipinjam pengguna dan kapan posisi dapat dilikuidasi.Penyerang flash loan dapat memanipulasi harga agunan atau utang sebelum rasionya dihitung.Penyerang dapat membuat agunan yang lemah tampak lebih bernilai dan memperoleh pinjaman dengan agunan yang tidak mencukupi.Penyerang juga dapat membuat agunan yang sehat tampak kurang bernilai dan melikuidasi pengguna lain secara tidak adil.Beberapa serangan memanipulasi bonus likuidasi, perhitungan pembayaran, atau transfer agunan, bukan harganya secara langsung.Sistem agunan sebaiknya menggunakan penetapan harga yang andal, batas peminjaman, persyaratan likuiditas minimum, dan rumus likuidasi yang telah diuji dengan cermat.Manipulasi Pool Likuiditas
Pool likuiditas otomatis menentukan harga kripto berdasarkan jumlah aset yang tersimpan dalam smart contract-nya.Transaksi besar mengubah jumlah tersebut dan akibatnya mengubah harga yang dikutip.Pergerakan harga ini merupakan perilaku yang diharapkan, bukan kesalahan perangkat lunak.Kerentanan muncul ketika protokol lain menganggap harga spot sementara dari pool tersebut sebagai nilai pasar yang lebih luas dan dapat diandalkan.Flash loan memberi penyerang modal yang cukup untuk menggerakkan bahkan pool berukuran cukup besar dalam satu transaksi.Protokol sebaiknya menganalisis biaya yang diperlukan untuk memanipulasi setiap pasar yang digunakan oleh sistem penetapan harganya.Serangan Flash Loan Lintas Protokol
Protokol keuangan terdesentralisasi sering bergantung pada kontrak lain untuk penetapan harga, agunan, likuiditas, konversi token, dan settlement.Serangan flash loan dapat berpindah melalui beberapa protokol sebelum kembali ke pemberi pinjaman awal.Setiap kontrak secara individual mungkin tampak berperilaku sesuai aturan lokalnya.Namun, rangkaian gabungannya tetap dapat melanggar asumsi ekonomi di tingkat sistem.Komposabilitas ini membuat serangan sulit ditemukan melalui pengujian unit yang terisolasi.Developer sebaiknya menguji seluruh jalur transaksi pada semua dependensi eksternal yang digunakan protokol.Panduan OWASP 2026 tentang kerentanan logika bisnis menjelaskan bahwa kode smart contract dapat berjalan persis seperti yang ditulis, tetapi tetap memungkinkan hasil ekonomi yang tidak aman.
Serangan Kontrol Akses
Flash loan dapat memperbesar dampak kontrol akses yang lemah.Penyerang dapat memperoleh akses sementara ke suatu peran dengan memenuhi persyaratan saldo token.Protokol juga dapat menyediakan fungsi administratif tanpa memverifikasi pemanggil dengan benar.Modal sementara kemudian dapat digunakan untuk mencetak, meminjam, menarik, atau mengalihkan mata uang kripto dalam jumlah yang jauh lebih besar.Pemeriksaan peran harus dinyatakan secara eksplisit dan tidak hanya bergantung pada saldo yang bisa diperoleh dalam satu transaksi.Peran upgrade, jeda, treasury, minting, oracle, dan governance sebaiknya ditinjau sebagai satu sistem izin yang saling terhubung.Serangan Kompatibilitas Token
Tidak semua token kripto mengikuti perilaku transfer dan saldo yang sederhana.Beberapa token memotong biaya transfer, melakukan rebase saldo, memicu callback, memblokir alamat, atau mengembalikan nilai yang tidak biasa.Pemberi flash loan atau protokol target dapat salah menghitung pembayaran kembali atau agunan saat berinteraksi dengan token semacam itu.Penyerang dapat memilih token yang perilakunya melanggar asumsi dalam kontrak yang rentan.Aset yang didukung sebaiknya diuji satu per satu, bukan diterima hanya karena menyediakan fungsi token yang umum.Serangan Flash Mint
Flash mint menciptakan token sementara alih-alih meminjam token yang sudah tersimpan di pool likuiditas.Token yang baru dibuat harus dibakar atau diselesaikan sebelum transaksi berakhir.Protokol dapat gagal ketika menganggap suplai yang dicetak sementara sebagai kepemilikan ekonomi permanen.Penyerang dapat menggunakan saldo sementara tersebut untuk voting, perhitungan agunan, kelayakan reward, atau fungsi lain yang bergantung pada saldo.Protokol yang terhubung dengan token yang dapat di-flash-mint harus memahami bahwa suplai yang sangat besar dapat muncul sementara dalam satu transaksi.Serangan Flash Loan NFT
Flash loan NFT mentransfer token non-fungibel tertentu untuk sementara dan mensyaratkan token yang sama dikembalikan dalam satu transaksi.Aplikasi yang rentan mungkin memberikan manfaat hanya berdasarkan kepemilikan NFT saat ini.Penyerang dapat meminjam NFT untuk sementara guna mengklaim reward, memengaruhi governance, membuka konten, atau memenuhi persyaratan akses.Penyerang kemudian mengembalikan NFT setelah menerima manfaat yang seharusnya ditujukan bagi pemegang jangka panjang.Aplikasi sebaiknya menggunakan riwayat kepemilikan, catatan klaim, periode kepemilikan, atau kontrol lain jika kepemilikan sementara tidak seharusnya memenuhi syarat.Serangan Flash Loan dan MEV
Maximal Extractable Value, atau MEV, adalah nilai yang diperoleh dengan mengendalikan penyertaan dan urutan transaksi dalam sebuah blok.Serangan flash loan yang dikirim melalui pool transaksi publik mungkin terlihat oleh searcher otomatis sebelum dikonfirmasi.Peserta lain dapat menyalin serangan, mengirim biaya lebih tinggi, atau menempatkan transaksi sebelum maupun sesudahnya.Penyerang dapat menggunakan perutean transaksi privat untuk mengurangi risiko strateginya disalin.Namun, pembuat blok dan validator tetap dapat memengaruhi apakah dan di mana transaksi dimasukkan ke dalam blok.Dokumentasi Ethereum tentang MEV menjelaskan bagaimana penyertaan, pengecualian, dan pengurutan transaksi dapat menciptakan nilai tambahan.
Bagaimana Penyerang Menghitung Profit
Serangan berhasil secara ekonomi hanya jika nilai yang diambil melebihi seluruh biaya.Perhitungan sederhana:Profit Bersih Serangan = Nilai yang Diambil − Biaya Flash Loan − Biaya Trading − Biaya Gas − Slippage − Kerugian Lain
Pokok pinjaman dikembalikan kepada pemberi pinjaman sehingga tidak menjadi profit yang dapat dipertahankan.Penyerang juga dapat membayar biaya untuk memperoleh penyertaan blok yang menguntungkan atau perutean transaksi privat.Transaksi dapat mengambil nilai dari protokol target tetapi tetap merugi jika biaya eksekusi lebih besar dari perkiraan.Mengapa Serangan Flash Loan yang Gagal Tetap Memerlukan Biaya
Atomicity membatalkan perubahan state, tetapi biasanya tidak mengembalikan gas blockchain yang telah digunakan untuk eksekusi.Serangan yang gagal dapat memanggil banyak smart contract sebelum menemukan kondisi yang menyebabkan transaksi dibatalkan.Pengirim membayar komputasi tersebut sesuai aturan biaya blockchain.Pengujian, simulasi transaksi, infrastruktur privat, dan pengembangan smart contract juga menimbulkan biaya off-chain.Kerugian finansial yang terbatas dari upaya gagal tetap dapat jauh lebih kecil daripada modal sementara yang dikendalikan transaksi tersebut.Bagaimana Serangan Flash Loan Dideteksi
Sistem keamanan blockchain dapat memantau flash loan berukuran besar dan transaksi yang menyusulnya.Pinjaman besar saja bukan bukti serangan karena transaksi arbitrase dan refinancing yang sah dapat menggunakan jumlah serupa.Sistem deteksi memeriksa gabungan tindakan, bukan hanya satu peristiwa.Tanda peringatan dapat mencakup pinjaman besar yang diikuti perubahan harga ekstrem, minting yang tidak biasa, peminjaman cepat, penarikan besar, dan pembayaran kembali dalam transaksi yang sama.Indikator lain mencakup perubahan share vault yang mendadak, rasio agunan yang tidak normal, tindakan governance yang tidak terduga, atau perbedaan besar antara harga internal dan eksternal.Trace transaksi membantu analis merekonstruksi setiap pemanggilan kontrak dan transfer token.Event, perubahan storage, saldo aset, dan pergerakan harga dapat menunjukkan bagaimana nilai keluar dari protokol target.Pemantauan Real-Time dan Tanggap Darurat
Protokol dapat memantau penarikan besar, peminjaman yang tidak biasa, deviasi oracle yang ekstrem, dan perubahan likuiditas yang cepat.Mekanisme jeda dapat menghentikan sementara operasi sensitif saat developer menyelidiki masalah.Kontrol darurat sebaiknya dibatasi karena kewenangan administratif yang berlebihan juga menimbulkan risiko keamanan dan governance.Rencana tanggap darurat harus menjelaskan siapa yang dapat menjeda protokol, bagaimana kewenangan tersebut dilindungi, dan bagaimana operasi normal dapat dilanjutkan.Rencana tersebut juga harus mencakup komunikasi, pelacakan aset, analisis kontrak, dan koordinasi dengan penyedia infrastruktur yang terdampak.Pemantauan tidak dapat diandalkan untuk mencegah semua serangan atomik karena seluruh eksploitasi mungkin selesai sebelum manusia sempat merespons.Kontrol pencegahan di dalam smart contract tetap lebih penting daripada intervensi manual.Bagaimana Developer Mencegah Serangan Flash Loan
Gunakan Harga yang Tahan Manipulasi
Protokol sebaiknya menggabungkan sumber data yang andal dan tidak bergantung pada satu pasar spot dengan likuiditas rendah.Kebaruan harga, deviasi, likuiditas, dan ketersediaan pasar harus divalidasi sebelum tindakan bernilai tinggi diizinkan.Lindungi Invarian Ekonomi
Invarian adalah kondisi yang harus tetap benar sebelum dan sesudah setiap transaksi yang valid.Protokol lending dapat mensyaratkan agar utang tidak pernah melebihi nilai agunan yang telah disesuaikan dengan risiko.Vault dapat mensyaratkan agar pengguna tidak dapat menarik nilai melebihi kepemilikan proporsional mereka.Pengujian harus mencoba melanggar kondisi ini dengan menggunakan saldo sementara yang sangat besar.Batasi Eksposur dalam Satu Transaksi
Batas peminjaman, minting, penarikan, likuidasi, dan penebusan dapat membatasi nilai yang terdampak oleh satu transaksi.Batas tidak memperbaiki bug yang mendasarinya, tetapi dapat mengurangi potensi kerugian maksimum.Gunakan Saldo Governance Historis
Kekuatan voting sebaiknya didasarkan pada snapshot sebelumnya jika kepemilikan token sementara tidak seharusnya memenuhi syarat.Jeda voting dan timelock dapat memberikan waktu untuk menggugat proposal yang mencurigakan.Terapkan Perlindungan Reentrancy
Fungsi penting sebaiknya memperbarui akuntansi internal sebelum memanggil kontrak eksternal yang tidak tepercaya.Pengunci reentrancy dapat mencegah pemanggilan ulang tertentu selama satu jalur eksekusi.Validasi Setiap Callback
Penerima flash loan harus memverifikasi pemberi pinjaman, initiator, aset, jumlah, biaya, dan data instruksi.Penyerang tidak boleh dapat memanggil penerima secara langsung dan memicu perilaku istimewa menggunakan aset yang sudah tersimpan di dalamnya.Tangani Pembulatan Secara Konservatif
Protokol sebaiknya memilih arah pembulatan yang tidak memberikan nilai gratis kepada pengguna.Perhitungan harus diuji dengan suplai nol, suplai minimum, deposit yang sangat besar, dan rasio aset yang tidak biasa.Pisahkan Akuntansi dari Saldo Mentah
Protokol tidak boleh otomatis menganggap setiap token yang ditransfer ke alamatnya sebagai deposit normal.Akuntansi internal dapat mencegah donasi langsung mengubah harga share secara tidak terduga.Gunakan Jeda dan Circuit Breaker
Circuit breaker dapat menolak operasi ketika harga, saldo, atau penarikan bergerak di luar rentang yang ditentukan.Fungsi jeda dapat membatasi kerugian setelah aktivitas abnormal terdeteksi.Lakukan Pengujian dengan Modal Sebesar Flash Loan
Pengujian keamanan sebaiknya berasumsi bahwa penyerang dapat memperoleh jumlah likuiditas terbesar yang tersedia di seluruh pasar terhubung.Protokol yang hanya aman karena pengguna biasa tidak memiliki cukup modal tidak aman terhadap flash loan.Pengujian Keamanan untuk Serangan Flash Loan
Pengujian unit harus memverifikasi setiap fungsi smart contract dalam kondisi yang diharapkan maupun tidak terduga.Pengujian integrasi harus memeriksa alur lengkap yang melibatkan protokol eksternal dan sumber harga.Pengujian invarian harus mencari rangkaian transaksi yang melanggar aturan akuntansi inti.Fuzz testing harus mengirimkan nilai, urutan, dan operasi berulang yang tidak biasa.Fork testing dapat menjalankan serangan yang diusulkan terhadap salinan lokal state blockchain terkini.Simulasi ekonomi dapat memodelkan perubahan likuiditas, agunan, harga token, dan perilaku pengguna.Audit independen dapat menemukan risiko yang luput dari perhatian tim pengembangan awal.Audit tidak menjamin protokol tetap aman setelah upgrade, perubahan pasar, atau integrasi dengan kontrak baru.Yang Dapat Dilakukan Pengguna Kripto
Pengguna biasa tidak dapat meninjau setiap smart contract dengan tingkat kedalaman yang sama seperti tim keamanan profesional.Namun, mereka tetap dapat memeriksa apakah protokol menjelaskan sumber harga, batas risiko, audit, kontrol darurat, dan izin upgrade-nya.Pengguna sebaiknya berhati-hati jika protokol menawarkan imbal hasil yang sangat tinggi tanpa menjelaskan sumber ekonominya.Jangan menumpuk dana dalam satu smart contract yang belum diaudit atau baru diluncurkan.Pengguna sebaiknya memahami apakah deposit dapat dijeda, apakah penarikan dapat ditunda, dan apakah kerugian dapat dibebankan kepada deposan.Audit sebelumnya atau riwayat operasi yang panjang dapat mengurangi sebagian ketidakpastian, tetapi tidak menghilangkan risiko smart contract.Apa yang Terjadi Setelah Serangan Flash Loan?
Protokol target dapat menjeda deposit, penarikan, peminjaman, atau trading.Developer dan peneliti keamanan menganalisis trace transaksi untuk mengidentifikasi kerentanan.Protokol dapat memperbarui kontrak jika memiliki izin upgrade.Peserta governance dapat melakukan voting terkait kompensasi, penanganan utang, penggunaan treasury, atau pemulihan sistem.Beberapa proyek berusaha berkomunikasi dengan penyerang dan meminta agar aset dikembalikan.Alamat blockchain dapat dipantau, tetapi protokol yang terdampak biasanya tidak dapat membalikkan transfer on-chain, kecuali token atau kontrak memiliki kontrol khusus.Pengguna dapat mengalami dana yang dibekukan, penurunan nilai token, bad debt, atau kerugian sebagian meskipun kerentanan teknis telah diperbaiki.Bisakah Serangan Flash Loan Dibatalkan?
Transaksi blockchain yang telah dikonfirmasi biasanya tidak dapat dibatalkan oleh pemberi flash loan atau pengguna yang terdampak.Protokol mungkin dapat memulihkan aset jika penyerang mengembalikannya secara sukarela atau mengirimkannya ke alamat yang dikendalikan.Penerbit aset mungkin memiliki kemampuan teknis untuk membekukan token tertentu, bergantung pada desain token.Treasury protokol, dana cadangan, atau pengaturan asuransi dapat menutup sebagian kerugian.Governance juga dapat menyetujui token baru atau penyesuaian akuntansi, tetapi tindakan tersebut tidak menghapus transaksi awal.Apakah Serangan Flash Loan Ilegal?
Flash loan sendiri adalah alat smart contract yang netral.Menggunakannya untuk mencuri aset, memanipulasi pasar, mengakses sistem tanpa izin, atau menipu pengguna dapat melanggar hukum pidana, perdata, keuangan, atau penyalahgunaan komputer.Perlakuan hukum bergantung pada yurisdiksi, struktur transaksi, aset yang terdampak, niat, dan peraturan yang berlaku.Fakta bahwa smart contract menerima transaksi tidak otomatis berarti tindakan tersebut diizinkan secara hukum.Developer dan trader sebaiknya meminta nasihat hukum yang kompeten sebelum berpartisipasi dalam aktivitas yang dapat merugikan protokol atau penggunanya.Serangan Flash Loan vs. Rug Pull
Serangan flash loan umumnya dilakukan oleh penyerang eksternal yang mengeksploitasi kelemahan protokol.Rug pull umumnya melibatkan orang dalam atau pengendali proyek yang sengaja menarik likuiditas, meninggalkan proyek, atau menyalahgunakan akses istimewa.Rug pull dapat melibatkan kerentanan smart contract atau likuiditas flash, tetapi kedua istilah ini menggambarkan penyebab utama yang berbeda.Pembedaan ini mungkin tidak jelas ketika orang dalam secara anonim mengeksploitasi kerentanan yang dibuatnya sendiri.Serangan Flash Loan vs. Serangan Reentrancy
Serangan reentrancy mengeksploitasi callback eksternal sebelum state internal difinalisasi.Serangan flash loan menggunakan modal pinjaman sementara untuk memperbesar dampak suatu kelemahan.Sebuah eksploitasi dapat sekaligus menjadi serangan reentrancy dan serangan flash loan jika penyerang meminjam aset lalu menggunakan reentrancy untuk menguras target.Dalam contoh tersebut, likuiditas flash adalah mekanisme pendanaan, sedangkan reentrancy adalah kerentanan teknisnya.Serangan Flash Loan vs. Serangan Oracle
Serangan oracle memanipulasi atau menyalahgunakan data yang digunakan smart contract.Flash loan dapat menyediakan modal yang dibutuhkan untuk memanipulasi sumber harga on-chain.Tidak semua serangan oracle menggunakan flash loan, dan tidak semua serangan flash loan menargetkan oracle.Kedua istilah tersebut beririsan ketika modal sementara digunakan untuk mendistorsi harga yang mengendalikan lending, settlement, atau likuidasi.Serangan Flash Loan vs. Arbitrase
Arbitrase memperdagangkan perbedaan harga antar pasar dan dapat membantu menyelaraskan harga.Serangan flash loan mengambil nilai dari perilaku protokol yang tidak diinginkan atau kelemahan keamanan.Sebuah transaksi dapat menggunakan arbitrase sebagai salah satu langkah sekaligus mengeksploitasi protokol yang rentan.Perbedaan utamanya adalah apakah profit berasal dari perbedaan pasar biasa atau dari tindakan yang membuat sistem salah menghitung atau mentransfer nilai.Kesalahpahaman Umum tentang Serangan Flash Loan
Flash loan tidak selalu bersifat berbahaya.Serangan flash loan tidak membebaskan penyerang dari kewajiban pembayaran kembali.Penyerang tetap harus melunasi pinjaman jika transaksi berhasil.Flash loan biasanya bukan kerentanan awal.Memblokir satu penyedia flash loan tidak membuat protokol aman karena penyerang dapat menggunakan sumber likuiditas lain atau modal pribadi.Harga yang kembali normal setelah transaksi tidak berarti kerusakan tidak terjadi.Protokol yang rentan mungkin sudah menerbitkan bad debt atau mentransfer aset secara permanen.Audit keamanan tidak menjamin perlindungan dari setiap serangan flash loan.Protokol kecil bukan satu-satunya target karena sistem besar juga dapat memiliki interaksi ekonomi yang tidak terduga.Serangan yang dibatalkan tidak selalu gratis karena pengirim dapat kehilangan gas dan menanggung biaya eksekusi lainnya.Pertanyaan Umum
Apa itu serangan flash loan dalam kripto?
Serangan flash loan adalah eksploitasi yang menggunakan mata uang kripto sementara tanpa agunan untuk memanipulasi atau mengeksploitasi smart contract yang rentan dalam satu transaksi.Bagaimana serangan flash loan menghasilkan uang?
Penyerang mengambil aset dari protokol yang rentan, mengembalikan pokok dan biaya pinjaman, lalu menyimpan sisa nilainya sebagai profit.Apakah penyerang flash loan harus melunasi pinjamannya?
Ya. Transaksi biasanya dibatalkan kecuali pokok dan biaya yang diwajibkan dibayar sebelum eksekusi berakhir.Mengapa serangannya tidak dibatalkan?
Serangan berhasil ketika pemberi flash loan dilunasi, meskipun protokol lain kehilangan aset akibat logikanya sendiri yang rentan.Apakah flash loan ilegal?
Tidak. Flash loan adalah alat DeFi yang netral, meskipun penggunaannya untuk mencuri aset atau memanipulasi pasar dapat melanggar hukum yang berlaku.Apakah semua flash loan merupakan serangan?
Tidak. Flash loan yang sah digunakan untuk arbitrase, refinancing, perubahan agunan, likuidasi, dan manajemen likuiditas.Apa serangan flash loan yang paling umum?
Manipulasi oracle harga merupakan pola umum yang menggunakan modal sementara untuk mengubah harga pasar berlikuiditas rendah yang digunakan protokol lain.Apa itu oracle dalam serangan flash loan?
Oracle adalah sumber data yang memberikan informasi, seperti harga mata uang kripto, kepada smart contract.Mengapa harga spot berbahaya?
Harga spot dari satu pool likuiditas dapat berubah sementara akibat transaksi yang cukup besar.Bisakah flash loan memanipulasi governance?
Ya. Token sementara dapat memengaruhi governance ketika kekuatan voting dihitung berdasarkan saldo saat ini tanpa snapshot historis atau jeda.Bisakah flash loan menyerang vault?
Ya. Penyerang dapat memanipulasi perhitungan share, donasi, pembulatan, atau saldo aset pada vault tokenisasi yang rentan.Bisakah flash loan menyebabkan reentrancy?
Callback flash loan dapat menciptakan peluang pemanggilan eksternal, tetapi reentrancy hanya terjadi jika kontrak yang terhubung menangani callback atau pemanggilan lain secara tidak aman.Apa itu serangan donasi?
Serangan donasi mentransfer aset langsung ke kontrak untuk memanipulasi akuntansi, harga share, nilai agunan, atau perhitungan penarikan.Apa itu serangan flash mint?
Serangan flash mint menggunakan token yang dibuat sementara untuk mengeksploitasi protokol yang menganggap saldo berumur pendek sebagai kepemilikan ekonomi permanen.Bisakah NFT digunakan dalam serangan flash loan?
Ya. Kepemilikan NFT sementara dapat mengeksploitasi sistem yang memberikan reward, hak voting, atau akses hanya berdasarkan kepemilikan saat ini.Apakah serangan flash loan terjadi dalam satu blok?
Serangan biasanya terjadi dalam satu transaksi, yang juga dimasukkan ke dalam satu blok blockchain.Bisakah serangan flash loan melibatkan beberapa protokol?
Ya. Satu transaksi dapat berinteraksi dengan banyak kontrak trading, lending, vault, oracle, dan token.Bisakah serangan flash loan yang gagal tetap menyebabkan kerugian?
Ya. Percobaan yang dibatalkan tetap dapat menggunakan gas dan menimbulkan biaya pengembangan atau infrastruktur off-chain.Bagaimana serangan flash loan dideteksi?
Sistem keamanan memeriksa trace transaksi untuk menemukan pinjaman sementara berjumlah besar yang diikuti perubahan harga, peminjaman, minting, penarikan, atau tindakan governance yang tidak biasa.Bagaimana protokol dapat mencegah serangan flash loan?
Protokol dapat menggunakan harga yang tahan manipulasi, saldo voting historis, akuntansi yang aman, pembulatan konservatif, batas transaksi, validasi callback, perlindungan reentrancy, dan pengujian menyeluruh.Bisakah protokol cukup memblokir flash loan?
Memblokir alamat pemberi pinjaman yang diketahui merupakan perlindungan yang lemah karena penyerang dapat menggunakan pemberi pinjaman lain, aset hasil flash mint, kontrak khusus, atau modal sendiri.Apakah harga rata-rata tertimbang waktu menghentikan semua serangan?
Tidak. Metode ini meningkatkan biaya manipulasi jangka pendek, tetapi tetap dapat gagal jika jendelanya terlalu singkat, likuiditas lemah, atau desain datanya tidak aman.Bisakah serangan flash loan dibatalkan?
Transaksi yang telah dikonfirmasi biasanya tidak dapat dibatalkan, meskipun aset dapat dipulihkan melalui pengembalian sukarela, kewenangan pembekuan, tindakan hukum, atau kompensasi protokol.Apakah protokol yang diaudit aman dari serangan flash loan?
Audit mengurangi sebagian risiko, tetapi tidak dapat menjamin keamanan dari setiap perubahan kode, kondisi ekonomi, integrasi, atau kerentanan yang sebelumnya tidak diketahui.Apa yang sebaiknya dilakukan pengguna setelah serangan flash loan?
Pengguna sebaiknya mengikuti pengumuman protokol yang terverifikasi, tidak menandatangani transaksi pemulihan yang tidak terduga, mencabut persetujuan yang tidak aman jika perlu, dan menyimpan catatan transaksi.Apakah serangan flash loan sama dengan peretasan?
Serangan flash loan adalah salah satu jenis eksploitasi kripto, sedangkan istilah peretasan dapat mencakup berbagai bentuk kompromi teknis, operasional, atau akun.Kesimpulan
Serangan flash loan menggunakan mata uang kripto sementara tanpa agunan untuk memperbesar dampak kelemahan dalam logika smart contract.Penyerang meminjam aset, memanipulasi state protokol, mengambil nilai, lalu melunasi pinjaman dalam satu transaksi atomik.Flash loan itu sendiri biasanya bukan kerentanan yang mendasari karena masalah sebenarnya umumnya terdapat pada oracle harga, rumus akuntansi, aturan governance, callback, pemeriksaan agunan, atau kontrol akses.Pembayaran kembali secara atomik melindungi pemberi pinjaman dari gagal bayar biasa, tetapi tidak melindungi protokol lain yang memercayai harga yang dimanipulasi atau saldo sementara yang tidak aman.Developer harus merancang sistem dengan asumsi bahwa pengguna mana pun dapat mengendalikan mata uang kripto dalam jumlah sangat besar untuk sementara.Penetapan harga yang tahan manipulasi, snapshot governance historis, akuntansi konservatif, perlindungan reentrancy, batas transaksi, pengujian invarian, dan pemantauan real-time dapat mengurangi risiko.Flash loan tetap menjadi alat DeFi yang berguna, tetapi efisiensi modalnya membuat setiap asumsi ekonomi yang lemah dalam smart contract lebih mudah dieksploitasi dalam skala besar.Anda Mungkin Juga Menyukai
ZK-Rollup
ZK-Rollup-as-a-Service
zk-SNARK
POPULER
Mata uang kripto yang sedang tren saat ini dan menarik perhatian pasar yang signifikan
Volume TERATAS
Mata uang kripto dengan volume trading tertinggi
Baru Ditambahkan
Mata uang kripto yang baru saja masuk listing dan tersedia untuk trading

