业务逻辑
Compound 基本业务
- 存款: 用户存入
标的资产
后,Compound
会根据兑换率
返回与标的资产相对应的CToken
给用户,作为存款凭证 - 取款:用户赎回存款时,将
CToken
还给合约,Compound
会根据最新兑换率计算出需要赎回的标的资产数量并返还给用户。因为Compound
会根据时间自动生息。所以取款时兑换率增大,会根据最新的兑换率计算用户可取款数量
比如,用户存入 1 个 ETH,当时的兑换率为 0.1,则返回 1/0.1 = 10 个 cETH,等到赎回时,假设兑换率已经升到了 0.15,则那 10 个 cETH 可赎回 10*0.15 = 1.5 个 ETH,多出的 0.5 个 ETH 就是利息所得。
- 抵押借款: 当用户将存入的资产开启作为抵押品后,就可以借款了.并不是所有的资产都可以作为抵押品.抵押因子为 0 的资产不能作为抵押品(比如 USDT)。抵押因子为
0~1
。一般最高设置为 0.75。表示最多可以借抵押品价值的 75%.比如抵押 100 美元的资产最多可以借出价值 75 美元的另一种资产。一般不建议用完所有的可借额度,因为存在被清算的风险 - 清算: 当借出的资产价值超过抵押品价值时,就会被清算。因为合约无法自动执行清算,都是有链下机器人触发清算方法。合约判断达到清算条件以后,则执行清算。同时机器人可以拿到一定的清算奖励。
Compound
的清算模式属于代还款清算
的方式。即清算人会替借款人进行部分还款并得到相同价值的抵押资产加一定比例的清算奖励。清算奖励也是抵押资产。目前Compound
每次清算最多可以代还款 50%。
例如: 借款人抵押 ETH 借款 100USDT,当 ETH 价格下跌时,抵押的 ETH 价值小于 100USDT 时就可以触发清算。这时 B 触发了清算。则 B 可以帮 A 还 50USDT,假设清算激励为 0.05,则 B 可以得到 A 价值 50 * (1 + 0.05) = 52.5USDT 的 ETH.
如果 A 抵押 DAI 借 ETH,则当 ETH 价格上涨时,存在清算风险
相关概念
- 标的资产(Underlying Token):即借贷资产,比如 ETH、USDT、USDC、WBTC 等
- CToken:也称为生息代币,是用户在 Compound 上存入资产的凭证。每一种标的资产都有对应的一种 cToken,比如,ETH 对应 cETH,USDT 对应 cUSDT,当用户向 Compound 存入 ETH 则会返回 cETH。取款时就可以用 cToken 换回标的资产。
- 兑换率(Exchange Rate):cToken 与标的资产的兑换比例,比如 cETH 的兑换率为 0.02,即 1 个 cETH 可以兑换 0.02 个 ETH。兑换率会随着时间推移不断上涨,因此,持有 cToken 就等于不断生息,所以也才叫生息代币。计算公式为:
exchangeRate = (totalCash + totalBorrows - totalReserves) / totalSupply
- 抵押因子(Collateral Factor): 每种标的资产都有一个抵押因子,代表用户抵押的资产价值对应可得到的借款的比率,即用来衡量可借额度的。取值范围
0-1
,当为 0 时,表示该类资产不能作为抵押品去借贷其他资产。一般最高设为 0.75,比如 ETH,假如用户存入了 0.1 个 ETH 并开启作为抵押品,当时的 ETH 价值为 2000 美元,则可借额度为0.1 _ 2000 _ 0.75 = 150
美元,可最多借出价值 150 美元的其他资产。
利率模型
Compound
的利率模型主要有两种: 直线型
和拐点型