时间:2023-08-06|浏览:165
据ZenGo的研究人员Alex Manuskin称,即使从Uniswap协议中撤出了资金后,至少有一个用户失去了价值超过14万美元的Uniswap的UNI代币。Manuskin告诉Cointelegraph,其他用户损失了约50000美元。
用户成为DeFi中常见的危险行为的受害者,在DeFi中,大多数协议都会要求获得授权,以从客户的钱包中提取无限量的特定代币。正如Cointelegraph先前报道的那样,像Compound、Uniswap、Kyber等去中心化应用通常具有丰厚的补贴。这使智能合约可以代表每个钱包所有者进行任意数量的特定代币交易。
有些钱包允许用户手动调整已批准的金额,尽管默认情况下,这通常被设置为可能的最大金额。
Manuskin解释说,UniCats就是这种情况:“这不仅是一种欺骗行为,也是一种骗局,它还想获取用户所有的代币。”
UniCats合约包含一个“setGovernance”函数,允许其所有者以合约的名义调用任何函数。由于用户无限制地批准了该合约,因此开发人员可以提取用户的全部UNI代币。
被提取的代币立即转换成以太坊(ETH)出售,然后将其发送到TornadoCash进行混合,这让很多人怀疑这些行动是否有预谋。
这一事件凸显了仅将资金委托给经过审查且信誉良好的项目的重要性。在yield farming(流动性挖矿)的狂热之后,许多鲜为人知的项目纷纷涌现,以利用这一趋势。不幸的是,它们通常是直接抢现金,并且具有不同类型的后门。在类似事件中,许多农民被“欺骗”,他们损失了全部资金。
与UniCats的不同之处在于,“构建者”通常将自己限于委托给协议的代币。丰厚的补贴机制允许合约永久提取用户钱包中的每个代币。在取消批准之前,钱包将完全被盗用,这意味着发送到该地址的任何新代币都可以以相同方式被盗。
批准机制对于限制于以太坊ERC-20标准的代币来说是有必要的。DApp和智能合约无法检测用户是否已向合约转移资金。因此,合约代表用户转移资金,这需要预先批准。尽管这种类型的代币仍然存在漏洞,并且仍可能成为盗窃的受害者,但是像ERC-777等较新标准解决了该缺陷。
设置无限批准的理由是,用户无需分别批准每个交易,从而节省了gas费和时间。然而,正如Bancor漏洞在6月份所显示的那样,任何合约中的妥协都会使用户遭受盗窃,即使他们已经有一段时间没有与该协议进行交互了。