时间:2023-08-26|浏览:210
以Yuno项目的智能合约为例,CertiK安全研究团队对该无限增发漏洞进行了详细分析,技术细节如下: 在Yuno项目的MasterChef.sol智能合约第1354行,dev方法允许当前拥有devaddr身份的智能合约调用者将devaddr身份转移给另一个地址。
对于Yuno项目智能合约的1282行中的mint方法,截图显示它使用了修饰器onlyOwner进行了限制,这意味着只有智能合约的所有者才能执行这个合约。
拥有devaddr身份的调用者,当其同时也是owner身份时,可以通过调用MasterChef.sol智能合约1282行的mint方法无限制地增发代币。这个方法会继续调用1130行的mint方法,然后再调用1044行的_mint方法,最终完成代币增发的操作。
Kimichi项目的智能合约中存在的无限增发漏洞与以上漏洞基本相同,所以在这里不再重复叙述。
如果owner和devaddr的地址相同,并且在外部没有对智能合约的所有者进行限制的情况下,智能合约的所有者就有权力无限制地增发任意数量的代币,这将会给投资者带来风险。那么Yuno和Kimichi这两个项目中的devaddr和owner是否为同一人呢?是否有其他外部制约机制可以限制这两个项目的智能合约所有者呢?
下图显示Yuno项目MasterChef.sol智能合约中拥有devaddr和owner身份的地址(截至北京时间9月1日晚11点)。
下图显示Kimichi项目中KimchiChef.sol智能合约中拥有devaddr和owner身份的地址(截至北京时间9月1日晚11点)。
从以上两图可以看出,Yuno项目中拥有devaddr和owner身份的地址是相同的,因此其智能合约的所有者有权利无限制地增发代币。而Kimichi项目中拥有devaddr和owner身份的地址不同,但由于devaddr的身份可以进行转移,所以也存在一定的风险。
为了确保无限增发漏洞不会被触发,对于Yuno和Kimichi两个项目的智能合约所有者必须受到外部的限制。目前已经采取的限制条件与Sushiswap项目一致,即对由智能合约所有者进行的任何智能合约操作都会有48小时的延迟。智能合约所有者的任何操作都将被所有投资者观察到,并且有48小时的时间进行应对操作。
CertiK安全团队建议: 1. 当前DeFi以及相关Farming项目异常火爆,由于区块链项目对项目代码的公开性有要求,所以上线新项目的门槛很低。如果盲目借鉴其他项目,就可能引入任意漏洞到项目中。因此,在项目上线之前,应该对项目进行严格的安全审计。 2. 从投资者的角度来看,当前Farming项目动辄有百分之几千的回报率,很容易促使投资者在没有充分了解项目本身的情况下盲目投资。例如,SushiSwap、Yuno和Kimchi这三个项目都没有经过严格的安全验证就迅速上线。投资者可能被巨大的利益回报所迷惑,在有很大风险的智能合约中投入宝贵资金。
用戶喜愛的交易所
已有账号登陆后会弹出下载