Solidity 2 个月学习路线

下面给你一份 2 个月掌握 Solidity 的“工程级学习路线图”,适用于你目前的背景(安全研究、渗透测试、技术基础扎实、目标 Web3 工作)。
这是严格、可执行、按周拆解的路线,不是泛泛而谈的学习清单

你照着做,2 个月能达到:

  • 熟练写 Solidity
  • 能独立阅读、审计标准合约
  • 能部署、调试、测试
  • 能做一个初级智能合约审计(Junior Auditor)

总体策略(必须理解)

2 个月 = 8 周
Solidity 学习必须遵循:

  1. 先语言,再 EVM,再安全,再工程化
  2. 必须写大量代码和测试
  3. Remix + Foundry 双轨学习(最快)
  4. 每天至少 2–3 小时
  5. 每周产出一个小项目(巩固)

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 写并部署以下合约:

  1. Counter(计数器)
  2. Bank / Vault(存款取款)
  3. ERC20(照着 OpenZeppelin 抄)
  4. Simple Auction(拍卖)
  5. 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)

每周任务:

✅ 实现以下合约并测试:

  1. 批量写入存储的 Gas 优化版本
  2. Proxy 合约(delegatecall)
  3. 多签钱包(multisig)
  4. 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)

每周任务:

✅ 自己实现并攻击下面合约:

  1. 重入漏洞 Bank
  2. 错误授权的 Ownable
  3. delegatecall 漏洞(Proxy 资产被盗)
  4. Broken random (区块随机数)
  5. 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 完成:

  1. ERC20 单元测试(100% 覆盖)
  2. Uniswap V2 小项目(swap、K 常数)
  3. Compound 利率模型模拟
  4. 完成一个你自己的 DApp(比如投票、NFT 市场、小型借贷)

✅ 目标产物:

  • 测试套件
  • 部署脚本
  • Readme 文档
  • 部署在 testnet(Sepolia/Goerli)

做到这里 → 你已经达到“Junior Smart Contract Engineer”级别。


最终能力(2 个月后)

你可达到:

  1. 写出完整合约
  2. 读懂别人合约
  3. 会做测试
  4. 能做初级审计
  5. 熟悉 EVM
  6. 有实际项目
  7. 面试 Web3 工程岗位具备竞争力

如果你愿意,我还可以继续提供:

  1. 每周详细任务(按天拆、带资源链接)
  2. 配套的学习文档包(官方 + 实战)
  3. 代码练习与项目模板(Remix + Foundry)
  4. 你个人背景下的“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)

你有渗透测试、安全研究背景,这是做审计的巨大优势。

你的技术类型非常契合审计,但建议路线如下:

最佳路径(适合你):

  1. 先成为:Solidity Developer(3–4 个月)
  2. 再转为:Junior Auditor(6–12 个月)

理由:

  • 审计必须先理解开发者会怎么写
  • 很多漏洞源自不规范的开发模式
  • 审计员需要能复现攻击 POC,这也需要开发能力
  • 阿里、慢雾、Chainsafe、OpenZeppelin 都建议“先学开发再做审计”

七、总结一句话

智能合约开发 ≈ 写代码
智能合约审计 ≈ 在没有提示的情况下找所有 bug + 证明系统安全

审计明显更难,但也更有价值、薪资更高、竞争更小。


如果你愿意,我可以继续为你做一份:

✅ 专门为你定制的

“从安全工程师 → Solidity Developer → Auditor 的完整 12 个月学习路线图(含周任务)”

你需要吗?