背景信息

https://docs.usual.money/

Usual 是一个聚合 RWA 的稳定币发行协议,经济模型中存在三种代币:

  1. USD0:Usual 发行的稳定币。
  2. USD0++:USD0++ 是 USD0 的质押版本,为期4年,可获得 USUAL 代币奖励。
  3. USUAL:Usual 协议的治理代币。

事发缘由

https://usual.money/blog/usual-s-next-leap-solidifying-a-4-year-horizon-for-sustainable-growth

20250110,Usual 官方发公告调整 USD0++ 赎回规则,从原先的 USD0++ 可随时 1:1 兑换成 USD0 的退出机制,改为了下面两种带有处罚性质的退出机制:

  1. 有条件退出:1:1 赎回,但需要没收部分 USUAL 收益。
  2. 无条件退出:以底价赎回,目前设定为 0.87:1 ,并随着时间的推移逐渐趋于 1 美元。

这使得 USD0++ 的价格迅速从 1 跌到了 0.9

循环贷坏账风险

USD0++ 价格的下跌进一步影响了 Morpho 上进行循环贷的用户,导致这类用户需要承担高额的借款利息,直到被清算。

为什么要做循环贷

首先需要搞明白为什么会有用户在 Morpho 上进行循环贷:质押 USD0++,借出 USDC,再将 USDC 兑换成 USD0++ 进行质押,继续借出 USDC …

通常认为 USD0++ 作为 USD0 的 LST,需要持有 USD0++ 才能获取到奖励代币。但是 Usual 为了激励 USD0++ 持有者参与到 Morpho 中(可能是为了减少抛售?),如果你将 USD0++ 作为抵押品提供贷 Morpho 市场中,Usual 仍然会向你发放奖励。

在 Morpho 上的 USD0++ / USDC 市场提供了 10.36 USD0++ 作为抵押品。

在 Usual 的页面中显示已经按照 25% 的 APY 进行奖励。

由于这个机制的存在,使得一部分为了最求更高收益率的用户通过循环贷的方式在 Morpho 抵押尽可能多的 USD0++。

Morpho 固定预言机为你的循环贷保驾护航

经常做循环贷的朋友都知道,循环贷就相当于给这笔借贷加上了杠杆,循环的次数越多,杠杆越大,借出来的资金也就越多。在拉高杠杆的同时也需要面临价格波动导致高杆杠更容易被清算的风险。

不过不用担心!体贴的 Usual 项目方已经给你安排好啦!

https://app.morpho.org/market?id=0xb48bb53f0f2690c71e8813f2dc7ed6fca9ac4b0ace3faa37b4a8e5ece38fa1a2&network=mainnet

在 20240724 创建的市场 0xb48b 中,采用的是固定价格预言机,也就是说 USD0++ / USDC 的价格是一个常量 1,不会波动不会变。这下子用户终于可以放心大胆地进行循环贷了!

价格下跌,坏账出现

由于 Morpho 市场 USD0++ 的预言机价格为常量 1 ,清算惩罚为 4.38%,这就意味着如果 USD0++ 的实际价格低于 0.958 时,清算将无法获利,从而形成坏账。

基于 Morpho 市场的参数,清算 1 USDC 将获得 1.0438 USD0++。当 USD0++ 的价格低于 1 / 1.0438 = 0.958 时,清算 1 USDC 所获得的 USD0++ 价值将低于 1 USDC。

由于在 Usual 团队发出公告后 USD0++ 的价格从 1 下跌到最低 0.9,这使得 Morpho USD0++ / USDC 市场的流动性大量撤出。

  1. 贷款方:由于抵押品的价格下跌出现坏账风险,所以紧急撤离。
  2. 借款方:由于贷款方大测出,借贷比例上升,导致借款方需要支付高额的利息(且失去了 USUAL 奖励),所以同样撤出。

由于需要先还款才能撤走借款代币,所以 Supply 的撤出高峰在 Borrow 的撤出高峰之后。

Usual 清算组合拳

USD0++ 币价下跌,Morpho USD0++ / USDC 市场流动性撤出甚至出现坏账,整个晋西北乱成了一锅粥。这时候 Usual 项目方下场了,建立新市场,清算旧坏账。

建立新市场

https://x.com/usualmoney/status/1877870480268390682

Usual 在 11 号发布了一则公告,表示将会建立新的 Morpho 市场, 要求用户尽快将仓位迁移到新市场,旧市场的奖励将被废弃。

