Rủi ro & Cơ chế · DeFi Lending

Liquidation DeFi: Cơ chế, Ai làm & Cách Tránh

Khi Health Factor xuống dưới 1.0, liquidation engine kích hoạt tự động. Hiểu cơ chế này là điều kiện tiên quyết để tránh mất tiền oan trong DeFi lending.

⏱ ~12 phút📅 2025🎯 Intermediate
Mục lục
  1. Tại sao cần liquidation?
  2. Cơ chế hoạt động step-by-step
  3. Liquidator là ai?
  4. Close Factor: Tại sao 50%?
  5. Liquidation Bonus: Bao nhiêu là đủ?
  6. Ví dụ số thực tế
  7. Death Spiral risk
  8. Chiến lược tránh bị liquidate
  9. Lỡ bị liquidate rồi, làm gì?

Tại sao DeFi lending cần liquidation?

DeFi lending không có tòa án, không có nhân viên thu hồi nợ. Khi người vay không còn đủ tài sản thế chấp để bảo đảm khoản vay, hệ thống cần một cơ chế tự động để bảo vệ người gửi tiền — những người cung cấp thanh khoản cho pool.

Liquidation là cơ chế đó: smart contract cho phép bên thứ ba (liquidator) trả bớt nợ hộ người vay, đổi lại nhận collateral với giá ưu đãi. Kết quả: nợ giảm, vị thế trở về trạng thái an toàn, pool không bị thua lỗ.

Liquidation bảo vệ ai?
Liquidation bảo vệ người gửi tiền (depositors) trước. Người vay chịu penalty nhưng phần còn lại của collateral sau liquidation vẫn thuộc về họ.

Cơ chế hoạt động step-by-step

  1. Trigger: Health Factor của một vị thế giảm xuống dưới 1.0 — do giá collateral giảm hoặc giá tài sản vay tăng
  2. Phát hiện: Bot MEV scanning liên tục on-chain — phát hiện vị thế HF < 1.0 trong vài giây
  3. Tính toán: Bot tính lợi nhuận: chọn collateral nào nhận, trả bao nhiêu nợ, ước tính gas và slippage
  4. Gọi hàm: liquidationCall(collateralAsset, debtAsset, user, debtToCover, receiveAToken)
  5. Thực thi: Smart contract trừ nợ, chuyển collateral + bonus cho liquidator
  6. Kiểm tra lại: Nếu HF vẫn < 1.0, quá trình tiếp tục cho đến khi đủ an toàn
// Simplified liquidationCall logic (Aave V3)
function liquidationCall(
  collateralAsset,   // tài sản collateral muốn nhận
  debtAsset,         // tài sản nợ muốn trả
  user,              // địa chỉ người bị liquidate
  debtToCover,       // số nợ muốn trả (tối đa 50% = close factor)
  receiveAToken      // nhận aToken hay token gốc?
) {
  require(HF[user] < 1e18, "Health factor not below threshold");
  // Tính toán collateral nhận = debtToCover × oracle_price × (1 + bonus)
  // Transfer debt from liquidator → protocol
  // Transfer collateral + bonus từ user → liquidator
}

Liquidator là ai?

Bất kỳ địa chỉ nào cũng có thể là liquidator — không cần whitelist, không cần permission. Thực tế, liquidation bị dominate bởi:

Cạnh tranh MEV cực kỳ cao
Liquidation lớn trên Ethereum mainnet thường có hàng chục bot cạnh tranh trong cùng block. Gas war đẩy priority fee lên rất cao. Người dùng thường tự liquidate (self-liquidation) để tránh bị bot lấy hết lợi nhuận.

Close Factor: Tại sao chỉ 50%?

Close factor là phần trăm nợ tối đa một liquidator có thể trả trong một lần. Aave và Compound chọn 50%. Tại sao không 100%?

Kịch bảnClose Factor 100%Close Factor 50%
HF chỉ vừa chạm 0.99Mất toàn bộ collateral trừ nợChỉ mất đủ để đưa HF về an toàn
Giá phục hồi sau liquidationNgười vay đã mất hết, không hưởng lợiPhần collateral còn lại hưởng lợi từ phục hồi
Market impactSell pressure lớn, cascade risk caoSell pressure nhỏ hơn, ổn định hơn
Incentive botChờ HF xuống thấp để maximise profitLiquidate sớm khi HF < 1.0 là đủ
Triết lý thiết kế
Close factor 50% thực hiện can thiệp tối thiểu: chỉ thanh lý đủ để đưa vị thế về trạng thái an toàn, không phạt quá mức khi HF chỉ vừa vi phạm một chút.

Liquidation Bonus — Cân bằng incentive và rủi ro

Liquidation bonus là phần thưởng liquidator nhận thêm trên giá trị collateral. Nếu bonus quá thấp, không ai muốn liquidate → nợ xấu tích lũy. Nếu bonus quá cao → death spiral.

Collateral nhận = Nợ trả × Giá oracle × (1 + Liquidation Bonus)

