宇宙链 宇宙链
Ctrl+D收藏宇宙链
首页 > UNI > 正文

「虚拟印钞机」Popsicle Finance 双花攻击分析

作者:

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

北京时间2021年8月4日早上6点,PopsicleFinance项目下的多个机池被攻击,损失金额超过两千万美元,是迄今为止DeFi领域发生的损失数额最大的单笔攻击之一。通过分析攻击交易及项目代码我们发现,此次攻击是一个利用项目的记账漏洞进行多次提取的攻击。下面我们通过代码和攻击流程分析此次攻击。代码分析

PopsicleFinance是一个涉及多个链的机池。用户首先调用deposit函数向机池存入一定的流动性,并获得PopsicleLPToken作为存款的份额证明。PopsicleFinance会将用户提供的流动性存入Uniswap等底层池子并获得收益。

用户还可以调用withdraw函数,根据用户持有的PLPToken所代表的流动性份额,从机池取回流动性。PopsicleFinance会将PLPToken对应的流动性从Uniswap等底层池子中取回给用户。

加密货币初创公司Klink Finance获得欧盟许可:金色财经报道,加密货币初创公司 Klink Finance 已获得初步授权,可以在整个欧盟范围内提供其加密货币服务。Klink 正在构建一个 Prize Linked Wallet,它为加密货币投资者提供了存储资金并在持有资产的基础上定期获得奖励的机会。该公司已宣布通过其当地分支机构在波兰税务管理局的控制下注册加密许可。该许可证使 Klink 能够以完全受监管的方式运营,并遵守当前和未来的数字资产法规。[2023/2/20 12:17:38]

最后,用户在机池中存的流动性会随着时间产生一定的收益,会累计在合约的用户状态中。用户可以调用collectFees函数取回部分存款奖励。

CZ:加密可能是唯一稳定的东西:金色财经报道,Binance创始人CZ在?在最近的一次采访中表示,尽管许多主流资产正在应对波动性和价格下跌,但加密货币是目前“唯一稳定的东西”。在这个非常动态的环境中,加密可能是唯一稳定的东西。价格是波动的,但如果你看看技术,如果你看看加密货币的基本面,有限的供应,什么都没有改变。在整个动荡局势中,从技术角度来看,这是最稳定的事情。[2022/12/8 21:29:33]

本次攻击的核心函数正是collectFees函数。下面我们逐步分析其代码。首先获得存储在userInfo中的用户状态。其中用户状态中的token0Rewards和token1Rewards是由于用户存款而累积的奖励。接下来计算该合约中,对应机池的Token对的Balance。如果在合约中有足够的Balance,就按金额将Reward支付给用户;否则会调用pool.burnExactLiquidity从底层pool取回流动性返回给用户。最后,会将记录在userInfo中的Rewards状态进行更新。看到这里,机池的代码实现还是比较符合逻辑的。但是在函数开头我们发现了updateVaultmodifier,这个函数会在collectFees的函数体之前运行,漏洞也许在updateVault相关的函数中。

湖北省经信厅拟确定2022年十大人工智能、大数据、区块链优秀应用案例:金色财经报道,湖北省经济和信息化厅官网发布2022年湖北省人工智能、大数据、区块链 十大优秀应用案例公示。

根据《省经信厅办公室关于征集2022年湖北省人工智能、大数据十大优秀应用案例的通知》、《省经信厅办公室关于配合工信部开展2022年区块链典型应用案例征集工作的通知》要求,经企业自主申报、各市州推荐、专家评审、专题会研究等程序,拟确定人工智能、大数据、区块链应用案例各10个(见附件)作为2022年湖北省人工智能、大数据、区块链十大优秀应用案例。现将名单予以公示,如有异议,请在公示期内以书面形式反馈至省经信厅人工智能和大数据产业处。[2022/11/10 12:44:03]

以上是updateVault相关函数的实现。过程如下:首先调用_earnFees向底层pool获取积累的Fee;随后调用_tokenPerShare更新token0PerShareStored和token1PerShareStored参数,这两个参数代表了池子中每个share代表的token0和token1的数量,即机池的每个份额计代表的Token对数量;最后调用fee0Earned和fee1Earned更新对应到这个用户的存款Rewards。

