返回首页
当前位置:首页 >> 动态

关于CHAINLION完成对于Defi项目 PARALUNI 的代码审计

链狮科技 2021-10-25

本次代码审计的类型为DEFI智能合约,应用平台BSC,审计方法为黑盒,白盒,灰盒测试,由于审计内容过多,无法一一介绍,特列举几个进行描述!

1. 审计内容

编码规范

智能合约支持SolidityVyperC++PythonRust等编程语言进行合约开发,每种编程语言都有各自的编码规范,在开发过程中应该严格遵循开发语言编码规范来规避业务功能设计缺陷等安全问题。

编译器版本【安全】

审计描述:智能合约代码中应指定编译器版本,同时建议使用最新的编译器版本,老版本的编译器可能会导致各种已知的安全问题,目前最新的版本为v 0.8.x,且该版本中已对整形溢出进行防御。

审计结果:经审计,智能合约代码中采用编译器版本为0.5.0版本以上,不存在该安全问题。

7d26fd772d1d16d9567f195a7f3995f.png

安全建议:无。

构造函数书写【安全】

审计描述:Solidity v0.4.22版本之前使用Solidity编写的智能合约要求构造函数必须于合约名称一致,当构造函数名称与合约名称不一致时则构造函数将变为一个普通的public函数,任意用户都可以调用构造函数来初始化合约,在v 0.4.22版本之后,构造函数名称可以使用constructor来代替从而规避构造函数书写带来的编码问题。

审计结果:经审计,智能合约中构造函数编写正确无误,不存在该安全问题。

 f16bb35ee3cc0a7659dce1122c23a4b.png0d80d32005abf6486fbbaea3fd31673.png

安全建议:无。

返回值校验【安全】

审计描述:智能合约要求合约开发者在合约开发过程中严格遵循EIP/TIP等标准规范,对于transferTransferFromApprove函数应该返回布尔值以回馈最终的执行结果。在智能合约中相关业务逻辑代码部分时常会调用transfer或者transferFrom函数进行转账,在这种情况下应当对涉及转账操作返回值进行严格检查以确定转账成功与否,规避由缺少返回值校验带来的假充值等安全漏洞。

审计结果:经审计,智能合约业务逻辑部分涉及转账部分皆调用OpenZeppelin官方库中的transfer来实现,如果交易失败会进行交易回滚操作。


Copyright © 2021 CHAINLION(链狮科技). All Rights Reserved.