长推:拨开云雾,看清「土狗项目」新套路
其实真正作恶的router函数并没有开源,并且在代币合约中也夹杂了很多作恶代码逻辑。
原文作者:@gooo_robin
原文来源:Twitter
注:原文来自@gooo_robin发布长推。
1/14
土狗新套路来了
@0xSunNFT DM讨论之后细看了下合约代码和交互路径,感叹链上钓鱼还是太会玩了,这次的迷惑性超过以前"做手脚欺骗监控工具"的套路,往下看。 (内容比较长,没时间的可以跳到12-14/14先看总结)
2/14
主要问题: 一个土狗 $PSY 从链上直观地看,代码开源,开始也把LP打入黑洞并丢掉了权限。但实际上还有个第三方地址拥有天量代币 (远超代币初始Supply),后面一次性砸盘全卖了,而这个第三方地址只有卖掉 (转出) $PSY 的记录,完全没有转入的记录。换句话说,这个第三方地址"凭空"出现了天量代币。
3/14
表象:
- $PSY 合约: 0x12b71eAC1e4ca3FB62A980C5FAE1442dD3Ea91Ea
- LP打入黑洞tx: 0xedb721e1ef43f60cb63341a7ba57f1c769da40c27db47b7c8c5c196fcfe81c2d
- $PSY 部署者放弃权限tx: 0xf13c902d597c96bc02592541b4cf3cc03149f80a8f293eb0c34dcf0d202c68c3
一切都看起来很正常。
4/14
怪象:
大概20小时之后出现一个第三方地址0x61de69b7fe583E4547e67b4D0DA0cd9ecf526DC6,将10000000000B的代币直接砸盘归零,换出2个e,而 $PSY 的供应量仅仅为 100M,相当于这个地址砸出了Total Supply的100B倍的量。更奇怪的是这个地址只有转出记录,没有转入 $PSY 的痕迹:
5/14
6DC6这个地址也只有6条Transaction记录,没有任何一条是向该地址转移 $PSY ,所以是如何做到在LP打进黑洞并放弃权限的前提下,这个地址还能莫名其妙地多出这样"天量"的代币呢?
6/14
解析1:
把目光移回 $PSY 的合约代码,Constructor中定义了router和taxwallet_,_router是一个IUniswapV2Router02类型的变量,IUniswapV2Router02是Uniswap V2的路由器合约接口,但在这里被初始化为router参数的值,而router参数的值可以在源代码下方的"Constructor Arguments"找到,如下所示:
关于【长推:拨开云雾,看清「土狗项目」新套路】的延伸阅读
Uniswap 投票延迟,代币持有者沦为二等公民了吗?
Uniswap基金会推迟了决定是否升级协议的投票,以奖励UNI代币持有者。这是因为一位利益相关者提出了新问题,需要更多审查。这不是第一次推迟投票,也不是代币持有者与其他利益相关者冲突的唯一一次。Uniswap V3的推出引发了关于费用转换的讨论,但最终无果而终。这反映了DeFi协议中代币持有者并非最终决定权的教训。
IOSG:从用户视角重新定义Web3项目和Token-market-fit
创业团队应更关注用户需求,而不是假设。设计UI/UX时应简洁直观,移动端体验需要优化。在加密领域,吸引长期用户比短期增长更困难。空投已成为获客捷径,但需要思考其目的性和管理预期。Token的价值反映了市场对项目的共识,可以通过预期收益和叙事来吸引投机者。用户体验也很重要,注意力是稀缺资源,Crypto项目难度比以前更大,但用户需求仍是最重要的。建议Crypto创业者从用户需求出发思考。
7/14
解析2: 所以这里_router将指向Uniswap的路由器合约地址,这个地址是0x96e7AFd8829b2Ae5cCDaABeA04B63cBDf4961Cd8,但这并不是Uniswap V2主网路由器的标准地址。
标准地址为0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D
8/14
解析3: 代币合约中可以看到_router被用于各种函数,例如在_transfer函数中,_router.transfer(to)和_router.Path(from),这些都是调用Uniswap路由器合约 (这里即1Cd8地址)的函数。transfer和Path并不是Uniswap路由器合约的标准函数,是这个欺诈者自定义的函数:
9/14
解析4:
于是追溯到这个router合约地址0x96e7AFd8829b2Ae5cCDaABeA04B63cBDf4961Cd8,果然源代码是未公开的。通过byte codes找到了和这个合约相同套路的另一个合约,地址为0x0D71773a5FD5E1Be5F28B8134797595B3E61e08b,同样源代码也没有公开,也是相同的部署者,在7月8日部署 $WPEPE 再次作恶。
10/14
解析5:
倒回到"解析3",可以看到taxwallet_被赋值为0x61de69b7fe583E4547e67b4D0DA0cd9ecf526DC6,而这个地址刚好就是最后天量抛售的地址。回归到 $PSY 合约的源代码,可以发现在_transfer函数后面还包含了一些作恶的条件语句和赋值操作,比如红框中将6DC6地址的余额设为最大的uint256值:
11/14) 解析6: 以及在转移过程中调用_router.transfer(to)和_router.Path(from),_router合约不开源,所以部署者可以任意魔改达到其掩人耳目的目的。以上对地址余额的修改和对_router的调用便造成了6DC6地址凭空多出了10000000000B的 $PSY:
12/14
总结1:
部署者通过表面将代币合约源代码公开,实际上 1. 将自己写的不开源router合约伪造设置成Uniswap V2主网路由器的标准地址。 2. 偷偷在Transfer函数后添加作恶代码,修改税收地址的代币余额,并且每次执行_transfer函数_router.transfer(to)和_router.Path(from)都会被调用,达到作恶目的。
13/14
总结2:
这种套路仅通过观察交易路径是无法辨别的,并且很容易被表面开源代币合约代码蒙蔽,其实真正作恶的router函数并没有开源,并且在代币合约中也夹杂了很多作恶代码逻辑。我们能做的也只有对代码多加审视,但这又会付出更多时间成本,可能会错过大量alpha,也可能逃过一劫,权衡利弊很重要。
14/14
总结3: 对于不懂代码的交易者来说,冲土狗真的风险极高,这样的混沌市场套路确实太多。 真心希望大家能对代码更加谨慎,有朋友DM我说怕问的问题太蠢,但其实完全没必要担心这个,有任何问题都可以评论一起研究! 如果有帮助的话欢迎转发关注,尽量帮到更多的人。
祝大家顺利度过深。
免责声明:本文仅代表作者个人观点,不代表链观CHAINLOOK立场,不承担法律责任。文章及观点也不构成投资意见。请用户理性看待市场风险,以及遵守所在国家和地区的相关法律法规。
图文来源:@gooo_robin,如有侵权请联系删除。转载或引用请注明文章出处!