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

概述

在区块链上具有通缩机制的代币最近经常受到攻击。本文将讨论并分析通缩机制代币受到攻击的原因,并给出相应的防御方案。在代币中实现通缩机制通常有两种方式,一种是燃烧机制,另一种是反射机制。下面我们将分析这两种实现方式以及可能存在的问题。燃烧机制

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

然后我们讨论这种情况下可能存在的风险。如果单看代币合约,我们会发现这种写法其实没有什么问题,但是区块链中有很多复杂的情况,需要我们考虑很多方面。通常,为了让代币有价格,项目方会在Uniswap、Pancakeswap等去中心化交易所为代币添加流动性。其中,在Uniswap中,有一个函数skim,它会将流动性池中两种代币的余额和储备金的差值转移给调用方,以平衡余额和储备金:

分析:从技术层面来说,Celsius可能已经资不抵债:6月6日消息,据推特用户yieldchad分析,从技术层面来说,Celsius可能已经资不抵债。该项目一共有100万枚ETH,但只有26.8万枚(近27%)是有充足流动性的;另外44.5万枚拿的是Lido的stETH,按当前Curve的汇率只能换出28.7万枚ETH;最后28.8万枚直接质押进了以太坊2.0合约,一时半会(至少1年内)拿不出来。按照每周5万枚ETH的速度,Celsius在五周内就会耗尽具有流动性的ETH。[2022/6/6 4:05:49]

此时发送方变成了流动性池,当调用_transfer时,流动性池中的代币将被部分销毁,导致代币价格部分上涨。攻击者利用此特性将代币直接转入流动性池中,然后调用skim函数转出,然后多次重复此操作,导致流动性池中大量代币被燃烧,价格也随之飙升,最后卖出代币获利。一个真实的攻击案例,winnerdoge(WDOGE):

北京理工大学盖珂珂:区块链加入黄金供应链后从技术和多角度解决了信任的问题:12月18日,“首届中国(莆田)国际黄金珠宝文化论坛”在福建省莆田市会展中心举办。北京理工大学东南信息技术研究院特别研究员、博士生导师盖珂珂出席论坛并发表主旨演讲。他认为,区块链加入黄金供应链后从技术和多角度解决了信任的问题,对已有黄金供应链模型进行了优化,为黄金珠宝行业进行赋能,主要表现为以下几方面,第一,所有的信息流、商流写入区块链,信息统一集中、公开透明、不可篡改;第二,所有节点可以审视,实时掌握业务物流资金过程;第三,对于投资者得到一定的提升;第四,企业征信数据积累;第五,可以实现资产的跨域流通。

在黄金NFT分享方面,他作出总结:黄金艺术产品认知是在不断进步;黄金产品的用户量特别大,资金储备比较足,这也就决定了黄金作为NFT进行对标是具有先天性的优势;黄金产品特性是具有流通性,与NFT特性比较吻合;黄金产业可能会存在瓶颈,比如渠道商和黄金商的垄断,依赖中心化系统。(中国财富网)[2021/12/19 7:49:02]

李贝宁:从技术角度看Filecoin还处于成长期:金色财经现场报道,7月6日,由杭州市余杭区政府指导,杭州未来科技城管委会、巴比特主办的2020杭州区块链国际周在杭州举办。在主题为《颠覆云存储,IPFS引领新一轮数字革命?》的圆桌上,江西正舵者网络科技有限公司CTO李贝宁表示,从技术角度看,Filecoin还处于成长期,很多方面还有待发展。我的观点是,大家短期高估了它的能力,长期低估了它的潜力,Filecoin要建立的是全球性的分布式存储网络,所以不要过度关注短期FIL的价格。[2020/7/6]

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

分析师:从技术上讲比特币可能需要数月才能修复:Fundstrat Global Advisors LLC的技术策略师Rob Sluymer表示,比特币已经跌破了2015年至2020年的上升趋势,其价格走势“严重受损”。就目前而言,从技术上讲,比特币可能需要数月才能修复。(彭博社)[2020/3/20]

反射机制

在反射机制中,用户每次交易都会收取手续费,用于奖励持有代币的用户,但不会触发转账,只是单纯修改一个系数。在这个机制中,用户有两种类型的代币数量,tAmount和rAmount。tAmount为实际代币数量,rAmount为反映后的代币数量,比率为tTotal/rTotal,一般的代码实现如下:

声音 | 孚链科技创始人赵伟:区块链从技术、模式、组织、融资对行业有所创新:金色财经现场报道,今日,2018中国国际区块链产业融合峰会暨区块链产品与应用展在石家庄举行,在以《新时期下区块链技术赋能实体与应用结合》为题的圆桌论坛上,孚链科技创始人、清华经管创业协会秘书长赵伟表示,区块链不完全是一种技术,同时也是一种思想。区块链对行业的影响可以形容为四个创新,分别是技术创新、模式创新、组织创新和融资创新。关于企业的模式创新,区块链通过利益相关的模式,把一些消费者可能也拉入了甚至成为股东的角色里面去。[2018/9/21]

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

攻击者注意到这个函数,并用它来攻击相应的Uniswap的流动性池。那他该如何进行利用呢?同样从Uniswap的skim函数开始:

Uniswap中reserve是储备金,与token.balanceOf(address(this))不同。攻击者先调用deliver函数销毁自己的代币,导致rTotal的值减少,比率随之增加,所以反射后的代币的值也会增加,token.balanceOf(address(this))也会相应变大,与reserve的值出现了差距。因此,攻击者可以通过调用skim函数转出数量为两者之间差值的代币从而进行获利。

一个真实的攻击案例,BEVONFTArtToken(BEVO):

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

当用户调用burn函数时,自己的代币会被销毁,同时tTotal的值会减少,所以比率会降低,对应的反射后的代币数量也会减少,所以在此时流动性池的代币的数量也会减少,从而代币的价格会上涨。攻击者利用这个特性通过多次调用burn函数来减少tTotal的值,然后调用流动性池的sync函数同步reserve和balances。最后,流动性池中的代币大幅减少,价格飙升。然后攻击者出售代币以获取利润。

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

防御方案

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

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

AtEoceneResearch,weprovidetheinsightsofintentionsandsecuritybehindeverythingyouknowordon’tknowofblockchain,andempowereveryindividualandorganizationtoanswercomplexquestionswehadn’tevendreamedofbackthen.了解更多:Website|Medium|Twitter

郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。

金星链

PEPETRA:次世代Perp DEX之战拉开帷幕

GMX去年提出X4计划,其中重要一环便是全新的交易模式PVPAMM,由于GMX转向合成资产的开发,X4便暂时搁置了。近期又冒出LionDEX,声称已实现了PVPAMM,战火突然就在眼前.

[0:0ms0-0:738ms