← Kembali ke artikel
July 19, 2026
5 menit baca

Likuidasi on-chain: mekanika Aave dan Compound, serta bisnis bot di seputarnya

Likuidasi on-chain: mekanika Aave dan Compound, serta bisnis bot di seputarnya
#defi
#likuidasi
#aave
#compound
#mev
#chainlink
#flash loan
#crypto

Likuidasi di Aave adalah penawaran publik yang selalu terbuka: lunasi utang orang lain dan terima kolateralnya dengan diskon 5–15%. Penawaran ini tertulis dalam kontrak yang tidak dapat diubah, tidak memerlukan izin, tidak ada KYC, tidak ada hubungan dengan protokol — cukup menjadi alamat pertama yang memanggil liquidationCall() pada blok saat sebuah posisi melewati batas. Ini adalah balapan paling murni di dunia crypto: hadiahnya diketahui hingga ke sennya, pemicunya (sebagian besar) dapat diprediksi, dan satu-satunya pertanyaan adalah apakah infrastruktur Anda sampai di sana lebih dulu daripada milik orang lain.

Artikel ini membedah mesin tersebut dari ujung ke ujung: matematika persis yang menentukan kapan sebuah posisi menjadi bisa dilikuidasi, mengapa mekanika oracle Chainlink membuat likuidasi dapat diprediksi alih-alih reaktif, apa saja isi bot likuidasi yang kompetitif, dan mengapa ekonomi balapan ini telah terkompresi hingga sebagian besar bonus kini bocor ke block builder — dan, semakin sering, kembali ke protokol itu sendiri. Di akhir kita akan membandingkan ini dengan likuidasi perp-DEX (GMX, Hyperliquid), yang secara sepintas terlihat mirip tetapi merupakan permainan yang sama sekali berbeda.

Mekanika: health factor, ambang batas, bonus

LTV vs liquidation threshold

Setiap aset kolateral di Aave v3 membawa dua parameter risiko yang berbeda, dan mengacaukan keduanya adalah kesalahan paling umum yang dilakukan peminjam:

  • LTV (loan-to-value) — jumlah maksimum yang dapat Anda pinjam terhadap aset tersebut saat posisi dibuka. Untuk WETH di Aave v3 mainnet, angka ini sekitar 80%.
  • Liquidation threshold — level kolateralisasi di mana posisi menjadi bisa dilikuidasi. Untuk WETH, sekitar 83%.

Selisih di antara keduanya adalah buffer yang disengaja: Anda tidak dapat membuka posisi yang langsung bisa dilikuidasi. Tapi buffer ini tipis — beberapa persen pergerakan harga yang merugikan sudah memisahkan "pinjaman maksimal" dari "siap disikat."

Health factor menggabungkan semuanya menjadi satu angka:

HF=iCiPiLTijDjPjHF = \frac{\sum_i C_i \cdot P_i \cdot LT_i}{\sum_j D_j \cdot P_j}

di mana CiC_i adalah jumlah aset kolateral ii, PiP_i adalah harga oracle-nya, LTiLT_i adalah liquidation threshold-nya, dan DjPjD_j \cdot P_j adalah nilai dari setiap posisi utang. Ketika HF<1HF < 1, siapa pun boleh melakukan likuidasi. Tidak ada masa tenggang, tidak ada margin call, tidak ada pemberitahuan. Kondisi ini dievaluasi secara lazy — tidak ada yang terjadi sampai seseorang memanggil fungsinya.

Pita health factor: zona aman di atas HF 1, likuidasi parsial antara 0,95 dan 1, likuidasi penuh di bawah 0,95

Close factor dan liquidation bonus

Dua parameter lagi menentukan apa yang didapat likuidator:

  • Close factor — fraksi utang yang dapat dilunasi oleh satu kali likuidasi. Default Aave v3 adalah 50%. Sejak Aave v3.3, close factor melompat ke 100% ketika HF<0.95HF < 0.95 (CLOSE_FACTOR_HF_THRESHOLD), atau ketika kolateral atau utang posisi tersebut berada di bawah ambang dust (~$2.000) — posisi kecil tidak sepadan dengan dua transaksi, dan sisa dust menciptakan masalah akuntansi bad-debt.
  • Liquidation bonus (juga disebut liquidation penalty, tergantung dari sudut pandang siapa) — diskon yang digunakan likuidator untuk membeli kolateral. Di Aave ini adalah spread tetap yang ditentukan per-aset oleh governance: sekitar 5% untuk WETH dan stablecoin utama, hingga 10–15% untuk kolateral long-tail yang volatil.

