簡介
EIP-4626提供了一種將代幣投資到投資池(通常稱為金庫)的標準方法。當我們存入自己的資產時,我們會收到一個份額代幣,代表我們在金庫里的資產。金庫將把匯集的資產投資到一個或多個基礎平臺,為持有者產生收益。
EIP-4626標準的一個結果是,存款和鑄幣函數沒有提供指定回報的最小份額或資產金額的方法。這通常用于防止高滑點或三明治攻擊。mStable如何通過其MetaVaults解決這個問題——在保持符合標準的同時減輕高滑點攻擊?本文描述了這些挑戰,并解釋了他們的方法是如何工作的。
EIP-4626和mStable金庫存款
mStableEIP-4626的首個金庫將投資于基于Curve3Pool的Convex池。從EIP-4626的角度來看,金庫的資產是Curve3Pool的流動性提供者代幣(3Crv)。存款函數是EIP-4626規范的一部分,它指定要存入多少資產以及將接收金庫份額的帳戶。存款函數返回給接收方會鑄造多少金庫份額。
functiondeposit(uint256assets,addressreceiver)
external
returns(uint256shares);
亞馬遜將在今年春天推出一項NFT計劃:金色財經報道,Blockworks援引四位熟悉該計劃的消息人士報道稱,亞馬遜正在計劃一項使用不可替代代幣的新計劃,該計劃可能會在春季推出。Blockworks 表示,這家科技巨頭有十幾個合作伙伴排隊參與該項目,該項目專注于游戲。一個例子可能涉及推動讓亞馬遜客戶玩加密游戲并領取免費 NFT。
據報道,這項工作仍在進行中,可能會在 4 月份啟動。兩位消息人士告訴 Blockworks,該平臺將由亞馬遜而非 AWS 或亞馬遜的子公司亞馬遜網絡服務運行。[2023/1/27 11:31:38]
例如,存入3CrvConvexmUSD金庫將從調用方轉移3Crv,并將vcx3CRV-mUSD金庫份額轉移到接收方。
EIP-4626標準的強大之處在于,在投資池中有一種通用的投資方法,但對資產可以投資到底層平臺的內容和時間沒有限制。對于mStable的3CrvConvxmUSD金庫來說,3Crv被添加到CurvemUSDMetapool中,然后產生的流動性提供者代幣(musd3Crv)被存入ConvexmUSD池中,該池會投資于CurvemUSDgauge并獲得更高的回報。
加密錢包Zulu完成500萬美元的種子輪融資:金色財經報道,哥倫比亞波哥大的加密錢包應用Zulu在種子輪融資中籌集了500萬美元。?風險投資公司Cadenza Ventures 領投。web3基金Nexo Ventures在內的公司以及一些個人投資者參投。[2022/11/17 13:18:10]
這個過程中的一個技術挑戰是如何防止三明治攻擊。
什么是三明治攻擊?如何預防它們?
當我們向CurveMetapool(或任何其他池)添加流動性時,我們指定自己想存入的資產數量和流動性提供者(LP)代幣的最小數量。對于mUSDMetapool,金額是一個包含兩項的數組。第一個是mUSD的量,第二個是3Crv的量。3CrvConvex金庫只存3Crv,因此金額數組的第一項將為零。
functionadd_liquidity(uint256memoryamounts,uint256min_mint_amount)
external
returns(uint256);
排名前100的比特幣地址總共持有超過298.4萬枚BTC:金色財經消息,Watcher.Guru發推稱,前100個最富有的比特幣地址總共持有2984695 BTC,價值641億美元。[2022/9/10 13:21:48]
開發金庫時的一個技術挑戰是我們如何設置預期流動性提供者代幣的最小數量。
僅僅將min_mint_amount設置為零是不夠的,因為它會讓存款交易受到三明治攻擊。但在我們深入了解三明治攻擊是如何工作之前,我們需要更多地了解CurveMetapool定價是如何工作的。由于金庫只添加兩個池代幣(mUSD和3Crv)中的一個,因此它接收到的Metapool流動性提供者(LP)代幣的數量將取決于Metapool中mUSD和3Crv的余額。池中的3Crv越多,當僅將3Crv添加到Metapool時,返回的LP代幣就越少。
例如,如果Curve的mUSDMetapool添加了200萬個mUSD,600萬個3Crv和100k個3Crv,則將收到100,068個LP代幣(musd3Crv)。如果Metapool有600萬個mUSD,添加了200萬個3Crv和100k個3Crv,將收到100,892個LP代幣(musd3Crv)。
美國億萬富翁:美國經濟正走向大幅下滑,有可能出現“快速衰退”:金色財經報道,美國億萬富翁投資者、比特幣大多頭Michael Novogratz對美國經濟前景表示不樂觀,認為美國經濟正走向大幅下滑,有可能出現“快速衰退”。Novogratz在一次采訪中表示:經濟將會崩潰。我們將進入一場速度非常快的衰退,你可以從很多方面看到這一點。他是在美聯儲宣布加息75個基點之前發表這一言論的。
美聯儲周三不同尋常地將利率上調0.75個百分點,這是自1994年11月以來美聯儲進行的最大一次加息。在美聯儲宣布其決定之前,Novogratz猜測該行將加息75個基點,市場將因此暫時反彈。不過,他預測未來幾天股市將出現拋售。
此前一天,Novogratz將1998年高杠桿LTCM基金的崩潰與當前以太坊區塊鏈上比特幣和以太坊等資產的崩盤相提并論。[2022/6/16 4:30:23]
那么三明治攻擊是如何實現的呢?
攻擊者在將交易包含到區塊之前,就會監控Mempool中可能被利用的交易。為了利用交易,他們賄賂區塊生產者,將他們的交易包含在可利用的交易之前和之后。也就是說,他們將易受攻擊的交易與自己的交易夾在一起。如果有一筆交易將3Crv添加到最低LP金額為零的mUSDMetapool,則攻擊者的第一筆交易將是減少Metapool中的mUSD數量。這意味著在易受攻擊的添加流動性交易中收到的MetapoolLP代幣數量遠低于應有的數量。在第三個交易中,攻擊者返還在第一個交易中刪除的mUSD,并將收益裝入囊中。
巴西一家法院下令Foxbit賠償客戶因轉移損失的ETH:金色財經報道,巴西一家法院已下令該國加密貨幣交易所Foxbit和另一家與加密貨幣相關的公司“賠償”在 2020 年 2 月因轉移損失價值近 3000 美元的以太坊 (ETH)的客戶。
投資者聲稱已將持有的 ETH 從大型國際交易平臺上的錢包轉移到 Foxbit 賬戶,但似乎發生了錯誤,客戶決定不使用推薦的網絡進行轉移。Foxbit 聲稱,客戶選擇在不使用常用安全技術的情況下進行加密貨幣轉賬,導致資金損失。該公司表示,將對這一決定提出上訴。[2022/6/8 4:09:59]
例子
使用Curve的mUSDMetapool,池中有6,000,000mUSD和3Crv,11,917,295個LP代幣(musd3Crv)和1.018095美元的虛擬價格。
攻擊者通過使用6,500,000(54.5%)池流動性提供者(musd3Crv)代幣從池中提取5,973,425的mUSD,使用他們池中的大部分流動性提供者代幣(musd3Crv)來平衡池。使用remove_liquidity_one_coin函數進行單邊提款,池中剩下0.43%mUSD和99.56%3Crv。虛擬價格上漲了近1%,至1.019105,因為大量不平衡的提現為池收取了費用。
受害者使用add_liquidity函數將100,000個3Crv添加到不平衡的池中,且沒有最小流動性提供者數量。如果池是平衡的,受害者得到81978個LP代幣而不是100371個。這意味著受害者得到的LP代幣比他們應該得到的少18,393個(18%)。以美元計算,受害者得到的美元價值減少了18,643(18%)。
對于第三個也是最后一個交易,攻擊者使用add_liquidity將他們從第一個交易中提取的5,973,425個mUSD添加回池中,以接收6,503,610個LP代幣(musd3Crv)。比第一次交易多取了3610美元。池的虛擬價格將增加1%至1.019216,因為這是另一個不平衡的交易。以美元計算,攻擊者的LP價值從6,500,000*1.018095=6,617,617美元上升到6,503,610*1.019216=6,628,583美元,增加了10,966美元(1.65%)。
如果受害者損失了18643美元價值,而攻擊者只獲得了10966美元價值,那么缺失的7677美元價值在哪里?
使池失衡的0.04%費用由流動性提供者和Curve投票托管的CRV(veCRV)持有者平均分攤。攻擊者未持有的5,417,295LP代幣的價值從5,515,323美元增加到5,520,794美元。這比池費用的50%增加了5,471美元。增加的美元價值歸于托管CRV(veCRV)持有人。
Curve的保護
為了防止三明治攻擊,在向CurveMetapool添加流動性時,需要指定一個合理的最小LP代幣數量。通常,DeFi協議會在交易中傳入相當數量的金額。Curve池中的add_liquidity函數就是min_mint_amount的一個很好的例子。但是對于標準的EIP-4626存款函數,沒有定義參數來指定最小金額,因此我們無法傳入相當數量的鏈下計算的MetapoolLP代幣。
Curve池有一個calc_token_amount函數,它可以計算池代幣存款收到的LP代幣數量。但這不能用來防止三明治攻擊。如果已經運行了一個交易來平衡池,那么calc_token_amount函數將只返回當前不公平的LP代幣數量。
functioncalc_token_amount(uint256memoryamounts,boolis_deposit)externalviewreturns(uint256);
因此問題仍然存在,EIP-4626函數沒有辦法傳遞最小量。打破標準來添加這一點是不可取的,使用預言機也是次優的。我們需要鏈上方法。
mStable的方法
mStable的金庫獲得一個公平的MetapoolLP代幣價格的方法是使用CurveMetapool和Curve3Pool的虛擬價格。get_virtual_price函數以美元為單位返回池的流動性提供者代幣的價格。它通過計算池的不變式來實現這一點,該不變式是池中代幣的美元價值除以代幣的總供應量。由于池中代幣的余額不影響池的不變值或總美元價值,虛擬價格不會受到三明治攻擊。
functionget_virtual_price()externalviewreturns(uint256);
對于存入mStable金庫的存款,我們需要在Curve的3PoolLP代幣(3Crv)中對MetapoolLP代幣進行定價,因為這是我們在金庫中使用的資產。為此,我們得到3Pool虛擬價格,并將其除以MetapoolLP代幣價格。
fairMetapoolLPtokens=3Crvassets*
3Poolvirtualprice/
Metapoolvirtualprice
一旦我們有了一個合理的價格,我們就可以通過目前配置為1%的滑點系數來降低它。這個調整后的公平價格用于計算在向池中添加3Crv流動性時可以接收的CurveMetapoolLP代幣(musd3Crv)的最小數量。
存款的全部流程如下:
結論
雖然標準在標準化和獲得采用方面起著巨大的作用,但像這樣的問題提醒我們,在DeFi方面沒有輕松的勝利。我們需要認識到現有標準的局限性,并為它們尋找最佳的解決方案。
2022年,加密領域以Luna/UST的崩潰為起點開啟了漫長的加密寒冬,在嚴峻的宏觀環境下以及一系列戲劇性事件中遭受了沉重打擊.
1900/1/1 0:00:00如今阻礙區塊鏈技術和Web3大規模應用的關鍵因素之一是其孤島性質。雖然一個獨立區塊鏈的用戶可以與構建在該特定區塊鏈上的去中心化應用程序無縫交互——但與其他區塊鏈進行通信仍然很困難.
1900/1/1 0:00:00市場觀點 1、宏觀流動性 貨幣流動性有所放松。上周美國首次申請失業金人數增至三個月最高,突顯經濟衰退隱憂。但是迄今為止尚無通脹消退的跡象,經濟體內的供需失衡持續存在,明年陷入滯漲可能性加大.
1900/1/1 0:00:00有關區塊鏈黑暗面的介紹,最早出現在Reddit上一篇題為“MinersFrontrunning”的帖子中,在這篇具有歷史意義的文章中,基于以太坊內存池的公開性.
1900/1/1 0:00:001.從周五到周末ChatGPT已經瘋傳開來,其對話能力讓人驚艷。從玩梗、寫詩、寫劇本,到給程序找bug,幫人設計網頁,甚至幫你生成AIGC的提示詞,一副無所不能的樣子.
1900/1/1 0:00:00上半年“穩定”幣UST的脫錨,直接把加密市場帶入熊市,其多米諾效應也帶崩了一系列明星項目。那么,其它的穩定幣是否穩定?如果再有脫錨,加密圈還將血流成河!本文全面分析了當前熱門七大穩定幣的脫錨風險.
1900/1/1 0:00:00