链资讯 链资讯
Ctrl+D收藏链资讯
首页 > 火币APP > 正文

GMX:通缩代币相关安全问题 教你如何完美避坑_SNX

作者:

时间:

近期Beosin安全团队研究发现,通缩代币引起的安全事件依然频发,造成众多项目方资金的损失,因此,Beosin安全团队准备了这篇详解通缩代币的文章,与大家分享。

本文将对通缩代币与pair结合过程中容易出现的问题以及历史发生的真实通缩代币安全事件两个方面进行介绍,通过本文,我们将彻底搞清楚通缩代币是什么意思以及通缩代币发生安全问题所涉及的原理,使我们在之后的项目中避坑。

过程详情图

数据:当前以太坊通缩速率约为每年55亿美元:金色财经报道,根据 The Block 统计数据,根据当前以太坊价格与燃烧速率,以太坊通缩速率约为每年 55 亿美元。此前报道,以太坊主网上海升级目标日期为 4 月 12 日,该升级将启用质押的 ETH 提款。[2023/4/11 13:57:28]

销毁问题

该问题主要出现在使用“映射”机制的通缩代币中,这种代币的机制是存在两种代币余额存储变量,分别为tOwned和rOwned,而tOwned存储的是实际代币数量,rOwned存储的是通过currentRate变量放大映射之后的值。

rOwned的作用是什么呢?在文章开始说过,通缩代币能激励用户持有代币,这种激励目的使用的方式便是对交易者扣除rOwned值,同时扣除rTotal,这样其他用户rOwned所占rTotal的比例就会被动增加,实现被动收益。

Jeff Booth:如果美联储继续加息,将出现债务通缩:1月16日消息,《The Price of Tomorrow》的作者Jeff Booth表示,“如果美联储继续加息,将出现债务通缩。这种紧缩政策在去年9月份才真正开始,美联储去年只将其资产负债表减少了2.7%。”

Jeff Booth作为比特币支持者。他在去年5月表示:“比特币将为数十亿人提供个人权利和自由。”[2023/1/16 11:13:57]

用户查询余额的方式有两种情况,一种是除外地址,直接返回tOwned的值,另一种是非除外地址,返回rOwned/currentRate,而currentRate计算方式为rTotal/tTotal。如果有办法使得rTotal减小,那么用户查询出的实际余额将变大,而如果pair查询余额变大,则可以通过skim函数将多余的代币转移出去。

以太坊自合并以来供应量实现通缩超10枚ETH:金色财经报道,据ultrasound.money数据显示,自2022年9月15日以太坊完成合并以来,以太坊供应量实现通缩,减少约10枚ETH。另据BeaconScan数据,以太坊目前活跃节点数约为46万个。[2022/11/9 12:37:14]

而该类通缩代币存在一个deliver()函数,非除外地址可调用,该函数会将调用者的rOwned销毁,并销毁相同数量的_rTotal,使得所有非除外地址的余额查询增加,pair如果非除外的话,便可使用上述方式套利攻击。

3通缩代币相关安全事件剖析

AES安全事件

北京时间2023年1月30日,Beosin旗下BeosinEagleEye安全风险监控、预警与阻断平台监测到,AES遭受到黑客攻击,该项目便存在上述的Skim问题。

加密交易公司QCP:以太坊合并可能不会立即导致通缩:金色财经报道,随着ETH合并即将到来,人们普遍预计此次升级将使ETH成为一种通货紧缩的加密货币。来自新加坡的加密交易公司QCP Capital的策略师在最近发布的一份报告中称,超级看涨的论点是ETH 2.0将立即预示着ETH通货紧缩供应的新时代。但这并不完全正确,至少现在是这样。虽然合并可能会导致以太坊供应减少,使其成为通缩资产,但网络使用率低可能会延迟预期的看涨效应。而看涨的推动力将来自燃烧率,在加密冬季,看起来并不那么乐观。

根据QCP的数据,矿工目前每年收到500万个ETH(约81亿美元)。过渡后,这一数字估计将下降到每年100万ETH,用于支付给PoS质押者的奖励。(支付的奖励金额取决于质押者的数量,而质押者的数量又与质押收益挂钩)。[2022/9/8 13:17:39]

AES-USDTpair合约有一个skim函数,该函数可以强制平衡pair的供应量,将多余资金发送给指定地址。

数据:9月3日为ETH首个通缩日,销毁量比区块奖励多352枚ETH:9月4日消息,据ETH Burn Bot统计,9月3日以太坊网络共销毁13,838枚ETH,而产出的区块奖励为13,485枚,净减少352枚ETH,为ETH首个通缩日。[2021/9/4 23:00:13]

