月亮链 月亮链
Ctrl+D收藏月亮链
首页 > USDC > 正文

CUR:DeFi安全审计的盲区,一文了解Curve的最新安全漏洞_DEF

作者:

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

截至发稿时,这份报告已获得了Curve官方的认可,而作者也因此获得了漏洞奖励,目前Curve正为旧的合约池部署解决方案,而新的合约池不受此漏洞的影响。

以下是漏洞报告内容:在9月19日凌晨的几个小时,我发现了一个针对Curve合约的漏洞,当合约的放大系数A更新时,攻击者可提取大量代币余额。而使用了Curve合约的Swerve,其一度更新了它的A系数,因此用户的潜在损失是巨大的,占到了合约余额的36.9%,假设进行一次优化后的攻击,那么大约会损失9200万美元。幸运的是,Swerve更新顺利通过,没有发生意外情况。那天下午晚些时候,我通知了Curve团队。几个小时后,他们确认了漏洞的存在,我们开始一起研究解决方案。实际上,这种攻击在A向上和向下调整时都可能发生。但是,由于向下调整的潜在损失要大一个数量级,因此我们将重点讨论这类攻击。这些攻击的严重程度与A的变化幅度成正比。事实证明,代币余额份额的最大损失受如下等式的限制,其中A_old是初始参数值,A_new是更新的参数值,而n是合约中代币类型的数量。

DeFi协议总锁仓量达800.8亿美元:金色财经报道,据DefiLlama数据显示,DeFi协议总锁仓量(TVL)达到800.8亿美元,24小时内涨幅为4.22%。TVL排名前五分别为MakerDAO(80.8亿美元)、Lido(58.5亿美元)、AAVE(58.3亿美元)、Curve(55亿美元)、Uniswap(54.2亿美元)。[2022/7/18 2:19:40]

利用漏洞造成的损失,取决于参数A的百分比变化例如,yCurve合约的更新,发生在同一周的早些时候。该合约有n=4个代币类型,更新从A_old=2000更改为A_new=1000。使用方程1中的公式,攻击者可利用该漏洞提取高达12.9%的yCurve合约余额。这种攻击只可能在预定的参数A更新过程中进行。Curve合约在正常操作下不易受到攻击,因此,没有必要采取紧急行动来保护用户资金。但是,在发生其它关于A的更改之前修补此漏洞是至关重要的。Curve团队正在对更新A的程序进行改进,这些改进应允许Curve合约以安全的方式继续更新参数A。平均数和代币联合曲线

为了理解攻击,我们有必要了解下代币联合曲线。我将解释一些概念,以便读者能够形成一个概念性的理解。我对这一主题采用了一种稍有不同的方法,重点是代币联合曲线与一组变量平均值之间的关系。在数学中,平均数是表示一组数据集中趋势的量数。因此,如果x_1是n个数集合中最小的数,x_n是最大的数,则这个集合的平均数将呈现为介于x_1和x_n之间的中间值。两种最常见的平均数类型是算术平均数和几何平均数。

Cosmos上IBC DeFi协议Gravity DEX已完成部署:据官方消息。7月13日,Cosmos上IBCDeFi协议GravityDEX宣布已完成部署,后续将上线GravityBridge以连接以太坊和其他EVM兼容链。GravityDEX是为CosmosHub创建的链间去中心化交易所,并将CosmosHub确立为链间中心,允许交易任何连接链的代币。[2021/7/13 0:47:15]

算术平均数

几何平均数平均数在代币联合曲线中起到了关键作用。AMM合约允许用户交易任何组合的代币,这样AMM合约代币余额的平均值在交易发生前后保持不变。在不同的AMM设计中,会使用不同类型的平均数方法。对于Uniswap,它使用的是未加权的几何平均数,对于Balancer,它使用的是加权几何平均数,对于mStable,它使用的则是未加权的算术平均数。而Curve使用的是算术平均数和几何平均数的加权平均数,我称之为Curve平均数。Curve平均数的权重由所谓的放大参数A决定。随着A向无穷大方向增加,Curve的平均数收敛到mStable使用的算术平均数。相反,如果A设置为0,Curve的平均数将与Balancer和Uniswap使用的几何平均数相同。对于A的中间值,Curve的代币联合曲线将位于这两个极端的中间。

