STA:简析 YFI 创始人新作 StableCredit 运作机制与特性

原文标题:《AC推出新产品StableCredit》

早在8月,AC就提出了StableCredit的概念,我在文章?YFI的星辰大海?中有过简单介绍,本次AC发文,说明酝酿4个多月的想法要正式实施了。

简单说StableCredit是一个基于抵押型稳定币设计的存借贷与AMM综合运用协议,思路借鉴了?ARCx,抵押万物发债。

举个例子说明:

用户将价值100万的房子抵押给YFI,YFI给用户100万的稳定币贷款额度。这个稳定币贷款额度可以用来借出其他资产,比如一辆汽车。与此同时,协议会根据房子的投放收益来给用户分润。当房子价值上涨时,用户手里的借贷额度还可以向上浮动。

这个模式跟?UniswapMaker?很类似。用当下的场景做类比的话,就是用户将ETH存进Uniswap做市,赚收益的同时,Uniswap还会给你一笔钱让你花。这是不是很爽?

下文将对AC的文章做进一步解读:

基本概念

AC文章开头,先介绍了几个基本概念,包括:

慢雾:DEUS Finance 二次被黑简析:据慢雾区情报,DEUS Finance DAO在4月28日遭受闪电贷攻击,慢雾安全团队以简讯的形式将攻击原理分享如下:

1.攻击者在攻击之前先往DeiLenderSolidex抵押了SolidexsAMM-USDC/DEI的LP。

2.在几个小时后攻击者先从多个池子闪电贷借出143200000USDC。

3.随后攻击者使用借来的USDC在BaseV1Pair进行了swap操作,兑换出了9547716.9个的DEI,由于DeiLenderSolidex中的getOnChainPrice函数是直接获取DEI-USDC交易对的代币余额进行LP价格计算。因此在此次Swap操作中将拉高getOnChainPrice函数获取的LP价格。

4.在进行Swap操作后,攻击者在DeiLenderSolidex合约中通过borrow函数进行借贷,由于borrow函数中用isSolvent进行借贷检查,而在isSolvent是使用了getOnChainPrice函数参与检查。但在步骤3中getOnChainPrice的结果已经被拉高了。导致攻击者超额借出更多的DEI。

5.最后着攻击者在把用借贷出来DEI兑换成USDC归还从几个池子借出来的USDC,获利离场。

针对该事件,慢雾安全团队给出以下防范建议:本次攻击的原因主要在于使用了不安全的预言机来计算LP价格,慢雾安全团队建议可以参考Alpha Finance关于获取公平LP价格的方法。[2022/4/28 2:37:18]

抵押型稳定币,典型代表Maker的DAI

安全公司:Starstream Finance被黑简析:4月8日消息,据Agora DeFi消息,受 Starstream 的 distributor treasury 合约漏洞影响,Agora DeFi 中的价值约 820 万美金的资产被借出。慢雾安全团队进行分析后以简讯的形式分享给大家。

1. 在 Starstream 的 StarstreamTreasury 合约中存在 withdrawTokens 函数,此函数只能由 owner 调用以取出合约中储备的资金。而在 April-07-2022 11:58:24 PM +8UTC 时,StarstreamTreasury 合约的 owner 被转移至新的 DistributorTreasury 合约(0x6f...25)。

2. 新的 DistributorTreasury 合约中存在 execute 函数,而任意用户都可以通过此函数进行外部调用,因此攻击者直接通过此函数调用 StarstreamTreasury 合约中的 withdrawTokens 函数取出合约中储备的 532,571,155.859 个 STARS。

3. 攻击者将 STARS 抵押至 Agora DeFi 中,并借出大量资金。一部分借出的资金被用于拉高市场上 STARS 的价格以便借出更多资金。[2022/4/8 14:12:38]

借贷协议,典型代表?Aave、Compound

慢雾简析Qubit被盗原因:对白名单代币进行转账操作时未对其是否是0地址再次进行检查:据慢雾区情报,2022 年 01 月 28 日,Qubit 项目的 QBridge 遭受攻击损失约 8000 万美金。慢雾安全团队进行分析后表示,本次攻击的主要原因在于在充值普通代币与 native 代币分开实现的情况下,在对白名单内的代币进行转账操作时未对其是否是 0 地址再次进行检查,导致本该通过 native 充值函数进行充值的操作却能顺利走通普通代币充值逻辑。慢雾安全团队建议在对充值代币进行白名单检查后仍需对充值的是否为 native 代币进行检查。[2022/1/28 9:19:19]

自动做市商,典型代表Uniswap、Sushi

单边AMM,典型代表:DoDo、CoFiX

利用率,可以理解为抵押率或清算线,是借贷类协议的核心数据

