BNB:从智能合约解读「二舅币」跑路真相

概要

二舅币来了,二舅他跑了,相信今天你已经被这样的新闻刷屏了,那他真的跑路了吗?

结论!所谓Twitter上安全专家发推,并引发无数媒体转发的二舅币,其实并没有跑路,并且在31号主动放弃项目管理员特权。

既然想辟谣就要有证据,笔者通过二舅币的智能合约源代码解读并结合链上交易记录的回溯,反证项目方的链上操作,带你分析本案原委。

先声明,我不是项目方,也完全不持有任何二舅币,本文仅从技术研究角度出发解读。

背景

回溯这次新闻传播,始于Twitter上的某安全专家发推,进而被无数媒体转发,通过前后信息传播链路,最初的原文如下图:

其实就传谣角度来说,确实这样的行文非常仿真,描述专业数值惊人,并且TornadoCash确实也是清洗赃款常见途径,但真是如此吗?130W美元的损失是怎么算出来的。

项目方自己也有所回应:

一开始,项目方还想通过空投,来对其推特粉丝做奖励来形成增粉的目的。

这么一看,似乎真像是即将跑路的样子。

分析

此币部署在BSC币安智能链上并且做了开源验证,都可以通过下地址翻阅到若干证据。

区块链浏览器如何使用可见前文:

当我们在看Etherscan的时候,到底在看什么?

项目方地址:

0x469de2c6357666c69156722e83136ad1919a70aa

二舅币合约地址1

0x6e7ad49f67a9fa80d50f9659c3fc938296d68b58

二舅币合约地址2

0xe67cff48da0156e7978bc5a9a44d516a48d2a1d6

笔者从7.31号下午3点开始撰写本文,拉取到的二舅币链上交易共计1686条。

最初的部署操作的初始化环节,给项目方自己发了1,000,000,000,000,000个二舅币。

其部署时初始化的函数有较大的改动,多数与构建交易池的交互方法有关,不过核心产生资产并转移的部分如下部分代码中的_mint,等于是谁部署,就一次性mint出来给他。

说明:constructor是合约的初始化函数,仅在合约部署时会被调用执行一次,后续无法执行。

上来全给自己,越看越像Rug的前兆,也难怪别人要谣言你。。

但是发币是发币,得有交易所交易池进行不同币种兑换,才能转成跑路的其他资金,在区块链上发币并不难,5行代码就能发个币,别说100亿个代币,最高能给自己发10后面跟78个0的代币呢,因为标准ERC20对余额的存储类型是uint256,最大值为2**256次方。

那这个代币可以直接进行兑换吗?

源代码合计有3000行,不仅包含标准ERC20以及多数常见的配套插件等,还内嵌了对接交易池的兑换代码。

要跑路,就得有资金交互吧,

要么其他地址对合约进行交易带入

要么项目方自己从交易所池子兑换

笔者读取二舅币的全部合约交易发现,带有value中BNB的仅有一笔交易,有且仅有注入0.126个BNB

虽然二舅币在交易所中已经有大量的交易转移记录了,从而导致了现在二舅币合计拥有的地址达到1600多个。

但是如果要判断是否跑路,得看项目方发行时给自己持有的代币,有多少通过池子转换成其他代币。

追踪项目方给自己大规模发放的代币的记录,除了部署时给自己的1,000,000,000,000,000

就仅有上图中的第二行的转移操作,项目方将自己的990,000,000,000,000个代币转入了0地址。

并且计算项目方自己地址的全部交易,可以看到仅有项目方通过pancakeSwapV2,用二舅币换到的1.3个BNB被转出。说明:当前BNB对美元价格为271美金一个BNB。

好家伙,为几百刀就跑路??

所以为何会出现130W美金的说法呢?

盲猜一波,可能这个安全专家是以为转出的是1.3B的美金?然后觉得太离谱就以为这个”B”不是billion而是million(百万)?

当然,如今交易池池子总量里的代币占总量只有0.55%这倒是对的,因为项目方自己销毁了99%的代币。而他的销毁,并没有修改totalSupply

总是目前为止,确实可以说,项目方并没有从中恶意牟利到多少钱,

并且,项目方也对谣言发起方反问,也并没有得到回复。

在31号下午,项目方自己面对流言四起,也做了一个决定性的操作,即放弃项目方的管理员权限。

可以上面图中看到,项目方地址最后的两笔交易操作,即对二舅币的两个合约地址做了所有权转0的操作。

这样真的可以彻底如猴子NFT一样放弃新Mint权吗?

确实可以

放弃所有权执行的是renounceOwnership方法,会将_owner设置0地址,而这样一来整个合约中,被用onlyOwner修饰过的方法均将无法调度使用了

而无法使用的函数大概有20个,而清除管理员权限最重要的是清除掉Mint出新的token的方法,整个3000行代码里,仅有_setBalance?是调度Mint权限的,当然虽然他没有出现onlyOwner?符号修饰他,是因为他是个internal的方法,这种外部无法调用,仅能被合约内已经定义好的方法调用

而对应会使用他的两个函数如下,很明显被onlyOwner?修饰,所以后续都将无法使用了。

我也进一步分析存储余额的_balances?变量是否有偷留后门来用其他的名字来做绕过,确实也没有发现,至于是否其他的后门,就仰赖高级合约审计大佬们出手了。

总结

项目方确实没跑路,或许是造谣者恶意,或许是他的小编看到下跌以及项目方转走了1.3BNB以为是1.3Milion。

但是链上交易记录不会人,合约代码也不会人,代码里定义是如何,就不会有所变化。

引用:

安全专家发布:

https://twitter.com/WhoCares_News/status/1552659993530609665

项目方回复:

https://twitter.com/SecondUncle_Dao/status/1553621587697381376

二舅币合约部署交易:

https://bscscan.com/tx/0xe51cf68ec605bbbce8f2784109faff98be9272824db8ebf5ad426fcfa1bca395

项目方得到1.3BNB:

https://bscscan.com/tx/0x5c22ce9f185ad0907c08b60a9d36add51deed9b2b629527c48190bba0b2a5cdb

项目方转走1.3BNB:

https://bscscan.com/tx/0xc3adb38d93c4b11b47f70a8af498dc114582392da80be8c6e7ee6783bd69b637

郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。

链链资讯

[0:15ms0-4:964ms