本文提出了首个经过机器检查的OpenZeppelin重入防护模式正确性证明,该证明针对生产部署的Solidity源代码的Lean 4状态机模型。所有十三个定理都经过了机器检查,没有使用任何“sorry”或用户引入的公理,公理足迹仅由[propext](一个标准的mathlib4公理)限定,并集成在持续集成中。智能合约重入攻击自2016年以来已导致超过5亿美元的损失,其中DAO 2016攻击盗取了约360万ETH,并迫使以太坊硬分叉。OpenZeppelin ReentrancyGuard模式是生产DeFi中的事实标准防御措施,但此前没有工作建立其判别能力:即该防护能阻止对易受攻击实例的攻击,保持非攻击交易的正确执行,并区分相邻的安全和易受攻击变体。以往的工作要么形式化了玩具合约上的防护正确性,要么形式化了孤立实例上的攻击可行性,但未同时涵盖两个方向及针对生产源码的边界情况。本文通过变异测试验证了三种生产实例:DAO 2016、Compound v2和Aave V3的flashLoan,以及Aave V3 flashLoan的一个最小差异突变体(flashLoanVulnerable),该突变体隔离了一个安全关键差异。三方向结构包括:(a) DAO 2016模式的攻击复现,(b) Compound v2的正确性证明,(c) 区分Aave V3符合CEI模式的flashLoan与突变体的边界案例证明。一个顶层的元定理在“无改造”原则下组合了这三个方向,并在首次跨协议压力测试(从Compound v2到Aave V3)中进行了演示;更广泛的家族可移植性是未来工作。完整的Lean 4源码、CI配置和复现命令可在GitHub上获取。
💡 推荐理由: 首次对生产级DeFi合约的重入防护进行机器检查的形式化验证,提供了高可靠性的安全保证,为智能合约安全审计和形式化验证方法学树立了新标杆。
🎯 建议动作: 研究跟进