美国法官称Robinhood将面临市场操纵索赔:金色财经报道,美国法官周四裁定,Robinhood Markets Inc (HOOD.O) 必须面临市场操纵指控,理由是其在 2021 年“meme stock”反弹期间对交易施加的限制。迈阿密的美国地方法院法官Cecilia Altonaga裁定,九只股票的投资者可能会对 Robinhood 提起集体诉讼。涉及操纵索赔的股票包括GameStop Corp (GME.N)、AMC Entertainment Holdings Inc (AMC.N)和其他不寻常的股票。这些股票声称这些限制人为地增加了股票的供应。

Robinhood Markets在2021年的meme上涨期间暂时禁止客户投资这些股票,因为这些股票的市场变得如此之高。[2022/8/12 12:20:12]

以上是fee0Earned和fee1Earned函数的实现,两个函数实现相同,都实现了这样一个公式:user.token0Rewards+=PLP.balanceOf(account)*(fee0PerShare-user.token0PerSharePaid)/1e18也就是说,该函数会在原有的user.token0Rewards基础上,根据用户拥有的PLPToken数量计算应给用户发放的Fee的份额。但我们注意到这个函数是增量的,也就是说即使用户并没有持有PLPToken,该函数仍会返回保存在user.token0Rewards中记账的存款奖励。因此对于整个合约,我们发现两个重要的逻辑缺陷:用户的存款奖励是记录在user.token0Rewards和user.token1Rewards中的,并不与任何PLPToken或其他东西有任何形式的绑定。用于取回存款收益的collectFees函数仅仅依赖于记账的user.token0Rewards和user.token1Rewards状态,即使用户并未持有PLPToken,仍可以取出对应的存款奖励。我们假想一个攻击流程:攻击者向机池中存入一定的流动性,获得一部分PLPToken。攻击者调用collectFees(0,0),后者会更新攻击者的存款奖励,即状态变量user.token0Rewards的值,但并没有真正取回存款奖励。攻击者将PLPToken转给自己控制的其他合约,再调用collectFees(0,0)更新状态变量user.token0Rewards。也就是说通过不断地流转PLPToken并调用collectFees(0,0),攻击者复制了这些PLPToken对应的存款奖励。最后,攻击者从以上各个地址调用collectFees函数,取回真正的奖励。此时虽然这些账户中并没有PLPToken,但由于记账在user.token0Rewards没有更新,攻击者因此得以取出多份奖励。用现实生活中的例子来描述这个攻击,相当于我向银行存钱,银行给了我一张存款凭证,但这张凭证没有防伪措施也没有和我绑定,我把凭证复印了几份发给不同的人,他们每个人都凭借这个凭证向银行取回了利息。攻击流程分析

萨尔瓦多的比特币投资目前累计损失已达到约4000万美元:5月13日消息,据估计,萨尔瓦多的比特币投资目前累计损失已达到约4000万美元。这比该国下一次偿还外债支付的利息还要多一点。萨尔瓦多总统布克利的政府总计花了约1.05亿美元购买比特币。自首次购买以来,比特币已下跌了45%,使其持有的2301枚比特币的价值降至约6600万美元。[2022/5/13 3:12:57]

通过以上的代码分析,我们发现了PopsicleFinance在机池实现上的漏洞。下面我们对攻击交易进行深入分析,看攻击者是怎样利用这个漏洞的。攻击者的总体流程如下:攻击者创建了三个交易合约。其中一个用于发起攻击交易,另外两个用于接收PLPToken并调用PopsicleFinance机池的collectFees函数取回存款奖励。通过闪电贷从AAVE借出大量流动性。攻击者选择了PopsicleFinance项目下的多个机池,向AAVE借出了对应这些机池的六种流动性。进行Deposit-Withdraw-CollectFees循环。攻击者一共进行了8次循环,分别攻击了PopsicleFinance项目下的多个机池,取出了大量流动性。向AAVE归还闪电贷,并将获利通过TornadoCash。

