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

AIR:细数DeFi浪潮下的DEX都会受到哪些安全威胁?

作者:

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

如今,随着人们对DeFi的兴趣日益浓厚,DEX风靡一时。它们解决了常见的CEX问题,那我们也会问,DEX够安全吗?

在上一篇说明了代币本身的安全问题后|DEFI安全问题之基础篇),现在来聊聊DEX在兑换代币时可能产生的安全问题。目前DEX主要面临的安全问题大致可分成两类:

DEX项目本身存在的安全问题。

作为第三方协议,与其他DEFI项目交互时产生的安全问题。

本文将对第一类安全问题进行介绍。

Uniswap的重入漏洞的主要表现形式为:攻击者在一笔兑换交易中利用Uniswap未及时更新价格前发起二次兑换,由于此时Uniswap未更新价格,使得二次兑换可兑出的代币数量比正常兑换的多。此外,在Uniswap的重入攻击中,攻击者利用单笔交易可能只能获得微小的收益,因此攻击者往往倾向于使用闪电贷或者循环套利扩大战果。

马斯克入选瑞典“失败博物馆”:金色财经报道,瑞典的一家“失败博物馆”将马斯克收录其中,其贡献了14个失败教训,包括特斯拉和SpaceX在2008年差点破产;

另外,他在推特上错误地发布了特斯拉私有化的消息,被吉尼斯世界纪录认定为“史上最大的个人财产损失”;尝试放弃以440亿美元收购推特的交易失败。[2023/5/2 14:37:59]

以imBTC攻击事件为例,该事件是由于UniswapV1在调用ERC777系列代币时,未充分考虑合约回调的情况。

具体表现为:攻击者使用imBTC代币兑换ETH时,合约先通过self.getInputPrice函数计算正确的ETH数额并将ETH发送到目标地址,然后调用self.token.transferFrom函数时,会调用imBTC合约的_callTokensToSend函数,而_callTokensToSend函数会调用用户指定存储imBTC代币的合约。因此,如果攻击者部署存储合约,并改写其中TokensToSend函数,那么当兑换代币时,pair(两种代币组成的交易对)合约调用攻击者部署的存储合约,就可以回调pair进行二次兑换,而二次兑换时pair合约账本还未更新,使得计算的ETH数额比正常兑换要多,以此来获利。

一获得超1600万枚RNDR初始分配地址向币安转入300万枚RNDR:3月13日消息,据链上数据分析师余烬监测,一个获得1604万枚RNDR初始分配的地址将300万枚RNDR(价值约351万美元)转入币安。该地址在2021年3月15日获得RNDR后,不断将RNDR通过DEX出售或转入币安、Huobi等交易平台。

截至目前该地址通过DEX出售与转入交易所的RNDR共计约1502万枚,出售均价为1.13美元。[2023/3/13 13:00:51]

且正常第二次可兑换的ETH数量为:

但重入后第二次可兑换的ETH数量为:

由此可知,在重入后第二次兑换中只有ETH的储备量减少,而imBTC储备量未增加。这样在分母不增加的情况下,导致了等量的imBTC可以兑换更多的ETH。

加密货币总市值下降至1.11万亿美元:金色财经报道,据CoinGecko数据显示,当前加密货币总市值为1.113万亿美元,24小时涨幅达0.7%,24小时交易量为468.83亿美元,当前比特币市值占比为40.2%,以太坊市值占比为17.3%。[2023/2/27 12:30:52]

针对此类安全问题,成都链安建议:

当合约涉及到资产转移时,使用“检查-生效-交互”模式来处理逻辑,对关键的业务操作可以使用OpenZeppelin官方的ReentrancyGuard进行修饰。

图8合约进行k值校验的Swap函数

该事件的具体攻击步骤如下:

1.在准备阶段攻击者部署了AAA代币合约,并使用闪电贷借来1000WBNB,兑换65140个项目方的IF代币。

前NYDFS监管者加入Standard Custody & Trust Co.董事会:金色财经报道,PolySign的子公司Standard Custody & Trust Co宣布任命Matthew Homer为其董事会成员。Homer加入了来自传统金融和去中心化金融领域的杰出领导团队,他们支持Standard Custody构建机构数字资产未来所需的基础设施。Homer是纽约金融服务部 (NYDFS) 研究与创新部门的首任执行副主管,他的职责包括加密货币和数字资产。

他现在是加密货币和数字资产领域公司的全职投资者和顾问。此前,荷马曾在联邦政府担任美国国际开发署的数字金融高级政策顾问,并在 FDIC 担任政策官员,专注于新兴技术和消费者保护。他曾在联合国、世界银行、阿斯彭研究所和剑桥另类金融中心担任顾问职务。[2022/10/16 14:29:26]

