Web3 入门学习路线

Web3 通常指以区块链、智能合约、密码学身份和可编程数字资产为基础的应用体系。它把部分数据与业务规则放入多方共同维护的网络,使用户能够直接验证状态并持有链上资产。去中心化并非天然目标,实际系统需要在安全、成本、性能、隐私与治理之间权衡。

本文提供从基础原理到开发、安全、数据和金融应用的学习路线。所有金融内容仅用于技术学习,不构成投资建议。

学习路线总览

1
2
3
4
5
6
7
8
9
10
11
flowchart TD
A[计算机与网络基础] --> B[密码学与区块链原理]
B --> C[钱包 交易 Gas 与节点]
C --> D[Solidity 与 EVM]
D --> E[合约测试与 DApp 前端]
E --> F{选择进阶方向}
F --> G[协议开发]
F --> H[安全审计]
F --> I[链上数据]
F --> J[DeFi 与机制研究]
F --> K[其他虚拟机与跨链]

第一阶段:理解区块链

从 Web1 到 Web3

  • Web1 以静态内容发布为主,用户主要读取网页。
  • Web2 形成平台化的读写互联网,用户创建内容,平台负责身份、存储与分发。
  • Web3 尝试把部分身份、资产和规则放入可公开验证的网络,用户通过私钥授权操作。

三者并非严格替代关系。大多数 DApp 仍依赖 Web2 前端、域名、云服务和索引器,因此分析系统时应明确哪些部分真正由链上共识保证。

区块、交易与共识

交易由账户签名后传播到节点,验证者按共识规则选择并执行交易,最终形成新的状态根。区块链不只是不可修改的数据库,它还是多个互不完全信任的参与者就执行顺序和状态达成一致的系统。

1
2
3
4
5
6
7
8
9
10
11
sequenceDiagram
participant U as 用户钱包
participant R as RPC 节点
participant M as 交易池
participant V as 验证者
participant S as 链上状态
U->>R: 广播签名交易
R->>M: 验证格式并传播
V->>M: 选择交易
V->>S: 按顺序执行
S-->>U: 生成回执与事件

密码学基础

需要掌握哈希、Merkle 树、公私钥、数字签名和地址派生。私钥用于授权,不应上传到网站、代码仓库或聊天工具。助记词通常能够恢复全部派生账户,泄露后应立即视为所有相关资产失去安全保证。

第二阶段:掌握以太坊使用模型

账户与钱包

外部账户由私钥控制,合约账户由代码控制。钱包是密钥管理和交易签名工具,不等同于链上账户本身。连接钱包只暴露地址和请求权限,签名或发送交易才会产生具体授权。

Gas

Gas 衡量 EVM 执行资源。交易费用通常由实际 Gas 使用量与单位 Gas 价格共同决定。复杂存储写入、合约部署和跨合约调用通常更昂贵。失败交易也可能消耗 Gas,因为节点已经执行并验证了交易。

代币标准

  • ERC-20 表示可替代份额。
  • ERC-721 表示唯一标识的非同质化资产。
  • ERC-1155 在同一合约中管理多种可替代或非同质化资产。
  • 代币标准只规定接口和事件,不自动保证价值、合规性或元数据可用性。

第三阶段:Solidity 与 EVM

先学习类型、函数可见性、错误处理、事件、继承、接口和数据位置,再学习 EVM 存储、调用方式和代理模式。

1
2
3
4
5
6
7
8
9
10
11
12
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.20;

contract Counter {
uint256 public value;
event Increased(address indexed caller, uint256 newValue);

function increase() external {
value += 1;
emit Increased(msg.sender, value);
}
}

必须理解的概念

  1. storagememorycalldata 的生命周期和修改语义。
  2. calldelegatecallstaticcall 的上下文差异。
  3. 交易回滚、错误选择器和事件日志。
  4. Checks-Effects-Interactions 顺序与重入风险。
  5. 代理升级中的实现地址、管理员权限和存储布局。
  6. 现货价格、时间加权价格与预言机信任假设。

第四阶段:开发工具链

建议掌握一种主工具链,同时了解另一种工具链的定位。

  • Foundry 适合 Solidity 测试、模糊测试、分叉复现和命令行工作流。
  • Hardhat 适合 TypeScript 脚本、插件集成和 JavaScript 测试生态。
  • Anvil 或本地 Hardhat 网络用于快速开发。
  • 区块浏览器用于查看交易、事件、源码和代理关系。
  • 调试平台用于追踪内部调用、状态变化和 Gas。

测试层次

1
2
3
4
5
6
flowchart LR
A[单元测试] --> B[边界与失败测试]
B --> C[模糊测试]
C --> D[不变量测试]
D --> E[分叉集成测试]
E --> F[测试网端到端测试]

测试重点应是不变量,而不是只验证示例路径。例如金库应满足总负债不超过可用资产,访问控制应保证非管理员无法修改关键配置。

