01
课程导论:为什么Gas优化会引入安全漏洞?
从顶层视角理解Gas与安全的博弈,建立批判性思维
⚡ 思维模型🧠 认知升级
02
存储布局陷阱:紧凑打包与存储碰撞
EVM存储槽机制、变量打包及意外覆盖风险
📦 存储⚠️ 碰撞
03
循环优化误区:无界循环与Gas耗尽攻击
循环边界、动态Gas消耗与拒绝服务漏洞
🔄 循环⛽ Gas耗尽
04
短地址攻击:参数编码与Gas消耗的博弈
ABI编码填充、短地址与代理调用攻击面
🔍 编码🧪 短地址
05
动态数组边界:长度篡改与内存溢出
动态数组长度操纵、内存越界与Gas异常
📐 数组💥 溢出
06
映射与数组的Gas权衡:SLOAD vs SSTORE
存储读写成本对比,选择合适的数据结构
⚖️ 权衡🗂️ 映射
07
时间锁依赖:block.timestamp与矿工操纵
时间戳操纵范围、MEV与时间锁绕过
⏳ 时间锁⛏️ 矿工
08
自毁函数误用:SELFDESTRUCT与合约强制转账
自毁后强制发送ETH、状态清除与重入风险
💀 自毁💸 强制转账
09
委托调用陷阱:delegatecall与上下文污染
存储上下文混淆、逻辑合约升级漏洞
🔄 delegatecall🧬 上下文
10
重入攻击变种:Gas优化后的跨函数重入
跨函数重入、Gas优化与锁机制绕过
🔁 重入🛡️ 跨函数
11
整数溢出与SafeMath:Gas开销与安全取舍
溢出检查成本、SafeMath与unchecked边界
🔢 整数🧮 SafeMath
12
未检查的外部调用:低Level调用的Gas返还机制
call/delegatecall返回值、Gas气泡与重入
📞 外部调用⛽ 返还
13
事件日志滥用:Gas退款与交易回滚
日志Gas消耗、退款机制与日志伪造
📋 事件💰 退款
14
修饰符优化:函数选择器与Gas消耗
modifier内联、函数选择器与重复检查
🏷️ 修饰符⚡ 选择器
15
库函数内联:节省Gas却丢失了抽象层
库函数与内联、可升级性与安全抽象
📚 库🧩 内联
16
汇编优化陷阱:Yul与Solidity的边界
内联汇编风险、内存安全与Gas误算
⚙️ Yul🧰 汇编
17
静态调用(view/pure)误用:状态改变的Gas惩罚
view/pure语义违反、意外状态修改与Gas罚没
👁️ view🧼 pure
18
代理模式存储冲突:EIP-1967与存储槽覆盖
透明代理、UUPS与存储布局冲突
🔄 代理📂 EIP-1967
19
闪电贷攻击中的Gas博弈:回调与状态快照
闪电贷回调、Gas限制与状态操纵
⚡ 闪电贷📸 快照
20
签名重放:EIP-712与nonce的Gas开销
签名结构、nonce管理及重放保护Gas成本
✍️ 签名🔄 重放
21
随机数生成:链上熵源与Gas消耗
区块哈希、预言机与VRF的Gas权衡
🎲 随机数🌐 熵源
22
访问控制优化:Ownable与RBAC的Gas对比
角色检查、存储布局与权限管理Gas
🔐 权限👤 Ownable
23
批量转账优化:循环与数组的Gas陷阱
批量ETH/ERC20转账、循环Gas与失败处理
💸 批量⛽ 循环
24
合约大小限制:EIP-170与代码拆分
合约最大字节码、拆分策略与跨合约调用
📏 大小✂️ 拆分
25
构造函数与初始化:一次性Gas消耗的陷阱
构造函数Gas消耗、初始化与自毁攻击
🏗️ 构造⛽ 初始化
26
事件与存储的权衡:日志索引与检索成本
事件索引、日志Gas与链下检索效率
📋 事件🔎 索引
27
元交易与Gas Station Network:中继攻击面
元交易中继、Gas支付与重放/伪造
⛽ GSN📡 中继
28
跨链桥中的Gas优化:验证与中继的博弈
轻客户端、Merkle证明与中继经济
🌉 跨链🔗 中继
29
审计实战案例:知名项目的Gas-Security漏洞复盘
真实协议漏洞、优化误区和安全建议
🔍 审计📁 案例
30
课程总结:建立Gas-Security平衡思维
全局复盘、思维框架与持续学习路径
🧠 总结⚖️ 平衡