这里可以单独说下利用率,AC支出当利用率为0%时,借1DAI就是1DAI,没有溢价。当利用率为90%时,借1DAI的成本要大于1DAI,就是借1DAI,可能实际得到0.98DAI,存在溢价。

慢雾:BSC项目Value DeFi vSwap 模块被黑简析:据慢雾区情报,币安智能链项目 Value DeFi 的 vSwap 模块被黑,慢雾安全团队第一时间介入分析,并将结果以简讯的形式分享,供大家参考:

1. 攻击者首先使用 0.05 枚 WBNB 通过 vSwap 合约兑换出 vBSWAP 代币;

2. 攻击者在兑换的同时也进行闪电贷操作,因此 vSwap 合约会将兑换的 vBSWAP 代币与闪电贷借出的 WBNB 转给攻击者;

3. 而在完成整个兑换流程并更新池子中代币数量前,会根据池子的 tokenWeight0 参数是否为 50 来选择不同的算法来检查池子中的代币数量是否符合预期;

4. 由于 vSwap 合约的 tokenWeight0 参数设置为 70,因此将会采用第二种算法对池子中的代币数量进行检查;

5. 而漏洞的关键点就在于采用第二种算法进行检查时,可以通过特殊构造的数据来使检查通过;

6. 第二种算法是通过调用 formula 合约的 ensureConstantValue 函数并传入池子中缓存的代币数量与实时的代币数量进行检查的;

7. 在通过对此算法进行具体分析调试后我们可以发现,在使用 WBNB 兑换最小单位(即 0.000000000000000001) vBSWAP 时,池子中缓存的 WBNB 值与实时的值之间允许有一个巨大的波动范围,在此范围内此算法检查都将通过;

8. 因此攻击者可以转入 WBNB 进行最小单位的 vBSWAP 代币兑换的同时,将池子中的大量 WBNB 代币通过闪电贷的方式借出,由于算法问题,在不归还闪电贷的情况下仍可以通过 vSwap 的检查;

9. 攻击者只需要在所有的 vSwap 池子中,不断的重复此过程,即可将池子中的流动性盗走完成获利。详情见原文链接。[2021/5/8 21:37:37]

这个现象用AMM解释会非常清晰,当DAI和债务1:1添加到50:50的AMM池时,对债务的需求越多,交易滑点就越高,这也就解释了溢价的存在。

Force DAO 代币增发漏洞简析:据慢雾区消息,DeFi 量化对冲基金 Force DAO 项目的 FORCE 代币被大量增发。经慢雾安全团队分析发现: 在用户进行 deposit 操纵时,Force DAO 会为用户铸造 xFORCE 代币,并通过 FORCE 代币合约的 transferFrom 函数将 FORCE 代币转入 ForceProfitSharing 合约中。但 FORCE 代币合约的 transferFrom 函数使用了 if-else 逻辑来检查用户的授权额度,当用户的授权额度不足时 transferFrom 函数返回 false,而 ForceProfitSharing 合约并未对其返回值进行检查。导致了 deposit 的逻辑正常执行,xFORCE 代币被顺利铸造给用户,但由于 transferFrom 函数执行失败 FORCE 代币并未被真正充值进 ForceProfitSharing 合约中。最终造成 FORCE 代币被非预期的大量铸造的问题。 此漏洞发生的主要原因在于 FORCE 代币的 transferFrom 函数使用了`假充值`写法,但外部合约在对其进行调用时并未严格的判断其返回值,最终导致这一惨剧的发生。慢雾安全团队建议在对接此类写法的代币时使用 require 对其返回值进行检查,以避免此问题的发生。[2021/4/4 19:45:30]

稳定币信贷

StableCredit是一个结合了代币化债务稳定币、借贷、AMM和单边AMM的协议,以创建一个完全去中心化的借贷协议。

用户可以提供任何资产并创建名为StableCreditUSD的代币化信用。

具体创建流程如下:

提供一定金额的USDC

调用USDC价格预言机,确定1个USDC的美元价值

协议铸造相应美元价值的StableCreditUSD

将USDC和StableCreditUSD按照50:50的比例提供到AMM

该协议计算系统利用率,最高可达75%

所提供的USDC的利用率以StableCreditUSD的形式计算

此时,用户得到的StableCreditUSD就是「借贷信用」。可以用它来借贷通过AMM抵押的其他资产。所以如果有其他用户提供LINK作为抵押,你可以通过「卖出」借贷信用来借贷LINK。当你想还债的时候,你可以把LINK「卖」回去换成StableCreditUSD,还清债务,然后收到你的USDC。

实际案例

下面举几个具体实例来说明这个过程:

