项目背景
Morpho blue (下称 Morpho)是一个超额抵押借贷协议。与传统的借贷协议不同,Morpho 无需经过治理批准即可创建任意定制化的借贷市场。用户可以通过指定一项贷款资产、一项抵押资产、清算贷款价值 (LLTV)、预言机和利率模型 (IRM) 等参数来创建一个独立市场。市场创建以后,其相关参数不可修改。
相比传统借贷协议,Morpho 的优势在于:
- 无需治理许可的市场创建: Morpho 无需治理许可即可创建具有任何抵押品和贷款资产以及任何风险参数化的市场。
- 更高的借贷比例:由于 Morpho 的借贷市场是一种抵押品和一种借贷品组成的,与多资产池不同,每个市场的清算参数可以在不考虑篮子中风险最高的资产的情况下设置。因此,供应商可以以更高的 LLTV 放贷。
- 更高的利率:抵押资产不会借给借款人。这降低了借贷平台正常运作所需的流动性要求,允许 Morpho 提供更高的资本利用率。此外,Morpho 是完全自主的,不收平台手续费(市场可以收取手续费)。
- 低 gas 消耗: Morpho 是一个非常精致的协议,与现有借贷平台相比,这可以减少 50% 的 Gas 消耗。
代码分析
Morpho 协议真的很精简,算上 Mock 合约也只有 1892 行,主合约 Morpho.sol 只有 557 行。
Morpho 合约中的关键函数:
- createMarket:部署新的借贷市场,通过配置借贷资产、抵押资产、利率模型和清算阈值等核心参数,建立一个新的借贷市场。
- supply:向指定借贷市场存入资产,可以指定存入的资产数量或份额,支持代理存款,并在存入后获得对应的份额凭证作为未来提取的依据。
- withdraw:从指定借贷市场提取之前存入的资产,通过销毁份额凭证来赎回对应数量的资产,支持代理操作和指定接收地址。
- borrow:在指定借贷市场借出资产,基于用户的抵押品价值检查其借贷健康度,将借出的资产发送给接收地址,并记录对应的债务份额。
- repay:允许用户或代理人偿还指定借贷市场的债务,通过转入资产来减少目标账户的债务份额,支持指定还款资产数量或份额,并在完成还款后更新市场的总借贷状态。
- supplyCollateral:允许用户向指定借贷市场存入抵押品,支持代理操作,直接增加目标账户的抵押品数量而不产生份额,由于抵押品不参与借贷利息计算,因此无需更新市场利息。
- withdrawCollateral:允许用户从指定借贷市场提取抵押品,需要检查提取后的借贷健康度以确保剩余抵押品足够覆盖当前债务,支持代理操作和指定接收地址。
- liquidate:允许清算人在借款人健康度不足时通过偿还其债务来获取折价的抵押品。
- flashLoan:提供闪电贷功能。
借贷品与抵押品
Morpho 市场是单一抵押品和单一借贷品的市场。所以只有提供借贷品的 Supplier 能够获取利息,而 Borrower 提供质押品的并不会产生利息。
这是它和传统的借贷协议不一样的地方。在传统的借贷协议中,用户所提供的抵押品同时会作为借贷品借给其他借款人,所以抵押品会产生利息。
当 Supplier 通过 supply
函数提供借贷品时,函数会调用 _accrueInterest
函数来更新其利率。
但是当 Borrower 通过 supplyCollateral
函数提供抵押品时,只是累计抵押品数量,并不会为此提供利息。
Morpho 与 AAVE V3 的抵押借贷比较
假设用户在 Lido 上存了一笔 ETH,得到价值 10000 U 的 wstETH,他想要以此作为抵押品来借出 USDC。
以下均为 2024.12.16 的数据,假设 USDC 的价格为 1 U
在 AAVE V3 进行抵押借贷
假如用户将这笔 wstETH 在 AAVE V3 (https://app.aave.com/)上做抵押借贷。
此时 wstETH 的存款利率为 0.13%,USDC 的借款利率为 16.46%,两者抵消后仍需要支付 16.33% 的利息。
此外,USDC 可借出的最大价值为抵押品的 75%,到达 78% 时触发清算,最多可清算 50% 借出的资产,并获得 4.5% 的清算奖励。
在利息中收取 10% 作为平台经费
在 Morpho 上进行抵押借贷
假如用户将这笔 wstETH 在 Morpho (https://app.morpho.org/borrow?network=mainnet)上做抵押借贷。
在 Morpho 上抵押 wstETH 的利率为 0(抵押什么利率都是 0),wstETH-USDC 市场中 USDC 的借款利率为 12.03%,其中包含了 -0.77% 的 Morpho 代币奖励。
其借贷比例和清算比例是相等的,均为 86%,当触发清算时,可以清算 100% 的借款资产,并获得 4.38% 的清算收益。
市场的创建者可设置 fee 参数从利息中获取手续费(最大 25%),这个市场的 fee 参数设置为 0,即不收取任何手续费。
抵押借贷结果对比
价值 10000 U 的 wstETH,分别在 AAVE V3 和 Morpho 上进行抵押借贷。
在 AAVE V3 上可以借出 7500 USDC,需要支付 16.33% 的利息。当 wstETH 的价值跌到 9615 U 时会被清算。
在 Morpho 上可以最多借出 8600 USDC,需要支付 12.03% 的利息。考虑到 Morpho 的最大借款比例和清算比例一致,计算当 wstETH 的价值跌到 9615 U 会被清算时(与 AAVE 清算价格一致),最大的借款金额是 8269 USDC。
从上述的数据表明,Morpho 无论从借款比例,清算比例,还是借款利息等方面的表现都要优于 AAVE V3。
Morpho 与 AAVE V3 的存款比较
假设用户现在有 10000 USDC,他想要在借贷协议上借出 USDC 来获取收入。
在 AAVE V3 进行存款
存到 AAVE 上,可以得到 12.81% 的利率。
在 Morpho 进行存款
Morpho 提供了各种 USDC 的存款方案,不同方案的利率在 34.39%-7.69% 范围内。
查看 Relend USDC 策略,可以查看该策略所投资的 Morpho 市场。
存款结果对比
从存款功能来对比,AAVE 提供了单一的 12.81% 存款利率,用户将 USDC 提供到市场后,可供任意了任意种类抵押品的用户借出。而在 Morpho 上提供了多种存款方案,不同的方案会将用户的资金投入到不同的市场中,以获取不同的利率。其整体的利率表现是要优于 AAVE 的。
Morpho 与 AAVE V3 的闪电贷比较
Morpho 闪电贷不收手续费,赢!
AAVE V3 会收取 0.05% 的手续费,输!
不足之处
从抵押借贷,存款,闪电贷等功能来看,Morpho 的表现均要优于 AAVE V3,但是没有协议是完美的,为了提高资金利用率以及减少存款利率与借款利率之间的差距,Morpho 在一些方面也做出了让步。
流动性分散
Morpho 采用单一抵押品与单一借贷品的形式来组成一个借贷市场。在传统的借贷协议中,假设用户存入抵押品 WETH,即可从协议中借出 USDC,USDT 等代币。但是在 Morpho 中,用户需要把 WETH 分别存入 [WETH, USDC] 和 [WETH, USDT] 两个市场,然后分别借出代币。这样就使得代币的流动性被分散到了各个市场中。如果需要用同一笔抵押品先后借出不同的代币,则需要从前一个市场提取抵押品,在将其存入下一个市场进行抵押借贷。
抵押品风险
由于在 Morpho 市场中提供的抵押品不会产生利率,且 Morpho 允许用户自由选择抵押品与借贷品类型来创建市场。所以用户更倾向于提供生息代币来作为抵押品。使得在抵押的过程中也能够凭借生息代币自己产生利息收入。可以看到流动性在 10M 以上的市场,都采用了外部 DeFi 协议的生息代币作为抵押品。
但是这个行为同时也引入了新的风险。采用外部 DeFi 协议的生息代币作为抵押品相当于在外部协议的基础上搭建了一个借贷市场。一但外部协议由于安全问题或币价闪崩使得生息代币无法进行刚性兑付,会导致 Morpho 市场上的相关抵押品价值下降。若清算不及时还有可能会导致坏账的产生,导致借贷品提供者无法收回借贷资金。
如果采用原始代币(WETH,WBTC 等),则可以认为不会将协议的安全风险引入到借贷市场中,只存在币价闪崩导致坏账的风险。
参考文章
- 官方文档:https://docs.morpho.org/morpho/overview
- Github:https://github.com/morpho-org/morpho-blue/tree/main
- https://blog.wssh.trade/posts/morpho-bule/
后记
Morpho 项目的代码量并不多,在了解这个项目的过程中最大的疑问是这个项目为什么会脱颖而出。如此精致的项目,也没有太多复杂的机制和策略,偏偏就获得了用户的青睐。这个是需要从市场环节和用户需求方面来理解的,也正是我所缺乏的。也正是从代码出发看不懂 Morpho 协议为什么能够被市场接受,所以在文章中加入了和 AAVE V3 的对比,希望从表明的数据来了解 Morpho 项目的优势在哪里,也就能够知道他的哪些优点会被用户喜欢。虽然这种理解方式不像看代码实现那么具体,但是也是一个迷迷糊糊的开始吧。