阶段二:以太坊与智能合约¶
在以太坊(或兼容 EVM 的链)上编写、部署、验证最简合约,并理解存储、函数可见性与常见标准接口。
学习目标¶
- 理解 EVM 执行模型:calldata、memory、storage、栈的大致分工。
- 能用 Solidity 编写带状态与事件的合约,并在本地或测试网部署。
- 了解 ERC-20(同质化代币)与 ERC-721(NFT)在接口层面的区别。
- 熟悉 OpenZeppelin 等库的定位:复用审计过的实现,而非从零写代币逻辑。
核心概念¶
Solidity 入门要点¶
- 状态变量 常驻链上 storage,成本高;局部变量 多在 memory 或栈上。
- 可见性:
public/external/internal/private;payable才可接收 ETH。 - 事件(Events):链下索引与前端监听依赖日志;注意 indexed 参数数量限制。
- modifier:复用权限检查与流程钩子(勿过度复杂化)。
代币与标准¶
- ERC-20:
transfer、approve/transferFrom、余额与授权(授权是常见钓鱼与漏洞面)。 - ERC-721:tokenId 唯一、所有权映射、URI 指向元数据。
工具链¶
- Remix:零安装上手,适合第一节课。
- Hardhat / Foundry:项目化、测试、分叉主网调试;职业开发必备其一。
实践任务¶
- 在 Remix 部署一个合约:存储一个数字,提供
set与get,触发事件。 - 用 Hardhat 或 Foundry 初始化项目,为上述逻辑写单元测试(含异常路径)。
- 在测试网部署,并在 Etherscan 上验证合约源码,读一遍「Read / Write Contract」页。
自检清单¶
- 能解释
storage与memory选错会导致的典型问题(或 gas 异常)。 - 能说明
approve被滥用时用户面临的风险(无限授权等)。 - 能独立部署并验证一份非玩具合约到测试网。
延伸阅读¶
上一阶段:阶段一:基础与链上常识|下一阶段:阶段三:DApp 开发与实践