注:
- 仅作技术交流,禁止商用
- 如有侵权,请联系删除
一句话描述:
最小的代价拷贝一个已有合约的实现,减少gas费用消耗,提升数据安全
架构图
-
Minimal Proxy Contract 最小代理合约
适用场景
- 个人钱包合约的部署
- 大部分ca钱包功能类似,但是每个用户都部署完整的ca钱包合约花费太高(并且ca钱包合约实现基本相同),同时,所有数据都存储在某一个钱包合约地址中也没有安全性
- 实际数据流 :
- 部署一个公共的,开源的ca钱包合约到地址a
- 用户b部署eip1167合约,合约的功能实现指向到地址a(即功能完整,但gas费用低)
- 用户c部署eip1167合约,合约的功能实现指向到地址a。
对比分析 - eip1967可升级合约的beacon批量代理方案
其他
- 图示中的“访问logic合约”实际为通过delegatecall函数调用,在当前proxy合约的上下文中运行logic合约方法
- 数据实际存储在proxy合约中
参考文档
https://github.com/ethereum/EIPs/blob/master/EIPS/eip-1967.md
https://github.com/ethereum/EIPs/blob/master/EIPS/eip-1167.md
思考
和eip1967的beacon批量代理方案还有什么异同?