DAI的隐秘角落:论GUNIV3-DAI/USDC VAULT的本质

稳定币的世界,存在一些不为多数人所知的奇妙的机制。这些机制往往都有比较大的影响,能够大量地“虚增”TVL和发行量,背后往往还涉及多个协议之间的绑定。之前写过一篇关于Frax Curve AMO的文章,即为此类机制之一。本文聚焦在DAI的GUNIV3-DAI/USDC VAULT上,也是很奇妙、值得把玩的一个机制。

GUNIV3-DAI/USDC VAULT概览

所有的DAI都基于CDP产生。按抵押物类型排序,第二大和第三大都是UNIV3 LP,分别是GUNIV3-DAI/USDC 0.01%和GUNIV3-DAI/USDC 0.05%,两个LP的TVL达到了644M、530M之多。

DAI抵押物一览
DAI抵押物一览

这两种抵押物和其他抵押物相比,有一些特别之处。

1. 抵押物里也有DAI,这就出现了用DAI back DAI的现象,给理解带来了一些困难。本文不就此展开,可参考MakerDAO论坛历史上的一则讨论

2. 这两种抵押物,几乎都是加了近50倍杠杆后生成的,因此,这些CDP的所有者实际投入的资金总计大约只有20M左右。

Oasis.app(MakerDAO的一个前端网站)组合了MakerDAO的两个合约模块,提供了这种杠杆功能。这个功能仔细琢磨一下,挺有意思,有丰富的内涵。下文一一展开。

GUNIV3-DAI/USDC VAULT的工作机理

Oasis.app主要用到了MakerDAO的flash mint模块以及基于GUNIV3-DAI/USDC开CDP的模块。Flash mint模块大体可以类比为闪电贷去理解。

用户开这个CDP背后的工作原理大致如下,其中部分数字为概数。

1. 用户提供一部分基础DAI,就以10万DAI为例;

2. Flash mint 450万DAI,那么此刻一共就有了460万DAI;

3. 将230万DAI通过1inch换成USDC,这么大金额的话通常底层路由会走PSM,换成了230万USDC;

4. 将230万DAI、230万USDC存入UNI V3,因为用了gelato,所以拿到了ERC20的GUNIV3 LP token;

5. 使用4里的GUNIV3 LP token,开了一个CDP,铸造了450万DAI;

6. 归还flash mint的450万DAI。

和常规的CDP不一样的是,用户开完CDP后,手里并没有DAI。

用户关CDP时,顺序如下。

1. Flash mint 450万DAI;

2. 关闭CDP,释放出抵押物,即GUNIV3 LP token;

3. 提取LP token背后的资产,即230万DAI、230万USDC;

4. 将230万USDC通过1inch换成DAI,同样走PSM,换成了230万DAI,此时一共有460万DAI;

5. 归还flash mint的450万DAI;

6. 用户拿回自己初始投入的10万DAI。

以上出于简练地讲清工作机理的目的,做了很多简化。比如最重要的一点,做LP可以吃到手续费,关CDP时拿回的DAI的数量会发生变化,这被我略去了。吃手续费应该是用户开这一类CDP的核心动力。

GUNIV3-DAI/USDC VAULT的本质

我尝试把GUNIV3-DAI/USDC VAULT调整了一下,设想了一个UNIV3-DAI/USDC minting module。为何要讨论一个虚构的module?为了提炼最核心的点。实际运行的GUNIV3-DAI/USDC VAULT,有若干不太重要的设计要素会干扰到我们的讨论,比如102%的Collateralization Ratio。在我看来,这些设计不过是为了复用DAI整体的CDP架构,但其实会干扰我们对本质的理解,不需要搞这么复杂。

设想的UNIV3-DAI/USDC minting module工作机理如下。

协议可以自由地从PSM中取出一定数量的USDC,并“凭空”印出相应数量的DAI,组UNIV3-DAI/USDC LP。LP范围可以设定得很窄,这里不展开讨论。这些DAI虽是“凭空”印出,但不会影响DAI的抵押物基础和锚定。下面展开讲下为何。

这个LP是有限定条件的LP。如果从UNIV3撤出LP,其中的DAI需立即销毁,USDC则需返还到PSM中。

场景1: 当用户在UNIV3中,使用USDC换出DAI时,LP中的USDC变多,DAI变少。这个过程和用户使用PSM铸造DAI本质无差别。