Compound v2 bekerja dengan cara yang sama namun dengan konstanta berbeda: liquidateBorrow() dengan close factor 50% dan liquidation incentive 8% (cToken kolateral yang disita bernilai 1,08x utang yang dilunasi). Compound v3 (Comet) mendesain ulang alurnya menjadi dua langkah: absorb() menarik posisi yang underwater ke neraca protokol sendiri (utang disosialisasikan ke reserves, kolateral menjadi milik protokol), dan buyCollateral() memungkinkan siapa saja membeli kolateral tersebut dari protokol dengan diskon yang dikonfigurasi governance, dibayar dalam aset dasar. Dalam praktiknya seorang likuidator memanggil keduanya dalam satu transaksi — absorb sendiri tidak membayar apa-apa, profitnya sepenuhnya ada di buyCollateral yang didiskon.

Sebuah posisi konkret, dilikuidasi langkah demi langkah

Ambil parameter Aave v3 WETH yang representatif: LTV 80%, liquidation threshold 83%, liquidation bonus 5%.

Setup. Anda menyetor 10 WETH pada $3.000 ($30.000 kolateral) dan meminjam 20.000 USDC.

HF=30,000×0.8320,000=1.245HF = \frac{30{,}000 \times 0.83}{20{,}000} = 1.245

Harga likuidasi. HF=1HF = 1 ketika nilai kolateral turun menjadi 20{,}000 / 0.83 = \24{,}096, yaitu ETH di **\2.410** — penurunan 19,7%. Terasa aman. Padahal tidak, karena ETH turun 20% itu bagai sarapan pagi.

Penurunannya. ETH mencatat $2.350 di oracle. Kolateral sekarang $23.500:

HF=23,500×0.8320,000=0.975HF = \frac{23{,}500 \times 0.83}{20{,}000} = 0.975

0.95<HF<10.95 < HF < 1, sehingga close factor 50% berlaku. Seorang likuidator melunasi 10.000 USDC dari utang Anda dan menyita kolateral senilai 10{,}000 \times 1.05 = \10{,}500$ pada harga oracle:

10,5002,350=4.468 WETH\frac{10{,}500}{2{,}350} = 4.468 \text{ WETH}

P&L likuidator. Mereka mengeluarkan $10.000 dan menerima $10.500 senilai ETH: $500 profit kotor untuk satu pemanggilan fungsi, sebelum gas, biaya swap untuk keluar dari ETH, dan — yang krusial — sebelum apa pun yang harus mereka tawarkan untuk memenangkan balapan (lebih lanjut di bawah).

P&L Anda. Utang turun menjadi $10.000, kolateral turun menjadi 5,532 WETH ($13.000). Health factor baru:

HF=13,000×0.8310,000=1.079HF = \frac{13{,}000 \times 0.83}{10{,}000} = 1.079

Perhatikan dua fakta yang tidak nyaman. Pertama, Anda membayar $500 untuk hak istimewa deleveraging paksa — bonus tersebut sepenuhnya keluar dari ekuitas Anda. Kedua, HF baru sebesar 1,079 nyaris berada di ambang batas: penurunan ETH sebesar 7% lagi akan memicu ulang likuidasi pada separuh sisanya. Likuidasi spread tetap memulihkan solvabilitas, bukan keamanan. Pola "setengah dilikuidasi, masih rapuh, dilikuidasi lagi" ini adalah mikrostruktur di balik dinamika cascade, yang kami bahas di artikel terkait tentang cascade likuidasi sebagai sinyal trading.

Pemicu: likuidasi dapat diprediksi, bukan reaktif

Inilah bagian yang membedakan orang yang memahami bisnis ini dari yang tidak: di Aave dan Compound, posisi tidak menjadi bisa dilikuidasi ketika harga pasar bergerak. Posisi menjadi bisa dilikuidasi ketika oracle diperbarui.

