区块链开发需要储备的知识点
区块链开发知识图谱
基础知识 (The Bedrock)
- 计算机科学基础
- 数据结构与算法:哈希表、树(特别是默克尔树 Merkle Tree)、链表等。
- 计算机网络:理解 P2P 网络模型、TCP/IP、HTTP/RPC 等。
- 操作系统:对进程、内存、存储有基本概念。
- 密码学 (核心中的核心):
- 哈希函数:SHA-256。必须理解其单向性、抗碰撞性。
- 非对称加密:公钥/私钥体系,如 ECDSA (椭圆曲线数字签名算法)。
- 数字签名:理解如何用私钥签名,用公钥验签。
区块链核心概念 (The "Why")
- 区块链原理
- 去中心化、不可篡改、透明性。
- 区块、链、交易的结构和关系。
- 共识机制:理解 PoW (工作量证明) 和 PoS (权益证明) 的基本原理和区别。
- 以太坊虚拟机 (EVM)
- 理解它是一个确定性的、沙盒化的状态机。
- 智能合约:知道它是部署在链上、自动执行的代码。
- Gas & 手续费:深刻理解 Gas 的作用(计算定价、防滥用)和计算方式 (
gasUsed * gasPrice)。
- 账户模型:外部账户 (EOA) vs 合约账户的区别。
智能合约开发 (The Core Skill)
- 编程语言:Solidity (主流选择)
- 基础语法:
pragma, contract, address, uint, mapping, struct。
- 核心概念:函数、修饰符 (
modifier)、事件 (event)、继承。
- 高级特性:
fallback/receive 函数、库 (library)、接口 (interface)、代理 (delegatecall)。
- Assembly (Yul):用于底层操作和 Gas 优化。
- 开发框架 (必备工具)
- Hardhat (推荐):集成了编译、部署、测试、本地节点于一体的开发环境。
- Foundry (新晋热门):用 Solidity 写测试,速度极快。
- 合约标准与库
- ERC 标准:
- ERC-20:同质化代币(Fungible Token)标准。
- ERC-721:非同质化代币(NFT)标准。
- ERC-1155:多代币标准。
- ERC-4337:账户抽象(实现智能钱包)。
- OpenZeppelin Contracts:必须掌握。提供安全、经过审计的合约模板(如
Ownable, Pausable, ERC 标准实现等)。
DApp 全栈开发 (Building the Product)
- 前端交互
- 基础:JavaScript / TypeScript (推荐), React / Vue。
- Web3 库:
- Ethers.js / Viem (推荐):用于与区块链节点和智能合约交互(读取数据、发送交易、监听事件)。
- Web3.js (传统):功能类似,但 Ethers.js 和 Viem 的 API 设计更现代。
- 钱包集成:理解如何通过 MetaMask 等浏览器钱包或 WalletConnect 连接用户账户。
- 后端与数据索引
- 节点提供商:Alchemy, Infura。提供 RPC 节点服务,无需自己搭建节点。
- 数据索引:
- The Graph:去中心化的索引协议,用于高效查询链上数据。
- 自己搭建后端服务(Node.js, Go 等)监听事件并存入数据库。
高级与进阶主题 (Becoming a Senior)
- 智能合约安全 (至关重要)
- 常见漏洞:重入攻击 (Re-entrancy)、整数溢出/下溢、访问控制错误、不安全的
delegatecall。
- 安全实践:Checks-Effects-Interactions 模式、使用 OpenZeppelin、代码审计。
- 安全工具:Slither (静态分析), Echidna (模糊测试)。
- Gas 优化
- 学习如何编写更省 Gas 的代码(例如,优化存储、使用正确的变量类型、减少外部调用)。
- 合约可升级性
- 理解代理模式 (Proxy Pattern),如 UUPS 和透明代理 (Transparent Proxy)。
- Layer 2 与扩容方案
- 了解 Optimistic Rollups (如 Optimism, Arbitrum) 和 ZK-Rollups (如 zkSync, StarkNet) 的基本概念和区别。
- DeFi 核心协议
- 理解 AMM (如 Uniswap), 借贷协议 (如 Aave), 质押等核心 DeFi 协议的合约设计模式。
- 预言机 (Oracle)
- 理解其作用(为区块链提供外部数据),了解 Chainlink 的基本工作原理。
学习路径建议
- 打好基础:确保密码学和区块链核心概念清晰。
- 主攻 Solidity + Hardhat:这是目前最主流的开发栈。跟着 CryptoZombies 等教程完整做一个项目。
- 克隆项目:尝试复刻一个简单的 ERC-20 代币、一个 NFT 项目,甚至是一个简化的 Uniswap V2。
- 学习前端交互:用 React + Ethers.js 写一个 DApp 前端,与你自己的合约交互。
- 深入安全:系统学习 Ethernaut 等安全挑战,把安全意识刻进 DNA。
- 持续关注:关注行业动态,如 EIPs、Layer 2 进展、新项目的设计模式。