Ví dụ: Trả $8,000 nợ, bonus 5%:
Collateral nhận = $8,000 × 1.05 = $8,400 giá trị ETH
Tài sảnLiquidation BonusLý do
ETH, WBTC (liquid)5–6.25%Thanh khoản cao, slippage thấp
LINK, SNX (mid-cap)7–10%Thanh khoản vừa, cần bù đắp slippage
Long-tail assets10–15%Thanh khoản thấp, rủi ro bán cao hơn

Ví dụ số thực tế

Vị thế ban đầu:
  Collateral: 10 ETH @ $1,800 = $18,000 (LT 82.5%)
  Nợ: $16,000 USDC
  HF = ($18,000 × 0.825) / $16,000 = 0.928  →  bị liquidate

Liquidator thực hiện:
  Trả: $8,000 USDC (50% × $16,000 = close factor)
  Nhận: $8,000 × 1.05 (bonus 5%) = $8,400 giá trị ETH
       = $8,400 / $1,800 = 4.67 ETH

Sau liquidation:
  Collateral còn: (10 - 4.67) ETH = 5.33 ETH × $1,800 = $9,594
  Nợ còn: $16,000 - $8,000 = $8,000
  HF mới = ($9,594 × 0.825) / $8,000 = 0.990  →  vẫn dưới 1!

Lần liquidation thứ 2:
  Trả: $4,000 USDC (50% × $8,000)
  Nhận: $4,000 × 1.05 = $4,200 giá trị ETH = 2.33 ETH
  Còn lại: 2.99 ETH = $5,382, nợ $4,000
  HF = ($5,382 × 0.825) / $4,000 = 1.11  →  an toàn

Tổng thiệt hại người vay:
  Mất: 4.67 + 2.33 = 7.0 ETH ($12,600 tại $1,800)
  Nợ xóa: $12,000
  Thực mất thêm: $600 = penalty từ liquidation bonus
Người vay mất bao nhiêu?
Trong ví dụ trên, penalty thực tế ~$600 (~5% tổng nợ). Nhỏ hơn nhiều so với suy nghĩ ban đầu vì close factor 50% giới hạn từng lần. Nhưng nếu giá ETH tiếp tục giảm trong lúc bị liquidate, thiệt hại tăng tương ứng.

Death Spiral — Rủi ro systemic

Death spiral xảy ra khi một sự kiện liquidation lớn tạo sell pressure → giá collateral giảm → kích hoạt thêm liquidation → sell pressure tăng → vòng lặp không dừng.

Case study: Venus Protocol / XVS 2021
Whale dùng XVS làm collateral, liquidation bonus 15% kết hợp thanh khoản thấp. Bot liquidate → bán XVS → giá giảm → HF người khác dùng XVS giảm → liquidate tiếp. Cascade gây $200M bad debt.

Tại sao Aave ít bị death spiral hơn?

Hiểu thêm về oracle risk: Oracle Risk trong DeFi: Điểm yếu cấu trúc và cách phòng vệ →

Chiến lược tránh bị liquidate

1. Vay ở LTV thực tế 50–60%, không phải 75–80%

LTV 80% trông hấp dẫn nhưng buffer quá mỏng. Với volatility crypto thông thường (±30% mỗi tháng), LTV 50% mới đủ an toàn để ngủ ngon.

2. Cài alert bắt buộc ở HF = 1.5

DeFi Saver hoặc Instadapp. Alert ở 1.5 cho bạn thời gian phản ứng trước khi chạm 1.0, kể cả khi có một cú flash crash.

3. Không dùng toàn bộ vốn vào một vị thế

Giữ lại 20–30% dưới dạng stablecoin để có thể repay nhanh khi cần, không cần bán tài sản ở đáy.

4. Theo dõi utilization rate pool nợ

Khi utilization cao, lãi vay variable có thể tăng đột biến lên 50–200%/năm. Điều này làm tổng nợ tăng nhanh, kéo HF giảm ngay cả khi giá collateral không đổi.

5. Self-liquidation nếu không còn lựa chọn khác

Dùng flash loan để tự thanh lý, tiết kiệm 4–14% so với bị liquidate bởi bot. Xem: Flash Loan và self-liquidation →

Lỡ bị liquidate rồi — làm gì tiếp?

  1. Kiểm tra lại dashboard Aave — xem còn bao nhiêu collateral, còn bao nhiêu nợ
  2. Nếu HF vẫn < 1.0, tiếp tục bị liquidate cho đến khi HF > 1.0
  3. Khi HF > 1.0: quyết định repay toàn bộ hoặc rút bớt collateral về
  4. Đánh giá lại chiến lược: tại sao bị liquidate, điều chỉnh LTV target cho lần sau
  5. Phần collateral còn lại sau liquidation vẫn thuộc về bạn — rút về khi ổn
Điều quan trọng cần nhớ
Bị liquidate không mất trắng. Bạn mất penalty (liquidation bonus) nhưng được xóa bớt nợ tương ứng. Nếu collateral bạn gửi vào là $18,000 và nợ $16,000, sau khi liquidate xong bạn vẫn còn collateral dư.