xKingdom自称是一个基于Arbitrum的SocialFi和GameFi平台。在该平台上,用户可以通过与推文互动、参与寻宝等任务,在X社交平台上建立“王国”,并获得奖励。该项目有3个ERC-20合约和1个NFT合约。
2024年1月6日,xKingdom项目团队盗取了社区资金,删除了他们的网站和所有社交媒体后消失。xKingdom的这次退出骗局共造成120万美元的损失,是过去几个月中发生的最严重的退出骗局之一。
事件概况
要加入xKingdom,用户必须先抵押ETH以借出XKING。根据链上交互记录,参与者可以将XKING换成XCOIN,并领取XCROWN。解释这些ERC-20合约互相之间关系的文档已被删除,但我们研究后认为XCOIN和XCROWN均可被换成XKING。
要获得XKING,用户需要调用TransparentUpgradableProxy合约0xdcd...7275e上的borrow()函数。
该函数会将用户的ETH转移到上述合约,然后从管理员合约0x445...24a13获得XKING。虽然0x4456合约尚未经过验证,但我们可以通过setConfig()和grantRole()函数来评估它的作用。
以上流程在初期正常运作,直到TransparentUpgradableProxy合约内存入的ETH超过500枚。
“跑路”时间线
在分析0x445...24a13合约(大概率是管理员合约)时,我们发现项目团队在2023年12月29日多次调用grantRole(),将MINTER_ROLE(0x9f2...956a6)添加到每个合约中。
在反编译管理员合约时,我们发现MINTER_ROLE是执行多个函数的先决条件,包括claimETH。
下图是一些案例:
下图中,我们可以看到最开始提到的保管用户ETH的TransparentUpgradableProxy合约0xdcd...7275e也拥有MINTER_ROLE。
TransparentUpgradableProxy合约的反编译分析表明,该合约还拥有一个代理管理员合约0x8d3...4982a。
UTC时间下午12:52与13:08,xKingdom先后两次调用upgradeAndCall()对上面提到的TransparentUpgradableProxy合约进行了升级。
我们在这两次升级中没有发现直接导致退出骗局的新变化。围绕着claimETH和retrieveETH两个函数的中心化风险,在合约升级之前也一直存在着。
不过,这次升级的时机非常有趣:它是夹杂在一连串合约部署者与xKingdom合约的失败交互中进行的。
一种可能的解释是,项目团队试图通过两次升级来向社区证明他们正在修复项目中出现的某些问题。这两次升级的内容包括对addLiquidity()函数与revert()的修改,但升级后的合约调用依然失败。
在最终的“跑路”行动中,项目团队调用了claimETH(),将558.3枚ETH从TransparentUpgradableProxy合约转移到了地址0xeF7...6A13D。
在将部分被盗的ETH换成稳定币后,项目团队又将102万枚USDT和99枚ETH跨链到了以太坊网络。这些资金随后被转移至0xCA1...474c6,后者将被盗资金换回ETH并存入Tornado Cash。
事件总结
xKingdom事件是2024年迄今为止发生的第二大退出骗局。
2024年已经发生了六起此类骗局,损失超过400万美元。往往伴随着市场回暖,也会有更多躲在暗处的骗子利用用户的积极情绪进行诈骗。
为了更好地防止此类事件,增强社区信心,CertiK为项目团队提供严格且全面的KYC流程。在完成认证后,项目可以在Skynet页面获得KYC徽章,代表着CertiK对项目团队的独立认证。