https://forum.morpho.org/t/usual-boosted-usdc-vault-whitelisting/686/11

在这篇文章中提到了新市场的一个细节:新市场的 USD0++ / USDC 价格被固定为 0.87!

新创建的 0x1EDA 市场价格,同样是采用固定预言机,只不过这次是把价格固定在了 0.87。

这个操作,使得旧市场中还没形成坏账的仓位从旧市场撤出,为了获取 USUAL 奖励而重新投入到新市场中。

清算旧坏账

未产生坏账的资金已经通过新市场安置好了,旧市场的坏账资金要怎么处理呢?Usual 选择亲自对旧市场的坏账进行清算。

查看其中一笔清算交易:https://app.blocksec.com/explorer/tx/eth/0x6aaae634c41231967681fb39dffc041a4c8e54d0277d4047191df7884601b5e4

项目方用价值 3832000 U 的 USDC 换回来了价值 3621587 U 的 4000000 USD0++,妥妥的清算了一笔坏账。

Usual 清算了这么多坏账,那它亏了吗?从账面上来看无论谁去做这笔清算都只能是认亏了,但是他作为项目方,前面提到的 USD0++ 退出惩罚机制都是针对用户的惩罚机制。作为 USD0 和 USD0++ 的发行方,Usual 完全可以绕过市场汇率限制,将 USDC0++ 换回 USD0。

也就是说,如果 Usual 将清算得到的 USDC0++ 按照 1:1 的比例换回 USD0,这笔清算他将获利 16800 U(4.38%)。

很奇妙吧。

清算后续

https://x.com/usualmoney/status/1878063870394188065

在对旧市场的大户进行了清算以后,Usual 在 X 上发布了新的推文,文中表示所有清算收益将直接流入 DAO 金库,最终使 USUAL 持有者受益。但是,收益分配的事情还没有这么简单。

  1. https://2034998704-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F1PZgcBJJQo2ycNcagHTM%2Fuploads%2FP01n3oEDgxUDbfHhPRbH%2F20241127_Usual_Whitepaper.pdf?alt=media&token=7ea18542-1e8b-4f60-bbf0-e6f01ff42fce
  2. USUAL* Recap

在 UsualWhitepaper 的 5.3 中提到了一种称为 USUAL* 的代币,作为协议的创始代币(只分配给投资者、团队、贡献者和顾问),USUAL* 和质押的 USUAL 持有者平分产生的所有费用。也就是说,即使将这次的清算收益通过 DAO 金库分发给 USUAL 持有者,项目方依然可以依靠 USUAL* 代币分得一杯羹。

至此,由 USD0++ 赎回机制调整导致的连锁事件暂告一段落,官方的 X 账号目前也没有新的内容更新。在这个事件中主要遭受损失的用户还是在 Morpho 上抵押 USD0++ 进行循环贷的用户。目前社交账号上对 Usual 的讨论主要以谴责项目方为主。第一次对这类区块链事件进行分享(挺有意思),如果文章存在纰漏或者理解不当的地方,还请多多指教。

