mt logoMyToken
ETH Gas
EN

同样一笔坏账,五种认亏时点:DeFi金库损失由谁承担?

Favoritecollect
Shareshare

撰文:@definikos

编译:AididiaoJP,Foresight News

金库损失路由图,不回答「会不会亏」。它只回答亏了之后的事:账面什么时候认,损失先落在哪个余额,中间有什么吸收层,存款人最后看到什么,谁又走不掉。

每个策略分仓,在第一笔存款之前,都该先把这张表填上一行。

同一笔坏账,五种认亏时点

假设有 300 万美元坏账,对应 1 亿美元存款。

在 Morpho 的孤立市场里,最后一批抵押品被清算的那一刻,所有存款人立刻承担 3% 的损失。

在 Aave 按资产统一归集的共享资金池里,存款人的 aToken 余额账面不动。坏账被核销,资金池记上一笔赤字,Umbrella 中的缓冲质押被削减。覆盖之后仍剩下的缺口,由存款人作为剩余资不抵债承担,而不是直接按比例扣减存款余额。注:Umbrella 是 Aave 的坏账缓冲机制:用户质押资产赚取奖励,代价是协议出现坏账时,对应质押会被削减用于填补缺口。

在 Morpho Vault V1.1 的策展金库里,份额价格完全不动,最后跑掉的存款人把损失留给留下的人。

队列式金库靠预言机定期提交的估值报告定价。下一份估值出来之前,账面什么都不会变。如果这次估值跌幅超过预设的可疑区间,报告会被隔离,金库直接冻结。

在带 10% 次级层的分级结构里,300 万美元坏账全部落在 1000 万美元的次级层上,次级层亏损 30%,优先级不受影响。

每次损失金额都一样。变的是损失走哪条路径、什么时候认亏。什么时候认亏,和损失落在哪一层一样,决定最终谁买单。

只要损失已经发生、却还没入账,能以旧价格退出的人,就会把自己那份损失转嫁给留下来的人。

IMG_257

每个结构问五个问题

这张图对每种结构都问同样五件事:

触发:什么事件让损失在账上被确认?

不是「资产实际亏了」就算,而是要等一个链上事件把亏损写进会计。坏账清算、估值报告、减值、治理投票,都可能成为触发点。触发没发生,损失就还挂在账外。

首落:损失最先落在哪个余额上?

亏损确认后,先变的是哪个数字。可能是市场的总存款、资金池的赤字、金库的份额价格,也可能是某个次级层。先落点不同,后面谁承担就完全不同。

吸收层:首落点和存款人之间,还有什么先挡着?

损失不一定直接落到存款人头上。中间可能有抵扣、可罚没的质押、次级层、第一损失层。这些层越厚,存款人看到的损失越小;层用完了,才轮到存款人。

触达:存款人实际看到什么?

账面表现和真实损失可能不是一回事。存款人看到的可能是份额价格下跌,可能是赎回队列被冻结,也可能账面仍按面值显示、但背后的索取权已经受损。

认亏时点:这笔损失什么时候才算数?

是同一区块立刻认,还是等下一次交互、下一份报告、治理投票,甚至永远不认?认亏越晚,越多人有机会按旧价格退出,把损失留给后来留下的人。

只要预言机一直按面值给抵押品报价,系统就看不到抵押品已经贬值,坏账清算也就不会触发。损失不会入账,会一直留在账外,直到有人强行推动清算,或强制更新价格。

借贷市场:损失先落在哪里

孤立市场

Morpho 的孤立市场里,清算人拿走借款人最后一批抵押品后,如果债务还没还完,剩余部分会在同一笔调用里被核销,由该市场全体存款人按比例承担。

坏账公式可以写成:

BD = D − C·p / LIF

其中 D 是债务,C·p 是抵押品价值,LIF 是清算激励。

举例:1000 万美元债务,抵押品价格跌到 730 万美元,LIF 为 1.044、LLTV 为 86%:

10 − 7.3 / 1.044 ≈ 300 万美元,也就是 1 亿美元市场的 3%。

坏账和存款人之间,没有任何储备金或基金先垫着,损失会直接落到这个市场的存款人头上。按理说,认亏时点就是清算发生的同一个区块。但这要同时满足三个条件:

  • 第一,预言机得认定这个仓位已经抵押不足、处于不健康状态;
  • 第二,清算人得觉得最后那点抵押品还值得接手,扣掉清算奖励后不亏;
  • 第三,预言机调用不能报错。

