{"content":{"title":"代理模式与 Delegatecall 规范手册","body":"## 代理模式与 Delegatecall 规范手册 \r\n\r\n![](https://img.learnblockchain.cn/2025/02/26/proxy-patterns.png.webp)\r\n\r\n代理模式可能是学习 Solidity 开发中最令人困惑的方面之一，因为在其他软件开发领域几乎没有类似的类比。进一步复杂化的问题是——尽管从概念上讲，delegatecall 是容易理解的——完全掌握其细微差别需要对 EVM（以太坊虚拟机）和 Solidity 编译器的工作原理有一定的背景知识。这些细微差别并不是简单的“你知道吗”的琐事，而是对智能合约的运行方式有重要影响。此外，代理模式的标准仍在发展中——截至撰写本文时，ERC-7201 到现在还不到一年的时间。\r\n\r\n任何合格的 Solidity 开发者或审计员，都应该对 delegatecall 及其所依赖的代理模式有全面的理解。代理模式并不简单，一个错误就可能破坏可升级性，或者更糟，导致灾难性错误。\r\n\r\n本书旨在帮助这样的读者高效且全面地掌握这一主题，同时深入探讨在其他文献中省略或忽视的细节。与此同时，我们力求范围明确；本书不是关于 EVM 的完整课程——我们仅讨论与正确理解 delegatecall 及现有模式设计相关的部分。\r\n\r\n我们建议按照下面提供的顺序阅读教程。多位读者评论道：“我以为我懂这个主题，直到我读了 RareSkills 的教程。”因此，我们建议即使你已经熟悉该主题，也要认真阅读这些教程。\r\n\r\n## 目录\r\n\r\n第 1 章\r\n\r\n[存储槽是如何工作的 ](https://learnblockchain.cn/article/9303)\r\n\r\n第 2 章\r\n\r\n[动态数据类型的存储槽](https://learnblockchain.cn/article/9574)\r\n\r\n第 3 章\r\n\r\n[ABI 编码](https://learnblockchain.cn/article/8296)\r\n\r\n第 4 章\r\n\r\n[低级调用](https://learnblockchain.cn/article/11247)\r\n\r\n第 5 章\r\n\r\n[深度解析 Try Catch](https://learnblockchain.cn/article/8871)\r\n\r\n第 6 章\r\n\r\n[使用汇编进行回滚](https://learnblockchain.cn/article/11390)\r\n\r\n第 7 章\r\n\r\n[Delegatecall](https://learnblockchain.cn/article/11227)\r\n\r\n第 8 章\r\n\r\n[代理简介](https://learnblockchain.cn/article/11224)\r\n\r\n第 9 章\r\n\r\n[ERC-1967：代理的存储槽](https://learnblockchain.cn/article/11240)\r\n\r\n第 10 章\r\n\r\n[透明可升级代理模式](https://learnblockchain.cn/article/11246)\r\n\r\n第 11 章\r\n\r\n[UUPS 模式（ERC-1822）](https://learnblockchain.cn/article/9221)\r\n\r\n第 12 章\r\n\r\n[ERC-7201：存储命名空间](https://learnblockchain.cn/article/10350)\r\n\r\n第 13 章\r\n\r\n[初始化函数的使用及原理](https://learnblockchain.cn/article/8691)\r\n\r\n第 14 章\r\n\r\n[信标代理模式](https://learnblockchain.cn/article/8823)\r\n\r\n第 15 章\r\n\r\n[克隆模式（ERC-1167）](https://learnblockchain.cn/article/11333)\r\n\r\n第 16 章\r\n\r\n[Metaproxy 模式（ERC-3448）](https://learnblockchain.cn/article/11277)\r\n\r\n第 17 章\r\n\r\n[回退扩展模式](https://learnblockchain.cn/article/11332)\r\n\r\n第 18 章\r\n\r\n[Openzeppelin Foundry 的升级插件](https://learnblockchain.cn/article/9267)\r\n\r\n第 19 章\r\n\r\n[Nodelegatecall](https://learnblockchain.cn/article/11253)\r\n\r\n## 致谢\r\n\r\n我们要感谢 [OpenZeppelin](https://www.openzeppelin.com/) 团队在创建本资源时提供的意见和建议。\r\n\r\n \r\n \r\n\r\n>- 原文链接： [rareskills.io/proxy-patt...](https://www.rareskills.io/proxy-patterns)\r\n>- 登链社区 AI 助手，为大家转译优秀英文文章，如有翻译不通的地方，还请包涵～"},"author":{"user":"https://learnblockchain.cn/people/20722","address":null},"history":"bafkreihcztx3dk2vggv3mldfs6mhze2o3wrnyi2twv4skcitvt3rjb4jta","timestamp":1740705362,"version":1}