Asproex(阿波罗)于9月3日正式上线DeFi热门币种DOT、LINK、LEND、COMP:据官方消息,2020年9月3日,Asproex(阿波罗)正式上线DeFi热门币种DOT、LINK、LEND、COMP ,并于当日开通DOT/USDT、LINK/USDT、LEND/USDT、COMP/USDT交易对。开放充提时间:9月3日17:00;开放交易时间:9月3日18:00。2020年,DeFi流动性挖矿盛行,Asproex(阿波罗)已率先切入“DeFi”生态赛道,后续将为用户甄选更优质的DeFi项目,让用户安全快捷参与DeFi浪潮。

Asproex(阿波罗)作为首家离岸银行控股持牌交易平台,也是一家涵盖CTO企业通证上市的交易平台,持有5国牌照,为全球中小微企业提供融资难的解决方案,助力数字化上市。[2020/9/3]

图1:代币联合曲线图1显示了四种代币联合曲线。Uniswap保持几何平均常数,这产生了一个非常陡峭的曲率。mStable则是算术平均值常量,它是一条直线,而Curve则位于两者之间。在参数值A=1时,Curve类似于Uniswap,在A=10时,Curve更接近于mStable。平均数和AMM合约持有的价值

霍比特HBTC宣布成立霍比特DeFi Labs ,将投入千万美元专项资金:据官方消息,霍比特HBTC交易所宣布成立霍比特DeFi Labs,并计划投入千万美金DeFi专项资金于DeFi领域,专注于DeFi项目研究、投资与孵化及生态建设。

霍比特HBTC交易所目前已与NEST、SRM、MIS、DF、OKS等优质DeFi项目深度合作,并正式上线霍比特DeFi专区。各项目币种上线霍比特HBTC交易所后,平均最高涨幅1079.36%、平均累计涨幅645.36%;其中以NEST为代表的项目币种,累计涨幅已达1850.22%,最高涨幅达3360.9%。

霍比特DeFi Labs将持续关注优质DeFi项目,深度扶持DeFi项目健康发展,充分发挥自身市场、技术、行业优势,推进DeFi在全球范围内发展与落地。[2020/8/19]

参考图1,我们可以看到,所有四条曲线在距离图形原点45度线的一个点相交。我们可以利用这个交点到原点的距离,来快速测量AMM合约代币投资组合的价值。例如,如果这个交叉点到原点的距离增加了20%,那么,假设没有无常损失,AMM合约持有的价值也将增加20%。这适用于我们所有的四种联合曲线类型。当我们考虑Curve时,这一特性尤其有用,因为Curve具有一个独特的特性:当A更新时,其联合曲线的形状会发生变化。对于Curve,我们可以使用距离原点的距离来衡量参数更新前后合约投资组合的价值。显然,如果在更新A之后这个距离明显减少,这将是一个严重的问题。关于参数A的盈亏平衡更新

币赢CoinW DeFi专区项目TRADE 24小时涨幅达35.45%:据币赢CoinW官网数据显示,TRADE/USDT的24小时涨幅达35.45% ,最高涨至0.4805USDT。据悉,UniTrade是建立在Uniswap流动资金池之上的去中心化交易平台。UniTrade在现有Uniswap经验的基础上引入了各种高级功能,包括下达买卖订单,查看市场订单簿,设置定期买卖,以及访问Uniswap流动资金池的流动性管理工具。TRADE是UniTrade的本机令牌,并用作支付费用的平台令牌。立即存款交易,并准备开始交易。[2020/8/12]

再次参考图1,假设Curve合约的代币余额正好位于45度线的交点处。当所有Curve代币以一比一的价格比率交易时,就会出现这种情况。从这个起点更新A时,就没有货币损失的风险。例如,假设Curve从这一点开始将参数设置A_old=10改为A_new=1。此更新不会更改联合曲线到原点的距离。因此,参数变化将是完全无害的,不会使Curve流动性提供者面临财务损失的风险。直觉上,如果初始余额不完全在交叉点,但接近于这个交点,则损失的风险仍然很小。关于参数A的亏损更新