用户A提供1000DAI进行借款:

将1000DAI存入StableCredit协议

系统调用预言机查询DAI价值1020USD

系统铸造1020个USD

系统将用户A的1000DAI和1020USD添加到AMM

系统计算利用率,最高为75%

系统为用户A提供75%额度的借贷信用,即1020*0.75=765StableCreditUSD

此时用户A提供了1000DAI,得到765个StableCreditUSD。

用户B提供2个ETH进行借款:

将2ETH存入StableCredit协议

系统调用预言机查询ETH价值1400USD

系统铸造1400个USD

系统将用户B的2ETH和1400USD添加到AMM

系统计算利用率,最高为75%

系统为用户B提供75%额度的借贷信用,即1400*0.75=1050StableCreditUSD

此时用户B提供了2ETH,得到1050个StableCreditUSD。

同理,有用户C提供了1个WBTC,得到26000个StableCreditUSD;用户D提供了1个YFI,得到了23000个StableCreditUSD,等等…

此时系统中存在多个借贷AMM池:

DAI:StableCreditUSD

ETH:StableCreditUSD

YFI:StableCreditUSD

WBTC:StableCreditUSD

其他各类用户添加的抵押资产池

用户A想借出1个ETH,于是他将525个StableCreditUSD提供给AMM,得到1个ETH。用户币想借出500DAI,他将510个StableCreditUSD提供给AMM,得到500个DAI。

他们想要赎回本金时,是需要向提供偿还对应借出资产即可从LP中提取本金。当提取本金时,系统会烧毁对应数量的StableCreditUSD。比如,用户A赎回1000DAI,此时系统会调用预言机价格,假设此时价格仍为1020USD,协议将烧毁对应数量的StableCreditUSD,以保证整个借贷资产的平衡。

这个赎回并烧毁StableCreditUSD的过程,AC文章中并没有提,是我个人的猜测和判断。主要依据是EMN当时的设计,也是铸造信贷和销毁信贷,遗憾的是当时被黑客利用导致项目没有继续。

StableCredit的优势

StableCredit的设计充分利用了代币化债务、借贷、AMM的特点,相对单独存在AMM和借贷协议具有很多优势:

首先,系统的借贷利率实际是根据需求自动平衡的,用户需求多的借出资产,在偿还时会支付更高的利息。原理是需求多资产,在AMM中被卖出更多,用户在偿还借贷购买对应资产时,会支付更多的StableCreditUSD。

StableCreditUSD类似于Uniswap的ETH,是AMM全部池交易的中间介质,这就让借贷信用可以享受交易手续费,间接的实现了资产提供者收取利息。即借贷用户支付的交易手续费和交易滑点等溢价,间接的提供给了代币提供者。

如果用户只提供代币而不进行借贷,会一直积累整个系统的借贷溢价,也就实现了存款收益。

这种方式还实现了非常优美的借贷最大化利用率,像AAVE这些借贷协议,一旦用户的抵押率达到红线便会被清算。StableCredit的模式基本不存在被清算风险,只有相对的整体系统风险,即利用率。

举例来说:用户A存入的1000DAI,得到765个StableCreditUSD。之后他全部用于借出ETH,根据之前的案例,计算得出可借765/700=1.09个ETH

假设经过1个月,ETH价格上涨至1000,用户偿还1.09个ETH,会得到1.09*1000=1090StableCreditUSD。此时用户偿还765StableCreditUSD,可赎回1000DAI。

经过以上过程,我们发现用户最初抵押了1000DAI,得到了75%的购买力,然后他购买了ETH,享受了ETH价格上涨的红利,当他结清头寸时,最终收回本金1000DAI,同时还结余1090-765=325USD。

但其实我这个案例有些过于理想,在真实的系统运行环境中,由于套利者的存在,StableCreditUSD与各类资产的汇率会实时的通过AMM交易进行调整,因此在抵押和赎回过程中,不可能是按照原比例兑换。

以上的一些内容纯粹是我个人根据一些零散信息拼凑后的猜想,具体StableCredit的运作模式,还要等系统正式上线后再来详细验证。

但不难想象,这样的一种设计,绝对能释放更多的购买力,吸收更多的流动性。

写在最后

之前文章中我也有说,StableCredit的设计,是YFI整个战船中非常关键的一环,它为整个金融帝国提供了一个吸收流动性的接口,最终可能发展成为流动性黑洞。

通过大量的吸收存款,叠加?yearn?的智能理财服务,yearn的愿景正在一步一步实现。

简单说,YFI的愿景是要让「收益最大化」。

AC的初心一句话概括,「获得持续安全稳定便捷的最大化收益」。

郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。

地球链

[0:15ms0-0:668ms