2.使用其中一半的IF代币(32570个)与攻击者自己部署的AAA代币构建IF-AAA交易池。

3.执行AAA-IF-BUSD路径的代币兑换,且当Router合约调用AAA代币合约的transferFrom函数时会执行攻击者的恶意代码,重入至IF-BUSD的pair合约,并将另一半IF代币正常兑换出221897个BUSD。

4.回归到AAA-IF-BUSD路径的兑换,将之前计算的amounts值传入_Swap函数中执行这笔兑换,用一半的IF又兑换了2521897个BUSBD。

5.归还闪电贷,完成攻击。

Part.3

-DecentralizedExchange

通缩代币未设置pair为分红例外

通缩代币在交易时会产生额外的分红与手续费。如果交易合约中包含了此类代币,且没有进行特殊处理,那么,就可能导致交易对合约记录的代币储量与实际的代币可用余额不一致。

以XSquid事件为例,XSquid是一种通缩代币,未将其与WHT代币组成的pair合约地址添加奖励例外列表,造成了pair合约除了正常代币兑换和流动性存储外,还存有多余的XSquid分红奖励代币。因此,攻击者就可以调用Swap函数将pair合约多余的XSquid代币转换为WHT提取,或者通过skim函数将多余的XSquid代币直接提取。

PART.1

交易池

这类问题主要是指项目方在自己发行的代币里留有后门,创建与主流代币的交易池,诱使投资者使用手里存在价值的代币买入项目方代币,并且不断拉盘对投资者进行投资。

以下面的TRTC项目方为例,项目方创建了ETH-TRTC的交易池。但是在TRTC的代币合约对transferFrom函数做了相关限制,要求代币的转出方为owner(管理员)或者为Uniswap。因此对于投资者,仅可以通过Uniswap买入TRTC代币,而不能卖出TRTC代币。最后由项目方把投资者投入的ETH提走跑路,给投资者带来了巨大的损失。

图15TRTC合约的transferFrom函数

PART.2

项目方RugPull

RugPull是指项目方卷走投资者资金跑路的行为,目前已成为DeFi生态系统的最大局类型,项目方刻意制造代币价格暴涨的假象、许诺为提供流动性的投资者提供高回报等方式来大量聚集资金,一旦时机成熟就移除池子里的流动性或将代币卷走。这样的例子在DeFi屡见不鲜,AnubisDAO、MeerkatFinance、TurtleDEX、Squidtoken鱿鱼币等都是在卷款跑路之后,注销网站和社交媒体销声匿迹,导致投资者承担了巨大的损失。

写在最后

成都链安建议项目方使用锁仓和多重签名来控制代币流动性,避免出现砸盘跑路的情况。投资者不要被天上掉馅饼的事情冲昏头脑,防范虚假宣传。

标签:SWAPETHDEXAIRCurrySwapEtherInc CoinTidex TokenTAIRYO币

Bitcoin热门资讯
SDT:第二弹Animoca Brands 专题活动--赢取20,000USDT大獎

AAX将于2022年3月4日,联合AnimocaBrands开启AnimocaBrands系列第二彈专题活动,参与活动可以瓜分20,000USDT代币奖励.

1900/1/1 0:00:00
SEC:加密资产卷入俄乌冲突

2月24日,乌俄CT爆发当天,加密资产市场大跌,其中的支柱资产比特币一度下探至34222美元,日内跌幅近10%,其号称「数字黄金」的避险资产属性令人怀疑.

1900/1/1 0:00:00
ATM:工行副行长王景武:建议针对数字人民币立法或出台相应法规

据中国金融杂志消息,全国人大代表、中国工商银行副行长兼首席风险官王景武提出,当前,法律法规层面未对数字人民币进行规制,在数字人民币的获取、使用以及风险防控等方面缺少法律保障.

1900/1/1 0:00:00
加密货币:Bakkt:女性投资者正在加速进入加密领域

原文作者:EduardoPróspero原文编译:TechFlowInternBakkt委托进行的一项研究表明,女性投资者正在快速进入加密货币领域,性别差距越来越小.

1900/1/1 0:00:00
ETHS:电子协议签署平台EthSign完成1200万美元种子轮融资,红杉资本等参投

据TheBlock3月9日消息,电子协议签署平台EthSign完成1200万美元种子轮融资,红杉风险投资的三个部门红杉资本、红杉资本印度和红杉资本中国都支持了该轮融资.

1900/1/1 0:00:00
USD:The Spartan Group合伙人:元宇宙项目的现状让我想起了2017年的Web 3

原文作者:加密风投TheSpartanGroup合伙人JasonChoi在过去的一年里,我们采访了50多家Web3元宇宙公司。今天总结一下我的收获.

1900/1/1 0:00:00