SQUID鱿鱼游戏合约漏洞技术分析-仍然存在极高风险点

上周,SQUID Game的项目方跑路,通过在Pancake SQUID/BNB的池子中大量出货,导致项目代币SQUID的价格一落千丈。事件发生后,项目方声称已经去除了合约中对于SQUID大额交易的限制,将Owner权限转给了黑洞地址,并关闭了所有社交媒体。

崩盘发生时,鱿鱼币价格最低仅为0.0007美元,但鱿鱼币的故事并没有随着其价格归零而结束。近日,鱿鱼币SQUID的价格大幅反弹,截止本文写作时已达0.4美元附近,较几日前最低点上涨了数百倍。

在各大财经媒体报道暴跌事件后,鱿鱼币因祸得福,一跃成为广受讨论的热点币种。目前,鱿鱼币持币人正在开展一场“社区自救”,希望借着项目方跑路的机会实现更深入的去中心化和社区自治。

这场“自救”的最终结果将是如何,我们暂时无从知晓。但在对SQUID合约代码进行深入的技术分析后,我们发现,目前SQUID项目仍然存在不小的风险。

SQUID合约风险仍然存在

通过对合约代码的分析,我们发现SQUID并不像某些报道声称的完成了去中心化,仍然有两个风险点:

1:有多个地址持有大量代币,仍有暴力砸盘的风险。

通过观察bscscan.com的持有人统计(https://bscscan.com/token/0x87230146E138d3F296a9a77e497A2A83012e9Bc5#balances),前三个地址仍持有将近30%的代币,并且是没有任何冻结和限制的。在任意时刻都可以发起第二次rug。

2:合约代码中隐藏风险。

通过查询合约内的可读变量,可以看到SQUID Token合约(0x87230146E138d3F296a9a77e497A2A83012e9Bc5)的owner已经修改为0x0000000000000000000000000000000000000000的黑洞地址,也就是没人有权限可以增发此代币。

项目方可能是通过renounceOwnership方法来转移的owner权限,使代币实现“去中心化”。

但项目发布伊始,无法大额转账的逻辑又在哪里呢?通过分析代码,已经没有此逻辑存在了。如果有,应该也是在_beforeTokenTransfer中进行限制。

但事实并非如此,_beforeTokenTransfer现在是一个空函数:

也就是说,有人对合约代码做了修改。

通过阅读代码可知,SQUID的合约应用了EIP-1967: Standard Proxy Storage Slots(https://eips.ethereum.org/EIPS/eip-1967)协议,使得合约代码可以升级,核心的升级逻辑在这里:

在初始化合约的时候,项目方指定_sir这个角色。此角色可以在任何时候对合约代码进行升级,在保留合约数据的同时,替换合约的处理逻辑。比如:对冻结的token解冻、重新指定owner、增发几百亿代币等等。

那这个_sir的地址是什么,是否可以替换呢?

在合约代码中,并没有提供此地址的read方法,也没有提供修改的方法。而是默默的存储在这个slot里:

感谢区块链开放的属性,我们可以编写脚本读到链上的所有数据,包括_sir的真实地址:0x6BdB3b0fd9F39427a07b8ab33Bac32Db67EB4E38。

如果这个地址是黑洞地址或者一个timelock,合约会安全很多。但很不幸,_sir可以在任何时候发起一笔交易,升级合约的代码。所以owner指定为黑洞地址,并不能解决合约的风险。

结语

我们将SQUID的合约风险总结如下:

1:代币仍然比较集中,有再次rug的可能。

2:合约代码仍然可能随时被升级,包括增发大量代币等操作。

目前,许多不良项目通过蹭社会热点“粉墨登场”,还有许多不法之徒,利用加密货币难以追踪的性质大举揽财。投资者若是对于加密货币的理解不够深入,对于行骗手段缺乏认识,很容易便会落入圈套。我们建议投资者增强自身辨别力,尽量在可靠的大型平台进行交易,谨防受骗。

鱿鱼币在项目方跑路崩盘后,因媒体报道而出圈,这可能是一个转机,但风险也仍然存在。在这场社区自救的行动下,SQUID是会再度崩盘,还是重获新生呢?让我们拭目以待。

本文链接地址:https://www.wwsww.cn/jishu/10247.html
郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。

相关文章阅读