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:sDAO項目遭受攻擊事件簡析:金色財經報道,根據區塊鏈安全審計公司Beosin旗下Beosin?EagleEye 安全風險監控、預警與阻斷平臺監測顯示,BNB鏈上的sDAO項目遭受漏洞攻擊,Beosin分析發現由于sDAO合約的業務邏輯錯誤導致,getReward函數是根據合約擁有的LP代幣和用戶添加的LP代幣作為參數來計算的,計算的獎勵與用戶添加LP代幣數量正相關,與合約擁有總LP代幣數量負相關,但合約提供了一個withdrawTeam的方法,可以將合約擁有的BNB以及指定代幣全部發送給合約指定地址,該函數任何人都可調用。而本次攻擊者向其中添加了LP代幣之后,調用withdrawTeam函數將LP代幣全部發送給了指定地址,并立刻又向合約轉了一個極小數量的LP代幣,導致攻擊者在隨后調用getReward獲取獎勵的時候,使用的合約擁有總LP代幣數量是一個極小的值,使得獎勵異常放大。最終攻擊者通過該漏洞獲得的獎勵兌換為13662枚BUSD離場。Beosin Trace追蹤發現被盜金額仍在攻擊者賬戶,將持續關注資金走向。[2022/11/21 7:53:09]
Beosin:ULME代幣項目遭受黑客攻擊事件簡析:金色財經報道,10月25日,據Beosin EagleEye 安全預警與監控平臺檢測顯示,ULME代幣項目被黑客攻擊,目前造成50646 BUSD損失,黑客首先利用閃電貸借出BUSD,由于用戶前面給ULME合約授權,攻擊者遍歷了對合約進行授權的地址,然后批量轉出已授權用戶的BUSD到合約中,提高價格ULME價格,然后黑客賣掉之前閃電貸借出的ULME,賺取BUSD,歸還閃電貸獲利離場。Beosin安全團隊建議用戶用戶取消BUSD對ULME合約的授權并及時轉移資金減少損失。[2022/10/25 16:38:21]
第二,假設流動性池中有我提供的100FC及25USDT,我就有流動性池中10%的資產;
第三,FC不斷上漲,直至某一時刻,流動性池中FC數量減少至500個,USDT數量增加至500個。
慢霧: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]
慢霧:Spartan Protocol被黑簡析:據慢霧區情報,幣安智能鏈項目 Spartan Protocol 被黑,損失金額約 3000 萬美元,慢霧安全團隊第一時間介入分析,并以簡訊的形式分享給大家參考:
1. 攻擊者通過閃電貸先從 PancakeSwap 中借出 WBNB;
2. 在 WBNB-SPT1 的池子中,先使用借來的一部分 WBNB 不斷的通過 swap 兌換成 SPT1,導致兌換池中產生巨大滑點;
3. 攻擊者將持有的 WBNB 與 SPT1 向 WBNB-SPT1 池子添加流動性獲得 LP 憑證,但是在添加流動性的時候存在一個滑點修正機制,在添加流動性時將對池的滑點進行修正,但沒有限制最高可修正的滑點大小,此時添加流動性,由于滑點修正機制,獲得的 LP 數量并不是一個正常的值;
4. 隨后繼續進行 swap 操作將 WBNB 兌換成 SPT1,此時池子中的 WBNB 增多 SPT1 減少;
5. swap 之后攻擊者將持有的 WBNB 和 SPT1 都轉移給 WBNB-SPT1 池子,然后進行移除流動性操作;
6. 在移除流動性時會通過池子中實時的代幣數量來計算用戶的 LP 可獲得多少對應的代幣,由于步驟 5,此時會獲得比添加流動性時更多的代幣;
7. 在移除流動性之后會更新池子中的 baseAmount 與 tokenAmount,由于移除流動性時沒有和添加流動性一樣存在滑點修正機制,移除流動性后兩種代幣的數量和合約記錄的代幣數量會存在一定的差值;
8. 因此在與實際有差值的情況下還能再次添加流動性獲得 LP,此后攻擊者只要再次移除流動性就能再次獲得對應的兩種代幣;
9. 之后攻擊者只需再將 SPT1 代幣兌換成 WBNB,最后即可獲得更多的 WBNB。詳情見原文鏈接。[2021/5/2 21:17:59]
問題一:根據假設,我目前的資產狀況如何?
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]
答:因為我所占流動性池的比例為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。
行情概述: 繼上期報告所述,大盤或將延續震蕩趨勢,但隨WSB及馬斯克推特簡介修改為比特幣事件的發酵,比特幣短期的熱度明顯提高,涌入市場較多“熱錢”,短期大幅加劇了市場無序波動的風險.
1900/1/1 0:00:00“北上廣”一般是年輕人最想前往的城市,也是最容易因為房價望而卻步的地方。房價之所以那么高的原因,本質上還是由于供給有限,而接盤俠眾多,或者說是有人盯準了后面接盤俠的財力豐厚.
1900/1/1 0:00:00今天是一月五號,農歷十一月二十二,星期二。這就是傳說中的暴走大牛市嗎,就是從33000跌到27777然后一晚上又漲回來的那種大牛市嗎,現在好像是真的了???關注走一波呀小兄弟,順帶轉發走一波?.
1900/1/1 0:00:00上期《大咖面對面|Suji:從福島到MaskNetwork》中,瑞函小姐姐與特邀嘉賓對話MaskNetwork創始人兼CEOSuji,暢聊他的從業經歷.
1900/1/1 0:00:00你好,這里是8分鐘區塊鏈,今天我們再來分析一下灰度這家公司,我昨天節目里說了灰度是目前幣圈最大的名牌莊家,而且還是這個市場最大的定投投資人.
1900/1/1 0:00:00一周行情總結及分析本來應該昨天就發送的,但因為個人原因,周行情和日行情均暫停了2天,但好在行情都在預測之中。開始本篇之前,先對上周的個人預測做一個總結.
1900/1/1 0:00:00