Kedua protokol membaca harga dari Chainlink data feeds. Sebuah feed Chainlink di Ethereum mainnet mendorong harga baru on-chain ketika salah satu dari dua kondisi terpicu:

  • Ambang deviasi — harga agregat off-chain bergerak lebih dari persentase tertentu dari nilai on-chain terakhir: 0,5% untuk ETH/USD di mainnet, 1–2% untuk sebagian besar feed yang lebih kecil.
  • Heartbeat — interval maksimum (3.600 detik untuk ETH/USD) setelah mana sebuah update didorong terlepas dari deviasi.

Ini memiliki konsekuensi yang mendalam. Di antara update, harga on-chain basi menurut konstruksinya. Jika ETH di Binance turun 0,6% sementara feed on-chain masih menunjukkan harga lama, setiap pelaku canggih tahu bahwa transaksi update oracle akan datang, tahu (kurang lebih) berapa harga barunya nanti, dan dapat menghitung — sebelum update itu mendarat — persis posisi mana yang akan melewati HF<1HF < 1 pada saat update terjadi.

Linimasa yang menunjukkan harga off-chain melewati ambang deviasi, update oracle yang tertunda, dan likuidasi yang dieksekusi pada blok yang sama dengan update tersebut

Strategi dominan karenanya bukan "amati health factor dan bereaksi" melainkan backrun update oracle: menyusun bundle di mana liquidationCall() Anda dieksekusi segera setelah transaksi transmit Chainlink, pada blok yang sama. Update oracle adalah tembakan aba-aba, dan semua orang bisa melihat wasit mengangkat pistolnya. Mekanika bundle — pengiriman privat ke block builder, jaminan urutan atomik — adalah mesin yang sama yang kita bahas di artikel tentang sandwich attack dan frontrunning mempool; likuidasi hanyalah penggunaannya yang paling sah.

Dua penyempurnaan penting dalam praktiknya:

  1. Anda bahkan tidak perlu melihat transmit di mempool. Karena agregasi off-chain dapat diamati (Anda dapat menjalankan perhitungan harga yang sama dari feed CEX), Anda dapat memprediksi bahwa sebuah update pasti akan terpicu begitu deviasi melewati ambang batas, dan membangun bundle terlebih dahulu untuk kedua jalur harga — naik maupun turun.
  2. Update heartbeat adalah event likuiditas yang terjadwal. Jika sebuah feed belum menyimpang 0,5% dalam satu jam, sebuah update tetap mendarat — dan jika harga telah bergeser 0,4% melawan tumpukan posisi yang berkerumun di dekat HF=1HF = 1, heartbeat yang "tidak berbahaya" itu menjadi pemicunya. Operator kompetitif melacak waktu-sejak-update-terakhir per feed sebagai sinyal kelas satu.

Prediktabilitas ini juga mengapa protokol akhirnya bergerak untuk merebut kembali nilainya. Pada Maret 2025, Aave mengintegrasikan Chainlink SVR (Smart Value Recapture): update oracle untuk feed yang berpartisipasi dialihkan melalui Flashbots MEV-Share, hak untuk melakukan backrun terhadapnya dilelang, dan tawaran pemenang dibagi antara Aave DAO (65%) dan Chainlink (35%) alih-alih bocor sepenuhnya ke searcher dan builder. Dalam hitungan bulan sistem tersebut telah memproses lebih dari $32 juta dalam likuidasi dan merebut kembali lebih dari $1,1 juta, menangkap lebih dari 80% MEV likuidasi yang memenuhi syarat. Baca ini sebagai harga pasar: balapan terbuka telah menjadi begitu efisien sehingga protokol bisa melelang garis finisnya.

Membangun bot: empat subsistem

Bot likuidasi yang kompetitif bukanlah sebuah skrip; ini adalah infrastruktur setara firma trading kecil. Empat subsistem, masing-masing sederhana secara individu, semuanya kritis terhadap latensi secara agregat.

Arsitektur bot likuidasi: indexer, health monitor dengan simulasi oracle, kontrak eksekusi flash-loan, pengiriman bundle ke builder

1. Indexing posisi

