本文详细介绍了形式化验证(formal verification)的过程及其在智能合约中的应用,强调了与单元测试的互补关系,以及如何利用Halmos工具简化形式化验证的实施。文中分析了正式验证的挑战、规范的编写开销及其在ERC721A智能合约中的案例,展示了通过符号测试实现高效验证的重要性。
本文详细介绍了Silo融资协议中的一个关键漏洞及其修复过程。通过Certora的形式验证工具进行深入分析,报告总结了漏洞的产生原因、修复方法及验证过程,并提出了未来加强规则和安全性的计划。
本文介绍了SushiSwap即将推出的Trident平台中的一个池排空漏洞及其修复过程。通过三个步骤,文章详细阐述了如何通过形式化验证技术发现此漏洞,并详细描述了恶意用户如何利用该漏洞进行攻击,最后介绍了SushiSwap所采取的修复措施。
本文介绍了Compound新协议Comet的一个有趣的正确性规则,以及在早期开发过程中如何利用Certora Prover进行形式化验证,以消除代码中的bug。通过形式化规范和验证,团队成功发现并修复了一个导致用户抵押资产状态错误的bug,从而提高了协议的安全性。
本文揭示了PRBMath库中mulDivSigned函数的一个设计缺陷,该缺陷会导致在计算有符号数的乘法和除法时出现精度问题,特别是在DeFi应用中可能被利用导致资金损失。Certora团队通过形式化验证工具发现了这个存在于多个PRBMath版本中的问题,并与作者Paul Razvan Berg合作,最终通过修改函数定义为向零取整来临时解决,并计划在未来提供更全面的舍入模式支持。
本文详细描述了在 Balancer V2 中发现的一个由 Certora 团队通过形式化验证发现的偿付能力漏洞。该漏洞允许用户通过将贷款分割成小额多次来逃避闪电贷费用,从而导致 Vault 的偿付能力受损。Balancer 团队通过要求 token 地址数组按严格升序排列解决了这个问题。
本文深入探讨了 Uniswap v4 的流动性机制,并提出了一种形式化的方法来证明其偿付能力。通过将代码转化为数学公式,使用 SMT 求解器验证流动性是否在所有函数调用中得到维持。同时,文章还讨论了在 Uniswap v4 中处理 ERC-20 代币时需要考虑的因素,以及如何通过引入 ghost 变量和 hooks 来精确计算和跟踪资金流动,从而确保 AMM 在任何情况下都能保持偿付能力。
Beosin-VaaS的业务逻辑验证软件,是一款用来检测智能合约上层业务逻辑漏洞的软件。
本文介绍了Certora如何利用形式化验证来保护Uniswap v4免受恶意hook的攻击。通过Certora Prover工具,可以精确定义和证明正确性规则,从而确保智能合约的强大安全性。文章还展示了如何使用CVL编写规则,并利用Certora Prover进行验证,以检测通用hook的不当行为,从而保证资金处理的正确性。
文章讲述了 Notional Finance 系统中出现的一个漏洞,该漏洞由于不正确的形式化验证不变量导致。原本旨在防止资产重复的错误不变量实际上是空洞的,无法发现漏洞。随后通过更正后的简单不变量成功检测到该漏洞,并提出了改进规范安全性的措施,包括审计规范、漏洞赏金、技术检查和集成测试工具,以提高代码安全性和规范的准确性。
近日,成都链安推出全球首个Fabric链码自动形式化验证工具--Beosin-VaaS for Fabric,为链码提供“军事级”的安全验证。
本文探讨了区块链与人工智能安全之间的联系,指出两者在如何调控复杂系统以应对不可预测结果方面存在相似性。作者分析了在DAO治理和加密经济学中面临的共同挑战,以及一些正在探索中的解决方案,例如延迟治理和形式化验证。同时,文章提出了未来DAO可能学习到的经验,强调去中心化的重要性。
本文作者分享了使用 Certora Verification Language (CVL) 进行智能合约形式化验证的经验,通过将模糊测试中的不变量思想应用于 CVL,解决了之前在模糊测试中发现的真实漏洞的简化版本。文章详细对比了模糊测试与形式化验证的异同,并展示了使用 Certora 解决各种漏洞的实例,强调了 Certora 在漏洞检测方面的有效性和简洁性。
本文强调了形式化验证(FV)在Web3和DeFi安全中的重要性,指出传统测试方法不足以应对Web3的安全挑战。FV通过数学证明确保代码按预期运行,能预防高危漏洞,并已在多个知名DeFi项目中应用,同时建议将FV尽早集成到开发生命周期中,以提升代码质量和安全性。
RISC Zero 发布了 R0VM 2.0,这是一个为实时时代构建的 zkVM,它更快、更大、更安全。R0VM 2.0 的证明速度更快,成本更低,内存更大,并支持所有主要的以太坊预编译,目标是在 2025 年 7 月实现实时证明,同时,R0VM 2.0 还非常注重安全性,通过形式化验证来确保系统的可靠性。