木星链 木星链
Ctrl+D收藏木星链
首页 > 火星币 > 正文

CRV:如何解决EIP-4626中的高滑点问题?

作者:

时间:1900/1/1 0:00:00

原文标题:《SolvingtheissuewithslippageinEIP-4626?》

原文作者:NickAddison

原文编译:ChinaDeFi

EIP-4626和mStable金库存款

mStableEIP-4626的首个金库将投资于基于Curve3?Pool的Convex池。从EIP-4626的角度来看,金库的资产是Curve3?Pool的流动性提供者代币(?3?Crv)。存款函数是EIP-4626规范的一部分,它指定要存入多少资产以及将接收金库份额的帐户。存款函数返回给接收方会铸造多少金库份额。

functiondeposit(uint?256assets,addressreceiver)

external

returns(uint?256shares);

例如,存入3?CrvConvexmUSD金库将从调用方转移3?Crv,并将vcx?3?CRV-mUSD金库份额转移到接收方。

EIP-4626标准的强大之处在于,在投资池中有一种通用的投资方法,但对资产可以投资到底层平台的内容和时间没有限制。对于mStable的3?CrvConvxmUSD金库来说,3?Crv被添加到CurvemUSDMetapool中,然后产生的流动性提供者代币(musd?3?Crv)被存入ConvexmUSD池中,该池会投资于CurvemUSDgauge并获得更高的回报。

Robinhood因未恰当披露如何应对高频交易机构而遭到调查:金色财经报道,股票与加密货币投资平台Robinhood因未能恰当地披露如何将客户订单发送给高频交易机构而受到民事欺诈调查。根据报告,这项由美国证券交易委员会(SEC)进行的调查已进入“高级阶段”,可能导致其遭到1000万美元的罚款。[2020/9/3]

这个过程中的一个技术挑战是如何防止三明治攻击。

什么是三明治攻击?如何预防它们?

当我们向CurveMetapool(或任何其他池)添加流动性时,我们指定自己想存入的资产数量和流动性提供者(LP)代币的最小数量。对于mUSDMetapool,金额是一个包含两项的数组。第一个是mUSD的量,第二个是3?Crv的量。?3?CrvConvex金库只存3?Crv,因此金额数组的第一项将为零。

functionadd_liquidity(uint?256?memoryamounts,uint?256min_mint_amount)

external

returns(uint?256?);

开发金库时的一个技术挑战是我们如何设置预期流动性提供者代币的最小数量。

OKEx金融市场总监:加密货币的未来取决于CBDC在未来如何发展:5月24日消息,OKEx金融市场总监Lennix Lai表示,适应中国的CBDC并不是那么困难,因为现金的使用已经有所下降,这要归功于支付宝和微信支付等电子支付系统的进入。Lai指出,鉴于中国一直在使用需要KYC和其他安全流程的电子支付的事实,中国的金融隐私概念早已不复存在,但当其他国家中央银行在发行CBDC时,这可能会成为一个问题。另一方面,中国CBDC直接在中央银行的权力之下并且不提供任何金融隐私这一事实可能会促使人们开始转向加密货币。因此,中国CBDC的启动确实可以促进并使人们意识到主流加密货币的用例和重要性。此外,他表示,比特币、Ripple和其他加密货币的未来取决于CBDC在未来如何发展。如果人们意识到金融隐私的需要,他们可能会涌向比特币,但在那些金融隐私存在已久的国家,这种去中心化的货币可能会被边缘化。(AMBcrypto)[2020/5/24]

仅仅将min_mint_amount设置为零是不够的,因为它会让存款交易受到三明治攻击。但在我们深入了解三明治攻击是如何工作之前,我们需要更多地了解CurveMetapool定价是如何工作的。由于金库只添加两个池代币(mUSD和3?Crv)中的一个,因此它接收到的Metapool流动性提供者(LP)代币的数量将取决于Metapool中mUSD和3?Crv的余额。池中的3?Crv越多,当仅将3?Crv添加到Metapool时,返回的LP代币就越少。

分析 | BTC暴跌该如何操作?合约关注8300压力位:据Huobi数据显示,BTC现报8078美元,日内涨幅1.87%。针对当前走势,金色盘面特邀分析师保罗大帝表示:昨晚大饼再次下探了7700支撑,受到支撑反弹8000上方,白天基本维持了震荡局面。日线布林线呈开口向下扩散,各指标也是空头排列。