Anda memerlukan set lengkap peminjam dan saldo mereka, dijaga secara real time. Bootstrap-nya adalah backfill event — setiap Supply, Borrow, Repay, Withdraw, LiquidationCall sejak deployment protokol — dilipat menjadi saldo per-pengguna saat ini, lalu tetap live melalui langganan websocket ke log baru. getUserAccountData(address) milik Aave mengembalikan health factor secara langsung, tetapi memanggilnya per-pengguna per-blok untuk 100 ribu+ peminjam adalah hal yang mustahil; operator serius mereplikasi akuntansi protokol secara lokal (termasuk matematika indeks suku bunga, karena utang tumbuh setiap detik) dan menyimpan panggilan RPC untuk verifikasi.

2. Pemantauan health factor dengan simulasi oracle

Loop intinya bukan "hitung HF pada harga oracle saat ini." Melainkan "hitung HF pada harga yang akan dipublikasikan oracle":

def liquidatable_at(positions, feed, candidate_price):
    """Positions that cross HF < 1 if `feed` updates to candidate_price."""
    out = []
    for pos in positions.borrowers_exposed_to(feed):
        hf = pos.health_factor(price_override={feed: candidate_price})
        if hf < 1.0:
            close_factor = 1.0 if hf < 0.95 else 0.5
            repay = pos.debt_value * close_factor
            seized = repay * (1 + pos.liq_bonus)
            gross = seized - repay          # the prize, pre-costs
            out.append((pos, repay, gross))
    return sorted(out, key=lambda x: -x[2])

deviation = abs(offchain_px - onchain_px) / onchain_px
if deviation > FEED_DEVIATION_THRESHOLD * 0.8:   # update imminent
    targets = liquidatable_at(positions, feed, offchain_px)
    for pos, repay, gross in targets:
        prepare_bundle(pos, repay, max_bid=gross - costs(pos))

Mengurutkan posisi berdasarkan kedekatannya dengan HF=1HF = 1 (priority queue yang dikunci pada harga yang akan memicu setiap posisi) menjaga set panas tetap kecil. Faktor 0,8 adalah keseluruhan permainannya: Anda ingin bundle dibangun dan dikirim sebelum update itu pasti terjadi, bukan sesudahnya.

3. Eksekusi yang didanai flash-loan

Anda tidak memerlukan modal untuk melakukan likuidasi — Anda memerlukannya hanya untuk sekitar 200 milidetik waktu blok. Kontrak eksekusi kanonik melakukan, secara atomik:

  1. Melakukan flash-borrow atas aset utang (Balancer pada 0 bps, atau Aave sendiri pada ~5 bps — primitif yang sama yang kita bangun di arbitrase atomik dengan flash loan).
  2. Memanggil liquidationCall(collateral, debtAsset, user, repayAmount, false)false menerima kolateral underlying alih-alih aToken.
  3. Menukar kolateral yang disita kembali ke aset utang di venue mana pun yang memberikan kuotasi terbaik (Uniswap v3 / v4, rute 1inch, atau fill privat).
  4. Melunasi flash loan; sisanya adalah profit, diverifikasi dengan require(profit >= minProfit) sehingga simulasi yang basi akan revert alih-alih dieksekusi dengan kerugian.

Bagian swap adalah tempat bot yang ceroboh mati: menyita $10.500 dari token long-tail berarti harus memakan likuiditas DEX-nya, dan price impact saat keluar bisa melebihi liquidation bonus. Operator kompetitif mensimulasikan seluruh perjalanan pulang-pergi — termasuk swap keluar — dan melewati likuidasi di mana hasil netto-nya negatif, atau menahan kolateral tersebut dan melakukan hedge di perp alih-alih membuang-nya ke pasar.

4. Pengiriman bundle

Transaksi terakhir tidak melewati mempool publik sama sekali. Ia dikirim sebagai bundle ke block builder (atau ke lelang SVR/OEV di mana itu berlaku), yang menyatakan: "tempatkan likuidasi saya segera setelah transmit oracle ini; ini tip saya." Tip tersebut adalah tawaran Anda dalam sebuah lelang all-pay-nothing-if-you-lose melawan setiap bot lain yang menjalankan simulasi yang sama. Yang membawa kita ke ekonomi yang tidak nyaman.

Persaingan: ke mana sebenarnya bonus itu mengalir

