第1章
🔹升级模式概述
为什么需要合约升级?可变与不可变合约的权衡,升级的常见场景与风险。
第2章
🔹代理模式原理
Delegatecall的工作原理,存储布局与指针,代理合约与逻辑合约的分离。
第3章
🔹透明代理模式
透明代理的设计思路,管理员与用户的角色分离,函数选择器冲突的解决。
第4章
🔹UUPS模式
UUPS(Universal Upgradeable Proxy Standard)的核心思想,升级逻辑内置于实现合约,与透明代理的对比。
第5章
🔹信标代理模式
信标代理的架构,多实例共享逻辑的场景,信标合约的升级流程。
第6章
🔹存储布局管理
存储槽的分配规则,避免存储冲突的策略,结构化存储与EIP-1967。
第7章
🔹初始化函数
构造函数在升级中的局限,initialize函数的设计模式,OpenZeppelin的Initializable合约。
第8章
🔹权限控制
Ownable与AccessControl在升级合约中的应用,角色管理的升级策略,多签治理。
第9章
🔹时间锁机制
时间锁的作用与实现,延迟执行与社区治理,时间锁在升级中的安全价值。
第10章
🔹升级测试策略
Foundry与Hardhat的升级测试框架,模拟升级流程,回滚测试与状态一致性验证。
第12章
🔹EIP-1967标准
标准存储槽的定义,代理管理员地址的存储,逻辑合约地址的存储,Beacon合约地址的存储。
第13章
🔹EIP-1822标准
UUPS的标准化提案,proxiableUUID函数的作用,与EIP-1967的兼容性。
第15章
🔹Foundry升级实践
使用Foundry部署可升级合约,forge script的升级流程,存储布局检查。
第16章
🔹多版本管理
合约版本号的维护,升级路径的记录,回滚机制的实现。
第17章
🔹数据迁移策略
升级中的数据保留,增量迁移与全量迁移,存储迁移合约的设计。
第19章
🔹跨链升级
多链部署的升级策略,跨链消息传递与状态同步,链特定升级的注意事项。
第20章
🔹升级治理
DAO治理下的升级流程,投票机制与执行延迟,治理攻击的防范。
第21章
🔹紧急升级机制
暂停合约与紧急修复,白名单升级,时间锁的绕过与安全考量。
第22章
🔹存储布局检查工具
slither的存储布局检查,自定义脚本验证,CI/CD中的自动化检查。
第23章
🔹函数选择器管理
选择器冲突的检测,重命名与重排策略,接口兼容性维护。
第25章
🔹Gas优化与升级
代理调用的额外Gas开销,存储读取的优化,升级后的Gas成本变化。
第29章
🔹升级失败案例分析
The DAO事件,Parity多签钱包事件,Polygon的升级事故。
第30章
🔹未来趋势与总结
模块化合约的发展,形式化验证在升级中的应用,课程总结与最佳实践清单。