l无常损失的定义
无常损失,英文为ImpermanentLoss,即资产因币价变化,资产在流动性池内及池外的两种状况的资产差额。无常损失针对的是向DEX的流动性池中注入资产的提供者,称为流动性提供者,LP在将资产注入流动性池,和不将资产注入流动性池,上述两种不同方向下的资产机会成本。
l无常损失举例
为了更好的说明无常损失是什么,首先我们假设有如下三个前提:
第一,假设有如下流动性池。这里仍延续上一期知识小课堂中的AMM例子,流动性池中现有1000FC及250USDT。
如下图FC和USDT流动性池。根据经典流动性池的特点,FC数量和USDT数量的乘积为一个常数,公式即为X*Y=K。初始情况下,FC和USDT在池子中的价格为1:1,若FC现价为0.25美元,USDT为稳定币1美元,假设池子中的FC数量为为1000个,则USDT的数量为/1=250个。根据X*Y=K,可得常数K为1000*250=250000。
安全团队:Defrost Finance被攻击事件简析:金色财经报道,据区块链安全审计公司Beosin旗下Beosin EagleEye安全风险监控、预警与阻断平台监测显示,Defrost Finance预言机被恶意修改,并且添加了假的抵押token清算当前用户,损失超1300万美元。攻击者通过setOracleAddress函数修改了预言机的地址,随后使用joinAndMint函数铸造了100,000,000个H20代币给0x6f31地址,最后调用liquidate函数通过虚假的价格预言机获取了大量的USDT。后续攻击者通过跨链的方式将被盗资金转移到了以太坊的0x4e22上,目前有490万美元的DAI在0x4e22地址上,有500万美元的DAI在0xfe71地址上,剩余300万美元的ETH被转移到了0x3517地址上。[2022/12/25 22:06:35]
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]
第二,假设流动性池中有我提供的100FC及25USDT,我就有流动性池中10%的资产;
Beosin:ULME代币项目遭受黑客攻击事件简析:金色财经报道,10月25日,据Beosin EagleEye 安全预警与监控平台检测显示,ULME代币项目被黑客攻击,目前造成50646 BUSD损失,黑客首先利用闪电贷借出BUSD,由于用户前面给ULME合约授权,攻击者遍历了对合约进行授权的地址,然后批量转出已授权用户的BUSD到合约中,提高价格ULME价格,然后黑客卖掉之前闪电贷借出的ULME,赚取BUSD,归还闪电贷获利离场。Beosin安全团队建议用户用户取消BUSD对ULME合约的授权并及时转移资金减少损失。[2022/10/25 16:38:21]
第三,FC不断上涨,直至某一时刻,流动性池中FC数量减少至500个,USDT数量增加至500个。
慢雾:Harmony Horizon bridge遭攻击简析:据慢雾安全团队消息,Harmony Horizon bridge 遭到黑客攻击。经慢雾 MistTrack 分析,攻击者(0x0d0...D00)获利超 1 亿美元,包括 11 种 ERC20 代币、13,100 ETH、5,000 BNB 以及 640,000 BUSD,在以太坊链攻击者将大部分代币转移到两个新钱包地址,并将代币兑换为 ETH,接着将 ETH 均转回初始地址(0x0d0...D00),目前地址(0x0d0...D00)约 85,837 ETH 暂无转移,同时,攻击者在 BNB 链暂无资金转移操作。慢雾 MistTrack 将持续监控被盗资金的转移。[2022/6/24 1:28:30]
问题一:根据假设,我目前的资产状况如何?
答:因为我所占流动性池的比例为10%,所以目前我在流动性池中的资产为50FC及50USDT;
Grim Finance 被黑简析:攻击者通过闪电贷借出 WFTM 与 BTC 代币:据慢雾区情报,2021 年 12 月 19 日,Fantom 链上 Grim Finance 项目遭受攻击。慢雾安全团队进行分析后以简讯的形式分享给大家。
1. 攻击者通过闪电贷借出 WFTM 与 BTC 代币,并在 SpiritSwap 中添加流动性获得 SPIRIT-LP 流动性凭证。
2. 随后攻击者通过 Grim Finance 的 GrimBoostVault 合约中的 depositFor 函数进行流动性抵押操作,而 depositFor 允许用户指定转入的 token 并通过 safeTransferFrom 将用户指定的代币转入 GrimBoostVault 中,depositFor 会根据用户转账前后本合约与策略池预期接收代币(预期接收 want 代币,本次攻击中应为 SPIRIT-LP)的差值为用户铸造抵押凭证。
3. 但由于 depositFor 函数并未检查用户指定转入的 token 的合法性,攻击者在调用 depositFor 函数时传入了由攻击者恶意创建的代币合约地址。当 GrimBoostVault 通过 safeTransferFrom 函数调用恶意合约的 transferFrom 函数时,恶意合约再次重入调用了 depositFor 函数。攻击者进行了多次重入并在最后一次转入真正的 SPIRIT-LP 流动性凭证进行抵押,此操作确保了在重入前后 GrimBoostVault 预期接收代币的差值存在。随后 depositFor 函数根据此差值计算并为攻击者铸造对应的抵押凭证。
4. 由于攻击者对 GrimBoostVault 合约重入了多次,因此 GrimBoostVault 合约为攻击者铸造了远多于预期的抵押凭证。攻击者使用此凭证在 GrimBoostVault 合约中取出了远多于之前抵押的 SPIRIT-LP 流动性凭证。随后攻击者使用此 SPIRIT-LP 流动性凭证移除流动性获得 WFTM 与 BTC 代币并归还闪电贷完成获利。
此次攻击是由于 GrimBoostVault 合约的 depositFor 函数未对用户传入的 token 的合法性进行检查且无防重入锁,导致恶意用户可以传入恶意代币地址对 depositFor 进行重入获得远多于预期的抵押凭证。慢雾安全团队建议:对于用户传入的参数应检查其是否符合预期,对于函数中的外部调用应控制好外部调用带来的重入攻击等风险。[2021/12/19 7:49:04]
问题二:如果未参与提供流动性,那么我的资产状况如何?
答:若未提供流动性,则我的资产为100FC及25USDT
问题三:此刻我本次的无常损失是多少?
答:本次的无常损失为25美元,资产损失为20%。计算过程如下:
1、未提供流动性情况下:
我的资产为100FC及25USDT,即100*FC现价+25*USDT价格=100*1+25*1=125
2、提供流动性情况下:
我的资产为50FC及50USDT,即50*FC现价+50*USDT价格=50*1+50*1=100
3、未提供流动性情况下的资产价格与提供流动性情况下的资产价格差:
125-100=25。损失比率为25/125=20%。
问题四:为什么会出现无常损失?
答:因为FC价格不断上涨,而原始流动性池中FC相对就会比较便宜,所以就会有人不断在流动性池中充入USDT,换出FC套利,池子中的FC就会减少,USDT就会变多。对于我作为流动性提供者来说,相当于我手中的FC在不断被以比较低的价格卖出,而收入的是相对FC不断贬值的USDT,这也就产生了无常损失。无常损失是从英文ImpermanentLoss翻译来的,其实英文直译就是临时损失,也就是说,当我初始存入FC和USDT时,因为币价的变动FC和USDT的价值比变了,这时也就产生了ImpermanentLoss。但当一段时间以后,FC和USDT的价格比又回到了我初始存入时的比例时,这种损失就会消失。所以称为临时损失。
问题五:无常损失的函数曲线什么样的?
首先,通过计算,我们可以列出几个流动性池的FC和USDT数量的时间点,并依据问题三中提到的无常损失计算方法,得出相应的损失比例。如下图表:
根据此表,可以得出如下横轴为FC数量,纵轴为损失比率的折线图。
上图中折线交横轴的点也就是上表中初始流动性池中的USDT为25,FC为100时状态,此时损失比例为0。这也就意味着,如果不考虑其他收入的情况下,流动性提供者LP随着时间的推移,资产不会增长,而最多持平。
问题六:问题五中的折线图为什么抛物线不是对称的呢?
答:根据问题五中图表可得知,对于FC的变动,其实损失比率也是均匀变动的。之所以问题五中折线图不是对称图的原因是横轴取值范围为0-2000,若把问题五折线图横轴取值范围扩大至0至无穷大,同时将FC数量为100为中轴线画图,得出的图形大致如下:
问题七:盈利区间在哪呢?
答:以上问题所画的图中,均未考虑流动性提供者的收入,这里主要就是手续费收入,手续费收入又和DEX中交易对的交易频率还有交易量有关。如果我们将手续费考虑在内的话,图形大概如下:
如上图,只有在坐标轴横轴的上方,且在抛物线内的区间,才是流动性提供者LP能够盈利的区间。
问题八:无常损失这么厉害,那为什么还有人要做流动性提供者呢?
答:大致有如下情况三种主要情况:
1、如问题七,有盈利区间可以盈利;
2、有些币价比较稳定的交易对,在足够长的时间内,是很大可能会回到原始比例的,这时候取出就没有无常损失;
3、参与流动性挖矿,挖矿年华收益较高时,盈利的可能性比较大。
今天的FLUX课堂——无常损失,能够让大家了解流动性提供者的危与机,有助于大家走近DeFi,了解DEX。
郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。