现在让我们看看图2。该图说明了当更新A时,攻击者如何可能操纵初始条件以实现巨大的利润。为了便于说明,我展示了从A_old=10到A_new=1的变化,而不是Swerve从A_old=1000到A_new=100的更新。然而,事实证明,漏洞的严重程度只取决于新旧比率,因此该数字准确地描述了Swerve的情况。另外,图中所示的攻击只捕获了合约代币库存的15%。而一个完全优化的攻击将交易更极端的金额,从而可捕获多达36.9%的代币库存。

图2:在恶意交易之间增加一个变化假设Curve合约余额最初位于45度线的交点处,且初始参数值为A_old=10。现在假设一个攻击者在两笔恶意交易之间夹了一个参数更新。在第一次恶意交易中,攻击者出售大量代币,以导致库存失衡。接下来,攻击者将触发一个更新,更新的值为10和1。如图所示,这会改变曲线的形状。最后,攻击者以更低的价格买回他出售的代币。此操作将使合约沿45度线返回到完全平衡的状态。如图所示,此次攻击将导致AMM代币库存的15%丢失。利用漏洞的可行性

那这样的攻击真的有可能吗?令人惊讶的是,答案是yes。Curve合约要求提前几天安排A的变更,并通过去中心化的链上治理流程达成共识。但是,一旦通过治理批准了A中的更改,并且超过了激活截止日期,合约允许任何调用方触发更新。因此,攻击者可自由地从Uniswap快速租借大量稳定币,将其出售给Curve以触发极端不平衡,触发对A的更新,然后从Curve购买稳定币以获得巨大的利润。而完全优化的攻击会涉及到更多,这里就不再深入细节。而我上面所描述的简单攻击,就足以捕获大部分潜在利润。修复关于A更改的智能合约逻辑

目前,Curve合约有两个生产版本。对于未修补的旧版合约,上面提到的内容就是漏洞的原理。而对于较新的合约,仍然存在一个潜在的漏洞,尽管其严重性要小的多。我将首先描述旧合约的建议更改。修复旧Curve合约

在旧的Curve合约中,A的变化发生在一个大的离散步骤中。此外,合约逻辑允许攻击者在单笔交易中以不同的A值执行交易。特别是,攻击者可以利用其初始交易来迫使库存极度失衡,然后触发A的变化,然后以更新后的A值执行更多交易。这使攻击者可执行涉及数以亿计资金量交易的整个攻击,而不会涉及到风险。为了解决这个问题,我建议更新旧的合约,以便只有受信任的多重签名帐户才能激活对A的更新。此外,激活A应需要检查代币余额,以确认代币余额从广播参数更新交易的时间点起没有发生显著变化。这种余额检查可防止流氓矿工的攻击。特别是,一个流氓矿工可重新排序交易,这样他在更新A之前执行一笔大交易,然后在A更新后执行另一笔大交易。余额检查可防止在合约处于意外不平衡状态时激活对A的更改,这足以保护CurveLP免受此类攻击。修复新的Curve合约

在较新的Curve合约中,A的变化是在每次交易开始前以一系列离散的小步骤逐渐发生的。我的理解是每一区块只能调整一步。此外,合约要求在执行任何交易之前进行预定的步骤调整。这足以抵御普通攻击者,但不一定能抵御流氓矿工。特别是,一个流氓矿工可以连续铸造两个区块,并在两个区块中插入恶意交易。这将允许矿工在第一个区块中以较高的A值进行初始交易,并在第二个区块中以较低的A值进行最终交易。更糟糕的是,流氓矿工有一个扩展的窗口来尝试这些攻击。只要A还在更新过程中,流氓矿工就可以继续尝试挖取两个区块序列。为了保护这些较新的合约,我建议将A中的步骤长度减小到每个区块不超过0.1%。为什么小的的步骤长度有帮助?这涉及到一个我还没有介绍的因素——Curve合约会收取一笔费用,由于这笔费用,任何交易都会导致代币联合曲线稍微偏离原点。这也适用于攻击者的巨额交易,这使得攻击的利润略有下降。如果A的变化足够小,则完全优化的攻击所获得的收益,将被攻击者支付给合约的费用所抵消。因此,攻击者再也不可能通过在两笔交易之间夹杂一个变化来获利。关于安全审计和智能合约设计的经验教训

