我们分析了 Worldcoin 代币$WLD 的智能合约0x163f8c2467924be0ae7b5347228cabf260318753,发现其存在一定的安全隐患,以下是关于代币$WLD 的相关风险详解。
中心化方法
mintOnce 函数
该合约实现了一个中心化的铸币机制 mintOnce,允许 owner 调用此函数一次性地对多个地址进行批量铸币。经查证,该函数已经被当前的 owner 调用过。
当前的 owner 是一个 1/1 多签钱包合约:0x59a0f98345f54bAB245A043488ECE7FCecD7B596,且只有一个合约拥有者 0 x c 534 a 745 bFfaF 9466 Ed 7 B 47 fA 23 B 0177 b 99 A 3 e 77 ,这意味着只需要一个签名就可代表 owner 进行特权操作。
setMinter 函数
该合约还实现了 setMinter 函数,允许 owner 设置一个 minter 地址,不过目前 minter 是零地址。
mintInflation 函数
如果 owner 设置了一个非零 minter,该 minter 就可以随意调用 mintInflation 对任意地址无限量增发代币。
代币分配
经过统计,前 6 个地址已经持有了 94.5% 的总发行量,这说明代币分配非常集中。
综上所述,$WLD 代币存在以下安全隐患:
Owner 目前只有一个签名者,意味着只需要一个人的签名就可以代表 owner 对合约进行特权操作
存在设置 minter 后无限增发代币的风险
代币分配过于集中,前 6 个地址持有绝大部分代币
为降低这些安全风险,我们建议:
增加 owner 的签名者数量,实施多签管理
约束合约拥有者任意设置 minter,防止无限增发
采取锁仓或者持续释放等措施,降低代币分配的集中度
安全是区块链生态健康发展的基石,我们会继续关注项目安全,及时进行安全风险提示,共同维护链上资产安全。