PeckShield:老马失蹄 PolyYeld代币归零

admin 2021年11月17日23:19:04评论106 views字数 807阅读2分41秒阅读模式
PeckShield:老马失蹄 PolyYeld代币归零

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

PeckShield 安全人员第一时间定位分析,发现此次攻击源于 MasterChef 不兼容通缩型代币,使得攻击者可以通过打破流动池平衡获利。

基于 MasterChef 的设计,如果用户在 MasterChef 中存入 100 枚代币,仍可以从 MasterChef 中提取 100 枚代币,但实际上,由于在交易中协议会收取一定比例的手续费,合约中的余额是扣除手续费后的数值。一旦流动池中的总代币余额极小时,用户所获奖励就会急剧增长。

PeckShield「派盾」简述攻击过程:第一步,攻击者创建攻击合约在 PolyYeld 中抵押 xYELD 代币,以便后续获取 YELD 代币奖励。

PeckShield:老马失蹄 PolyYeld代币归零

第二步,攻击者利用 xYELD 通缩型代币与 MasterChef 合约的兼容性问题,通过频繁地进行「抵押-提现」操作,最终导致合约中的 xYELD 代币数量消耗到一个极小的数量。

PeckShield:老马失蹄 PolyYeld代币归零

随后,攻击者通过在合约中进行提现操作以获取 YELD 代币奖励,奖励的计算会除合约中 xYELD 代币数量,而此时合约中 xYELD 代币数量是一个极小的数量,所以导致除法计算后奖励的数量变成一个巨大的值。

PeckShield:老马失蹄 PolyYeld代币归零

第四步,攻击者在获得大量 YELD 奖励后,将它们在 QuickSwap、SushiSwap、ApeSwap 中换为 ETH,最后通过 Tornado Cash 转移盗取资产。

此次攻击的核心问题在于“通缩型代币”与 MasterChef 合约不兼容导致的。此兼容性问题造成 PolyYeld 合约中 Yeld 代币被恶意耗尽,而 YELD 代币奖励计算又依赖于池中 YELD 代币数量,最终导致 YELD 代币价格闪崩。

由于收益聚合器需要多个合约进行交互,PeckShield「派盾」建议在进行设计时应充分考虑不同合约间交互的兼容性问题。

PeckShield:老马失蹄 PolyYeld代币归零

本文始发于微信公众号(PeckShield):PeckShield:老马失蹄 PolyYeld代币归零

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2021年11月17日23:19:04
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   PeckShield:老马失蹄 PolyYeld代币归零http://cn-sec.com/archives/439284.html

发表评论

匿名网友 填写信息