JOVANA
Explore Library Glossary Getting Started Three Levels Fields How it works Mission
Join the mission
All guides

借貸、槓桿與清算:Aave 與 Compound 如何運作

一間永不打烊、不問你姓名、只相信抵押品的當鋪。我們用真實的 Aave 式數字,推導出健康因子、以使用率為基礎的利率曲線,以及讓整個系統維持清償能力的清算機制。

一間永不打烊的當鋪

走進一個鏈上貨幣市場,交易條件殘酷地簡單。你交出 10 顆 ETH,換得 12,000 USDC。沒人問你姓名、查你信用、看你薪資單。這裡沒有可以打點的放款專員,也沒有能在你人間蒸發後追討的法院。所以協定只能依靠它唯一真正能強制執行的承諾:價值高於貸款的抵押品。這就是「超額抵押」借貸,也是一個 借貸協定 在借款人只是一把匿名公鑰的世界裡得以存活的核心。

有兩個協定定義了這套玩法。Compound(2018)與 Aave(脫胎自 ETHLend)都把銀行那套媒合工作——找放款人、找借款人、談妥條件——換成了每種資產一個共用資金池。所有供應 USDC 的人匯入同一個大型 USDC 池;所有借 USDC 的人從中提取。一個每個區塊重新計算的利率,平衡這兩群人。沒有人替你定利率,是一條方程式在定。

同一個池子的兩端

當你供應資產,你不是把它停在那裡——你是把它借給池子裡的借款人,賺取他們支付的利息。為了追蹤你那筆不斷增長的請求權,協定會鑄給你一枚「收據代幣」。Aave 給你 aToken(存入 1,000 USDC,便持有 1,000 aUSDC,其餘額隨利息累積而往上跳——一種 彈性供應代幣)。Compound 給你 cToken,其數量固定不變,但對標的資產的兌換率持續攀升。無論哪種,贖回收據都會拿回本金加利息。這個構想的現代標準化版本就是 ERC-4626 代幣化金庫

// Compound-style cToken: quantity is fixed, exchange rate rises.
// You supply 1,000 USDC when 1 cUSDC = 1.00 USDC  ->  receive 1,000 cUSDC.
exchangeRate = (cash + totalBorrows - reserves) / cTokenSupply;

// Interest accrues into totalBorrows each block, so the rate grows:
//   day   0:  1 cUSDC = 1.0000 USDC   ->  your 1,000 cUSDC = 1,000.00
//   day 365:  1 cUSDC = 1.0324 USDC   ->  your 1,000 cUSDC = 1,032.40
// You redeem cTokens at the higher rate; the +3.24% IS your interest.
你的利息內建在不斷上升的兌換率裡,而非變動的餘額中。

但這裡有個會牽動下游一切的陷阱:池子裡的「現成現金」可能被抽乾。若借款人把供應者投入的資金幾乎全借走,想提領的供應者就會發現櫃子幾乎見底。協定無法強迫借款人提前還款,所以它用價格——也就是利率——來管理這股張力。在搞懂你能借多少之後,我們就來談它。

你能借多少?LTV 與健康因子

每種抵押資產都帶有兩個由治理設定的參數。最大 LTV(貸款價值比)限制你能對它借出多少;清算門檻 則是更高的那條線,越過它你就會被清算。兩者之間的差距就是你的安全邊際。假設 ETH 的最大 LTV 為 80%、清算門檻為 82.5%。你以每顆 $2,000 存入 10 顆 ETH = $20,000 抵押品,於是最多可借 $16,000。你保守地借了 $12,000 USDC——抵押率 達 167%。

告訴你離懸崖多近的那個單一數字,就是 健康因子(HF)。它把每項抵押品以其清算門檻加權,再除以你的總負債。高於 1 你就安全;一旦跌破 1,你的部位就成了清算者的獵場。

// Aave health factor (all values in one common unit, e.g. USD)
healthFactor = sum(collateral_i * price_i * liquidationThreshold_i) / totalDebt

// Our position: 10 ETH @ $2,000, liqThreshold = 0.825, debt = 12,000 USDC
HF = (10 * 2000 * 0.825) / 12000
   = 16500 / 12000
   = 1.375          // healthy