场景2: 当用户在UNIV3中,使用DAI换出USDC时,LP中的DAI变多,USDC变少。这个过程和用户使用PSM换出USDC无异。

那么回到一开始这些“凭空”印出的DAI。这些DAI真正进入流通的唯一方式,就是有用户拿USDC过来换。其中能够进入流通的DAI,都是有足额USDC支撑的。这种特殊的“凭空”印DAI的机制并不会影响DAI的价值基础和锚定。

从market maker的角度解析DAI的PSM以及GUNIV3-DAI/USDC Vault

PSM,可以看作MakerDAO协议内定制的一个交易市场,有DAI/USDC、DAI/USDP等交易对。协议方是market maker,挂了买单和卖单,盘口如下图所示。其中挂单的卖盘是“隐式”的,我做了淡化字体。PSM的用户天然都是taker,taker的买单来了之后,现场即时生成相应数量的DAI,完成交易(铸造)。

PSM背后的交易盘口
PSM背后的交易盘口

GUNIV3-DAI/USDC Vault,基于UNIV3交易市场。AMM模式,LP需要提前把流动性存入。这是“显式”卖盘,必须有已经存在的DAI放在特定的tick内。UNIV3-DAI/USDC 0.01%这个池子,如果用交易盘口的形式进行呈现,如下图所示。其中挂单的卖盘2.7亿DAI,是已经真实存在的DAI。

Uni V3背后的交易盘口
Uni V3背后的交易盘口

从本质来讲,两者并无区别。GUNIV3-DAI/USDC Vault模式下,用户使用USDC换成DAI,和用户通过PSM将USDC换成DAI,对MakerDAO协议来说是一样的效果。即,协议treasury里多了一些USDC,并产生了相应数量的流通出去的DAI。

UNIV3属于通用化的AMM,MakerDAO如果希望借由UNIV3实现DAI的新增流通(投放),自然需要“显式”卖盘,那么“凭空”印一些DAI纯粹做卖盘挂单之用,也是很自然的。

但如果单纯去统计DAI ERC20合约发行的币的总数量,就会包含这一部分特殊的存在。

结语:数字游戏与币圈帮派

1. DAI的发行量、UNIV3 TVL中的“泡沫”

如上一节所讲,GUNIV3-DAI/USDC Vault里的DAI,是特殊的存在,是“凭空”印出的。但这部分DAI计入了DAI的总发行量,因此我可以说DAI的发行量被“虚增”了五六个亿。

注:有另外一个细节,这里简要一提。makerburn.com、daistats.com这两个DAI数据站因为统计口径的缘故,额外又多统计了五个亿。比如今日这两个网站显示DAI总计69.8亿,但ethscan里DAI合约显示只有65.4亿。背后原因是因为这两个数据站是基于所有CDP进行统计,但GUNIV3-DAI/USDC Vault铸造出来的DAI用于归还flash mint、已经销毁了。

“虚增”五六个亿,相对于DAI 65亿的总盘子,或许不算是什么大问题。但这“虚增”,还帮到了Uniswap。这两个Vault总计给Uniswap V3贡献了11.5亿TVL,占了Uniswap以太链TVL的1/5多。

2. 币圈的帮派

从MakerDAO的角度看,已经有了PSM这种0滑点的DAI/USDC兑换池,为何还要这么折腾在Uni V3里安排这样的Vault?按我的理解,PSM做兑换消耗的gas较高,MakerDAO需要一个针对散户的兑换阵地。主流选择有两个,Uni V3以及Curve,那么问题来了,选哪个?

我不确定MakerDAO出于何种考虑,现实的局面是MakerDAO选择了Uni V3,把Uniswap的以太链TVL拉高了25%。Hayden顺道还可以显摆一下Uni V3的资本效率(可围观一下戏剧性的一则推特)。

多说一句,其实Curve那头也存在差不多的操作,Frax把核心的兑换阵地放在了Curve,具体机理可参考我的另一篇小文。Frax和Curve的绑定,给Frax带来了实在的利益,而MakerDAO和Uniswap的绑定渊源,就有待进一步的八卦考古了。

Subscribe to observerdq
Receive the latest updates directly to your inbox.
Mint this entry as an NFT to add it to your collection.
Verification
This entry has been permanently stored onchain and signed by its creator.