Baseline akademisnya adalah Qin, Zhou, Gamito, Jovanovic dan Gervais, "An Empirical Study of DeFi Liquidations: Incentives, Risks, and Instabilities" (2021), yang mengukur bisnis ini di Aave, Compound, MakerDAO dan dYdX dari April 2019 hingga April 2021: 28.138 likuidasi senilai total $807 juta, dengan $63,6 juta profit likuidator agregat. Makalah tersebut juga mendokumentasikan inefisiensi struktural dari likuidasi spread tetap — diskonnya adalah instrumen kasar yang secara rutin menghukum peminjam secara berlebihan dibanding apa yang akan dikenakan oleh sebuah lelang — dan menunjukkan likuidator yang meninggalkan uang dalam jumlah terukur di atas meja dengan strategi yang naif.

Profit era itu tidak akan terulang, karena tiga alasan yang saling memperkuat:

Lelang gas berubah menjadi lelang builder. Pada 2019–2020, likuidator bersaing dalam lelang priority-gas di mempool terbuka; pemenangnya membayar gas berlebih, yang kalah mengalami revert, dan sebagian bermakna dari bonus tetap tinggal pada likuidator. Pasca-MEV-Boost, persaingan terjadi dalam lelang builder yang tersegel. Ketika N bot mensimulasikan peluang deterministik yang sama hingga angka profit yang sama, penawaran mengonvergensi menuju hadiah penuh: bundle pemenang secara rutin memberi tip 90%+ dari profit kotor kepada builder/validator. Keunggulan likuidator menyusut menjadi hanya siapa pun yang memiliki harga keluar yang sedikit lebih baik, biaya yang sedikit lebih rendah, atau peluang yang tidak terlihat oleh yang lain.

Backrun oracle mendominasi, dan sedang dikurung. Karena hampir semua likuidasi pasar uang dipicu oleh update oracle, ruang strategi yang menguntungkan runtuh ke satu titik: menangkan slot tepat setelah transmit. Mekanisme bergaya SVR memformalkan ini — protokol melelang slot tersebut dan menyimpan sebagian besar hasilnya. Bagian searcher menyusut dari "bonus dikurangi gas" menjadi "margin pemenang lelang," yang didorong penawaran kompetitif menuju nol.

Long tail adalah yang tersisa. Ceruk realistis bagi pendatang baru pada 2026: chain dan L2 di mana pasar builder-nya belum matang; fork lending long-tail dengan parameter bonus yang salah harga dan sedikit bot pesaing; posisi dengan kolateral eksotis di mana simulasi swap keluar benar-benar sulit (keunggulan lewat eksekusi yang lebih baik, bukan latensi yang lebih baik); dan event stres, ketika gas melonjak dan kegagalan RPC melumpuhkan operator marjinal — Black Thursday MakerDAO (Maret 2020), ketika lelang tawaran nol memungkinkan likuidator mengklaim $8,3 juta kolateral pada dasarnya secara gratis karena tidak ada infrastruktur pihak lain yang berfungsi, tetap menjadi contoh kanonik bahwa balapan ini membayar paling baik justru saat paling sulit dijalankan.

Menentukan ekspektasi yang jujur: ini sekarang adalah bisnis dengan biaya tetap yang nyata (node, hubungan dengan builder, pemantauan di selusin deployment) yang bersaing untuk kumpulan hadiah yang telah banyak dipotong. Ini adalah cara yang bagus untuk belajar lebih banyak tentang internal EVM, oracle dan pipa ledeng MEV daripada yang bisa diajarkan kursus mana pun. Ini adalah cara yang sulit untuk mencari nafkah.

Likuidasi perp-DEX: kata yang sama, permainan berbeda

DEX perpetual juga "melikuidasi," dan angka utamanya lebih besar — tetapi mekanismenya, dan karenanya peluangnya, secara struktural berbeda.

GMX (v2): posisi diperdagangkan melawan pool likuiditas pada harga oracle (Chainlink low-latency Data Streams). Likuidasi terpicu ketika kolateral dikurangi kerugian dan biaya jatuh di bawah persyaratan maintenance, dan ini dieksekusi oleh keeper — infrastruktur yang ditunjuk yang beroperasi pada harga yang ditandatangani oracle, bukan sebuah balapan terbuka. Tidak ada fungsi publik yang membayar bonus 5% kepada siapa pun yang memanggil lebih dulu; kolateral yang tersisa mengalir ke pool sesuai aturan protokol. Dari sudut pandang searcher, tidak ada apa pun yang bisa dimenangkan.