// Liquidatable when HF < 1. Solve for the ETH price P that makes HF = 1:
//   (10 * P * 0.825) / 12000 = 1   ->   P = 12000 / (10 * 0.825) = $1,454.5
// ETH must fall ~27% (from $2,000) before you are at risk.
一行算出健康因子,並求出觸發清算的確切價格。

仔細讀這個結果。對 $20,000 只借 $12,000,替你買到了 27% 的價格緩衝。若你借滿 $16,000,HF 會是(16,500 / 16,000)= 1.03——跌個 3% 就會被清算。專業借款人的紀律正是如此:讓健康因子舒適地高於 1,因為市場不會提前預告它的崩盤。

貸款的價格:以使用率為基礎的利率

沒人替你議價。它是 使用率 的一個確定性函式——使用率即池子當下被借出的比例,U = 總借款 / 總供應。當 U 偏低,資金閒置而便宜。隨著 U 攀向一個「最佳」點(比方 90%),利率溫和上升。越過那個轉折點,斜率就變得兇狠:陡峭的第二段讓最後幾滴流動性貴得嚇人,藉此賄賂借款人還款、供應者存款,好讓想提領的存款人永遠不致被晾在一邊。

// Aave-style two-slope ("kinked") interest rate model.
// Per-year rates; U is utilization in [0, 1].
function borrowRate(U) {
    if (U <= U_OPTIMAL) {
        return BASE + (U / U_OPTIMAL) * SLOPE1;
    } else {
        excess = (U - U_OPTIMAL) / (1 - U_OPTIMAL);
        return BASE + SLOPE1 + excess * SLOPE2;
    }
}
// USDC pool params:  BASE=0%, SLOPE1=4%, SLOPE2=60%, U_OPTIMAL=90%
//   U = 50%  ->  0 + (0.50/0.90)*4%            = 2.22%
//   U = 90%  ->  0 + 4%                        = 4.00%   (the kink)
//   U = 95%  ->  4% + (0.05/0.10)*60%          = 34.00%  (panic zone)

// Suppliers earn a share of what borrowers pay:
//   supplyRate = borrowRate * U * (1 - reserveFactor)
//   at U=90%, borrowRate=4%, reserveFactor=10%:
//   supplyRate = 0.04 * 0.90 * 0.90 = 3.24%
轉折型曲線:在最佳點以下溫和,在其上則兇猛。

請注意,供應者賺到的永遠 少於 借款人支付的(此處 3.24% 對 4.00%)。這道楔形差有兩個成因:使用率低於 100% 意味著不是每一塊供應的錢都在生息,而 儲備係數 又抽走一刀,注入協定的金庫或安全模組,作為對抗壞帳的緩衝。這也是為什麼你偶爾在新池子看到那種驚人的供應年化報酬率是警訊而非禮物:它們通常代表使用率被釘在轉折點附近、流動性稀薄、提領可能困難。追逐它們,正是 DeFi 收益要求你讀懂數字背後風險的一張面孔。

清算:維持系統清償能力的看守者

你的健康因子跌破 1 的那一刻,協定就把你的部位公開放出。任何人——通常是一個叫「看守者」的機器人——都可以介入,替你償還部分債務,並以折扣價沒收你的抵押品。那個折扣就是 清算獎勵(常見 5–10%):在清算一變得有利可圖的瞬間,付錢請清算者替協定做髒活的那根紅蘿蔔。一個 清算上限比例(Aave v2 為 50%)限制單次清算呼叫能清掉多少債務,所以你通常是被一塊一塊清算,而非一次清光。

  1. 一次預言機更新或一波價格下跌,把借款人的 HF 壓到 1 以下。
  2. 一個看守者機器人發現後呼叫 liquidationCall(),償還至清算上限比例的債務——此處為 $12,000 的 50% = $6,000 USDC。
  3. 作為回報,它沒收價值為償還額加 5% 獎勵的抵押品:$6,000 * 1.05 = 價值 $6,300 的 ETH。
  4. 借款人的債務與抵押品同時縮減,HF 被推回 1 以上——部位存活下來,更輕、也帶傷。

