从智能合约解读二舅币“跑路”真相

Odaily星球日报
Odaily星球日报 机构得得号

Aug 01, 2022 36氪战略合作区块链媒体。

摘要: 所谓的跑路只拿走了1.3个BNB,引用中的“安全专家”也并不靠谱。

概要

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

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

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

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

背景

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

<来自推特,见附录link>

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

项目方自己也有所回应:

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

<来自推特,见附录link>

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

分析

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

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

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

项目方地址:

0x469de2c6357666c69156722e83136ad1919a70aa

二舅币合约地址1

0x6e7ad49f67a9fa80d50f9659c3fc938296d68b58

二舅币合约地址2

0xe67cff48da0156e7978bc5a9a44d516a48d2a1d6

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

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

    <初始化部署,来自bscscan,见附录link3>

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

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

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

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

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

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

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

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

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

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

<来自bscscan对合约交易记录的批量下载>

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

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

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

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

  <销毁99%的token,来自bscscan,见附录link4>

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

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

<来自bscscan对合约交易记录的批量下载>

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

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

当然,如今交易池池子总量里的代币占总量只有0.55%这倒是对的,因为项目方自己销毁了99%的代币。而他的销毁,并没有修改totalSupply (这确实不应该,他的销毁不是调用标准的Burn方法)

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

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

    <来自推特,见附录link>

放弃管理权

在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

链得得仅提供相关信息展示,不构成任何投资建议
本文系作者 Odaily星球日报 授权链得得发表,并经链得得编辑,转载请注明出处、作者和本文链接

更多精彩内容,关注链得得微信号(ID:ChainDD),或者下载链得得App

分享到:

相关推荐

    评论(0

    Oh! no

    您是否确认要删除该条评论吗?

    分享到微信