三个条件缺一个,这笔损失就不会在当下确认,可能一直挂在账外,变成「永远不认」。

共享资金池

Aave 自 v3.3 起,如果清算后账户抵押品归零、债务还有剩余,会把剩余债务烧掉,并在储备上记一笔赤字。

这笔赤字单独记账,不直接改动 aToken 的兑换比例。所以存款人打开账户,看到的余额还是原来的面值,不会立刻少一块。

接下来由 Umbrella 来补这个窟窿,顺序是:先用 DAO 预先留出的赤字抵扣额度,这部分相当于第一层缓冲;额度用完后还不够,UmbrellaCore 就会自动削减该资产池里用户质押的 aToken,用来填剩下的缺口。

注意,即使质押者已经申请退出、正在 20 天冷却期里等解锁,这部分质押仍然可能被削减。冷却期不等于安全期。

两层之后还剩的,就是剩余资不抵债,只有治理能注资。

每个存款人的未覆盖缺口可以写成:

h = max(0, B − O − Z) / S

B 是坏账,O 是抵扣,Z 是可罚没质押,S 是总存款。

举例:500 万美元坏账、10 万美元抵扣、300 万美元质押、5 亿美元存款:

(5 − 0.1 − 3) / 500 = 0.38%。

0.38% 只是算出来的平均缺口,不会有人账户上被直接扣掉 0.38%。只要池子里还有钱,提款仍按 1:1 兑付,先走的人按面值拿回。窟窿不会消失,只是留给最后还没走的人。谁最后还持有存款头寸,谁承担全部未覆盖损失。

金库会计:同样的坏账,不同的认亏时点

策展金库架在孤立市场之上。市场负责确认损失,金库版本决定份额价格什么时候看到损失。

Vault V1.0:损失当场认,所有人立刻按比例分摊。

坏账清算一发生,份额价格马上被砍。比如 1 亿美元金库亏 400 万美元,份额价格立刻跌 4%。所有当前持有人按比例承担,不管你有没有跑掉。

Vault V1.1:损失记账但不改价,最后走的人承担。

坏账发生时,损失被记进 lostAssets 这个科目,但份额价格不动。先提款的人仍按旧价格拿钱,等于按面值退出。窟窿留在金库里,最后还没走的人承担。除非策展人(curator)自己掏钱补上这个缺口。

Vault V2:等到下一次计息,发现实际资产低于账面资产时才认。

V2 不在坏账清算那一刻记账,而是等到下一次计息周期。届时系统比较适配器的实际资产和金库记录的账面总资产:如果实际资产已经低于账面总额,差额才被记为损失。

递延会把损失变成排队。假设递延了 X,金库资产 A,在确认前按面值提走 W,留下的人承担的损失是:

h = X / (A − W)

举例:1 亿美元金库亏 400 万美元,先提走 6000 万美元:

4 / 40 = 10%,而如果立刻记账只有 4%。

V2 还有自己的版本。在市场确认坏账之前,坏账贷款还在继续计息,把份额价格抬高。新存款人按这个价格进来,早走的人拿走没有对应资产的利息。把 maxRate 设为 0 能停止继续计息,但已经计进去的拿不回来。

赎回要排队的金库:损失等估值报告才认

在有策略权限控制的金库架构上,没有任何场所会直接把损失写进份额价格。损失要到下一份报告才落地:提交方逐项估值时,把仓位价格调低。然后由安全参数决定怎么路由。

  • 波动落在可疑区间内,照常接受。
  • 落在可疑区间与最大偏离之间,报告被隔离,存款、赎回和费用全部冻结,直到独立复核人签字。
  • 超过最大偏离,直接回滚。

任何按尚未包含该损失的报告定价的赎回批次,仍按旧价格支付。

嵌套金库:损失要认两次

母金库把钱投进子金库,子金库再去投底层资产。子金库亏损后,要先在子金库层面认一次;母金库则要等到自己的下一次计息或出报告,才把亏损传上来。等于同一笔损失要认两次,中间隔着一段时间差。

在这段时间里,母金库的份额价格还按旧价显示。能按旧价退出的人,就把损失留给了后来留下的人。

