Solidity 2 个月学习路线
下面给你一份 2 个月掌握 Solidity 的“工程级学习路线图”,适用于你目前的背景(安全研究、渗透测试、技术基础扎实、目标 Web3 工作)。
这是严格、可执行、按周拆解的路线,不是泛泛而谈的学习清单。
你照着做,2 个月能达到:
- 熟练写 Solidity
- 能独立阅读、审计标准合约
- 能部署、调试、测试
- 能做一个初级智能合约审计(Junior Auditor)
总体策略(必须理解)
2 个月 = 8 周
Solidity 学习必须遵循:
- 先语言,再 EVM,再安全,再工程化
- 必须写大量代码和测试
- 用 Remix + Foundry 双轨学习(最快)
- 每天至少 2–3 小时
- 每周产出一个小项目(巩固)
Solidity 2 个月学习路线(逐周完成即可)
第 1–2 周:基础语法 + Remix 实操(从 0 到能写简单合约)
目标:
- 能写出基本可用的 Solidity 合约
- 理解 storage/memory/calldata
- 能部署到 Ganache 或 Remix VM
要点:
- Solidity 基础语法(变量、类型、函数、modifier、event)
- ABI / public getter / 构造函数
- msg.sender / msg.value
- fallback / receive(ETH 收款模型)
- mapping / struct / array
- payable 函数
每周任务:
✅ 用 Remix 写并部署以下合约:
- Counter(计数器)
- Bank / Vault(存款取款)
- ERC20(照着 OpenZeppelin 抄)
- Simple Auction(拍卖)
- Simple Wallet(白名单钱包)
做到这一步,你已经超过 50% 的初学者。
第 3–4 周:深入 EVM 模型 + Gas 机制 + 错误处理
目标:
- 熟悉所有运行时细节
- 能读懂 EVM 中 storage slot、memory layout
- 能避免大多数初级漏洞
要点:
- EVM 内存模型(memory / storage / calldata)
- storage slot 布局、slot packing
- revert / require / assert 区别
- try/catch 调用失败处理
- gas 机制(SSTORE、LOG、CALL 边界)
- 合约之间的调用(call/delegatecall/staticcall)
每周任务:
✅ 实现以下合约并测试:
- 批量写入存储的 Gas 优化版本
- Proxy 合约(delegatecall)
- 多签钱包(multisig)
- Minimalistic ERC721(NFT)
✅ 完成 EVM 基础:
- 阅读 evm.codes(所有 opcode)
- 在 Remix Debugger 里走读交易
做到这里,你已经比大多数 Web3 新人更扎实。
第 5–6 周:安全与攻击模型(你安全背景强,可以快速突破)
目标:
达到能独立发现和解释常见漏洞的水平。
要点(必须掌握):
- 重入(reentrancy)
- 整数溢出(已被 0.8 修复但要理解历史)
- frontrunning & MEV 基础
- access control 错误
- delegatecall 资产劫持
- tx.origin 滥用
- 不安全的 randomness(blockhash)
- 强制发送 ETH(selfdestruct/receive)
- 假充值(ERC20 等标准理解)
- 存储碰撞(proxy)
每周任务:
✅ 自己实现并攻击下面合约:
- 重入漏洞 Bank
- 错误授权的 Ownable
- delegatecall 漏洞(Proxy 资产被盗)
- Broken random (区块随机数)
- Unsafe ERC20(approve race condition)
✅ 阅读以下代码:
- OpenZeppelin Contracts
- Damn Vulnerable DeFi 前 5 题
做到这里,你已经具备审计能力。
第 7–8 周:Foundry + 测试 + 完整项目实战(工程化能力)
目标:
- 会用 Foundry
- 能写测试
- 能进行 fuzzing
- 会写脚本部署合约
- 完成一个完整可上线的应用
要点:
- forge test(单元测试)
- fuzz testing(随机输入测试,提高审计能力)
- invariant testing(不变量测试)
- forge script(部署脚本)
- 调用链上合约(fork 模式)
每周任务:
✅ 用 Foundry 完成:
- ERC20 单元测试(100% 覆盖)
- Uniswap V2 小项目(swap、K 常数)
- Compound 利率模型模拟
- 完成一个你自己的 DApp(比如投票、NFT 市场、小型借贷)
✅ 目标产物:
- 测试套件
- 部署脚本
- Readme 文档
- 部署在 testnet(Sepolia/Goerli)
做到这里 → 你已经达到“Junior Smart Contract Engineer”级别。
最终能力(2 个月后)
你可达到:
- 写出完整合约
- 读懂别人合约
- 会做测试
- 能做初级审计
- 熟悉 EVM
- 有实际项目
- 面试 Web3 工程岗位具备竞争力
如果你愿意,我还可以继续提供:
- 每周详细任务(按天拆、带资源链接)
- 配套的学习文档包(官方 + 实战)
- 代码练习与项目模板(Remix + Foundry)
- 你个人背景下的“Web3 求职路径图”(香港方向)
你想要哪个?
智能合约开发难还是智能合约审计工作难?
从行业标准、技能深度、责任风险和学习曲线四个维度来看,智能合约审计工作(Smart Contract Audit)整体难度显著高于智能合约开发。
下面我以专业、体系化方式为你做一个可用于职业规划的完整对比。
一、核心结论(你可以先看这个)
开发难度:中等
你需要能够写出逻辑正确、成本可控、安全性基本合格的合约。审计难度:高
你需要理解别人可能写错的地方、所有潜在漏洞、所有攻击向量、跨协议风险,并对每一行代码负责。
一句话总结:
“开发是构建功能,审计是证明系统不会出问题。”
审计天然比开发难。
二、从专业能力维度对比(核心差异)
| 能力维度 | 智能合约开发 | 智能合约审计 |
|---|---|---|
| Solidity 熟练度 | 熟练即可 | 必须精通底层 EVM、字节码、编译器行为 |
| EVM 理解 | 基本理解 | 深度理解 callstack、gas、opcode、storage layout |
| 安全知识 | 了解常见漏洞 | 必须掌握数十类漏洞模式、攻击面、DeFi 机制风险 |
| 数学与金融模型 | 可选 | 很关键(尤其是 AMM、Lending、Oracle 相关) |
| 工具链 | 基本工具(Remix、Hardhat、Foundry) | 静态分析、模糊测试、形式化验证、runtime 调试 |
| 心态 | 写对功能即可 | 不能有任何疏漏,一个漏洞=数千万美金的损失 |
| 工作节奏 | 可迭代 | 高强度、需要深度阅读与推理 |
审计要求的知识密度 = 开发的 2–3 倍。
审计的责任风险 = 开发的 10 倍。
三、从学习曲线对比
你可以这样理解学习难度:
1. 智能合约开发
难度类似于:
TypeScript + 算法 + 部分安全知识
经过 3~6 个月系统训练,就能达到 Junior 水平。
2. 智能合约审计
难度类似于:
渗透测试 + 编译器原理 + 金融模型 + 大规模系统设计 + 高级Solidity
即使你是安全背景(你就是安全工程师出身),也需要:
- 6–12 个月:Junior 审计员
- 2–3 年:Intermediate
- 3–5 年:Senior auditor(可独立审大型 DeFi 项目)
四、从行业风险对比
智能合约开发
写错可能导致:
- 功能 bug
- gas fee 较高
- 功能无法正常执行
一般不会导致巨额损失。
智能合约审计
漏掉漏洞可能导致:
- 数千万美金损失
- 协议永久瘫痪
- 公司破产(真实发生过)
- 信誉永久损坏
- 法律风险(如出现重大监管事件)
在很多审计公司,审计师拥有极高责任。
五、从薪资角度对比(2025 年行业数据)
| 职位 | 大致薪资范围(香港/Web3公司) |
|---|---|
| 智能合约开发(Junior) | HKD 25k–45k / 月 |
| 智能合约开发(Senior) | HKD 60k–100k+ |
| 智能合约审计(Junior) | HKD 35k–60k |
| 智能合约审计(Senior) | HKD 100k–200k+(顶级审计师甚至 > 300k) |
审计的天花板比开发高得多,但门槛也高很多。
六、给你的个人建议(基于你背景:渗透 + 安全 + INTP)
你有渗透测试、安全研究背景,这是做审计的巨大优势。
你的技术类型非常契合审计,但建议路线如下:
最佳路径(适合你):
- 先成为:Solidity Developer(3–4 个月)
- 再转为:Junior Auditor(6–12 个月)
理由:
- 审计必须先理解开发者会怎么写
- 很多漏洞源自不规范的开发模式
- 审计员需要能复现攻击 POC,这也需要开发能力
- 阿里、慢雾、Chainsafe、OpenZeppelin 都建议“先学开发再做审计”
七、总结一句话
智能合约开发 ≈ 写代码
智能合约审计 ≈ 在没有提示的情况下找所有 bug + 证明系统安全
审计明显更难,但也更有价值、薪资更高、竞争更小。
如果你愿意,我可以继续为你做一份:
✅ 专门为你定制的
“从安全工程师 → Solidity Developer → Auditor 的完整 12 个月学习路线图(含周任务)”
你需要吗?