关于这种攻击,它要求设计者深入理解代币联合曲线,对于智能合约审计者来说,发现利用高度专业化知识的漏洞可能并不现实。实际上,Curve合约已经过了多次安全审计,在我写这篇文章时,Swerve合约刚刚通过了另一次审计。在我看来,一个通用的,可通过强力探测而不是理论检测的漏洞审计程序,将是非常有用的。为了检测这类漏洞,我建议代币联合曲线审计纳入任意两步交易程序的模拟。在这些过程中,审计人员将针对合约运行一笔随机交易,触发一个智能合约操作,然后运行另一笔随机交易。在此,智能合约操作将激活对A的更新。对于此漏洞,此模糊测试过程将揭示合约遭受灾难性损失的场景。然后,审计人员可以进一步调查,以了解根本原因。对于智能合约设计师来说,了解审计的局限性是有帮助的。当合约允许一次执行一系列复杂的交互时,全面的模糊测试就变得不可行了。问题在于,用户交互的可能组合太多,我们无法探究每一种可能性。因此,限制用户在短时间内可采取操作的数量和种类是很有帮助的。这里的想法是避免创建一个非常复杂的智能合约,以至于无法通过暴力手段进行审计。感谢Curve团队为我的漏洞报告工作支付了一笔非常慷慨的漏洞奖金,另外,特别要提下我在0x的好友GregHysen,是他挖掘了Curve的代码,帮助我理解更新A的智能合约逻辑。

标签:CURCurveDEFIDEFStarCurvePAXCURVE价格GDEFIDefilancer token

USDC热门资讯
FIL:“FAT 2020 Filecoin 9大矿机厂商榜单”重磅发布_COIN

文|黄雪姣编辑|郝方舟 10月15日晚,Filecoin主网正式上线。继DeFi热潮消退后,今年币圈的另一大热点,Filecoin终于走向台前.

1900/1/1 0:00:00
区块链:星球日报 | 区块链行业反标准即将出台;Stone Ridge宣布已买入逾1万枚BTC_数字货币被过程老人

头条区块链行业反标准即将出台日前,区块链行业应用反标准讨论会举办。会议对《区块链行业应用反一般性要求》的内容进行了深入探讨与交流,同时参与起草内容的企业现场进行相关报告,并最终共同达.

1900/1/1 0:00:00
UNI:本月最大机会竟然是空UNI,到底是谁在卖价值币种_ArcherSwap

编者按:本文来自风火轮社区,作者:佩佩,Odaily星球日报经授权转载。大家好,我是佩佩,币圈一日,人间一年,也就在20天前,uni还是作为一个“未来的宇宙第一交易所”家的平台币备受关注,非XX.

1900/1/1 0:00:00
区块链:区块客周刊:BitMEX高管被美监管部门拘捕/起诉 ; 社会化代币的起势_REFI价格

本期关键字:以太坊三季度手续费3.18亿美元、BitMEXCTO被捕、TheGraph公募、9月发生33起安全事故、Layer2影响可组合性、社会化代币的起势、meme圣地4chan.

1900/1/1 0:00:00
区块链:币圈“按价定投”实操指南_区块链技术通俗讲解科普

在昨天的文章中,我介绍了按固定间隔时间定投的方法,这种方法的好处是规律性极强,如果能坚持下去,就能完全杜绝情绪对自己的影响.

1900/1/1 0:00:00
ETH:一文了解EIP-1559的更新进展_以太坊行情币有什么用

作者|TimBeiko要点速览EIP-1559会给以太坊的费用市场带来重大影响。它会使得交易费用更可预测,处理激增需求更高效,并在网络使用率和网络价值间建立积极的反馈循环.

1900/1/1 0:00:00