攻击者在本次攻击过程中,首先向pair里面直接转入了部分AES代币,导致供应量不平衡,从而攻击者调用skim函数时,会将多余的这部分代币转到攻击者指定地址,而攻击者在此处指定了pair合约为接收地址,使得多余的AES又发送到了pair合约,导致强制平衡之后pair合约依然处于不平衡状态,攻击者便可重复调用强制平衡函数,而AES发送过程会调用到AES合约的transfer函数,如下图。

另外一点,当调用AES代币合约的transfer函数时,若发送者为合约设置的pair合约时,会将一部分费用记录在swapFeeTotal之中,在最后的时候可以统一调用distributeFee函数将swapFeeTotal记录的费用从pair中转出,这里相比上述的过程,攻击者可以不用做sync函数调用操作,而是在最后将费用转移出去之后调用一次sync函数即可。

攻击者经过反复的强制平衡操作,费用记录变得异常大,基本接近pair的总余额,最后攻击者调用distributeFee函数将pair里面的AES转出,pair的AES余额变得非常少,导致攻击者利用少量AES兑换了大量的USDT。

BevoToken安全事件

北京时间2023年1月30日,Beosin旗下BeosinEagleEye安全风险监控、预警与阻断平台监测到,BevoToken遭受到闪电贷攻击,该项目便是上面所说的“映射”机制通缩代币。

由于BevoToken合约的balanceOf函数并非ERC20标准的函数,该函数在经过一些计算处理后再返回余额,而转账或其他操作可能使前后计算返回的余额不一致,当攻击者在swap操作前后可凭借这个问题来操控pair合约的余额,从而skim出多余的代币。

攻击者首先在pancake贷出192.5个BNB,之后换成约302,877个BEVO代币,再调用被攻击合约的deliver函数,此时_rTotal的值减小,_rTotal的值减小会导致_getRate中计算的值偏小,此时balanceOf返回的余额则会偏大,导致攻击者能skim出多余的BEVO。

之后,攻击者再将skim出的代币进行deliver,此时_rTotal的值已经很小了,在进行_getRate计算时,会减去除外地址的rOwned,此值固定且被攻击者在之前通过burn异常放大的,在最开始_rTotal正常的时候,减去该值对结果的影响不大,但是现在_rTotal被攻击者操控得异常小,再减去这个异常放大的固定值后,对结果产生了巨大的影响,第一次deliver导致pair计算结果偏大3倍,而第二次deliver之后,pair计算结果则偏大了数百倍,这也是为什么攻击者获得的代币要比自己销毁的代币多得多的原因。

4Beosin总结

通缩项目在业务设计的时候一定要考虑到与pair交互的情况,自身的通缩机制是否会对pair产生影响。我们也建议相关项目上线前寻找专业的安全审计机构进行全面的代码以及业务的安全审计工作。

标签:GMXDYDXSNXSYNgmx币挖矿dydx币可以长期持有吗snx币2023年行情synapse币深度解析

火币APP热门资讯
BAS:Coinbase:我们为什么要构建 Base?_Xystus coin

来源:Coinbase 编译:比推BitpushNewsMaryLiu今天,我们很高兴地宣布推出Base的测试网,这是一个以太坊第2层(L2)网络.

BASE:Blur正走向“金融投机怪圈”?谈谈NFT的本质_以太坊硬币图片

来源:Aaron推文 编译:念青,ChainCatcher由于空投预期,Blur的热度一直在持续。在近期的总交易量上,Blur也一度超越行业老大OpenSea,加速抢占NFT交易市场份额.

BASE:万字分析衍生品王位之争:dYdX、GMX 与 SNX_以太坊币最新价格行情

文章来源:CipholioVentures撰文:ScarlettHe本研究将介绍三个目前在衍生品领域中的王者:dYdX、GMX和SNX。我们将会探讨每个项目的基本概况、重要数据以及代币经济学.

GMX:听ETHDenver大佬们详解“账户抽象”的未来_DYDX

本文来自?Cointelegraph,原文作者:AndrewFenton,由Odaily星球日报译者Katie辜编译。多年来,比特币支持者一直在重复“做自己的银行”这句话.

人工智能:人工智能可以为加密市场带来什么?_以太坊

来源:CoinDesk 编译:Dali@Web3CN.Pro过去几个月,人工智能受到了广泛的关注.

PEN:盘点3月即将首发上线的8个热门项目_HALO

最近几周,加密市场涌现出一批新项目,投资者参与热情高涨。精选整理了三月即将首发上线的8个项目以供参考,涉及AI、DEX、链游、NFT等不同细分赛道.