第五阶段:DApp 前端

前端需要处理钱包连接、网络切换、ABI 编码、只读调用、交易模拟、用户签名、交易回执和错误解释。可选择 Viem 或 Ethers.js 作为以太坊客户端库。

1
2
3
4
5
6
7
8
9
10
const hash = await walletClient.writeContract({
address: counterAddress,
abi: counterAbi,
functionName: "increase",
});

const receipt = await publicClient.waitForTransactionReceipt({ hash });
if (receipt.status !== "success") {
throw new Error("transaction reverted");
}

不要把私钥放在浏览器代码中。合约地址必须按链 ID 配置,前端显示交易结果前应等待足够确认,并处理用户拒签、交易替换和链重组。

第六阶段:DeFi 基础

自动做市商

常数乘积池使用 x * y = k 描述储备关系。交易改变两种资产储备,价格随储备比例变化。集中流动性允许 LP 只在选定价格区间提供流动性,提高资本效率,也增加主动管理和区间外风险。

借贷

借贷协议通常依赖超额抵押、利率模型、预言机和清算人。分析时应追踪抵押价值、债务价值、清算阈值和坏账承担方。

稳定币

稳定币可由法币储备、加密资产超额抵押或其他机制支持。研究时应区分铸造赎回权、储备透明度、脱锚处置和治理权限。

衍生品与预测市场

永续合约使用资金费率等机制使合约价格接近指数价格。预测市场交易事件结果份额,价格反映市场参与者的聚合判断,但受流动性和结算规则影响。

第七阶段:智能合约安全

学习顺序建议为漏洞原理、最小示例、真实事件、检测方法和修复验证。

  • 重入与跨函数重入。
  • 权限控制和初始化错误。
  • 价格操纵与预言机失效。
  • 精度、舍入与份额会计。
  • 签名重放和授权滥用。
  • 拒绝服务与外部依赖。
  • 代理升级和存储冲突。

审计报告应区分事实、推断与未知项。攻击复现只在本地分叉、测试网或授权环境中进行。

第八阶段:链上数据分析

链上数据分析从区块、交易、调用、事件和状态中构建可查询模型。常见工具包括节点 RPC、索引器、数据仓库和可视化平台。

1
2
3
4
5
6
7
8
SELECT
date_trunc('day', block_time) AS day,
count(*) AS transfer_count,
sum(value) AS transferred_value
FROM token_transfers
WHERE contract_address = :token_address
GROUP BY 1
ORDER BY 1;

应理解事件可能因链重组被撤销,代理升级会改变 ABI,同一经济行为也可能跨多笔交易完成。分析结论要记录数据源、区块范围和查询版本。

第九阶段:扩展方向

NFT 与链上媒体

重点学习代币标准、元数据、内容寻址存储、版税局限、市场授权和钓鱼风险。持有 NFT 不必然意味着拥有底层作品版权。

DAO

DAO 涉及提案、投票权、委托、时间锁和金库执行。治理代币投票可能受到持币集中、低参与率和闪电贷等因素影响。

Layer 2

学习 Rollup 的执行、数据发布、状态承诺、提款延迟和排序器模型。不同方案在欺诈证明、有效性证明和数据可用性上采用不同设计。

跨链

跨链系统需要验证另一条链的状态或依赖一组外部验证者。桥接资产的安全性取决于消息验证、密钥管理、升级权限和两侧最终性。

其他智能合约语言

在掌握 EVM 后,可继续学习 Move、Rust 生态或其他虚拟机。比较时应关注账户模型、并行执行、资源语义、存储结构和工具链,不应只比较语法。

十二周学习计划

周次 学习内容 交付物
1 哈希、签名、区块与共识 绘制交易生命周期图
2 钱包、Gas、RPC 与浏览器 完成测试网转账记录
3 Solidity 基础 编写并测试 Counter
4 ERC-20 与 ERC-721 实现标准代币示例
5 Foundry 或 Hardhat 建立单元与模糊测试
6 DApp 前端 完成钱包与合约交互
7 AMM 与借贷 推导关键公式和状态
8 常见漏洞 复现已公开且已修复案例
9 链上数据 编写三条分析查询
10 Layer 2 与跨链 比较两种信任模型
11 完整项目 部署测试网 DApp
12 总结与复盘 撰写架构和安全报告

获取信息的方法

优先阅读协议规范、官方文档、代码仓库、改进提案和审计报告。社交媒体适合发现线索,不适合作为唯一事实来源。涉及协议参数、软件版本、监管规则或资金操作时,应在使用前重新核对当前官方资料。

学习成果检查

完成本路线后,应能够解释交易从签名到确认的过程,编写并测试基础合约,实现前端交易状态管理,分析常见 DeFi 机制,阅读一次真实攻击的调用链,并用查询验证链上活动。最重要的能力不是记住术语,而是能够说明系统信任谁、状态如何变化以及失败时谁承担损失。