本次攻击交易主要由数个Deposit-Withdraw-CollectFees循环构成,每一个循环的示意图如上图所示。根据我们的分析,逻辑如下:攻击者首先将闪电贷借来的流动性存入机池中,获得一定量的PLPToken。攻击者将PLPToken转给攻击合约2。攻击合约2调用机池的collectFees(0,0)函数,设置合约2对应的user.token0Rewards和user.token1Rewards状态。攻击合约2将PLPToken转给攻击合约3。和攻击合约2的操作类似,攻击合约3调用机池的collectFees(0,0)函数,设置合约2对应的user.token0Rewards和user.token1Rewards状态。攻击合约2将PLPToken转回攻击合约,后者调用机池的withdraw函数Burn掉PLPToken,取回流动性。攻击合约2和攻击合约3调用collectFees函数,用虚假的tokenRewards状态取回了存款奖励。根据我们的以太坊交易追踪可视化系统给出的交易调用图如下,其中部分重要交易用红字进行标注:利润分析

本次攻击一共获利:2.56kWETH,96.2WBTC,160kDAI,5.39mUSDC,4.98mUSDT,10.5kUNI,获利共计超过20,000,000美元。在此次攻击之后攻击者通过首先通过Uniswap和WETH将攻击获得的其他token全部换成ETH,然后通过多次使用Tornado.Cash将ETH洗白。BlockSec团队以核心安全技术驱动,长期关注DeFi安全、数字货币反和基于隐私计算的数字资产存管,为DApp项目方提供合约安全和数字资产安全服务。团队发表20多篇顶级安全学术论文(CCS,USENIXSecurity,S&P),合伙人获得AMiner全球最具影响力的安全和隐私学者称号(2011-2020排名全球第六).研究成果获得中央电视台、新华社和海外媒体的报道。独立发现数十个DeFi安全漏洞和威胁,获得2019年美国美国国立卫生研究院隐私计算比赛(SGX赛道)全球第一名。团队以技术驱动,秉持开放共赢理念,与社区伙伴携手共建安全DeFi生态。扫描二维码,关注更多精彩https://www.blocksecteam.com/contact@blocksecteam.com

标签:TOKETOKTOKENKENimtoken安全下载中心BoatPilot TokendigifinextokenKappi Token

UNI热门资讯
月内上涨500%,一文详解LUNA暴涨的秘密

Terra及其UST稳定币是旨在成为全球支付系统支柱的区块链项目的一部分。通过AnchorProtocol和MirrorProtocol,他们能够充当去中心化银行,提供更高的收益和更低的费用.

1900/1/1 0:00:00
DeFi复苏,协议TVL已回血至1480亿美元,逼近历史新高

8月17日,数据服务提供商Messari研究员RyanWatkins表示,在经历了5月份的市场崩盘之后,锁定在各大DeFi协议中的全球总价值已经回血至1480亿美元,并且正在迅速接近新的历史记录.

1900/1/1 0:00:00
星球日报 | DAO Maker遭黑客攻击损失400万美元;ETH实现首次通缩(9月6日)

头条 慢雾:DAOMaker的Vesting合约遭到黑客攻击,攻击者最终获利近400万美金据慢雾区情报,9月3日,DAOMaker的Vesting合约遭到黑客攻击,攻击者最终获利近400万美金.

1900/1/1 0:00:00
NFT的发展之路:未来将在崛起中分化

NFT即NonFungibleToken,即非同质化代币,是基于区块链技术的一种资产类型。在加密资产中与之相对的是同质化代币。比特币或以太坊等就是同质化代币,类似传统金融中的“标准化产品”.

1900/1/1 0:00:00
GameFi是什么?有哪些值得关注的项目

2021年夏天,区块链游戏的崛起,P2E模式的成功,让GameFi成为了当下最受关注的一个赛道。今年以来,NFT游戏项目发展迅猛,以AxieInfinity为代表的几款热门游戏交易量在六七月份迎来爆发式增长.

1900/1/1 0:00:00
全面解析加密游戏illuvium:探索神兽世界

Axie是加密游戏发展的催化剂随着AxieInfinity的崛起,加密游游和NFT越来越为人们所关注。相对于DeFi,游戏的受众更加广泛,这从Axie游戏用户的快速发展也可以看出来.

1900/1/1 0:00:00