【项目学习】Morpho 借贷协议简单调研

news/2024/12/20 0:05:03/文章来源:https://www.cnblogs.com/ACaiGarden/p/18618141

项目背景

Morpho blue (下称 Morpho)是一个超额抵押借贷协议。与传统的借贷协议不同,Morpho 无需经过治理批准即可创建任意定制化的借贷市场。用户可以通过指定一项贷款资产、一项抵押资产、清算贷款价值 (LLTV)、预言机和利率模型 (IRM) 等参数来创建一个独立市场。市场创建以后,其相关参数不可修改。

相比传统借贷协议,Morpho 的优势在于:

  1. 无需治理许可的市场创建: Morpho 无需治理许可即可创建具有任何抵押品和贷款资产以及任何风险参数化的市场。
  2. 更高的借贷比例:由于 Morpho 的借贷市场是一种抵押品和一种借贷品组成的,与多资产池不同,每个市场的清算参数可以在不考虑篮子中风险最高的资产的情况下设置。因此,供应商可以以更高的 LLTV 放贷。
  3. 更高的利率:抵押资产不会借给借款人。这降低了借贷平台正常运作所需的流动性要求,允许 Morpho 提供更高的资本利用率。此外,Morpho 是完全自主的,不收平台手续费(市场可以收取手续费)。
  4. 低 gas 消耗: Morpho 是一个非常精致的协议,与现有借贷平台相比,这可以减少 50% 的 Gas 消耗。

代码分析

Morpho 协议真的很精简,算上 Mock 合约也只有 1892 行,主合约 Morpho.sol 只有 557 行。

image

Morpho 合约中的关键函数:

  1. createMarket:部署新的借贷市场,通过配置借贷资产、抵押资产、利率模型和清算阈值等核心参数,建立一个新的借贷市场。
  2. supply:向指定借贷市场存入资产,可以指定存入的资产数量或份额,支持代理存款,并在存入后获得对应的份额凭证作为未来提取的依据。
  3. withdraw:从指定借贷市场提取之前存入的资产,通过销毁份额凭证来赎回对应数量的资产,支持代理操作和指定接收地址。
  4. borrow:在指定借贷市场借出资产,基于用户的抵押品价值检查其借贷健康度,将借出的资产发送给接收地址,并记录对应的债务份额。
  5. repay:允许用户或代理人偿还指定借贷市场的债务,通过转入资产来减少目标账户的债务份额,支持指定还款资产数量或份额,并在完成还款后更新市场的总借贷状态。
  6. supplyCollateral:允许用户向指定借贷市场存入抵押品,支持代理操作,直接增加目标账户的抵押品数量而不产生份额,由于抵押品不参与借贷利息计算,因此无需更新市场利息。
  7. withdrawCollateral:允许用户从指定借贷市场提取抵押品,需要检查提取后的借贷健康度以确保剩余抵押品足够覆盖当前债务,支持代理操作和指定接收地址。
  8. liquidate:允许清算人在借款人健康度不足时通过偿还其债务来获取折价的抵押品。
  9. flashLoan:提供闪电贷功能。

借贷品与抵押品

Morpho 市场是单一抵押品和单一借贷品的市场。所以只有提供借贷品的 Supplier 能够获取利息,而 Borrower 提供质押品的并不会产生利息。

image

这是它和传统的借贷协议不一样的地方。在传统的借贷协议中,用户所提供的抵押品同时会作为借贷品借给其他借款人,所以抵押品会产生利息。
当 Supplier 通过 supply 函数提供借贷品时,函数会调用 _accrueInterest 函数来更新其利率。

image

但是当 Borrower 通过 supplyCollateral 函数提供抵押品时,只是累计抵押品数量,并不会为此提供利息。

image

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% 的利息。

image

image

此外,USDC 可借出的最大价值为抵押品的 75%,到达 78% 时触发清算,最多可清算 50% 借出的资产,并获得 4.5% 的清算奖励。

image

在利息中收取 10% 作为平台经费

image

在 Morpho 上进行抵押借贷

