北京时间 8 月 31 日和 9 月 1 日,CertiK 安全研究团队发现 Sushiswap 仿盘的两个项目 YUNo Finance (YUNO) 与 KIMCHI.finance (KIMCHI) ,其智能合约均存在漏洞。如果利用该漏洞,智能合约拥有者可以无限制地增发项目对应的代币数目,导致项目金融进度通胀并最终崩溃。
无限增发漏洞
以 Yuno 项目中智能合约为例,CertiK 安全研究团队对于该无限增发漏洞进行了详细分析,技术细节如下:
在 Yuno 项目中的 MasterChef.sol 智能合约第 1354 行中,dev 方法可以允许当前拥有 devaddr 身份的智能合约调用者,将 devaddr 身份转移给另外一个地址。
截图出自:
https://etherscan.io/address/0x450f143f1a8650fff968d890814bd5884bdc8f1d#code
下图中可以看到在智能合约 1282 行的 mint 方法是由修饰器 onlyOwner 进行限制,修饰器 onlyOwner 决定了只能是智能合约拥有者来执行这个合约。
以上三截图均出自:
https://etherscan.io/address/0x450f143f1a8650fff968d890814bd5884bdc8f1d#code
拥有 devaddr 身份的调用者,当其身份恰好同时为 owner 身份的时候,可以通过调用 MasterChef.sol 智能合约 1282 行的 mint 方法,来无限制的增发代币。1282 行的 mint 方法会继续调用 1130 行的 mint 方法,并继续由 1130 行 mint 方法调用 1044 行的_mint 方法,并最终完成代币增发的操作。
Kimichi 项目智能合约中存在的无限增发漏洞与以上漏洞基本相同,因此在这里不进行重复叙述。
如果 owner 和 devaddr 的地址如果相同,那么在外部没有对智能合约拥有者限制的情况下,智能合约拥有者拥有权利增发任意数量的代币,这将会将投资者置于风险之中。那么 Yuno 和 Kimichi 这两个项目中的 devaddr 和 owner 是否为同一人呢?是否有其他外部制约机制可以限制这两个项目的智能合约拥有者呢?
下图为 Yuno 项目 MasterChef.sol 智能合约中拥有 devaddr 和 owner 身份的地址(截止北京时间 9 月 1 日晚 11 点)。
截图出自:
https://etherscan.io/address/0x9dd5b5c71842a4fd51533532e5470298bfa398fd#readContract
下图为 Kimichi 项目中 KimchiChef.sol 智能合约中拥有 devaddr 和 owner 身份的地址(截止北京时间 9 月 1 日晚 11 点)。
截图出自:
https://etherscan.io/address/0x9dd5b5c71842a4fd51533532e5470298bfa398fd#readContract
从上两图中可以看到,Yuno 项目中拥有 devaddr 和 owner 身份的地址为同一个,因此其智能合约拥有者有权利进行无限制的代币增发。而 Kimichi 项目中拥有 devaddr 和 owner 身份不同,但由于 devaddr 的身份可以进行转移,因此也存在一定的风险。
目前措施
为了确保无限增发漏洞不会被触发,对于 Yuno 和 Kimichi 两个项目的智能合约拥有者必须由外部进行限制。当前已经实施的限制条件与 Sushiswap 项目一致,即对任何由智能合约拥有者进行的智能合约操作,均有 48 小时的延迟。任何来自智能合约拥有者的操作都会被所有投资者观察到,并有 48 小时进行应对操作。
CertiK 安全团队建议
当前 DeFi 以及相关 Farming 项目异常火爆,由于区块链项目对于项目代码公开性有要求,因此上线新项目门槛极低。如果盲目借鉴其他项目,任意漏洞都可能被引入到项目中。因此在项目上线之前,应该对项目进行严格的安全审计。
从投资者角度,当前 Farming 项目动辄百分之几千的回报率,极易促使投资者在没有对项目本身有足够了解的情况下进行盲目投资。例如 SushiSwap,Yuno 以及 Kimchi 三个项目均没有经过严谨的安全验证就快速上线。投资者可能会被巨大的利益回报迷惑,将宝贵资金投入到有极大风险的智能合约中。
声明:本内容为作者独立观点,不代表 CoinVoice 立场,且不构成投资建议,请谨慎对待,如需报道或加入交流群,请联系微信:VOICE-V。
简介:分享区块链领域专业、前沿、有趣的内容
评论0条