区块见闻 区块见闻
Ctrl+D收藏区块见闻
首页 > Filecoin > 正文

LANC:老调重弹,浅谈 “通缩型代币” 兼容性问题_Fivebalance

作者:

时间:

By:flush@慢雾安全团队

据慢雾区情报,MDEX的XSquid和HT代币池子中HT代币在没有进行swap的情况下被频繁抽取,慢雾安全团队对此介入分析,并将简要分析分享如下。

攻击核心

本次攻击的核心在于利用XSquid映射通缩型代币的模型,在转账后会发生通缩,自身合约所获取的balanceOf与通过Mdexpair池所获取到的reserve不匹配的问题,使得攻击者可以抽取池中的HT代币。

攻击细节

由链上分析工具我们可以看到,这笔交易中Mdexpair池最终向攻击者转移了0.003枚WHT代币,而链上的交易记录显示还有很多笔这样的交易与之相同。

接下来我们仔细观察这笔交易的细节,这是一个XSquid和HT的MdexPair池,在对XSquid进行swap转账前pair合约通过getReserves接口所获取到池子中_reserve0为1010.505640800917497232。但在下一步通过XSquid合约的balanceOf获取pair余额后我们却发现结果为1010.5060773394782,数量上存在明显的差异。

但是在最后一次更新reserve之后并没有用户向合约中进行转账。于是我们就可以定位到,是在balancOf获取时造成的误差。于是我们开始查看XSquid合约,并定位到balanceOf函数合约的715行。通过函数的一步步跟踪balanceOf。

其中balanceOf调用了tokenFromReflection来获取。而tokenFromReflection函数中传入的是所映射的rAmount.div(currentRate)。currentRate又是由_getRate函数决定的。通过_getRate我们接着跟踪到?_getCurrentSupply函数。

根据一步步的定位我们发现,合约中代币的_tTotal总量是不会发生变化的,最终影响_getCurrentSupply输出结果的是由于_rTotal值的变化而造成的。从合约我们发现XSquid是映射通缩型代币,而在每一次转账时计算_rTotal都会由?_reflectFee产生通缩使得_rTotal值减少,而造成currentRate因此减少,而?rAmount.div(currentRate)增大,最终造成所获取到的balanceOf大于getReserves所获取到的值。

这样就造成了一种假象,使得池子认为外部又多打入了XSquid进来。这时攻击者只需要调用MdexPair合约的swap函数根据上诉计算的差额来抽取代币,或者是调用skim函数直接转走代币。由此,可从池子中抽离这一小部分“多余”而不属于他的HT。对此,我们可以在每次转账最后通过调用sync函数强制准备金与余额匹配同步更新,来避免以上不匹配的问题。

总结

此次抽池的核心问题在于“通缩映射型代币”与项目合约不兼容所导致的。而代币与DeFi项目合约代码不兼容所导致的安全问题已是重复出现的老问题了,慢雾安全团队再次提醒:由于DeFi项目需要多个合约间进行交互,在进行设计时项目方应充分考虑不同合约间交互的兼容性问题,并确保交易对与项?是相互兼容的。

标签:INC1INCHQUIDLANCINCAKE1inch币创始人和团队quidd币最新消息Fivebalance

Filecoin热门资讯
TOKE:纽约时报:Web3已来,你需要知道什么?_growth Root Token

原文标题:《Welcometo『Web3.』What''sThat?》原文编译:0x137、0x76,律动BlockBeats加密爱好者们已经成功的预见到.

TOK:链安访谈64期丨Minty Swap Mintonians NFT大奖来袭_ITC

自上次在链安财经进行AMA后,Mintyswap又取得了更多成效,在链游板块中赢得了各大社区的喜爱,今天,Mintyswap再次来到链安访谈间,给我们带来Mintyswap持续火爆的财富密码.

INC:1inch 宣布完成 1.75 亿美元 B 轮融资_1INCH

1inch今天正式对外宣布1.75亿美元B轮融资成。1inchNetwork增加了数十位新的参与者,这将让1inchDAO进一步去中心化,整个过程将变得更加合理.

TOK:JUST小课堂:USDJ是什么?_CRYP

USDJ是一种由资产足额抵押担保的稳定币,通过一系列金融激励措施保证其价值与美元保持1:1稳定.

TPS:CertiK干货分享 | 十大DeFi安全最佳实践方式(上)_NLINK

本教程适用于所有希望向主网推出user-ready应用程序的人员如果你想要将构建的DeFi协议或是其他智能合约应用发布到区块链主网上,安全因素一定是你要首先去考虑的.

LINK:未成功先社死,Monaco「游艇」难登Web3星球_rubychain

Social也要加DeFi了。引入Web3概念,名为MonacoPlanet的区块链社交挖矿项目出现.