像Web3“牛皮癣”病毒式传播,从安全视角看近期刷屏的xPet项目

Beosin
Beosin 机构得得号

Dec 12 Beosin是总部位于新加坡的全球知名区块链安全公司,为区块链生态提供代码安全审计,安全风险监控、预警与阻断,虚拟资产被盗追回,KYT/AML等“一站式”安全产品+服务,已为全球2000多个区块链企业服务,保护客户资产5000多亿美元。

摘要: 最近,一款名为xPet的链游在推特平台上迅速走红,有人形容这个项目像Web3“牛皮癣”般病毒式传播,其关注人数和用户数也呈现快速增长的趋势。

xPet是一款结合游戏和社交的早期项目,在仅仅上线两周的时间就吸引了大量用户的注意力。得益于 GameFi 赛道的回暖和 xPet 的机制设计,xPet 目前存入了2785个ETH(约658万美元),成为近期备受关注的项目。

同时,与之相关的安全问题同样不可忽视,为了帮助用户了解其中的潜在风险,Beosin安全团队今天将对xPet的设计机制和合约代码进行详细分析,揭示其中存在的安全隐患。

xPet 机制分析

xPet 是一款基于Arbitrum构建的宠物游戏,其玩法结合了Tipcoin与此前在Base链爆火的Fren Pet,通过喂养宠物进行升级、获利。xPet 与此前类似项目的不同点在于 xPet 是以浏览器插件形式推出的,通过绑定推特进行登录,后续的游戏奖励任务也是与推特完全绑定。

官网: https://www.xpet.tech/

目前的游戏内容主要为喂养宠物、升级工厂、刷推特做任务获得宝箱。参与 xPet 的游戏用户首先需要将自己的宠物升级,因为宠物的等级需要到达7级才能生产$Berry,$Berry可以在工厂中转换成$BPET进行获利。而升级宠物需要支付xPet的两种代币中的一种:$XPET或者$BPET,在游戏初始时,用户需要存入ETH进行抵押,借出$XPET($XPET与$BPET可以进行1:1的转换)或者在XPET-ETH交易池购买$XPET。其游戏经济系统的设计如下图所示:

source: Beosin

xPet合约分析

xPet 的主合约为 ERC1967 可升级合约。其代理合约地址为0x1B0D12879960A768D02bd223ef735D4231a15348,其逻辑合约地址为0xcD4420B70e2669De8dE9d62dd7fEa4D19b320768。$XPET代币合约地址为0x00cbcf7b3d37844e44b888bc747bdd75fcf4e555$BPET代币合约地址为0x6daf586b7370b14163171544fca24abcc0862ac5本次我们通过Beosin VaaS工具扫描该合约,结合Beosin安全审计专家的分析,发现xPet相关合约存在以下潜在的安全风险

Beosin VaaS

xPet 主合约

xPet 主合约主要负责ETH与$XPET的借贷逻辑,但主合约为可升级合约,项目方并未对该可升级合约中的逻辑合约进行开源,无法检测其逻辑合约是否有逻辑错误或潜在风险。

对于可升级合约的安全,Beosin建议:1.  初始化合约与依赖项开发者可能会在部署合约时忘记初始化合约和依赖项,导致合约存在严重漏洞。2.  注意存储冲突升级合约时修改存储可能会导致不同版本合约之间的存储冲突,不同的变量可能指向同一存储位置,导致数据错误和资金损失。3.  注意权限开发者需对合约的升级权限进行限制,避免攻击者获得合约升级的控制权。

$XPET 代币合约

$XPET 代币合约继承ERC20和AccessControl合约,有以下潜在风险:

1.  中心化风险合约将部署者设置为管理角色,这是一个中心控制点。如果部署者的帐户遭到泄露,这将会带来巨大风险。2.  代币可访问性

由于合约将所有代币铸造给自己,因此调用withdraw函数和convert函数是将代币转移的唯一方法。这种设计集中了代币的流动。

3.  合约未对withdraw和convert两个函数设置事件建议这两个函数设置为被调用时发出事件,以便进行外部监听并追踪相关信息。

$BPET 代币合约

与 $XPET 代币合约类似,其单点风险不容忽视:1.  中心化风险

该代币合约将合约部署者设置为管理员和铸造者,这将权力集中在部署者手中,如果部署者的地址遭到泄露,这可能会带来严重的安全风险。

2.  铸造无上限

convert函数对可铸造的代币数量没有限制。 如果部署者决定铸造过多的代币卖出获利,这将会导致代币价格暴跌。

EagleEye 对于BPET铸币风险提醒

3.  角色管理

合约未实现撤销或转移角色的功能。如果合约需要转移所有权或铸币者因任何原因需要被移除,这可能会成为潜在的安全问题。

其它风险

除了合约风险外,由于xPet需要用户在推特进行带有“xPet”文字的评论才能获得游戏奖励,目前推特中已出现大量包含xpet的无关回帖,引发众多推特博主的不满。

推特的开发者协议规定禁止使用推特相关开发者产品产生垃圾信息。如果xPet被推特禁用,目前其游戏玩法将彻底暂停。

推特开发者协议: 

https://developer.twitter.com/en/developer-terms/policy

总结

xPet 项目的核心逻辑合约未开源,两种代币的合约中心化风险明显,对于铸造新代币未进行特别的权限限制,用户需要注意相关风险。部分合约代码可以进一步提升安全性。在此之前,市场已出现过多次GameFi、SocialFi的热潮,用户应当做好资金管理和项目调研,在充分了解项目的风险后理性参与

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

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

分享到:

相关推荐

    评论(0

    Oh! no

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

    分享到微信