【DeFi 的世界】Compound 完全解析-利率模型篇 – 詹舜傑 (Jack)

0 49


Compound 為 Maker Dao 組織所創建,透過 Ethereum 區塊鏈上的智能合約,達到去中心化的借貸需求。相較於傳統的中心化金融,Compound 擁有公開透明的利率模型、高隱私性、即時借款、放貸免綁約的特色。

這邊我們以目前放貸年利率最高的 DAI 來說明。首先,放貸人將 DAI 放入智能合約中,即可立即完成放貸並產生利息,而借款人可以透過抵押資產 (這邊以 ETH 當例子) 的方式借走智能合約的 DAI,並依照利率支付利息。

這個架構有幾點需要知道:

  1. 借款人可以抵押任何 Compound 上面所列的資產,但為了防止借款人付不出利息,抵押的總資產必須 > 借出的總資產,且要高於一定比例,下面會有更詳細介紹。
  2. 借款人還款時,所支付多出來的利息,會平均分配給所有放貸人(依放貸資產比例分配),所以不會有一對一借貸的問題。
  3. 借款人隨時可以還款,還款時依照借款的利率與時間,決定總共的還款數量。同樣,放貸人隨時可以連本帶利提出 DAI ,但前提是智能合約必須要有足夠的 DAI (可能部分正在出借),但由於 Compound 有保留利率 (保留金) 的機制,智能合約多出來的 DAI 數量越來越多,幾乎不可能有提不出錢的情況。

究竟 Compound 是怎麼做到即時放貸、即時還款的呢?

實際上在智能合約裡的運作是這樣:

當放貸人放入 1 DAI 到智能合約時,智能合約會產生出額外的 cDAI (compound DAI) 給放貸人。而放貸人隨時能以 cDAI 換回原本的 DAI 以及多出來 DAI 的利息。

以上面的例子來說,放貸人放入 1 DAI,獲得 40 cDAI,因此當下 DAI 與 cDAI 的兌換率是 1/40 = 0.025,隨著時間與利率增加,此兌換率的值會越來越大,也就是說:

  • 目前 1 cDAI 可以換到 0.025 DAI
  • 隨時間過去,兌換率 > 0.025,1cDAI 可以換到 > 0.025 DAI
  • 40 cDAI 可以換到 > 1 DAI,多出來的,就是放貸人得到的利息
  • 使用 Compound DAI 智能合約的人,看到的兌換率是相同的

放貸人只需要透過持有 cDAI,便可以獲得 DAI 的利息。

舉個實際的例子:

  1. 小明於 2019 年 10 月 10 日將 1000 DAI 放入智能合約中,並獲得 40000 cDAI。
  2. 2019 年 10 月 10 日這天 DAI 與 cDAI 的兌換率 = 1/40 = 0.025
  3. 2020 年 10 月 10 日,小明決定把放貸的錢連本帶利提出來。這時候,DAI 與 cDAI 的兌換率增加到 0.0275
  4. 於是小明用之前持有的 40000 cDAI 換回了 40000 x 0.0275 = 1100 DAI
  5. 多出來的 100 DAI 就是小明這一年放貸所得到的利息。

兌換率依照以下數據做計算 (以 Compound DAI 為例子):

  • totalCash = 放入智能合約,但還沒被借走的 DAI 的總數量
  • totalBorrows = 所有借款人,所應償還的 DAI 的總數量 (含本金利息)
  • totalReserves = 保留金總數量 (借款人所應支付的利息,部分被視為保留金)
  • totalSupply = 所有放貸人所得到的 cDAI 的總數量
兌換率公式

由此可以看出:

借款 (borrow) 量越多,兌換率增加越快。(因為所需支付利息增加越快)

註:totalBorrows 跟 totalReserves 主要受到下面會介紹的,借款年利率與放貸年利率影響。

這邊更進一步說明放貸年利率借款年利率。首先,要介紹一個在 Compound 中重要的指標:使用率

簡單來說,使用率就是所有放貸進來的錢當中,已經被借走的比例。

使用率公式
Compound App 利率資訊

上圖由 Compound App 網站可以看出,當前使用率是 62.13%,也就是放貸人放進來的 DAI 有 62.13% 正被借走當中。

有了使用率,就可以說明 Compound 的核心利率模型

借款年利率

在 Compound 利率模型裡,會計算借款年利率,這個利率會受到以下因素影響:

  1. 基礎利率 (base rate)
  2. 使用率 (utilization rate)
  3. 加給利率 (multiplier)

借款年利率 = 基礎利率 + (使用率 x 加給利率)

以 Compound DAI 為例,基礎利率 = 5%,加給利率 = 12%,若以目前當下的使用率 = 62.13% 來計算:

借款年利率 = 5% + (12% x 0.6213) = 12.4556 %

也就是上圖所顯示的 12.46% 的由來,也就是說,借款人所需要支付利息的年利率,在這個當下是 12.46%。

放貸年利率

放貸年利率同樣會受到以下因素影響:

  1. 借款年利率 (borrow rate) (上述所計算出來的)
  2. 使用率 (utilization rate)
  3. 保留利率 (reserve factor)

放貸年利率 ≈ 借款年利率 x 使用率 x (1 – 保留利率)

同樣以 Compound DAI 為例子,上述算出借款年利率 = 12.46%,使用率=62.13%,保留利率 = 5%

放貸年利率 ≈ 12.46% x 62.13% x (1 – 5%) = 12.46% x 0.6213 x 0.95 = 7.3543281 %

同樣也是上圖所顯示的 7.35% 計算方式的由來,也是指放貸人會收到利息的年利率,在這個當下會是 7.35 %

這邊需要注意的是,在 compound 利率模型裡面,每個幣種的基礎利率加給利率、保留利率可能不盡相同,但都是智能合約裡的常數。

智能合約裡有可以讓管理者(admin) 修改這些常數的權限,因此 Maker Dao 組織可以視情況做調整。而任何調整,都能在區塊鏈上公開透明的查詢到。

所以我們能看出什麼?

在 Compound 利率模型裡面,若常數不變,單一幣種借款年利率放貸年利率是存在最大值或最小值的,因為會變動的因素基本上只有使用率一個因素。

以 Compound DAI 來看:

  • 基礎利率 = 5%
  • 加給利率 = 12%
  • 保留利率 = 5%

借款年利率 = 基礎利率 + (使用率 x 加給利率)

因此,當使用率 = 0%,借款年利率 = 5%,當使用率 =100%,借款年利率 = 17%。

借款年利率最小值 = 5%,借款年利率最大值 = 17%

放貸年利率 = 借款年利率 x 使用率 x (1-保留利率)

同樣可以算出,放貸年利率最小值 = 0% ,放貸年利率最大值 = 16.15%

You might also like

Pin It on Pinterest

Share This

Share this post with your friends!

WhatsApp chat