用觸發價 $1,454.5 把數字跑一遍。看守者償還 $6,000,取走價值 $6,300 的 ETH ≈ 4.33 顆,留給你 5.67 顆 ETH($8,250)抵押品,對應 $6,000 債務。你的新 HF =(8,250 × 0.825)/ 6,000 ≈ 1.13——再次健康。殘酷的地方在於:你剛為這份「待遇」付了 $300 罰金給一個陌生人。這場 清算 同時是一場兇猛的 MEV 競賽——機器人在記憶池裡為那筆獎勵彼此廝殺,常常用一筆 閃電貸 來墊付償還額,這樣它們連自己的本金都不需要。

用循環貸堆出槓桿

借貸從這裡開始變得不無聊。存入 ETH,以它為抵押借出一種穩定幣,在 DEX 上把穩定幣換回 ETH,再存入,再借一次。這個「循環」(遞迴借款)每轉一圈,就在同一筆起始資本上疊加更多曝險。由於每一圈只借出上一圈的 LTV 比例,總額是一個收斂到漂亮上限的幾何級數:1 /(1 − LTV)。那次兌換倚賴一個 自動造市商(AMM),而這個循環部位,本質上就是一個帶槓桿的 抵押債倉

// Recursive "looping" to build leverage on one collateral asset.
deposit(E);                       // start with E of your own equity
repeat:
    borrowable = LTV * freeCollateralValue();
    stable = borrow(borrowable);
    more   = swap(stable -> collateral);   // on an AMM / DEX
    deposit(more);

// Total deposits = E * (1 + LTV + LTV^2 + ...) = E / (1 - LTV)
// LTV = 0.80  ->  max leverage = 1 / 0.20 = 5x
//   total collateral = 5E,  total debt = 4E,  equity = 1E
// A flash loan can build the whole position in ONE transaction.
循環貸的配方,與 1/(1−LTV) 的槓桿上限。

在 80% LTV 下上限是 5 倍,但沒有頭腦清醒的人會循環到頂:在 5 倍下,僅僅約 20% 的不利波動就會抹掉你的本金,而且部位遠在那之前就會被清算。循環貸有三個無聲殺手。清算風險被放大——1 倍持有者聳聳肩就過去的小跌,能抹平一個 5 倍部位。負利差——若借款利率悄悄爬過你循環資產的收益,光是抱著這筆交易,你每個區塊都在失血。還有 相關性斷裂——把流動性質押代幣對 ETH 做循環這個熱門把戲,假設兩者 1:1 交易,但 2022 年 6 月 stETH 滑落到約 7% 折價,逼得循環者在下跌的市場裡平倉。槓桿是工具,不是免費午餐;對於方向性押注,永續期貨 往往是更乾淨的工具。

失效模式與誠實的取捨

一個借貸協定建立在三個外部假設上,而每一個都曾是它被攻破的地方。第一,正確的價格預言機:餵它一個錯誤價格,你就能憑空鑄出壞帳。2022 年 11 月,一名攻擊者拉抬流動性稀薄的 CRV 市場,用被灌水的抵押品在 Aave 上過度借款,待價格彈回時留下約 $1.6M 壞帳——一次教科書級的 預言機操縱 擦撞。第二,有流動性的市場,好讓清算者真能賣掉沒收的抵押品;稀薄、波動、長尾的資產,正是黑色星期四式跳空發生的地方。第三,合理的參數——LTV、門檻與上限——它們由治理設定,也可能過於慷慨。

協定以分層防禦回應:隔離模式(一項有風險的新抵押品只能借出上限額度的穩定幣,把它的爆炸半徑隔離起來)、供應與借款上限,以及 效率模式(e-mode)——只在兩種穩定幣這類高度相關的資產之間給予較高 LTV。這些都無法消除最深層的風險——一筆 DeFi 存款同時暴露於智慧合約漏洞與治理本身之下,因為一場被奪取的代幣投票,原則上可以更動那些正在保護你的參數。

撥開術語,這項成就令人印象深刻:借貸協定用三塊數學取代了人類信貸專員——你必須超額抵押的擔保品、為它定價的預言機,以及付錢請陌生人執行規則的清算獎勵。這就是 DeFi 的信用層,而它誠實的代價是資本低效:鎖住 $20,000 才能借 $12,000,正是「不需要信任任何人」的價格。那片開放的前沿——不足額抵押借貸、鏈上信用評分、真實世界資產抵押——是這個產業試圖贏回那份效率,卻又不把區塊鏈當初要刪除的那些信任假設重新引進門的努力。