【事件分析】20250112-Usual 赎回机制调整事件的更多相关文章

  1. Android中Touch事件分析--解决HorizontalScrollView滑动和按钮事件触发问题

    之前写过关于HorizontalScrollView滑动和按钮事件触发问题,但是不能所有的情况,最近几天一直在想这个问题,今天有一个比较好的解决思路,最终应用在项目里面效果也很好,首先说明一下功能: ...

  2. DBA_Oracle Event等待事件分析(概念)

    2014-12-18 Created By BaoXinjian

  3. jQuery-1.9.1源码分析系列(十) 事件系统——事件体系结构

    又是一个重磅功能点. 在分析源码之前分析一下体系结构,有助于源码理解.实际上在jQuery出现之前,Dean Edwards的跨浏览器AddEvent()设计做的已经比较优秀了:而且jQuery事件系 ...

  4. jQuery源码解读-事件分析

    最原始的事件注册 addEventListener方法大家应该都很熟悉,它是Html元素注册事件最原始的方法.先看下addEventListener方法签名: element.addEventList ...

  5. 关于JAVA中事件分发和监听机制实现的代码实例-绝对原创实用

    http://blog.csdn.net/5iasp/article/details/37054171 文章标题:关于JAVA中事件分发和监听机制实现的代码实例 文章地址: http://blog.c ...

  6. cocos2d-x游戏引擎核心(3.x)----事件分发机制之事件从(android,ios,desktop)系统传到cocos2dx的过程浅析

    (一) Android平台下: cocos2dx 版本3.2,先导入一个android工程,然后看下AndroidManifest.xml <application android:label= ...

  7. QT源码之Qt信号槽机制与事件机制的联系

    QT源码之Qt信号槽机制与事件机制的联系是本文要介绍的内容,通过解决一个问题,从中分析出的理论,先来看内容. 本文就是来解决一个问题,就是当signal和slot的连接为Qt::QueuedConne ...

  8. Android 框架学习2:源码分析 EventBus 3.0 如何实现事件总线

    Go beyond yourself rather than beyond others. 上篇文章 深入理解 EventBus 3.0 之使用篇 我们了解了 EventBus 的特性以及如何使用,这 ...

  9. 08 (OC)* 事件的传递和响应机制

    前言:苹果的官方文档<Event Handling Guide for iOS>对事件处理做了非常详尽清晰的解释,建议大家仔细研读 1. iOS中的事件介绍 2. 事件的产生和传递 3. ...

  10. react第五单元(事件系统-原生事件-react中的合成事件-详解事件的冒泡和捕获机制)

    第五单元(事件系统-原生事件-react中的合成事件-详解事件的冒泡和捕获机制) 课程目标 深入理解和掌握事件的冒泡及捕获机制 理解react中的合成事件的本质 在react组件中合理的使用原生事件 ...

随机推荐

  1. 体验国产系统Deepin:很爽

    最近开始把之前一直吃亏的旧电脑拿出来再利用了,先还是选择了熟悉的ubuntu系列.安装了Ubuntu 22.04之后,风风火火地把需要的开发环境搭建起来,虽然桌面有些卡顿,但瑕不掩瑜玉.趁着热情又想着 ...

  2. 你的第一个Solana SPL

    简介 TFT 你的第一个SPL The first token 技术栈和库 Rust Anchor框架 Typescript(测试) 开发环境和其它网络地址 DevNet: https://api.d ...

  3. Redis常见面试题:ZSet底层数据结构,SDS、压缩列表ZipList、跳表SkipList

    文章目录 一.Redis数据结构概述 1.1 Redis有哪些数据类型 1.2 Redis本质是哈希表 1.3 Redis的哈希冲突与渐进式rehash 1.4 数据结构底层 1.4.1 简单动态字符 ...

  4. python报错:If this call came from a _pb2.py file, your generated code is out of date and must be regenerated with protoc >= 3.19.0

    相关: https://stackoverflow.com/questions/72441758/typeerror-descriptors-cannot-not-be-created-directl ...

  5. 瞧瞧别人的Controller,那叫一个优雅!

    前言 在实际工作中,我们需要经常跟第三方平台打交道,可能会对接第三方平台Controller接口,或者提供Controller接口给第三方平台调用. 那么问题来了,如果设计一个优雅的Controlle ...

  6. cmu15545笔记-查询优化(Query Optimization)

    目录 概述 Heuristics / Rules Cost-based Search Single relation Mutiple relation Genertive / Bottom-Up Tr ...

  7. java三次大作业的全面总结

    一:前言 知识点总结: 数据结构:题目涉及到了字典或哈希表用于存储题目信息.试卷信息和学生信息:列表用于存储多个题目.试卷和学生的集合:对象用于封装题目.试卷.学生和答案的具体属性. 字符串解析:题目 ...

  8. Spring Data JPA自动生成表时列顺序混乱的解决办法(最新版)

    最近把Spring Boot的版本升级到了3.3.5,突然发现一个问题:当使用Spring Data JPA自动生成表的时候,所产生的列顺序与Entity类中的变量顺序不一致了.比如,有一个下面这样的 ...

  9. 关于PageHiOffice插件在win10登录桌面前提示的解决

    win10笔记本开机,在未登录桌面时,总是有PageHiOffice插件已过期的提示. 使用process monitor 的Enable Boot Logging功能进行监视,重启后,再次打开pro ...

  10. docker环境一个奇怪的问题,容器进程正常运行,但是docker ps -a却找不到容器,也找不到镜像

    一: 问题: docker环境一个奇怪的问题,使用容器跑的进程正常提供服务,在服务器上也能看到对应的端口正在监听,但是docker ps -a却找不到容器,也找不到镜像. 查看我使用docker容器启 ...