透明代理和uups代理哪个更省gas ,为什么?

在比较透明代理(Transparent Proxy)UUPS代理(Universal Upgradeable Proxy Standard)时,UUPS代理通常更省Gas。以下是原因的详细解释:


1. 透明代理的工作原理

  • 透明代理使用一个独立的代理合约来转发调用到逻辑合约(实现合约)。
  • 它通过 delegatecall 将调用转发到逻辑合约,同时在代理合约中保留了升级逻辑。
  • 升级逻辑由代理合约中的管理员函数控制。

Gas 消耗的原因

  • 每次调用都需要通过代理合约转发到逻辑合约,这会增加额外的存储和逻辑开销。
  • 升级逻辑(如管理员权限检查)也存在于代理合约中,增加了合约的复杂性和调用成本。

2. UUPS代理的工作原理

  • UUPS代理将升级逻辑移到了逻辑合约中,而代理合约本身只负责转发调用。
  • 逻辑合约实现了 upgradeTo 等升级函数,直接控制合约的升级。

Gas 优化的原因

  • 代理合约更轻量:UUPS代理的代理合约只负责调用转发,不包含升级逻辑,因此更简单、更轻量。
  • 减少存储开销:透明代理需要额外的存储槽来记录管理员地址,而UUPS代理不需要这些额外的存储。
  • 调用成本更低:由于代理合约的逻辑更少,调用时的 Gas 消耗也更低。

3. 对比总结

特性 透明代理 UUPS代理
升级逻辑位置 在代理合约中 在逻辑合约中
代理合约复杂度 较高(包含升级逻辑) 较低(仅负责调用转发)
存储开销 需要额外存储管理员地址等信息 不需要额外存储
调用成本 较高(多了权限检查等逻辑) 较低(代理合约更轻量)
Gas 消耗 较高 较低

4. 为什么 UUPS 更省 Gas?

  • 轻量化代理合约:UUPS代理的代理合约仅负责调用转发,减少了不必要的逻辑和存储操作。
  • 减少存储槽使用:透明代理需要额外的存储槽来记录管理员地址,而UUPS代理不需要这些额外的存储。
  • 调用路径更短:UUPS代理的调用路径更短,减少了权限检查等逻辑的执行。

5. 注意事项

  • 安全性:UUPS代理将升级逻辑放在逻辑合约中,可能会增加升级逻辑被篡改的风险,因此需要严格的权限管理。
  • 复杂性:透明代理的升级逻辑独立于逻辑合约,管理更清晰,但成本更高。

6. 结论

在 Gas 优化方面,UUPS代理更省Gas,因为它的代理合约更轻量,调用成本更低,存储开销更少。然而,选择哪种代理模式需要根据具体的业务需求和安全性要求来决定。

posted @ 2025-10-29 00:21  Lucas_coming  阅读(7)  评论(0)    收藏  举报