---
# System prepended metadata

title: 20230601 - Compound

---

# 20230601 - Compound

- compound 如何向借款人收取借款利息呢？
    - 增加借款人的 **還款金額**
- 一般借貸協議，如何讓存款人拿到利息？
    - rebase
        - 存多少數量的 token，就會給予同樣數量的憑證(token)
        - 讓存款人拿到利息的方式是：隨著時間增加 pool 裡的數量，到時存款人要 redeem 時，就會拿到比較多 token
        - [Lido](https://lido.fi/) 就是使用這種方法
    - exchange rate:
        - 每個 pool 都會自己的兌換比率，這比率只會一直變大
        - cToken(存款憑證) * 該比率 = 能換回多少原 token
        - = 一顆 c token 可以換到多少的 本幣
        - 要注意 2 個 token 兌換的 decimals，如果不同的話，要做換算！
        - 案例： Compound
    
- 如果想要 exchange rate 是 1:1，合約中的 exchange rate 要怎麼設？
    - cToken decimal = 8
    - erc20 decimals = 18 
    - 100000000 => 1000000000000000000
    - 注意小數位數的差異


- compound v2 如何確保借款方還錢
    - 如果很多人把錢借走，沒人還錢，導致池子的錢不夠了？
    - introduce **浮動利率** ![](https://hackmd.io/_uploads/HJgNvWL8n.png)
    - 白色：資金利用率
    - 白色越高，借款利率就越大
    - 存錢的人會更偏向存錢還是提款？提款，因為利率太低，沒什麼可以賺
    - 想借錢的人會更偏向借錢還是不借錢？借錢，因為利率低


script practice: [0x1c3c3554d839a688e292ec36bd0bece345126818](https://sepolia.etherscan.io/address/0x1c3c3554d839a688e292ec36bd0bece345126818)
        