换算到母金库层面的损失,就是母金库投在子金库里的权重,乘以子金库的亏损。比如母金库有 20% 的资产投在子金库,子金库亏 10%,母金库层面就是 2% 的损失。

你自己写进结构的吸收层

分级结构

有次级层 J 时,损失这样分:

L_J = min(Loss, J),L_S = max(0, Loss − J)

池子 100,次级 10,亏 15:次级全没,优先级承担剩下的 5;优先级本金 90,损失约 5.6%。

但触发权通常不在你手里。Neutrl 在 8 月 13 日暂停 NUSD 铸造和赎回,9 月 17 日以 0.51 的赎回率重开。在 Strata 上,约占结构五分之一的 jrNUSD 被清零,srNUSD 承担剩余。暂停期间,NUSD 的跟踪价格仍在 0.998 附近,所以发行人给出新价格之前,损失分摊的瀑布根本没法启动。

第一损失质押

发起人质押只有在有人真正把它烧掉时,才是次级层。否则它和其他份额一起按比例亏。

举例:2 亿美元金库,循环分仓占 NAV 的 10%、杠杆 4 倍,抵押品打 10% 折扣:

10% × 4 × 10% × 2 亿 = 800 万美元损失。

如果烧掉 300 万美元质押:

(8 − 3) / 197 ≈ 2.5%,由存款人承担。

如果烧质押比减记晚一份报告,那么夹在中间、按旧价定价的那批人先吃损失,烧质押补偿的是留下的人。

别人决定的损失

循环分仓

杠杆分仓会先放大损失,再路由。近似关系是:

ΔE/E ≈ L·w

4 倍杠杆、10% 抵押品折扣,分仓权益直接损失 40%,还要加上清算奖励和解仓滑点。金库要到下一份报告才看见。

抵押品发行人

跨链 LRT、合成美元、RWA 基金,损失多大由发行人、管理人或投票决定,常常比事件本身晚几周。

当跨链桥铸出无背书代币时,发行人决定是全体持有人分摊缺口,还是让某条链的包装资产独自承担。Aave 的 rsETH 事件报告算了统一分摊的情形:

112,204 / (629,689 + 112,204) ≈ 15.1%。

合成美元靠储备基金吸收两类亏损:一是负资金费,二是底层抵押品不足以支撑负债时的背书缺口。但储备基金不是无限的,文档通常只写它用来覆盖亏损,不写耗尽之后怎么办。

Neutrl 给出的实际答案,是下调赎回率。NUSD 在 8 月 13 日暂停铸造和赎回,9 月 17 日重开时,赎回率定为 0.51。也就是说,1 NUSD 不再按 1 美元兑付,只能拿回 0.51 美元。储备基金补不上的部分,通过赎回率一次性转给持有人。

这说明合成美元的「1 美元」不是保证,而是一个目标。储备基金厚的时候,锚定看起来稳;储备基金耗尽后,损失怎么分,取决于发行人怎么定赎回率。文档不写,不等于风险不存在,只等于规则由发行人临场决定。

私人信贷

私人信贷的路径相反。Maple 上,在减值期间提款的出借人,把减值后的价值变成永久损失;之后任何回收,按比例分给留下来的出借人。

100 万美元、10% 减值,走的人拿 90 万美元。如果借款人后来还了,留下的人恢复到 100 万美元,走的人把损失锁死。

这里,早走锁定损失,留下的人才能拿到回收款。

损失路由地图

IMG_258

小结

同样一笔坏账,落在哪个余额、中间有几层缓冲、存款人看到的是份额价格下跌还是账面不动、什么时候认亏,决定了最后谁买单。

第一笔存款之前,每个策略分仓都该把五个问题写清楚:什么事件触发损失、损失先打在哪、中间有什么吸收层、存款人实际看到什么、这笔损失什么时候认。

五个问题没填清楚,你以为买的是收益,实际买的是别人按旧价格跑掉后留下的排队位置。

Disclaimer: This article is copyrighted by the original author and does not represent MyToken’s views and positions. If you have any questions regarding content or copyright, please contact us.(www.mytokencap.com)contact
More exciting content is available on
X(https://x.com/MyTokencap)
or join the community to learn more:MyToken-English Telegram Group
(https://t.me/mytokenGroup)