本文档介绍了 OpenZeppelin Contracts 库中关于代理模式的各种实现,包括 Proxy、ERC1967Proxy、TransparentUpgradeableProxy、UUPSUpgradeable、BeaconProxy 和 Clones 等合约,以及它们的使用场景、升级机制和安全性考虑。
Proxy
ERC1967Proxy
TransparentUpgradeableProxy
UUPSUpgradeable
BeaconProxy
Clones
智能合约一经部署后代码不可变,这是保障链上安全性的重要特性。但现实中,大多数 Web3 项目需要随着协议演进、功能扩展而持续更新。为了在不丢失状态和地址的前提下迭代逻辑,Proxy(代理)升级模式逐渐成为智能合约工程的事实标准。