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。
Beosin:SheepFarm項目遭受攻擊事件簡析:金色財經報道,根據區塊鏈安全審計公司Beosin旗下Beosin EagleEye 安全風險監控、預警與阻斷平臺監測顯示,BNB鏈上的SheepFarm項目遭受漏洞攻擊,Beosin分析發現由于SheepFarm合約的register函數可以多次調用,導致攻擊者0x2131c67ed7b6aa01b7aa308c71991ef5baedd049多次利用register函數增大自身的gems,再利用upgradeVillage函數在消耗gems的同時累加yield屬性,最后調用sellVillage方法把yield轉換為money后再提款。本次攻擊導致項目損失了約262個BNB,約7.2萬美元。Beosin Trace追蹤發現被盜金額仍在攻擊者賬戶,將持續關注資金走向。[2022/11/16 13:10:39]
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]
第二,假設流動性池中有我提供的100FC及25USDT,我就有流動性池中10%的資產;
慢霧: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]
第三,FC不斷上漲,直至某一時刻,流動性池中FC數量減少至500個,USDT數量增加至500個。
慢霧: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]
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]
問題一:根據假設,我目前的資產狀況如何?
答:因為我所占流動性池的比例為10%,所以目前我在流動性池中的資產為50FC及50USDT;
問題二:如果未參與提供流動性,那么我的資產狀況如何?
答:若未提供流動性,則我的資產為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。
Tags:USDSDTUSDTABUusdt幣怎么兌換人民幣歐意穩定幣USDT行情coinbase買的USDT不能發送Gabur
BTC行情分析 目前BTC走勢處于日線中樞的底部區間30000-31500左右的位置,由于長短期均線對走勢均處于壓制狀態且量能有所萎縮,市場參與度不高,所以走勢偏弱.
1900/1/1 0:00:001月7日,在「價值時代」行業高峰論壇暨2020FAT頒獎典禮發布的2020FAT區塊鏈胖榜單中,麥子錢包MathWallet榮獲「2020FAT年度加密金融服務商」獎項.
1900/1/1 0:00:00不知不覺就到周末的時光了,想起本周的行情走勢用“波濤洶涌”來形容毫不為過,而市場上韭菜的情況只能用一個詞來形容—慘不忍睹.
1900/1/1 0:00:00近期,隱私幣被灰度“明牌喊單”,多種隱私幣價格隨之上漲,在比特幣、以太坊等主流幣價格回調階段仍然能夠強勢突圍.
1900/1/1 0:00:00易天說 MA5均線如此強勢,比特幣乘風上揚,何時到頂?比特幣昨日行情是延續上行趨勢,晚間更是再度破位上行,高位測試57600一線,日內漲幅4000多點多頭較為強勢.
1900/1/1 0:00:00最近,珠寶玉石首飾行業發生的一件事,備受圈內人關注,單次線上直播觀看人數50萬+。珠寶檢測“國家隊”——國家珠寶玉石質量監督檢驗中心,與浪潮集團簽訂戰略合作協議,共同發布國內首張基于“一物一證”.
1900/1/1 0:00:00