虚假或“spoof”的ERC-20代币转账在以太坊并不是什么新鲜事。然而,去年区块链的广泛采用导致了这些案例的急剧上升。现在越来越多的问题和最近一个备受瞩目的案例需要更深入的研究。
在本文中,我们会介绍:
这是什么“spoof”
如何检测它
如何避免
想象一下,听到一个被大肆宣传的DeFi产品即将进行代币空投的传言。作为一个完美的交易者,我们会搜索所有关于这一切的线索。
我们会注意到一个与这个DeFi产品的名称和符号非常相似的代币是新铸造的。更重要的是,我们会看到它被发送到一个我们私下标记为属于一个人脉广泛的鲸鱼/网红的地址。
我们想要领先于其他人了解这个代币,我们从一个刚刚创建的Uniswap V2流动性池中购买许多代币。一个小时后,LP耗尽了所有ETH,我们意识到自己被耍了。
这些真实的 OpenSea 代币也不是由OpenSea: Registry地址转移的
我们所犯的错误是认为代币转移实际上是由影响者地址进行的。这种“spoof”通过利用以下两点来欺骗毫无戒心的用户:
ERC-20标准设计
区块浏览器的透明数据显示
ERC-20标准的transfer和transferFrom函数可以修改,可以允许任何任意地址作为代币的发送方,只要在智能合约中进行指定,这会导致代币从不同于发起地址的地址进行转账交易。
通常“spoof”代币合约不会在Etherscan上进行验证,因为这有助于掩盖合约的内部工作原理。
对于ERC-20代币转账,Etherscan 等区块浏览器会显示传输代币的地址,而不是发起者地址。由于区块浏览器的性质,默认情况下不会审查区块浏览器的数据。
在大多数情况下,伤害程度仅限于持有零值的代币。但更危险的情况也可能存在,比如带有恢复错误消息的代币指向窃取用户私钥的钓鱼网站。ERC-721和ERC-1155代币(NFT)也可能遇到同样的问题。
答案相当简单。对于任何这些代币传输,单击确切的交易哈希并检查其详细信息。发起交易的From地址显然与代币转移的From地址不相同。
要深入挖掘,请在交易输入数据或合约源代码中查找“欺骗性”的 From地址。它通常包含在任一位置中。如果合约没有被验证,这个步骤会进行的更困难,但同时它会自动地使该代币看起来更加可疑。
伪造的 OpenSea 代币看起来好像是由 OpenSea: Registry 在此交易中转账的
一个关键的警告。并非所有由不同地址发起的代币转账都是假的或有欺骗性的。一个常见的例子是dApp批量发送多个代币转账。这些通常有一个由Etherscan添加的公共名称标签。
批量发送代币的交易
spoof的“近亲”是垃圾邮件代币。虽然这些不是假装是由有影响力的人的地址发送的,但它们是一起发送到该地址,并使阅读地址的代币标签成为一个痛苦的体验。
对于一般的用户,不需要做任何事情,因为这个问题不太可能影响我们。
Etherscan默认不审查数据,但正在探索帮助缓解这个问题的方法。第一步是扩展代币忽略列表的功能。特性:
自动隐藏ERC-20、ERC-721和ERC-1155标签中的代币转账,并在地址余额和代币持有中隐藏它们。
包括一个简单的选项,让用户选择忽略所有被Etherscan标记为可疑或糟糕的代币。
我们希望这个功能扩展将有助于保护用户免受欺骗,同时在网站上享受一个更干净的用户体验。