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:SEAMAN合約遭受漏洞攻擊簡析:金色財經報道,根據區塊鏈安全審計公司Beosin旗下Beosin EagleEye 安全風險監控、預警與阻斷平臺監測顯示,2022年11月29日,SEAMAN合約遭受漏洞攻擊。Beosin分析發現是由于SEAMAN合約在每次transfer函數時,都會將SEAMAN代幣兌換為憑證代幣GVC,而SEAMAN代幣和GVC代幣分別處于兩個交易對,導致攻擊者可以利用該函數影響其中一個代幣的價格。
攻擊者首先通過50萬BUSD兌換為GVC代幣,接下來攻擊者調用SEAMAN合約的transfer函數并轉入最小單位的SEAMAN代幣,此時會觸發合約將能使用的SEAMAN代幣兌換為GVC,兌換過程是合約在BUSD-SEAMAN交易對中將SEAMAN代幣兌換為BUSD,接下來在BUSD-GVC交易對中將BUSD兌換為GVC,攻擊者通過多次調用transfer函數觸發_splitlpToken()函數,并且會將GVC分發給lpUser,會消耗BUSD-GVC交易對中GVC的數量,從而抬高了該交易對中GVC的價格。最后攻擊者通過之前兌換的GVC兌換了50.7萬的BUSD,獲利7781 BUSD。Beosin Trace追蹤發現被盜金額仍在攻擊者賬戶(0x49fac69c51a303b4597d09c18bc5e7bf38ecf89c),將持續關注資金走向。[2022/11/29 21:10:04]
安全公司:AurumNodePool合約遭受漏洞攻擊簡析:金色財經報道,據區塊鏈安全審計公司Beosin EagleEye監測顯示,2022年11月23日,AurumNodePool合約遭受漏洞攻擊。
Beosin分析發現由于漏洞合約的changeRewardPerNode函數未進行驗證,導致攻擊者可以調用該函數進行任意值設置。
攻擊者首先調用changeRewardPerNode函數將每日獎勵值設置成一個極大數,接下來調用claimNodeReward函數提取節點獎勵,而節點獎勵的計算取決于攻擊者設置的rewardPerDay值,導致計算的節點獎勵非常高。而在這一筆交易之前,攻擊者便通過一筆交易(0xb3bc6ca257387eae1cea3b997eb489c1a9c208d09ec4d117198029277468e25d)向合約存入了1000AUR,創建了攻擊者的節點記錄,從而使得攻擊者能夠提取出該節點獎勵。最終攻擊者通過該漏洞獲得約50個BNB($14,538.04)。[2022/11/23 8:01:04]
第二,假設流動性池中有我提供的100FC及25USDT,我就有流動性池中10%的資產;
Beosin:Skyward Finance項目遭受攻擊事件簡析:金色財經報道,根據區塊鏈安全審計公司Beosin旗下Beosin EagleEye 安全風險監控、預警與阻斷平臺監測顯示,Near鏈上的Skyward Finance項目遭受漏洞攻擊,Beosin分析發現由于skyward.near合約的redeem_skyward函數沒有正確校驗token_account_ids參數,導致攻擊者5ebc5ecca14a44175464d0e6a7d3b2a6890229cd5f19cfb29ce8b1651fd58d39傳入相同的token_account_id,并多次領取了WNear獎勵。本次攻擊導致項目損失了約108萬個Near,約320萬美元。Beosin Trace追蹤發現被盜金額已被攻擊者轉走。[2022/11/3 12:12:36]
第三,FC不斷上漲,直至某一時刻,流動性池中FC數量減少至500個,USDT數量增加至500個。
安全公司: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]
慢霧: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]
問題一:根據假設,我目前的資產狀況如何?
答:因為我所占流動性池的比例為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。
今天很忙,都沒有時間寫分析,一天都在指導做單操作都沒怎么停下來,想必跟上操作的朋友內心也都是心潮澎湃的,看著行情這兩天直接掀翻市場,大餅暴漲暴跌,以太破位1000又下跌V型反轉.
1900/1/1 0:00:00Bitcoinwin數字貨幣行情顯示,上周BTC行情是一個主跌行情。周初兩天高位橫盤于37000附近,上攻38000失敗,隨即行情開啟下跌模式,由最高的37880下跌至最低的28888,跌去了近.
1900/1/1 0:00:001月14日,BitcoinCore0.21.0正式發布,這是中本聰在大約12年前推出的比特幣原始軟件客戶端的第21個主要版本.
1900/1/1 0:00:00Maps.me商務總監Tina做客直播間,與FTX首席運營官Constance一起暢聊Maps.me2.0的DeFi無限可能性!音樂NFT平臺anotherblock完成400萬歐元種子輪融資.
1900/1/1 0:00:00加密交易員需要培養一些基本技能來掌握市場:能夠結合背景評估基本面,進行技術分析以確定進出市場的價格水平,并控制情緒以做出最佳交易決策.
1900/1/1 0:00:00\n\n 加拿大“灰度”進場,昨日,加拿大投資公司NinepointPartners已在多倫多證券交易所開啟比特幣信托份額的交易.
1900/1/1 0:00:00