?技术上看,1小时看,比特币RSI运行在50附近,KDJ经过刚才的反弹后,底部有金叉趋势。但是可以看到,反弹的上方受到了MA30的压制,MA30成反弹的阻力位。合约15分钟看,这个位置与前高8300位置大约重合,BTC要想走稳向上这个点位要突破,是最基本的要求。

今日操作:上方压力位8200,上方强压力位9300美元,下方支撑位7700美元。合约方面,空单关注8300能否突破,不能突破站稳、空单可跟进。(若趋势反转向上,回踩平仓。)严格带好止盈止损。现货方面,关注下方7700支撑,跌破减仓。?注1:以上合约操作价格为火币季度合约价格,现货为火币现货价格。[2019/9/27]

例如,如果Curve的mUSDMetapool添加了200万个mUSD,?600万个3?Crv和100?k个3?Crv,则将收到100?,?068个LP代币(musd?3?Crv)。如果Metapool有600万个mUSD,添加了200万个3?Crv和100?k个3?Crv,将收到100?,?892个LP代币(musd?3?Crv)。

声音 | 光大证券彭文生:Libra的发展关键要看监管机构如何在支持创新和监管之间的平衡:近日,光大集团研究院副院长、光大证券全球首席经济学家彭文生表示,和比特币等代币相比,Libra尚未问世引来如此高的关注度,一是数字经济下科技巨头平台公司和货币的网络规模优势有协同效应;二是Libra作为一揽子货币的衍生品,属于数字货币中的稳定币。而比特币等代币仅仅是数字资产,其未来价值取决于使用者对其的“信仰”,故其价格波动幅度会比较大。他还指出,未来Libra要成为货币,在起步阶段,支付手段可能是突破口;但发展到一定规模后,储值工具的作用更重要,是推动Libra能成为一种真正货币的主要力量。Libra现在是0,按常理起步会较慢,但不能低估其社区网络带来的规模效应。不过Libra的发展关键还要看监管机构如何在支持创新和监管之间的平衡。[2019/7/30]

那么三明治攻击是如何实现的呢?

攻击者在将交易包含到区块之前,就会监控Mempool中可能被利用的交易。为了利用交易,他们贿赂区块生产者,将他们的交易包含在可利用的交易之前和之后。也就是说,他们将易受攻击的交易与自己的交易夹在一起。如果有一笔交易将3?Crv添加到最低LP金额为零的mUSDMetapool,则攻击者的第一笔交易将是减少Metapool中的mUSD数量。这意味着在易受攻击的添加流动性交易中收到的MetapoolLP代币数量远低于应有的数量。在第三个交易中,攻击者返还在第一个交易中删除的mUSD,并将收益装入囊中。

动态 | 欧盟议会报告揭示银行如何打败比特币:7月24日消息,欧洲议会政策部发布的一份报告中解释了央行发行的加密货币如何胜过比特币。ECON委员会在报告中称,中央银行发行的数字货币将对当前的加密货币市场产生重大影响,并将私人发行的数字货币(如比特币)与中央银行发行的数字货币区分开,将它们相互对立。报告还指出:中央银行和商业银行基本上可以通过阻止用户访问交易所或钱包或通过拒绝服务,来对比特币7708.68以及其他加密货币进行定价。[2018/7/24]

例子

使用Curve的mUSDMetapool,池中有6?,?000?,?000mUSD和3?Crv,11?,?917?,?295个LP代币(musd?3?Crv)和1.018095美元的虚拟价格。

攻击者通过使用6?,?500?,?000(?54.5%??????????)池流动性提供者(musd?3?Crv)代币从池中提取5?,?973?,?425的mUSD,使用他们池中的大部分流动性提供者代币(musd?3?Crv)来平衡池。使用remove_liquidity_one_coin函数进行单边提款,池中剩下0.43%??????????mUSD和99.56%??????????3?Crv。虚拟价格上涨了近1%??????????,至1.019105?,因为大量不平衡的提现为池收取了费用。

