-
bitcoin $87959.907984 USD
1.34% -
ethereum $2920.497338 USD
3.04% -
tether $0.999775 USD
0.00% -
xrp $2.237324 USD
8.12% -
bnb $860.243768 USD
0.90% -
solana $138.089498 USD
5.43% -
usd-coin $0.999807 USD
0.01% -
tron $0.272801 USD
-1.53% -
dogecoin $0.150904 USD
2.96% -
cardano $0.421635 USD
1.97% -
hyperliquid $32.152445 USD
2.23% -
bitcoin-cash $533.301069 USD
-1.94% -
chainlink $12.953417 USD
2.68% -
unus-sed-leo $9.535951 USD
0.73% -
zcash $521.483386 USD
-2.87%
如何使用代理模式升级智能合约?
The Ethereum proxy pattern separates logic and storage, enabling upgrades via delegatecall while preserving state—provided storage layout remains consistent across versions.
2026/01/23 03:40
了解以太坊中的代理模式
1. 代理模式通过部署两个独立的合约:代理和实现,将合约逻辑与存储解耦。
2. 用户与代理进行专门交互,代理使用 delegatecall 将所有调用转发到当前实现合约。
3. 存储布局必须在实施升级中保持一致,以防止数据损坏或错位。
4.代理为实现地址维护单个存储槽,允许其更新而不影响用户状态。
5. 该架构支持向后兼容的更改,同时保留链上余额、配额和历史交互。
透明代理的关键组件
1. 代理合约包含一个回退函数,该函数通过 delegatecall 将外部调用路由到指定的实现。
2. 强制执行管理员角色来限制升级权限——只有授权地址才可以更改实现指针。
3. 修改器在执行升级逻辑之前检查调用者是否是管理员,防止未经授权的重新配置。
4. 实现合约必须继承定义存储结构的基础合约,确保与代理的布局保持一致。
5. 跨版本保留函数选择器;新功能必须避免与现有功能发生冲突,除非故意覆盖行为。
部署和升级步骤
1. 部署包含核心业务逻辑和所需状态变量的初始实现合约。
2. 部署代理合约,使用第一个实现的地址初始化其存储并设置管理地址。
3. 通过调用测试函数并确认返回值与预期输出匹配,验证代理是否正确委派调用。
4. 升级时,编译并部署一个新的实现合约,修改逻辑但存储布局相同。
5.使用新的实现地址调用代理的upgradeTo函数,确保只有管理员触发此交易。
安全考虑和陷阱
1. 实现之间丢失或不正确的存储布局对齐会导致静默数据损坏 - 变量可能从错误的插槽中读取。
2. 未能保护管理员角色会使整个系统面临恶意升级;应考虑多重签名钱包或时间锁。
3. 部署后必须单独调用初始化函数,因为构造函数不在 delegatecall 上下文中执行。
4. 嵌入在实现代码中的外部库依赖项也必须一致升级,因为它们的字节码是逻辑契约的一部分。
5. 如果升级逻辑不能在关键转换期间正确防止递归委托调用,重入风险就会增加。
常见问题解答
问:部署后可以更改管理地址吗?是的,大多数代理实现都包含一个changeAdmin 函数,如果当前管理员发起呼叫,则允许更新管理员地址。
问:如果我忘记初始化升级后的实施,会发生什么情况?合约状态仍未初始化,可能会将关键变量保留为默认值(例如零或空地址),从而导致意外行为。
问:是否可以降级到之前的实施版本?是的,只要先前的实施合约仍然存在于链上并保留兼容的存储布局,技术上就支持降级。
问:委托调用期间发出的事件是否出现在代理地址或实现地址下?事件在代理的地址下发出,因为 EVM 在发出事件时记录调用上下文,而不是委托调用的目标。
免责声明:info@kdj.com
所提供的信息并非交易建议。根据本文提供的信息进行的任何投资,kdj.com不承担任何责任。加密货币具有高波动性,强烈建议您深入研究后,谨慎投资!
如您认为本网站上使用的内容侵犯了您的版权,请立即联系我们(info@kdj.com),我们将及时删除。
- 比特币、eCash 分叉和空投动态:深入探讨加密货币的最新争议
- 2026-05-03 12:55:01
- 2026 年迈阿密共识:Web3、区块链、加密货币、NFT、Metaverse,会议,5 月 5 日 — 华尔街与数字前沿相遇的地方
- 2026-05-02 12:45:01
- 美联储维持利率稳定,地缘政治紧张局势引发比特币价格下跌
- 2026-05-01 06:45:01
- 比特币矿工为电网供电:收购俄亥俄州天然气厂开启数字黄金新时代
- 2026-05-01 00:45:01
- MegaETH的MEGA代币登陆纽约:为实时区块链设定新的性能基准
- 2026-05-01 00:55:01
- Solana 的滑坡:价格预测表明阻力损失和潜在的进一步下跌
- 2026-05-01 06:45:01
相关百科
如何将我的未平仓期货头寸从币安迁移到Bybit而不平仓?
2026-06-04 03:59:47
Bitcoin 减半机制1. Bitcoin 的协议强制执行固定的发行时间表,其中大约每 210,000 个区块,区块奖励就会减少一半。 2. 该事件大约每四年发生一次,直接减少了新进入流通的 BTC 数量。 3.截至2020年减半,矿工每区块获得6.25 BTC;下一次减少将达到 3.125 BT...
如何处理美国加密货币期货交易利润的税务影响?
2026-05-29 18:19:59
Bitcoin 减半机制1. Bitcoin 的协议强制规定 2100 万枚代币的固定供应上限,并通过区块奖励引入新单位。 2. 每 210,000 个区块(大约每四年)区块奖励就会减少一半,这个过程称为减半。 3. 最近一次减半发生在 2024 年 4 月,每个区块的奖励从 6.25 BTC 减少...
如何利用Bybit交易机器人市场寻找有利可图的期货策略?
2026-06-02 04:39:47
Bitcoin 减半机制1. Bitcoin 的协议强制执行固定的发行时间表,其中大约每 210,000 个区块,区块奖励就会减少一半。 2. 该事件大约每四年发生一次,直接减少了新进入流通的 BTC 数量。 3.截至2020年减半,矿工每区块获得6.25 BTC;下一次减少将达到 3.125 BT...
如何在币安合约交易平台下冰山订单以隐藏我的大头寸规模?
2026-06-02 10:20:30
Bitcoin 减半机制1. Bitcoin 的协议强制执行固定的发行时间表,其中大约每 210,000 个区块,区块奖励就会减少一半。 2. 该事件大约每四年发生一次,直接减少每个区块新进入流通的 BTC 数量。 3.截至2020年减半,矿工每区块获得6.25 BTC;下一次减少将使其达到 3.1...
如何解读币安合约交易平台的多空比率来衡量市场情绪?
2026-05-29 09:19:59
Bitcoin 减半机制1. Bitcoin 的协议强制执行固定的发行时间表,其中大约每 210,000 个区块,区块奖励就会减少一半。 2. 该事件大约每四年发生一次,直接减少了新进入流通的 BTC 数量。 3. 矿工在每个经过验证的区块中收到的代币较少,供应紧张,而需求动态仍然独立于协议规则。 ...
如何在币安上验证我的身份以解锁更高的期货杠杆等级?
2026-06-02 01:40:13
市场波动模式1. Bitcoin 在流动性较低的时期,单个交易时段内的价格波动通常超过 5%。 2. 在宏观经济不确定的情况下,山寨币指数与以太坊的相关性比与 BTC 的相关性更强。 3. 鲸鱼在主要交易所宣布上市之前积累了稳定币储备,预示着即将到来的波动。 4. 期货未平仓合约在 CME Bitc...
如何将我的未平仓期货头寸从币安迁移到Bybit而不平仓?
2026-06-04 03:59:47
Bitcoin 减半机制1. Bitcoin 的协议强制执行固定的发行时间表,其中大约每 210,000 个区块,区块奖励就会减少一半。 2. 该事件大约每四年发生一次,直接减少了新进入流通的 BTC 数量。 3.截至2020年减半,矿工每区块获得6.25 BTC;下一次减少将达到 3.125 BT...
如何处理美国加密货币期货交易利润的税务影响?
2026-05-29 18:19:59
Bitcoin 减半机制1. Bitcoin 的协议强制规定 2100 万枚代币的固定供应上限,并通过区块奖励引入新单位。 2. 每 210,000 个区块(大约每四年)区块奖励就会减少一半,这个过程称为减半。 3. 最近一次减半发生在 2024 年 4 月,每个区块的奖励从 6.25 BTC 减少...
如何利用Bybit交易机器人市场寻找有利可图的期货策略?
2026-06-02 04:39:47
Bitcoin 减半机制1. Bitcoin 的协议强制执行固定的发行时间表,其中大约每 210,000 个区块,区块奖励就会减少一半。 2. 该事件大约每四年发生一次,直接减少了新进入流通的 BTC 数量。 3.截至2020年减半,矿工每区块获得6.25 BTC;下一次减少将达到 3.125 BT...
如何在币安合约交易平台下冰山订单以隐藏我的大头寸规模?
2026-06-02 10:20:30
Bitcoin 减半机制1. Bitcoin 的协议强制执行固定的发行时间表,其中大约每 210,000 个区块,区块奖励就会减少一半。 2. 该事件大约每四年发生一次,直接减少每个区块新进入流通的 BTC 数量。 3.截至2020年减半,矿工每区块获得6.25 BTC;下一次减少将使其达到 3.1...
如何解读币安合约交易平台的多空比率来衡量市场情绪?
2026-05-29 09:19:59
Bitcoin 减半机制1. Bitcoin 的协议强制执行固定的发行时间表,其中大约每 210,000 个区块,区块奖励就会减少一半。 2. 该事件大约每四年发生一次,直接减少了新进入流通的 BTC 数量。 3. 矿工在每个经过验证的区块中收到的代币较少,供应紧张,而需求动态仍然独立于协议规则。 ...
如何在币安上验证我的身份以解锁更高的期货杠杆等级?
2026-06-02 01:40:13
市场波动模式1. Bitcoin 在流动性较低的时期,单个交易时段内的价格波动通常超过 5%。 2. 在宏观经济不确定的情况下,山寨币指数与以太坊的相关性比与 BTC 的相关性更强。 3. 鲸鱼在主要交易所宣布上市之前积累了稳定币储备,预示着即将到来的波动。 4. 期货未平仓合约在 CME Bitc...
查看所有文章














