原文标题:《AC 推出新产品 StableCredit》
早在 8 月,AC 就提出了 StableCredit 的概念,我在文章?YFI 的星辰大海?中有过简单介绍,本次 AC 发文,说明酝酿 4 个多月的想法要正式实施了。
简单说 StableCredit 是一个基于抵押型稳定币设计的存借贷与 AMM 综合运用协议,思路借鉴了?ARCx,抵押万物发债。
举个例子说明:
用户将价值 100 万的房子抵押给 YFI,YFI 给用户 100 万的稳定币贷款额度。这个稳定币贷款额度可以用来借出其他资产,比如一辆汽车。与此同时,协议会根据房子的投放收益(LP)来给用户分润。当房子价值上涨时,用户手里的借贷额度还可以向上浮动。
这个模式跟?Uniswap+Maker?很类似。用当下的场景做类比的话,就是用户将 ETH 存进 Uniswap 做市,赚收益的同时,Uniswap 还会给你一笔钱让你花。这是不是很爽?
下文将对 AC 的文章做进一步解读:
Beosin:BSC链上的gala.games项目遭受攻击事件简析:金色财经报道,根据区块链安全审计公司Beosin旗下Beosin EagleEye 安全风险监控、预警与阻断平台监测显示,BSC链上的gala.games项目遭受攻击,Beosin分析发现由于pNetwork项目的bridge配置错误导致pTokens(GALA) 代币增发,累计增发55,628,400,000枚pTokens(GALA),攻击者已经把部分pTokens(GALA) 兑换成12,976个BNB,攻击者(0x6891A233Bca9E72A078bCB71ba02aD482A44e8C1)累计获利约434万美元。Beosin Trace追踪发现被盗金额还存在攻击者地址中。
第一笔攻击交易:0x4b239b0a92b8375ca293e0fde9386cbe6bbeb2f04bc23e7c80147308b9515c2e
第二笔攻击交易:0x439aa6f526184291a0d3bd3d52fccd459ec3ea0a8c1d5bf001888ef670fe616d[2022/11/4 12:17:00]
基本概念
AC 文章开头,先介绍了几个基本概念,包括:
Beosin:UVT项目被黑客攻击事件简析,被盗资金已全部转入Tornado Cash:金色财经报道,据Beosin EagleEye 安全预警与监控平台检测显示,UVT项目被黑客攻击,涉及金额为150万美元。攻击交易为0x54121ed538f27ffee2dbb232f9d9be33e39fdaf34adf993e5e019c00f6afd499
经Beosin安全团队分析,发现攻击者首先利用开发者部署的另一个合约的具有Controller权限的0xc81daf6e方法,该方法会调用被攻击合约的0x7e39d2f8方法,因为合约具有Controller权限,所以通过验证直接转走了被攻击合约的所有UVT代币,Beosin安全团队通过Beosin Trace进行追踪,发现被盗资金已全部转入Tornado Cash。[2022/10/27 11:48:46]
抵押型稳定币(代币化债务),典型代表 Maker 的 DAI
借贷协议,典型代表?Aave、Compound
自动做市商(AMM),典型代表 Uniswap、Sushi
单边 AMM,典型代表:DoDo、CoFiX
利用率,可以理解为抵押率或清算线,是借贷类协议的核心数据
慢雾:Avalanche链上Zabu Finance被黑简析:据慢雾区情报,9月12日,Avalanche上Zabu Finance项目遭受闪电贷攻击,慢雾安全团队进行分析后以简讯的形式分享给大家参考:
1.攻击者首先创建两个攻击合约,随后通过攻击合约1在Pangolin将WAVAX兑换成SPORE代币,并将获得的SPORE代币抵押至ZABUFarm合约中,为后续获取ZABU代币奖励做准备。
2.攻击者通过攻击合约2从Pangolin闪电贷借出SPORE代币,随后开始不断的使用SPORE代币在ZABUFarm合约中进行`抵押/提现`操作。由于SPORE代币在转账过程中需要收取一定的手续费(SPORE合约收取),而ZABUFarm合约实际接收到的SPORE代币数量是小于攻击者传入的抵押数量的。分析中我们注意到ZABUFarm合约在用户抵押时会直接记录用户传入的抵押数量,而不是记录合约实际收到的代币数量,但ZABUFarm合约在用户提现时允许用户全部提取用户抵押时合约记录的抵押数量。这就导致了攻击者在抵押时ZABUFarm合约实际接收到的SPORE代币数量小于攻击者在提现时ZABUFarm合约转出给攻击者的代币数量。
3.攻击者正是利用了ZABUFarm合约与SPORE代币兼容性问题导致的记账缺陷,从而不断通过`抵押/提现`操作将ZABUFarm合约中的SPORE资金消耗至一个极低的数值。而ZABUFarm合约的抵押奖励正是通过累积的区块奖励除合约中抵押的SPORE代币总量参与计算的,因此当ZABUFarm合约中的SPORE代币总量降低到一个极低的数值时无疑会计算出一个极大的奖励数值。
4.攻击者通过先前已在ZABUFarm中有进行抵押的攻击合约1获取了大量的ZABU代币奖励,随后便对ZABU代币进行了抛售。
此次攻击是由于ZabuFinance的抵押模型与SPORE代币不兼容导致的,此类问题导致的攻击已经发生的多起,慢雾安全团队建议:项目抵押模型在对接通缩型代币时应记录用户在转账前后合约实际的代币变化,而不是依赖于用户传入的抵押代币数量。[2021/9/12 23:19:21]
这里可以单独说下利用率,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 池时,对债务的需求越多,交易滑点就越高,这也就解释了溢价的存在。
Harvest.Finance被黑事件简析:10月26号,据慢雾区消息 Harvest Finance 项目遭受闪电贷攻击,损失超过 400 万美元。以下为慢雾安全团队对此事件的简要分析。
1. 攻击者通过 Tornado.cash 转入 20ETH 作为后续攻击手续费;
2. 攻击者通过 UniswapV2 闪电贷借出巨额 USDC 与 USDT;
3. 攻击者先通过 Curve 的 exchange_underlying 函数将 USDT 换成 USDC,此时 Curve yUSDC 池中的 investedUnderlyingBalance 将相对应的变小;
4. 随后攻击者通过 Harvest 的 deposit 将巨额 USDC 充值进 Vault 中,充值的同时 Harvest 的 Vault 将铸出 fUSDC,而铸出的数量计算方式如下:
amount.mul(totalSupply()).div(underlyingBalanceWithInvestment());
计算方式中的 underlyingBalanceWithInvestment 一部分取的是 Curve 中的 investedUnderlyingBalance 值,由于 Curve 中 investedUnderlyingBalance 的变化将导致 Vault 铸出更多的 fUSDC;
5. 之后再通过 Curve 把 USDC 换成 USDT 将失衡的价格拉回正常;
6. 最后只需要把 fUSDC 归还给 Vault 即可获得比充值时更多的 USDC;
7. 随后攻击者开始重复此过程持续获利;
其他攻击流程与上诉分析过程类似。参考交易哈希:0x35f8d2f572fceaac9288e5d462117850ef2694786992a8c3f6d02612277b0877。
此次攻击主要是 Harvest Finance 的 fToken(fUSDC、fUSDT...) 在铸币时采用的是 Curve y池中的报价(即使用 Curve 作为喂价来源),导致攻击者可以通过巨额兑换操控预言机的价格来控制 Harvest Finance 中 fToken 的铸币数量,从而使攻击者有利可图。[2020/10/26]
稳定币信贷
StableCredit 是一个结合了代币化债务稳定币、借贷、AMM 和单边 AMM 的协议,以创建一个完全去中心化的借贷协议。
用户可以提供任何资产并创建名为 StableCredit USD 的代币化信用(也可以支持 EUR、JPY 等)。
具体创建流程如下:
提供一定金额的 USDC
调用 USDC 价格预言机,确定 1 个 USDC 的美元价值
协议铸造相应美元价值的 StableCredit USD
将 USDC 和 StableCredit USD 按照 50:50 的比例提供到 AMM
该协议计算系统利用率,最高可达 75%
所提供的 USDC 的利用率(或 75% 的最大值)以 StableCredit USD 的形式计算
此时,用户得到的 StableCredit USD 就是「借贷信用」。可以用它来借贷通过 AMM 抵押的其他资产。所以如果有其他用户提供 LINK 作为抵押,你可以通过 「卖出」借贷信用来借贷 LINK。当你想还债的时候,你可以把 LINK 「卖」回去换成 StableCredit USD,还清债务,然后收到你的 USDC。
实际案例
下面举几个具体实例来说明这个过程:
用户 A 提供 1000DAI 进行借款:
将 1000DAI 存入 StableCredit 协议
系统调用预言机查询 DAI 价值 1020USD
系统铸造 1020 个 USD
系统将用户 A 的 1000DAI 和 1020USD 添加到 AMM
系统计算利用率(根据全局抵押情况动态变化),最高为 75%
系统为用户 A 提供 75% 额度的借贷信用,即 1020*0.75=765 StableCredit USD
此时用户 A 提供了 1000DAI,得到 765 个 StableCredit USD。
用户 B 提供 2 个 ETH 进行借款:
将 2ETH 存入 StableCredit 协议
系统调用预言机查询 ETH 价值 1400USD
系统铸造 1400 个 USD
系统将用户 B 的 2ETH 和 1400USD 添加到 AMM
系统为用户 B 提供 75% 额度的借贷信用,即 1400*0.75=1050 StableCredit USD
此时用户 B 提供了 2ETH,得到 1050 个 StableCredit USD。
同理,有用户 C 提供了 1 个 WBTC,得到 26000 个 StableCredit USD;用户 D 提供了 1 个 YFI,得到了 23000 个 StableCredit USD,等等…
此时系统中存在多个借贷 AMM 池:
DAI:StableCredit USD
ETH:StableCredit USD
YFI:StableCredit USD
WBTC:StableCredit USD
其他各类用户添加的抵押资产池
用户 A 想借出 1 个 ETH,于是他将 525 个 StableCredit USD 提供给 AMM,得到 1 个 ETH。用户币想借出 500DAI,他将 510 个 StableCredit USD 提供给 AMM,得到 500 个 DAI。
他们想要赎回本金时,是需要向提供偿还对应借出资产即可从 LP 中提取本金。当提取本金时,系统会烧毁对应数量的 StableCredit USD。比如,用户 A 赎回 1000DAI,此时系统会调用预言机价格,假设此时价格仍为 1020USD,协议将烧毁对应数量的 StableCredit USD,以保证整个借贷资产的平衡。
这个赎回并烧毁 StableCredit USD 的过程,AC 文章中并没有提,是我个人的猜测和判断。主要依据是 EMN 当时的设计,也是铸造信贷和销毁信贷,遗憾的是当时被黑客利用导致项目没有继续。
StableCredit 的优势
StableCredit 的设计充分利用了代币化债务、借贷、AMM 的特点,相对单独存在 AMM 和借贷协议具有很多优势:
首先,系统的借贷利率实际是根据需求自动平衡的,用户需求多的借出资产,在偿还时会支付更高的利息。原理是需求多资产,在 AMM 中被卖出更多,用户在偿还借贷购买对应资产时,会支付更多的 StableCredit USD。
StableCredit USD 类似于 Uniswap 的 ETH,是 AMM 全部池交易的中间介质,这就让借贷信用可以享受交易手续费,间接的实现了资产提供者收取利息。即借贷用户支付的交易手续费和交易滑点等溢价,间接的提供给了代币提供者。
如果用户只提供代币而不进行借贷,会一直积累整个系统的借贷溢价,也就实现了存款收益。
这种方式还实现了非常优美的借贷最大化利用率,像 AAVE 这些借贷协议,一旦用户的抵押率达到红线便会被清算。StableCredit 的模式基本不存在被清算风险,只有相对的整体系统风险,即利用率。
举例来说:用户 A 存入的 1000DAI,得到 765 个 StableCredit USD。之后他全部用于借出 ETH,根据之前的案例,计算得出可借 765/700=1.09 个 ETH (由于实际存在滑点等,数量会有偏差)
假设经过 1 个月,ETH 价格上涨至 1000,用户偿还 1.09 个 ETH,会得到 1.09*1000=1090 StableCredit USD。此时用户偿还 765 StableCredit USD,可赎回 1000DAI。
经过以上过程,我们发现用户最初抵押了 1000DAI,得到了 75% 的购买力,然后他购买了 ETH,享受了 ETH 价格上涨的红利,当他结清头寸时,最终收回本金 1000DAI,同时还结余 1090-765=325 USD。
但其实我这个案例有些过于理想,在真实的系统运行环境中,由于套利者的存在,StableCredit USD 与各类资产的汇率会实时的通过 AMM 交易进行调整,因此在抵押和赎回过程中,不可能是按照原比例兑换。
以上的一些内容纯粹是我个人根据一些零散信息拼凑后的猜想,具体 StableCredit 的运作模式,还要等系统正式上线后再来详细验证。
但不难想象,这样的一种设计,绝对能释放更多的购买力,吸收更多的流动性。
写在最后
之前文章中我也有说, StableCredit 的设计,是 YFI 整个战船中非常关键的一环,它为整个金融帝国提供了一个吸收流动性的接口,最终可能发展成为流动性黑洞。
通过大量的吸收存款,叠加?yearn?的智能理财服务,yearn 的愿景正在一步一步实现。
简单说,YFI 的愿景是要让「收益最大化」。
AC 的初心一句话概括,「获得持续安全稳定便捷的最大化收益」。
太长不看:如今,许多流动性挖矿项目都依赖于 DeFi 借贷协议。DeFi 借贷协议被视为一种相对安全成熟的利用密码学资产创造收益的方式.
1900/1/1 0:00:00金色财经 区块链12月24日讯? 智能手机已经成为人们日常生活的必需品,尤其是在当前数字化支付的大环境下,比如智能手机上的“数字人民币硬件钱包”可以为人们带来更为便捷的移动支付体验,尤其在双离线支付模式下.
1900/1/1 0:00:00文章系金色财经专栏作者币圈北冥供稿,发表言论仅代表其个人观点,仅供学习交流!金色盘面不会主动提供任何交易指导,亦不会收取任何费用指导交易,请读者仔细甄别防上当.
1900/1/1 0:00:00DeFi周刊是金色财经推出的一档每周DeFi领域的总结栏目,内容涵盖本周重要的DeFi数据、DeFi项目动态等.
1900/1/1 0:00:00本文由金色财经记者Maxwell原创,于2020年12月30日在金色财经首发。昨日比特币再度创下历史新高,特此推荐阅读,金色财经近期推出金色硬核(Hardcore)栏目,为读者提供热门项目介绍或者深度解读.
1900/1/1 0:00:00人们期待已久的对以太坊网络的安全和可扩展性升级, 已经按计划于12月1日启动,这对以太坊社区来说, 是一个巨大的里程碑。表面上,Eth2信标链将有助于提高整个以太坊网络的可扩展性和容量.
1900/1/1 0:00:00