元宇宙非小号金色财经交流群社区官网

从技术角度解析:为什么通缩机制的代币易受攻击

Time:2023-03-14 Click:138


概述

区块链上具有通缩机制的代币最近经常受到攻击。本文将讨论并分析通缩机制代币受到攻击的原因,并给出相应的防御方案。

在代币中实现通缩机制通常有两种方式,一种是燃烧机制,另一种是反射机制。下面我们将分析这两种实现方式以及可能存在的问题。

燃烧机制

通常,具有燃烧机制的代币将在其 _transfer 函数中实现燃烧的逻辑。有时候会存在发送者承担手续费的情况。 在这种情况下,接收方收到的代币数量不会发生变化,但发送方需要支付更多代币,因为其需要承担手续费。 下面是一个简单的例子:

从技术角度解析:为什么通缩机制的代币易受攻击

然后我们讨论这种情况下可能存在的风险。

如果单看代币合约,我们会发现这种写法其实没有什么问题,但是区块链中有很多复杂的情况,需要我们考虑很多方面。

通常,为了让代币有价格,项目方会在 Uniswap、Pancakeswap 等去中心化交易所为代币添加流动性。

其中,在 Uniswap 中,有一个函数 skim,它会将流动性池中两种代币的余额和储备金的差值转移给调用方,以平衡余额和储备金:

从技术角度解析:为什么通缩机制的代币易受攻击

此时发送方变成了流动性池,当调用 _transfer 时,流动性池中的代币将被部分销毁,导致代币价格部分上涨。

攻击者利用此特性将代币直接转入流动性池中,然后调用 skim 函数转出,然后多次重复此操作,导致流动性池中大量代币被燃烧,价格也随之飙升, 最后卖出代币获利。

一个真实的攻击案例,winner doge(WDOGE) :

从技术角度解析:为什么通缩机制的代币易受攻击

在 WDOGE 合约的_transfer函数中,当block.timestamp > closingTime时,进入 else 循环。 在代码第 21 行中,转账金额从发送方的余额中扣除,在代码第 31 行中,发送方又被燃烧了 tokensToBurn 数量的代币。 攻击者利用这种手续费的机制,通过上述的攻击方式窃取流动性池中的所有价值代币(WBNB)。

从技术角度解析:为什么通缩机制的代币易受攻击

反射机制

在反射机制中,用户每次交易都会收取手续费,用于奖励持有代币的用户,但不会触发转账,只是单纯修改一个系数。

在这个机制中,用户有两种类型的代币数量,tAmount 和 rAmount。 tAmount 为实际代币数量,rAmount 为反映后的代币数量,比率为 tTotal / rTotal,一般的代码实现如下:

从技术角度解析:为什么通缩机制的代币易受攻击

反射机制的代币中一般有一个叫做deliver的函数,会销毁调用者的代币,降低 rTotal 的值,所以比率会增加,其他用户反射后的代币数量也会增加:

从技术角度解析:为什么通缩机制的代币易受攻击

攻击者注意到这个函数,并用它来攻击相应的 Uniswap 的流动性池。

那他该如何进行利用呢? 同样从 Uniswap 的 skim 函数开始:

从技术角度解析:为什么通缩机制的代币易受攻击

Uniswap 中 reserve 是储备金,与 token.balanceOf(address(this))不同。

攻击者先调用 deliver 函数销毁自己的代币,导致 rTotal 的值减少,比率随之增加,所以反射后的代币的值也会增加,token.balanceOf(address(this))也会相应变大,与 reserve 的值出现了差距。

因此,攻击者可以通过调用 skim 函数转出数量为两者之间差值的代币从而进行获利。

从技术角度解析:为什么通缩机制的代币易受攻击

一个真实的攻击案例,BEVO NFT Art Token(BEVO):

从技术角度解析:为什么通缩机制的代币易受攻击

而当代币合约中存在 burn 函数时,存在了另外一种相似的攻击手法:

从技术角度解析:为什么通缩机制的代币易受攻击

当用户调用 burn 函数时,自己的代币会被销毁,同时 tTotal 的值会减少,所以比率会降低,对应的反射后的代币数量也会减少,所以在此时流动性池的代币的数量也会减少,从而代币的价格会上涨。

攻击者利用这个特性通过多次调用 burn 函数来减少 tTotal 的值,然后调用流动性池的 sync 函数同步 reserve 和 balances。最后,流动性池中的代币大幅减少,价格飙升。 然后攻击者出售代币以获取利润。

从技术角度解析:为什么通缩机制的代币易受攻击

一个真实的攻击案例,Sheep Token(SHEEP):

从技术角度解析:为什么通缩机制的代币易受攻击

防御方案

通过解读针对燃烧机制和反射机制代币的攻击手法,不难发现攻击者攻击的核心点是操纵流动性池的价格,因此将流动性池的地址加入白名单 ,不涉及代币的销毁,不参与代币的反射机制,可以避免此类攻击。

总结

本文分析了通缩机制代币的两种实现机制以及针对这两种机制的攻击手段,最后给出了相应的解决方案。 在编写合约时,项目方必须考虑代币与去中心化交易所结合的情况,以避免此类攻击。

标签:代币 技术

  • 元宇宙建模技术已成为重要元素,建模加入VR技术更加能感受互动

    元宇宙建模技术已成为重要元素,建模加入VR技术更加能感受互动

    T:

    通讯技术元宇宙的一个关键原素是可以与大家相互连接。元宇宙是根据VR/AR技术完成体感互动,但VR/AR技术必须耗费很多数据信息,那麼将传输数据至云空间测算再意见反馈至设备便是一个不错的计划方案。殊不知现今的技术难题取决于完成低延时的联接,这...

  • 元宇宙专业人员如何看待推广技术性的益处,加强技术提升

    元宇宙专业人员如何看待推广技术性的益处,加强技术提升

    T:

    专业人员早已看到了把握此项技术性的益处。服饰和品牌汽车可以推广产品,文化艺术参与者可以在这种新情景中展现,公司可以把这儿做为工作中区域的拓宽,例如西班牙埃森哲公司就与微软公司一同创立了一个“模拟校园”,让世界各国的新合作方踏入融合之途。这一...

  • 元宇宙、AI技术、VR技术谁的发展前景更大?

    元宇宙、AI技术、VR技术谁的发展前景更大?

    T:

    AI检索并读取了周边一些网络服务器的边缘云存储资源,将你的聊天语音与你出世至今的视频语音历史时间数据库查询的互联网大数据开展核对,剖析鉴别出你的视频语音的主要含意;随后AI帮你在网络上订了景点的门票费,而且预订了无人车专车接送;这种买卖都是...

本站分享的区块链、Web3.0元宇宙、NFT、数字藏品最新消息等相关数藏知识快讯NFR资讯新闻,与金色财经非小号巴比特星球前线Btc中国官网无关,本站资讯观点不作为投资依据,市场有风险,投资需谨慎!不提供社区论坛BBS微博微信交流群等相关币圈信息发布!
本站内容来源于互联网,如存在侵权及违规内容投诉邮箱( [email protected] )