90 天计划
90 篇笔记
第一阶段:Solidity 基础构建
Solidity 开发环境 + 数据类型 + 变量
掌握 Remix IDE 使用、Solidity 全部基础数据类型、三种变量类型
Rust 开发环境 + 变量与可变性 + 基本类型
安装 Rust 工具链,理解 Cargo 项目结构,掌握变量/可变性/常量,学习基本数据类型
Solidity 函数 + 事件 + 错误处理
函数可见性(public/private/internal/external)、view/pure、自定义修饰符、事件系统、错误处理四种方式
Rust 所有权 + 借用 + 引用
深入理解所有权机制、Move 语义、借用规则、可变引用与不可变引用
Solidity mapping + struct + array + enum
mapping 语法与嵌套映射、struct 定义与使用、动态/固定数组操作、enum 状态机模式
Rust 字符串 + 切片 + 生命周期基础
String vs &str 的本质区别、字符串操作方法、切片语法、生命周期基础
Week 1 总结与复习
回顾 Week 1 所有核心概念,构建系统化知识框架
ERC20 标准详解 + 手写完整实现
深入理解 EIP-20 规范每一个函数、approve+transferFrom 模式的设计原因
Rust struct + impl + 方法 + 关联函数
struct 定义、impl 块、&self/&mut self/self 方法、关联函数(::new 模式)
ERC20 进阶 + OpenZeppelin 对比 + mint/burn/Pausable
OpenZeppelin ERC20 源码逐行分析、扩展功能(mint/burn/pause)、访问控制
Rust - enum + 模式匹配(match) + Option/Result
### 1. Rust enum:不只是枚举,而是代数数据类型
Solidity - ERC721标准 + 手写完整实现
### 1. EIP-721 规范概览
Rust - trait + 泛型(generics) + trait bound
### 1. Trait:定义共享行为
复习 - Week 2 总结 + ERC 标准速查卡
### 1. Week 2 知识回顾图谱
Solidity - 继承(is) + 接口(interface) + 抽象合约(abstract) + super
### 1. Solidity 继承基础
第二阶段:进阶合约
Rust - Vec + HashMap + HashSet + 迭代器(iter/map/filter/collect)
### 1. Vec\<T\:动态数组
Solidity - library + using for + assembly 初探 + 低级调用(call/delegatecall/staticcall)
### 1. Library:可复用的代码库
Rust - 闭包(closures) + 函数指针 + 生命周期深入('a标注)
### 1. 闭包(Closure):捕获环境的匿名函数
Solidity - receive/fallback + payable + msg.value + 合约间调用 + Crowdfunding合约
### 1. 合约接收 ETH 的两种特殊函数
Rust - 错误处理深入 - 自定义Error + ? 运算符 + thiserror/anyhow
### 1. Rust 错误处理哲学
复习 - Week 3 总结
### 一、Solidity Week 3 知识图谱
Solidity 设计模式 - 工厂模式/代理模式/状态机/Pull over Push
### 一、工厂模式 (Factory Pattern)
Rust async/await + tokio 运行时 + Future
### 一、为什么需要异步编程?
Solidity Timelock + 多签逻辑 + 代理模式存储槽原理
### 一、Timelock — 时间锁
Solidity/Foundry 环境搭建 + forge init/build/test + 项目结构
### 一、Foundry 是什么?
Rust serde + reqwest + JSON 处理 + 链上查询 CLI v1
### 一、serde — Rust 的序列化/反序列化框架
Solidity/Foundry 测试深入 - Cheatcodes + 完整 ERC20 测试套件
### 一、Foundry Cheatcodes 详解
Rust clap 命令行解析 + 项目结构化(mod/lib/bin) + CLI v2
### 一、clap — 命令行参数解析
Solidity/Foundry fork 测试/fuzz 测试/gas 报告/脚本部署
### 一、Fork 测试
Rust 文件 IO + toml 配置 + tracing 日志 + CLI v3 完整版
### 一、std::fs — 文件系统操作
第三阶段:安全审计
复习 - Week 5 总结 (Foundry + Rust CLI)
### 一、Foundry 工具链全景回顾
Solidity - Vault 合约 (ERC4626) - deposit/withdraw/shares 计算
### 一、ERC4626 是什么?为什么需要它?
Solana - 架构总览 - Account 模型/Program/Instruction/Transaction + EVM 对比
### 一、Solana 架构总览
Solidity - StakingRewards 合约 - 质押/解质押/奖励计算
### 一、为什么需要 StakingRewards?
Solana/Anchor - 框架入门 - #[program]/#[derive(Accounts)]/#[account] + Hello World
### 一、为什么需要 Anchor?
Solidity - FlashLoan 合约 - 借→用→还+手续费
### 一、什么是 Flash Loan?
Solana/Anchor - Counter 程序 + PDA (Program Derived Address)
### 一、什么是 PDA?为什么 Solana 必须有它?
复习 - Week 6 总结 (DeFi 合约模式 + Solana 基础)
### 一、Week 6 学习路径回顾
SimpleAMM合约 — 恒定乘积公式与流动性管理
### 一、AMM 核心原理:恒定乘积公式
Solana/Anchor - SPL Token + Associated Token Account + Token 铸造程序
### 一、什么是 SPL Token?
AMM进阶 - 手续费 + 滑点保护 + 价格预言机接口
### 1. AMM 手续费机制
Solana/Anchor - Vault程序 + CPI(跨程序调用) + Token存取
### 1. CPI(Cross-Program Invocation)跨程序调用
Chainlink预言机集成 + Fork主网测试
### 1. 为什么需要预言机?
Solana/Anchor - 事件(emit!) + 前端交互(IDL/anchor-client)
### 1. Solana 事件(Events)
复习 - Week 7 总结 (AMM/Oracle + Solana Token)
### Week 7 知识图谱
第四阶段:Rust + Solana
Solidity - 代理模式深入 (Transparent Proxy / UUPS / Beacon + 存储冲突)
### 1. 为什么需要可升级合约?
PDA进阶与Escrow托管程序
### 1. PDA 回顾与进阶
DAO治理合约 — Governor与TimelockController
### 1. DAO 治理的核心问题
重入攻击 — 从The DAO到现代防护
### 1. 什么是重入攻击?
Move语言概述 — 资源模型与能力系统
### 1. Move 语言的诞生与定位
整数溢出 + tx.origin钓鱼 + selfdestruct攻击
### 1. 整数溢出与下溢 (Integer Overflow / Underflow)
Move/Sui 基础语法 - module/struct/function/acquires + Counter模块
### 1. Move 语言设计哲学
权限漏洞 + 未初始化代理 + 存储碰撞(Storage Collision)
### 1. 权限漏洞(Missing Access Control)
Move/Sui 对象模型 - owned/shared/immutable objects + 转移策略 + NFT模块
### 1. Sui 对象模型总览
复习 - Week 9 总结 (漏洞分类 + Move基础)
### 1. Solidity 漏洞分类总表
闪电贷攻击 + 价格操纵 + 只读重入(Read-Only Reentrancy)
### 1. 闪电贷(Flash Loan)原理
Move/Sui Coin标准 + 泛型 + Witness模式 + 自定义Coin
### 1. 泛型编程(Generics)
签名重放(Signature Replay) + EIP-712 + 中心化风险
### 1. ECDSA 签名基础
Move/Sui 事件 + 动态字段(Dynamic Fields) + Table + 增强版NFT
### 1. Sui 事件系统(Events)
DVDF #1 Unstoppable + #2 Naive Receiver
### 1. Damn Vulnerable DeFi 简介
第五阶段:Move + Aptos/Sui
Move/Sui - Transfer Policy + Kiosk框架 + NFT市场模块
### 1. Sui Kiosk 是什么?
复习 - Week 10总结 (Ethernaut + Sui开发)
### 1. Week 10 学习路径回顾
Solidity/Audit - 审计方法论 - 流程/Checklist/工具链(Slither/Aderyn/Mythril)
### 1. 审计流程总览
Move/Sui - DeFi模式 - 共享对象 + 流动性池 + SimpleSwap模块
### 1. 共享对象 (Shared Objects) 深入理解
手动审计练习#1 - 审计一个Token合约
### 1. 手动审计的价值
Move Prover(形式化验证)入门 + 安全最佳实践
### 1. 什么是形式化验证(Formal Verification)
手动审计练习#2 - 审计一个DeFi合约(Vault/Staking)
### 1. DeFi合约审计 vs Token合约审计
Sui TypeScript SDK与前端集成
### 1. @mysten/sui SDK 概览
复习 - Week 11总结 (审计方法论 + Sui开发完成)
### 1. 审计方法论回顾
DVDF #3 Truster + #4 Side Entrance
### 1. Composability(可组合性)作为攻击面
Move 安全 — 溢出/权限/闪电贷在 Move 中的处理 + 审计案例
### 1. Move 安全模型概览
DVDF #5 The Rewarder + #8 Puppet — 闪电贷驱动的奖励操纵与预言机攻击
### 1. 闪电贷 — DeFi 攻击的通用放大器
Mini Lending 协议设计 — 规格文档 + 数据结构
### 1. DeFi 借贷协议核心机制
Solana 常见漏洞 — 签名验证缺失/PDA种子碰撞/整数溢出
### 1. Solana 安全模型 vs EVM 安全模型
Mini Lending — 存款池 + 利率模型实现
### 1. 份额制会计模型(Share-Based Accounting)
第六阶段:综合项目
Solana 性能优化 — 账户数据打包/Compute Units/并行交易
### 1. Solana 性能模型概览
Mini Lending — 借款 + 健康因子 + Chainlink 预言机
### 1. 借款流程
Solana/Anchor 高级特性 — 零拷贝/剩余账户/自定义错误 + 增强 Escrow
### 1. #[zero_copy] 大账户优化
复习 — Week 13 总结 (Mini Lending 进度 + Solana 项目回顾)
### 1. Week 13 知识图谱
Mini Lending — 清算机制 + 清算奖励
### 1. 清算机制为什么必要?
多链对比: EVM vs Solana vs Move 架构对比(上) - 编程模型与账户体系
### 一、三大平台设计哲学总览
Solidity: Mini Lending - 完整测试套件 + Gas优化
### 一、DeFi 测试方法论
多链对比: EVM vs Solana vs Move 应用层对比(下) - DeFi/NFT/安全
### 一、DeFi 应用模式对比
Solidity: Mini Lending - 自我审计 + Slither扫描 + 漏洞修复
### 一、自我审计方法论
多链: PM视角的多链选择指南
### 一、链选择决策框架
复习: Week 14总结 (Mini Lending完成 + 多链对比整合)
### 一、Mini Lending 项目完整架构回顾
Solidity: Gas优化专题 - 存储布局/calldata/打包/不可变量/assembly技巧
### 一、EVM Gas 成本速查表
Solidity/Security: DVDF冲刺 - 2-3道新题
### DeFi 攻击分类法
全栈: 90天作品集整理
### 一、作品集战略定位
总结: 90天复盘 + 知识图谱 + 下一步
### 一、90天全景回顾