Hyperliquid: likuidasi berjalan di dalam matching engine milik L1-nya sendiri. Ketika ekuitas akun jatuh di bawah maintenance margin (dievaluasi pada mark price yang dicampur dari feed CEX dan order book, tepatnya untuk menahan permainan oracle seperti yang dijelaskan di atas), engine mengirim order pasar likuidasi ke order book — posisi besar dalam potongan-potongan parsial untuk membatasi dampak. Jika ekuitas terus jatuh di bawah dua-pertiga dari maintenance margin, posisi tersebut diambil alih pada mark price oleh backstop liquidator vault yang merupakan sebuah strategi di dalam HLP, vault market-making milik komunitas dari protokol tersebut, dengan auto-deleveraging sebagai lapisan terakhir. P&L likuidasi mengalir ke depositor HLP — "profit likuidator" disosialisasikan ke dalam sebuah vault yang bisa diikuti siapa saja, bukan diperlombakan per-event.

Konsekuensinya bagi seorang trader: di pasar uang, permainannya adalah menjadi likuidator — sebuah balapan infrastruktur untuk spread tetap. Di perp DEX, peran likuidator tertutup, sehingga permainannya bergeser menjadi trading di seputar likuidasi: harga likuidasi dapat dihitung dari posisi terbuka, arus paksa mengenai order book yang terlihat, dan level likuidasi yang berkerumun menjadi baik magnet maupun sumber bahan bakar bagi pergerakan harga. Itulah logika yang sama yang membuat cascade likuidasi CEX dapat diperdagangkan — dinamika yang kita singgung di funding rate membunuh leverage Anda (biaya leverage adalah yang mendorong posisi menuju jurang) dan di mekanika pump-and-dump shitcoin (dorongan yang direkayasa ke dalam klaster likuidasi). Pembahasan lengkap cascade sebagai sebuah sinyal — mendeteksinya sedang terbentuk, mengukur bahan bakarnya, memperdagangkan overshoot-nya — adalah topik artikel berikutnya dalam seri ini.

Yang perlu diambil sebagai pelajaran

Likuidasi pasar uang adalah sudut langka di dunia crypto di mana segalanya terbaca jelas: kondisi pemicunya adalah sebuah formula, hadiahnya adalah konstanta yang ditentukan governance, tembakan aba-abanya adalah sebuah transaksi oracle yang bisa Anda lihat datangnya. Keterbacaan itu membangun bisnis yang benar-benar terbuka pada 2019–2021, dan kemudian — justru karena segalanya terbaca jelas — persaingan menekan keunggulannya turun ke kualitas infrastruktur dan melelang sisanya kembali ke protokol. Mekanikanya tetap merupakan pengetahuan esensial: jika Anda meminjam on-chain, matematika ini adalah model risiko Anda; jika Anda trading di seputar arus paksa, kadensi oracle dan close factor memberitahu Anda kapan dan berapa banyak; dan jika Anda tetap membangun bot-nya, setidaknya bangunlah dengan mengetahui ke mana sebenarnya uang itu mengalir.

Penafian: Informasi yang disediakan dalam artikel ini hanya untuk tujuan edukasi dan informasi serta tidak merupakan nasihat keuangan, investasi, atau trading. Trading mata uang kripto mengandung risiko kerugian yang signifikan.

Penulis

Eugen Soloviov
Eugen Soloviov

Trading-systems engineer

Trading-systems engineer building bots since 2017: cross-exchange arbitrage (connected up to 30 venues), cointegration-based pairs arbitrage across spot and futures, scalping, news and sentiment-driven strategies, trend algorithms, and portfolio management and balancing algorithms. Also builds sub-millisecond order execution, big-data warehouses, backtesting engines, AI agents, and trading interfaces (incl. open-source profitmaker.cc). Stack: JS/TS, Python, Rust/Zig/Go, DevOps, backend, frontend, architecture.

Newsletter

Selangkah Lebih Maju dari Pasar

Berlangganan newsletter kami untuk wawasan AI trading eksklusif, analisis pasar, dan pembaruan platform.

Kami menghormati privasi Anda. Berhenti berlangganan kapan saja.