教程总体结构
本教程把 Foundry 测试拆分为四大阶段:基础语法、进阶能力、形式化思维与审计应用。完整学完约需要 12 周。学习过程中建议同时建立公开博客或 GitHub 仓库,把每阶段产出整理成可分享的成果。
这一结构与 Binance 内部安全工程师培养路径相似:先打牢基础,再扩展能力边界,最后落到真实场景。
阶段一:基础语法(2 周)
核心目标是掌握 forge、cast、anvil 三件套,能独立写出单元测试与覆盖率报告。具体内容:
- 安装与项目初始化
- setUp、test 函数与断言
- vm.prank、vm.expectRevert 等常用 cheatcode
- forge coverage 与覆盖率提升技巧
阶段二:进阶能力(3 周)
本阶段聚焦 fuzz 测试与 fork 测试:
- 学会用 vm.assume 与 bound 控制 fuzz 输入
- 配置多链 fork,模拟主网状态
- 编写恶意合约模拟攻击者行为
- 使用 forge inspect 与 forge debug 分析失败用例
这一阶段是新手向中级工程师过渡的关键。如果在 必安 现货合约等场景做相关研究,能极大丰富 fork 测试的现实价值。
阶段三:形式化思维(3 周)
形式化思维强调对合约的「全局性质」做断言:
- invariant 测试:保持账户余额之和恒等于 totalSupply
- ghost variable:在测试中跟踪「应当不变」的指标
- 反事实推断:构造看似合理但应被拒绝的输入
这种能力将让你的测试从「能跑过」上升到「真正可靠」。
阶段四:审计应用(4 周)
这一阶段是把所有能力综合起来,落到真实合约审计任务:
- 选择一份开源 DeFi 协议,做完整代码审查
- 用 Foundry 编写复现性测试集
- 撰写包含「背景 + 漏洞 + 影响 + 修复建议」的审计报告
- 提交到 Code4rena 或 Sherlock 等公开审计平台获取反馈
配合 Binance合约 风控团队公开的安全研究做横向对比,你能更精准地把握行业认可的审计风格。
完成后的能力图谱
12 周完整学完后,你将具备:
- 独立写出覆盖率 95% 以上的 Foundry 测试集
- 在 fork 环境中复现任意已发生的链上事故
- 用 invariant 与 fuzz 主动发现潜在漏洞
- 撰写可发布到公开平台的高质量审计报告
这种能力组合在职业市场上极为稀缺,回报丰厚。
长期持续
教程结束并不意味着停止学习。建议把「每月深读一份新协议 + 每月公开一份审计笔记」作为长期节奏。坚持两年,你将进入行业头部 5% 安全工程师行列。