受害者使用add_liquidity函数将100?,?000个3?Crv添加到不平衡的池中,且没有最小流动性提供者数量。如果池是平衡的,受害者得到81978个LP代币而不是100371个。这意味着受害者得到的LP代币比他们应该得到的少18?,?393个(?18%??????????)。以美元计算,受害者得到的美元价值减少了18?,?643?(?18%??????????)。

对于第三个也是最后一个交易,攻击者使用add_liquidity将他们从第一个交易中提取的5?,?973?,?425个mUSD添加回池中,以接收6?,?503?,?610个LP代币(musd?3?Crv)。比第一次交易多取了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(uint?256?memoryamounts,boolis_deposit)externalviewreturns(uint?256?);

因此问题仍然存在,EIP-4626函数没有办法传递最小量。打破标准来添加这一点是不可取的,使用预言机也是次优的。我们需要链上方法。

mStable的方法

mStable的金库获得一个公平的MetapoolLP代币价格的方法是使用CurveMetapool和Curve3?Pool的虚拟价格。get_virtual_price函数以美元为单位返回池的流动性提供者代币的价格。它通过计算池的不变式来实现这一点,该不变式是池中代币的美元价值除以代币的总供应量。由于池中代币的余额不影响池的不变值或总美元价值,虚拟价格不会受到三明治攻击。

functionget_virtual_price()externalviewreturns(uint?256?);

对于存入mStable金库的存款,我们需要在Curve的3?PoolLP代币(?3?Crv)中对MetapoolLP代币进行定价,因为这是我们在金库中使用的资产。为此,我们得到3?Pool虚拟价格,并将其除以MetapoolLP代币价格。

fairMetapoolLPtokens=3?Crvassets*

?3?Poolvirtualprice/

Metapoolvirtualprice

一旦我们有了一个合理的价格,我们就可以通过目前配置为1%??????????的滑点系数来降低它。这个调整后的公平价格用于计算在向池中添加3?Crv流动性时可以接收的CurveMetapoolLP代币(musd?3?Crv)的最小数量。

存款的全部流程如下:

结论

虽然标准在标准化和获得采用方面起着巨大的作用,但像这样的问题提醒我们,在DeFi方面没有轻松的胜利。我们需要认识到现有标准的局限性,并为它们寻找最佳的解决方案。

标签:CRVUSDMUSDPOOCVXCRVABUSD价格MUSD价格JackPool

火星币热门资讯
SOL:Solana(SOL)在过去 24 小时内涨幅超过16%

普遍的加密货币暴跌使所有资产都紧贴支撑位以维持生计。Solana(SOL)是受此走势影响最大的股票之一,从260.06美元的历史高位回落至目前的13.75美元.

1900/1/1 0:00:00
BIN:Binance公布10亿美元行业复苏计划简介,需要时将增至20亿美元

11月25日消息,Binance公布10亿美元行业复苏计划(IRI)简介,IRI不是投资基金。每个参与者都需要在公共地址内预留承诺资本,将逐笔审查投资机会并独立做出投资决策.

1900/1/1 0:00:00
DOT:DOT 交易者在采取行动之前应考虑阅读本文

?Polkadot在5.0美元处找到了新的支撑负面情绪可能会破坏有效的价格恢复在突破几个支撑位后,Polkadot(DOT)终于在5.0美元处找到了一个平静区域.

1900/1/1 0:00:00
ENS:幣安合約將下架 CVCUSDT 永續合約並更新槓桿和維持保證金階梯

親愛的用戶:幣安合約將於2022年11月29日17:00對CVCUSDT永續合約進行自動清算,並將在清算結束後下架該永續合約交易對.

1900/1/1 0:00:00
Gate.io Startup:FunFi (FNF) Sale Result & Listing Schedule

1FunFi(FNF)TokenSaleResultTheGate.ioStartupFunFi(FNF)saleresultisasfollows:FNFStartupSaleAmount:2.

1900/1/1 0:00:00
区块链:小冯:BTC、ETH多头短线狂欢 是否抄底转涨?

回顾昨日,昨日我们文章的思路是看涨,原因有二,其一周二破低情况下反弹,空头没有形成延续,其二价格重新收复1100关口,这两点构建了昨日看涨思路,同时文中双币分别给出多单建议.

1900/1/1 0:00:00