假如用户将这笔 wstETH 在 Morpho (https://app.morpho.org/borrow?network=mainnet)上做抵押借贷。

在 Morpho 上抵押 wstETH 的利率为 0(抵押什么利率都是 0),wstETH-USDC 市场中 USDC 的借款利率为 12.03%,其中包含了 -0.77% 的 Morpho 代币奖励。

image

其借贷比例和清算比例是相等的,均为 86%,当触发清算时,可以清算 100% 的借款资产,并获得 4.38% 的清算收益。

image

image

市场的创建者可设置 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% 的利率。

image

在 Morpho 进行存款

Morpho 提供了各种 USDC 的存款方案,不同方案的利率在 34.39%-7.69% 范围内。

image

查看 Relend USDC 策略,可以查看该策略所投资的 Morpho 市场。

image

存款结果对比

从存款功能来对比,AAVE 提供了单一的 12.81% 存款利率,用户将 USDC 提供到市场后,可供任意了任意种类抵押品的用户借出。而在 Morpho 上提供了多种存款方案,不同的方案会将用户的资金投入到不同的市场中,以获取不同的利率。其整体的利率表现是要优于 AAVE 的。

Morpho 与 AAVE V3 的闪电贷比较

Morpho 闪电贷不收手续费,赢!

image

AAVE V3 会收取 0.05% 的手续费,输!

image

不足之处

从抵押借贷,存款,闪电贷等功能来看,Morpho 的表现均要优于 AAVE V3,但是没有协议是完美的,为了提高资金利用率以及减少存款利率与借款利率之间的差距,Morpho 在一些方面也做出了让步。

流动性分散

Morpho 采用单一抵押品与单一借贷品的形式来组成一个借贷市场。在传统的借贷协议中,假设用户存入抵押品 WETH,即可从协议中借出 USDC,USDT 等代币。但是在 Morpho 中,用户需要把 WETH 分别存入 [WETH, USDC] 和 [WETH, USDT] 两个市场,然后分别借出代币。这样就使得代币的流动性被分散到了各个市场中。如果需要用同一笔抵押品先后借出不同的代币,则需要从前一个市场提取抵押品,在将其存入下一个市场进行抵押借贷。

抵押品风险

由于在 Morpho 市场中提供的抵押品不会产生利率,且 Morpho 允许用户自由选择抵押品与借贷品类型来创建市场。所以用户更倾向于提供生息代币来作为抵押品。使得在抵押的过程中也能够凭借生息代币自己产生利息收入。可以看到流动性在 10M 以上的市场,都采用了外部 DeFi 协议的生息代币作为抵押品。

image

但是这个行为同时也引入了新的风险。采用外部 DeFi 协议的生息代币作为抵押品相当于在外部协议的基础上搭建了一个借贷市场。一但外部协议由于安全问题或币价闪崩使得生息代币无法进行刚性兑付,会导致 Morpho 市场上的相关抵押品价值下降。若清算不及时还有可能会导致坏账的产生,导致借贷品提供者无法收回借贷资金。

如果采用原始代币(WETH,WBTC 等),则可以认为不会将协议的安全风险引入到借贷市场中,只存在币价闪崩导致坏账的风险。

参考文章

  1. 官方文档:https://docs.morpho.org/morpho/overview
  2. Github:https://github.com/morpho-org/morpho-blue/tree/main
  3. https://blog.wssh.trade/posts/morpho-bule/

后记

Morpho 项目的代码量并不多,在了解这个项目的过程中最大的疑问是这个项目为什么会脱颖而出。如此精致的项目,也没有太多复杂的机制和策略,偏偏就获得了用户的青睐。这个是需要从市场环节和用户需求方面来理解的,也正是我所缺乏的。也正是从代码出发看不懂 Morpho 协议为什么能够被市场接受,所以在文章中加入了和 AAVE V3 的对比,希望从表明的数据来了解 Morpho 项目的优势在哪里,也就能够知道他的哪些优点会被用户喜欢。虽然这种理解方式不像看代码实现那么具体,但是也是一个迷迷糊糊的开始吧。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/855661.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

01.大模型起源与发展

知识点注意力机制(Attention)的主要用途是什么?选择重要的信息并忽略不相关的信息Transformer 模型是基于什么理论构建的?C. 注意力机制(Attention)GPT 和 BERT 的主要区别是什么?C. GPT 使用了单向自注意力,而 BERT 使用了双向自注意力在注意力机制中,“Q”、“K”和…

IoTClient---基于C#开源的物联网设备通讯协议客户端

https://github.com/zhaopeiym/IoTClientIoTClient是一个物联网设备通讯协议实现客户端,将包括主流PLC通信读取、ModBus协议、Bacnet协议等常用工业通讯协议。本组件基于.NET Standard 2.0,可用于.Net的跨平台开发,如Windows、Linux甚至可运行于树莓派上。技术架构1. 编码语…

docker基础篇:安装tomcat

docker基础篇:安装tomcat@目录8.Docker常规安装简介8.1 docker常规安装总体步骤8.2安装tomcat本人其他相关文章链接 8.Docker常规安装简介注意点1: 左面是原始的微服务架构,你要自己linux中搭建mysql、redis繁琐费事,右面是使用docker搭建的服务,直接docker run xx启动即可…

脚手架构建

1. 引言 背景介绍: 前端脚手架的目的在于提高前端开发的效率和一致性 ,节约一些重复性工作,例如:编译、打包、代码检查,避免了从零开始搭建项目框架的繁琐工作。 需求分析: 项目创建与初始化:创建新的项目目录结构。 初始化基本的项目文件,如index.html、package.json…

07. 按钮控件

一、按钮控件PySide6 中按钮分为 push 按钮(按压型)、check 按钮(勾选型)和 toggle 按钮(切换型,多个按钮中只有一个可以选中)。其中,push 按钮有 QPushButton 按钮和 QToolButton 按钮,check 按钮是 QCheckBox 按钮,toggle 按钮是 QRadioButton,它们都继承自 QAbas…

opencascade配置笔记

下载occ 网址参考网址 c++引用lib库 参考网址 vs使用qt插件 参考网址 参考网址

大规模可观测性揭秘:Netflix 如何通过标题玩转全球内容发布?

1 导言 在 Netflix,我们每月管理着上千个全球内容发布项目,每年的投资额高达数十亿美元。确保每部影片在我们平台上的成功和可发现性是我们的首要任务,因为我们的目标是将每个故事与合适的受众联系起来,让我们的会员满意。为了实现这一目标,我们致力于建立强大的系统,提…

Netty的高性能之道

一、概述 1.1 惊人的性能数据 最近一个圈内朋友通过私信告诉我,通过使用Netty4 + Thrift压缩二进制编解码技术,他们实现了10W TPS(1K的复杂POJO对象)的跨节点远程服务调用。相比于传统基于Java序列化+BIO(同步阻塞IO)的通信框架,性能提升了8倍多。 事实上,我对这个数据…

javaweb实战02

javaweb实战02 本次开始配置目录和包以及构建数据库然后就可以按照业务逻辑书写页面,页面包含登录和注册两个功能 首先开发登录页面 <%@ page contentType="text/html;charset=UTF-8" language="java" %> <%@ page isELIgnored="false"…

1大模型应用开发基础

一、目标 懂得AI,懂得编程、懂得业务的超级个体,将会是AGI时代最重要的人。 AI使得一个人能够干多个人的活 想要做到“AI全栈”需要涉及的知识面是非常广泛的,单单学习一门课程是不能全部涉及的 我们首先需要做的是入门,后面走的深入,走的远只能靠自己,依靠社群,和AI的进…

grpc安装(windows or Linux)

grpc安装(windows or Linux) 下载源码 这里使用 gRPC 最新版本源代码进行编译和安装,版本号为 v1.50.0, 以下为安装步骤: 一、使用Git克隆gRPC到本地 在终端中打开某一文件夹,建议新建一个单独存放 gRPC 源代码的文件夹,输入: git clone -b v1.50.0 https://github.com/…

Golang内存模型与源码解析

0、引言 本篇笔记用于记录作者在学习Golang的GC模型之前,对Golang内存模型的学习。目前使用的Go版本为1.22.4 1、Golang内存管理宏观结构 假设我们每次向内存池申请空间时,都需要频繁地向操作系统发出请求,这不仅会增加内存分配的时间,还可能引入竞争和锁的开销,从而导致性…