以太坊用户因DeFi项目UniCats损失14万美元
根据加密货币钱包ZenGo研究员Alex Manuskin的披露,一位以太坊用户因参与收益耕作项目UniCats,损失了价值14万美元的UNI代币,该代币是去中心化金融(DeFi)平台Uniswap的治理代币。
在过去的一个周末,这位名为“Jhon Doe”(因隐私原因使用化名,并故意拼写错误)的匿名用户偶然发现了一个名为UniCats的新收益耕作项目,并决定将部分UNI代币转入其流动性池。Manuskin推测,这位用户可能在想“谁知道呢,也许这就是下一个YFI。”这里指的是未经审计的实验性项目Yearn.finance,该项目的代币在两个月内从零涨至4万美元。
智能合约后门导致资金被盗
在此过程中,平台要求获得无限数量代币的使用权限——Doe同意了这一请求,因为这在DeFi领域是一种相对常见的做法。在耕作了一些MEOW代币后,用户将UNI代币从池中取出。然而,他并不知道UniCats的开发者在智能合约中创建了一个后门,即使代币从平台取出后,开发者仍然可以控制这些代币。
Manuskin表示:“Jhon不知道的是,一旦你批准了合约使用[无限]代币,合约可以随时取走他们的代币,即使这些代币已经从耕作项目中取出。”由于这个后门,UniCats的创建者能够通过“setGovernance”调用窃取Doe的代币。在两次快速交易中,用户分别损失了26,000和10,000 UNI——价值分别约为94,000美元和38,000美元。这些代币随后在Uniswap上被兑换为略多于416个Wrapped Ether(约合147,000美元)。
Doe并非唯一的受害者。Manuskin告诉Decrypt:“14万美元只是来自一位受害者。作案者从其他受害者那里至少获得了5万美元,可能更多,由于是分散的交易,很难准确量化。”他还补充说,这是他第一次看到这种类型的攻击被故意用于收益耕作池,尽管不久前Bancor也遭受了类似的攻击。然而,Manuskin解释说,Bancor遭受的是一次漏洞利用,而不是开发者故意创建的后门。
防范措施与建议
Manuskin还指出,UniCats的开发者会为每位新受害者创建额外的智能合约,以掩盖其行踪。随后,开发者将被盗资金转移到加密货币混币器Tornado Cash,这使得区块链分析公司更难追踪资金流向。
Manuskin敦促用户仅批准他们想要使用的代币——因为合约使用后,批准金额会归零——或者事后撤销对其资金的访问权限。他向Decrypt解释说:“问题的很大一部分在于用户默认批准无限金额,因为这在流行的dapp中也是标准做法。”他补充道:“在dapp方面,他们应该考虑仅推广允许必要金额,即使这会给用户带来不便。在钱包方面,钱包应该提醒用户,他们正在授予所有当前和未来代币的权限。”
毕竟,没有人愿意批准一个可能让他们损失所有资金的交易。