OLY:Polygon上收益聚合项目PolyYeld Finance被攻击事件分析_Polylastic

北京时间7月28日,收益聚合器PolyYeld.Finance遭到攻击,其代币YELD归零,攻击者获利25万美元。

SharkTeam第一时间对此事件进行了攻击分析和技术分析,并总结了安全防范手段,希望后续的区块链项目可以引以为戒,共筑区块链行业的安全防线。

一、事件分析

攻击者地址:

0x56ec01726b15b83c25e8c1db465c3b7f1d094756

0x1bdf24cb4c7395bf6260ebb7788c1cbf127e14c7

Lido上周Polygon市场新增3210万枚MATIC的存款净额:金色财经报道,Lido Finance发推特表示,上周Lido上Polygon市场新增3210万枚MATIC的存款净额,其中3000万是由某个巨鲸地址质押,质押率增长34.56%,Lido在Polygon的市场份额达到3.47%。[2023/5/16 15:06:18]

从交易详情可以看出攻击者获取的奖励费用异常。

lpSupply值被操纵为1,导致1300行计算错误。

Apollo宣布与Hamilton Lane推出带有Figure的区块链投资工具:金色财经报道,资产管理公司Apollo Global Management和Hamilton Lane正在使用金融科技公司 Figure 开发的技术在区块链上推出投资工具。Figure 在一份声明中表示,这些投资公司将利用Figure的数字基金服务 (DFS) 平台,该平台将支持链上基金订阅以及正在进行的基金运??营和管理。 该公司表示,投资者还将受益于DFS的通用护照功能,该功能可以将经过验证的“了解你的客户”凭证的匿名记录存储在链上并在多个基金中使用。[2022/11/23 7:57:45]

根本原因在于当前合约的LPToken的余额不是所有用户质押的LPTokn总额,其中还包含攻击者向当前合约转入的LP?Token金额,这导致了lpSuppy被操纵为1的情况,造成了错误的判断和计算。

Cardano取代Polkadot成为最大的PoS网络:1月10日消息,就总价值而言,Cardano已经超越Polkadot,成为最大的PoS网络。在过去一周里,Cardano经历了质押热潮,这可能是其价格上涨80%的结果。

1月10日,Cardano创始人Charles Hoskinson转发Staking Rewards发布的推文,并表示Cardano不仅是最大的,也是“最安全”的PoS网络。

根据Staking Rewards最新数据,价值超过69.8亿美元的Cardano(ADA)被质押。Polkadot(DOT)以超过60.2亿美元排在第二位,其次是以太坊2.0(ETH)、Synthetix(SNX)、EOS。(Crypto News Flash)[2021/1/10 15:48:44]

详细函数分析

攻击者事先给16号池转入1LPToken

雪崩协议与PolyientGames达成合作,将推出去中心化NFT交易平台:7月29日,雪崩协议Avalanche宣布已于PolyientGames达成合作,将在雪崩协议上建立一个专门用于NFT交易的去中心化交易平台(DEX)。新的DEX将存在于即将到来的PolyientGamesMarketplace中,该市场将提供独特的产品,包括独家NFT拍卖和点对点NFT交换系统。

Polyient首席执行官BradRobertson表示,以太坊网络拥挤正在阻碍区块链游戏和NFT资产的发展。通过雪崩协议,我们能够利用其可扩展基础结构,以维护和促进ERC-20和ERC-721资产无缝转移。(Medium)[2020/7/29]

攻击者合约0x56ec01726b15b83c25e8c1db465c3b7f1d094756调用balanceOf函数查询lpSupply的值为1

动态 | Polymath终止两个内部项目,并将专注于证券型代币应用程序:据cointelegraph报道,基于以太坊的证券型代币平台Polymath将终止其两个计划中的内部项目,并解雇了这两个项目的10名员工。该公司正在将公司资源汇集到其证券型代币应用程序Polymath Token Studio,迄今为止已经发布了130多个证券型代币。[2019/7/6]

调用updatePool函数

调用balanceOf函数查询lpSupply的值

此时由于lpSupply的值为1,判断条件不符,继续执行函数代码

调用getMultiplier函数获取差值

YeldPerBlock值为10000000000000000,allocPoint值为2000,totalAllocPoint值为29000。但下一步中将计算奖励的百分之十铸币给项目方,并未从给用户的奖励中扣除,这将导致通胀。

将铸造给项目方和当前合约地址的Token数量添加到totalSupply

此时YeldReward值为25517241379310344,乘上1e18,再除lpSupply的值1。

执行结束后,accYeldPerShare的值为25517241379310346060896017401670445

返回user.amount的值为249792662487644753291986140279580

计算完成后调用withdraw提取奖励,函数内调用payReferralCommission函数铸造通过上面计算得到的token数量。

事件分析总结,该项目存在多个问题:

项目方收取百分之十的收益时直接铸币并未从用户收益中扣除,导致通胀。

调用Masterchef合约实现推荐机制,即推荐者永久享受被推荐者收益的百分之二,但这百分之二并未从被推荐者收益中扣除。

正常情况下,合约计算收益的逻辑没有错误,lpSupply应该为合约中的总Token数,但攻击者通过操作,使得lpSupply为1,手动执行一次updatePool函数,使其计算出来的参数错误,再使用另外一攻击合约的地址正常质押提取,使得推荐者获得超出其本身应该获得的收益。

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

大币网

[0:0ms0-4:848ms