简介
EIP-4626提供了一种将代币投资到投资池(通常称为金库)的标准方法。当我们存入自己的资产时,我们会收到一个份额代币,代表我们在金库里的资产。金库将把汇集的资产投资到一个或多个基础平台,为持有者产生收益。
EIP-4626标准的一个结果是,存款和铸币函数没有提供指定回报的最小份额或资产金额的方法。这通常用于防止高滑点或三明治攻击。mStable如何通过其MetaVaults解决这个问题——在保持符合标准的同时减轻高滑点攻击?本文描述了这些挑战,并解释了他们的方法是如何工作的。
EIP-4626和mStable金库存款
mStableEIP-4626的首个金库将投资于基于Curve3Pool的Convex池。从EIP-4626的角度来看,金库的资产是Curve3Pool的流动性提供者代币(3Crv)。存款函数是EIP-4626规范的一部分,它指定要存入多少资产以及将接收金库份额的帐户。存款函数返回给接收方会铸造多少金库份额。
DeFi借贷协议OpenLeverage:关于“将协议部署至Arbitrum”的提案已获投票通过:2月10日,据官方消息,DeFi借贷协议OpenLeverage发推称,将协议部署至Arbitrum的提案已获投票通过。
提案称,OpenLeverage作为多链无许可保证金交易协议,应部署在Arbitrum上,以帮助用户获得更多的交易机会。[2023/2/10 11:59:40]
例如,存入3CrvConvexmUSD金库将从调用方转移3Crv,并将vcx3CRV-mUSD金库份额转移到接收方。
EIP-4626标准的强大之处在于,在投资池中有一种通用的投资方法,但对资产可以投资到底层平台的内容和时间没有限制。对于mStable的3CrvConvxmUSD金库来说,3Crv被添加到CurvemUSDMetapool中,然后产生的流动性提供者代币(musd3Crv)被存入ConvexmUSD池中,该池会投资于CurvemUSDgauge并获得更高的回报。
这个过程中的一个技术挑战是如何防止三明治攻击。
数据:当前DeFi协议总锁仓量达704.99亿美元:金色财经报道,Tokenview链上数据显示,当前DeFi项目总锁仓量(TVL)为704.99亿美元。锁仓量资产排名前五(美元):Curve(120.23亿+4.35%);Maker(66.33亿-0.17%);UniswapV3(62.14亿+28.09%);Aave(39.92亿-2.23%);WBTC(31.1亿-0.33%)。[2022/12/24 22:04:11]
什么是三明治攻击?如何预防它们?
当我们向CurveMetapool(或任何其他池)添加流动性时,我们指定自己想存入的资产数量和流动性提供者(LP)代币的最小数量。对于mUSDMetapool,金额是一个包含两项的数组。第一个是mUSD的量,第二个是3Crv的量。3CrvConvex金库只存3Crv,因此金额数组的第一项将为零。
Gate.io 理财宝今日DeFi流动性挖矿赚USDG 12点开启:据官方公告,Gate.io “天天理财” 第25期DeFi流动性挖矿赚USDG将于今日中午12点开启,锁仓7天;JGN持仓计划2号仅剩25%仓位,锁仓7天;USDT理财体验金活期福利专场正持续进行中。两大专区含各大主流币种与热门币种理财项目。[2020/11/5 11:42:34]
开发金库时的一个技术挑战是我们如何设置预期流动性提供者代币的最小数量。
仅仅将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)。
那么三明治攻击是如何实现的呢?
加密投资者CryptoWhale:Yield Farming DeFi代币都将归零:DeFi Pulse数据显示,7月至9月,DeFi的总锁仓量(TVL)已从19亿美元增长到83亿美元,9月2日创下96亿美元的历史新高。DeFi市场的迅速崛起归因于对Yield Farming协议的高需求,这使得一些DeFi代币在2020年的表现超过比特币。
但是加密投资者和DeFi评论家CryptoWhale一直在警告投资者注意DeFi欺诈代币,他认为高达99%的Yield Farming协议将没有经验的投资者。“Yield Farming DeFi代币都将归零。创造者完全匿名并控制80-95%的代币供应,这是有原因的。他们正计划退出局,盲目买入、贪婪而缺乏经验的投资者。”(Zycrypto)[2020/9/14]
攻击者在将交易包含到区块之前,就会监控Mempool中可能被利用的交易。为了利用交易,他们贿赂区块生产者,将他们的交易包含在可利用的交易之前和之后。也就是说,他们将易受攻击的交易与自己的交易夹在一起。如果有一笔交易将3Crv添加到最低LP金额为零的mUSDMetapool,则攻击者的第一笔交易将是减少Metapool中的mUSD数量。这意味着在易受攻击的添加流动性交易中收到的MetapoolLP代币数量远低于应有的数量。在第三个交易中,攻击者返还在第一个交易中删除的mUSD,并将收益装入囊中。
例子
使用Curve的mUSDMetapool,池中有6,000,000mUSD和3Crv,11,917,295个LP代币(musd3Crv)和1.018095美元的虚拟价格。
观点:基于比特币构建DeFi很困难,或因其安全性以及缺乏生态系统:比特币被当作金融系统替代品,但Atomic Loans CTO Matthew Black称,其大部分活动依赖去中心化交易所和中心化借贷平台。他指出,对这些加密银行的依赖使得其用户和其他人一样面临托管风险。
以太坊也被称为无银行货币系统,通过MakerDAO和Compound等DeFi项目超越中心化加密银行。DeFi获得巨大增长,成为以太坊生态系统最重要贡献者之一。但在比特币上很难实现同样目标。Black认为,部分原因与比特币的安全构建方式有关,无需担心以太坊上那样的智能合约黑客。这使得在比特币基础上进行构建的任务变得困难,而缺乏在BTC上构建金融应用程序的生态系统,使其变得麻烦。“如果没有MetaMask或Web3生态系统,构建比特币和DeFi的门户就更难了。”有人尝试在Bitcoin DeFi进行原子互换交易,但因UI/UX问题无法获得足够吸引力。尽管代币化BTC已是很好的应用,交易量也在增加,但系统并不完美。
在BTC基础上建设很困难,但社区期待比特币生态系统能使其更独立。目前很难实现仅基于BTC的DeFi,但如果有庞大的生态系统,可能会更容易。(AMBCrypto)[2020/7/25]
攻击者通过使用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代币数量。
因此问题仍然存在,EIP-4626函数没有办法传递最小量。打破标准来添加这一点是不可取的,使用预言机也是次优的。我们需要链上方法。
mStable的方法
mStable的金库获得一个公平的MetapoolLP代币价格的方法是使用CurveMetapool和Curve3Pool的虚拟价格。get_virtual_price函数以美元为单位返回池的流动性提供者代币的价格。它通过计算池的不变式来实现这一点,该不变式是池中代币的美元价值除以代币的总供应量。由于池中代币的余额不影响池的不变值或总美元价值,虚拟价格不会受到三明治攻击。
对于存入mStable金库的存款,我们需要在Curve的3PoolLP代币(3Crv)中对MetapoolLP代币进行定价,因为这是我们在金库中使用的资产。为此,我们得到3Pool虚拟价格,并将其除以MetapoolLP代币价格。
一旦我们有了一个合理的价格,我们就可以通过目前配置为1%的滑点系数来降低它。这个调整后的公平价格用于计算在向池中添加3Crv流动性时可以接收的CurveMetapoolLP代币(musd3Crv)的最小数量。
存款的全部流程如下:
结论
虽然标准在标准化和获得采用方面起着巨大的作用,但像这样的问题提醒我们,在DeFi方面没有轻松的胜利。我们需要认识到现有标准的局限性,并为它们寻找最佳的解决方案。
Source:https://medium.com/mstable/solving-the-issue-with-slippage-in-eip-4626-3af9a5d8e597
结合20多年的金融规划工作经验,我确信政府对银行业、投资业和保险业的监督是必要的。我知道许多人都觉得政府应该减少对大众生活的干预,但我想说这在金融世界是不可行的.
1900/1/1 0:00:00原文标题:《WhyNobodyReallyUsesWeb3…Yet》撰文:ChainLinkGodWeb3仍然是一个尚未被主流采用的利基行业.
1900/1/1 0:00:00原文标题:《复盘2022,展望2023》原文作者:Zixi又到了一年尾声,我们来尝试总结2022发生的故事,并来看看2023可能发生什么。2022是一个高开低走的一年.
1900/1/1 0:00:00撰文:蒋海波Genesis在Luna/UST、三箭资本、Babel、FTX/Alameda等事件中数次踩坑,最终于11月16日宣布暂停赎回和新贷款的发放.
1900/1/1 0:00:00来源|medium、Alchemy编译|Dali@iNFTnews.com11月24日,百事可乐公司宣布在Polygon上铸造全新NFT系列「PepsiBlackNFTCollection」.
1900/1/1 0:00:00原标题:如何用AIGC撰写研报?释放ChatGPT3的力量引入:如何引导ChatGPT产出研究报告本周末,OpenAI刚发布的ChatGPT3爆火科技圈,不仅能对话、写作还能编程、Debug.
1900/1/1 0:00:00