本文介绍了一个名为Amy的开源智能合约审计工具,它使用AI并通过“Priming”技术不断自我进化,专注于Vault / ERC4626智能合约协议的审计。文章还讨论了Amy与人类审计师和静态分析工具的比较,以及Amy的局限性和未来发展方向,例如创建更多专业化的AI审计工具。
这篇文章通过一个实际案例研究了如何通过重构优化 Solidity 代码来实现气体节省,展示了在一个杠杆收益农场协议 Yieldoor 中,通过改进核心函数 Leverager::liquidatePosition 实现了 15.43% 的气体节约。作者详细描述了测量Gas成本的方法和重构过程,包括减少冗余存储读取、使用结构体缓存、以及启用优化器以提高代码效率。
Leverager::liquidatePosition
介绍了如 Solidity 智能合约中使用内联汇编语言(Inline Assembly)实现keccak256哈希函数的优化方法.
在外部审计前 使用不变量模糊测试之前找到高风险漏洞
本文作者分享了使用 Certora Verification Language (CVL) 进行智能合约形式化验证的经验,通过将模糊测试中的不变量思想应用于 CVL,解决了之前在模糊测试中发现的真实漏洞的简化版本。文章详细对比了模糊测试与形式化验证的异同,并展示了使用 Certora 解决各种漏洞的实例,强调了 Certora 在漏洞检测方面的有效性和简洁性。
本文深入探讨了零知识证明(ZK)电路中的安全漏洞,重点分析了电路因约束不足而导致的模运算溢出漏洞,并通过示例展示了如何利用此漏洞伪造非素数证明。文章还提出了通过范围约束来防止溢出的解决方案,并强调了审计 ZK 电路时需注意的不同 p 值对范围约束和溢出产生的影响。
本文探讨了 DeFi 交易中滑点问题,重点关注了开发者和审计人员应注意的常见实现错误,包括缺少滑点参数、无过期时间、错误的滑点计算、精度不匹配、铸币过程中的滑点问题、中间操作的滑点参数使用不当、链上滑点计算易被操纵以及硬编码滑点可能冻结用户资金等,并提供了详细的案例和代码示例。
本文深入探讨Solidity编程中数值运算可能导致的精度损失问题,包括除法后乘法、向下取整至零、未进行精度缩放、过度精度缩放、精度缩放不匹配、向下转型溢出以及协议价值因四舍五入而泄露等,并提供了避免这些问题的实用建议和代码示例。