本文介绍了一个名为Amy的开源智能合约审计工具,它使用AI并通过“Priming”技术不断自我进化,专注于Vault / ERC4626智能合约协议的审计。文章还讨论了Amy与人类审计师和静态分析工具的比较,以及Amy的局限性和未来发展方向,例如创建更多专业化的AI审计工具。
这篇文章通过一个实际案例研究了如何通过重构优化 Solidity 代码来实现气体节省,展示了在一个杠杆收益农场协议 Yieldoor 中,通过改进核心函数 Leverager::liquidatePosition 实现了 15.43% 的气体节约。作者详细描述了测量Gas成本的方法和重构过程,包括减少冗余存储读取、使用结构体缓存、以及启用优化器以提高代码效率。
Leverager::liquidatePosition
本文深入探讨了DeFi协议中清算机制的复杂性与潜在漏洞,强调了高效清算对于维护协议偿付能力的重要性。文章详细分析了多种可能导致清算失败或不公平的漏洞类型,例如缺乏清算激励、坏账处理不当、以及各种拒绝服务攻击。此外,还讨论了清算计算中的常见错误,以及在协议暂停或L2 sequencer出现问题时可能导致的不公平清算情况,并为智能合约开发者和审计人员提供了实用的启发式方法和建议,以识别和修复这些漏洞。
介绍了如 Solidity 智能合约中使用内联汇编语言(Inline Assembly)实现keccak256哈希函数的优化方法.
在外部审计前 使用不变量模糊测试之前找到高风险漏洞
本文作者分享了使用 Certora Verification Language (CVL) 进行智能合约形式化验证的经验,通过将模糊测试中的不变量思想应用于 CVL,解决了之前在模糊测试中发现的真实漏洞的简化版本。文章详细对比了模糊测试与形式化验证的异同,并展示了使用 Certora 解决各种漏洞的实例,强调了 Certora 在漏洞检测方面的有效性和简洁性。
本文介绍了Chimera框架,它允许智能合约开发者和审计员使用同一代码库编写适用于Foundry、Echidna和Medusa三种fuzzer的智能合约不变性模糊测试。文章通过一个简化的Vesting合约的漏洞示例,展示了如何使用Chimera编写测试设置、定义不变量、封装目标函数以及编写适用于不同fuzzer的前端合约,最后通过修复漏洞验证了测试的有效性。
本文深入探讨了零知识证明(ZK)电路中的安全漏洞,重点分析了电路因约束不足而导致的模运算溢出漏洞,并通过示例展示了如何利用此漏洞伪造非素数证明。文章还提出了通过范围约束来防止溢出的解决方案,并强调了审计 ZK 电路时需注意的不同 p 值对范围约束和溢出产生的影响。
本文深入探讨了在以太坊主网上使用 assembly 语言代替 Solidity 编写智能合约时可能出现的一些细微的内存损坏问题,以及由此产生的意外行为。文章通过具体的 Foundry 示例,详细解释了外部调用、未更新的空闲内存指针、不充分的内存分配、调用不存在的合约以及内联汇编中的溢出/下溢等问题,并提供了相应的解决方案。
本文深入探讨了集中流动性管理器(CLM)协议中存在的多种安全漏洞,包括攻击者如何通过操纵价格范围、利用TWAP参数漏洞、导致代币永久滞留、未撤销的代币授权、以及不当的协议费用更新等问题。文章还提供了一系列启发式问题,帮助审计人员在CLM协议中发现类似的安全风险。