-
bitcoin $77709.100515 USD
1.62% -
ethereum $2492.425806 USD
1.87% -
tether $0.999129 USD
0.01% -
bnb $757.919161 USD
4.46% -
xrp $1.326644 USD
1.83% -
usd-coin $0.999883 USD
0.00% -
solana $105.801069 USD
5.74% -
tron $0.336062 USD
0.26% -
zcash $1493.817548 USD
9.92% -
hyperliquid $87.820963 USD
10.59% -
dogecoin $0.084335 USD
3.93% -
monero $532.699812 USD
7.43% -
chainlink $11.814085 USD
5.52% -
unus-sed-leo $8.892918 USD
-0.42% -
cardano $0.214025 USD
7.76%
什么是代理合同?
Proxy contracts enable upgradable smart contracts by separating logic and storage, allowing developers to update functionality without changing the contract address or losing data.
2025/07/21 07:50
了解代理合同的概念
代理合同是在以太坊等区块链平台上使用的智能合同开发中常用的设计模式。它的主要目的是将合同的逻辑与其存储区分开。这种分离允许开发人员在不更改合同地址或丢失代理本身中存储的数据的情况下升级或修改合同的逻辑。
该代理合同充当中介机构,该中介机构将呼叫另一个合同(通常称为实施合同) 。代理持有所有状态变量,而实施合同包含功能和业务逻辑。这种架构模式对于维持分散应用(DAPP)的长期灵活性至关重要。
代理合同的运作方式
代理合同的机制在很大程度上取决于EVM(以太坊虚拟机)中的授权特征。当用户与代理合同进行互动时,代理使用授权将执行转发到当前实施合同。这样可以确保代码在代理的上下文中运行,这意味着存储,地址和平衡属于代理合同。
这是其工作原理的细分:
- 代理合同包含对当前实施地址的引用。
- 当在代理上调用函数时,它使用DelegateCall在实现合同的上下文中执行该函数。
- 执行过程中所做的所有更改都会影响代理的存储,而不是实施合同。
此方法可以升级性能,而无需重新部署整个合同系统,这对于维持用户信任和合同连续性至关重要。
不同类型的代理合同
有几种类型的代理合同,每种合同都有特定的用例和实施详细信息:
- 透明代理:此类类型的路由不同,取决于它们是来自管理员还是常规用户。管理员呼叫将转发给代理管理合同,而常规电话转到逻辑合同。
- UUP(通用升级代理标准) :在此模型中,升级功能是在逻辑合同本身中实现的。这使用相同的标准在所有代理中都实施了一致的升级机制。
- BEACON代理:该代理人没有直接存储实施地址,而是动态提供当前实施地址的信标合同。这允许同时进行多个代理的质量升级。
每种代理类型在安全性,升级性和复杂性方面都有其优点和权衡。
部署代理合同的步骤
部署代理合同涉及多个步骤。这是一个详细的演练:
- 部署实施合同:其中包含实际的业务逻辑。如果使用某些代理类型(例如UUP),则不应具有构造函数,因为这可能会干扰未来的升级。
- 部署代理合同:在部署期间,您指定实施合同的地址。一些代理合同还需要设置管理员地址。
- 与代理进行互动:所有用户交互应通过代理。使用Truffle , Hardhat或Remix等工具与代理进行交互,并确保使用正确的ABI。
- 升级实现(如果需要) :当准备就绪逻辑的新版本时,部署新实施合同并更新代理对其的参考。此步骤取决于所使用的代理类型。
这些步骤中的每一个都必须仔细执行,以避免资金或安全漏洞的损失。
代理合同的安全考虑
代理合同引入了开发人员必须解决的新安全挑战:
- 存储碰撞:如果实现合同和代理未仔细设计,则存储变量可能会重叠,从而导致意想不到的数据损坏。
- 初始化问题:实施合同中的构造函数如果不替换为初始化功能,可能会导致问题。必须保护这些功能,以防止部署后重新启动。
- 访问控制:必须严格控制升级合同的能力。管理密钥管理不善会导致恶意升级。
- 测试复杂性:代理合同增加了测试的复杂性,要求开发人员对代理和实施合同进行彻底测试。
使用诸如Openzeppelin之类的框架的众多审计模式可以减轻许多此类风险。
代理合同的用例
代理合同被广泛用于各种分散融资(FEFI)协议和DAPP,其中长期维护至关重要。一些值得注意的用例包括:
- 治理控制的升级:诸如AAVE或复合使用代理合同之类的协议,可以允许社区驱动的升级而不会破坏用户交互。
- 错误修复而无需重新部署:如果在部署的合同中发现了一个关键的错误,则开发人员可以在新实施中修复逻辑并升级代理而不会影响用户余额或合同地址。
- 多合同系统:在多个合同一起工作的系统中,代理合同可以确保所有组件都可以以协调的方式升级。
这些用例证明了在现实世界区块链应用中代理合同的实际价值。
常见问题
问:是否可以将代理合同用于所有类型的智能合约?答:虽然代理合同广泛适用,但它们可能不适合不需要升级性的无权或不可变的合同。例如,像ERC-20或ERC-721这样的令牌标准通常受益于代理模式,但是某些协议更喜欢信任最小化的不变性。
问:如何有效地测试代理合同?答:测试代理合同涉及验证代理和实施逻辑。使用Hardhat或Foundry等测试框架,并确保所有互动都通过代理进行。嘲笑代理环境和检查存储完整性至关重要。
问:代理合同是否与所有EVM兼容区块链兼容?答:是的,代理合同依赖于EVM功能等EVM功能,这些功能可在所有兼容EVM兼容的链中可用,包括Binance Smart Chain , Polygon和inotum 。但是,工具或合同验证的差异可能会影响部署工作流程。
问:使用代理合同的气体影响是什么?答:由于额外的授权步骤,代理合同增加了少量的开销。但是,此开销通常很少,并且不会显着影响用户体验。可以通过优化代理设计并最大程度地减少冗余呼叫来节省汽油。
免责声明:info@kdj.com
所提供的信息并非交易建议。根据本文提供的信息进行的任何投资,kdj.com不承担任何责任。加密货币具有高波动性,强烈建议您深入研究后,谨慎投资!
如您认为本网站上使用的内容侵犯了您的版权,请立即联系我们(info@kdj.com),我们将及时删除。
- 随着 Avalanche Chain 拥抱代币化基金和机构增长,AVAX 价格飙升
- 2026-09-18 16:50:01
- 日本央行加息:日元、比特币和套利交易的平仓
- 2026-09-18 12:50:01
- XRP Ledger 通过重大更新拥抱原生借贷和交易捆绑
- 2026-09-18 12:30:01
- CFTC 为被动加密货币交易软件提供经纪商注册减免,标志着更广泛的监管转变
- 2026-09-18 12:55:01
- 美国收紧控制:在海事支付调查中针对伊朗加密货币交易所 BitBank 实施新制裁
- 2026-09-18 12:45:01
- 美国财政部制裁伊朗交易所 BitBank 超过 10 亿美元的加密货币流动:纽约观点
- 2026-09-18 12:55:01
相关百科
如何查看SOL期货成交量和持仓量?
2026-09-14 00:40:03
访问 SOL 期货市场数据1. 前往SOL永续合约或季度合约上市的官方交易平台,例如Bybit、OKX或Bitget。 2. 找到SOL/USDT或SOL/USD期货交易对页面,切换到“合约概览”或“市场数据”选项卡。 3. 识别标记为“交易量(24 小时)”和“未平仓合约”的实时字段,这两个字段通...
如何查看XRP期货交易量和持仓量?
2026-09-15 05:00:12
访问实时 XRP 期货数据1. 访问列出 XRP 永续合约和季度期货合约的主要衍生品交易所,包括 Binance、Bybit、OKX 和 Bitget。 2. 导航至XRP/USDT或XRP/USD交易对页面,找到实时显示交易量和持仓量数据的市场深度面板。 3. 确认显示的持仓量是否反映了多头/空头...
如何查看DOGE期货成交量及持仓量?
2026-09-12 08:39:38
了解 DOGE 期货交易量1. 期货交易量是指在特定时间范围内交易的DOGE份期货合约的总数,通常以每天或每小时计算。 2. 高成交量通常表明市场参与度较高,并且可以表明潜在的趋势延续或逆转,具体取决于价格走势背景。 3. 交易者监控交易量峰值以及突破或崩溃,以评估合法性——交易量上升支持的持续价格...
如何查看ETH期货交易量和持仓量?
2026-09-16 19:00:18
访问实时 ETH 期货数据1. Binance、Bybit和OKX等主要中心化交易所提供实时仪表板,显示ETH永续和季度期货交易量和持仓量。这些指标每 5-10 秒更新一次,无需登录其公开市场页面即可访问。 2. Glassnode、CryptoQuant 和 Coinglass 等链上分析平台可以...
如何查看BTC期货交易量和持仓量?
2026-09-12 15:19:55
BTC期货指标的数据源1. CoinGlass API v4 提供 30 多个交易所的实时融资利率、清算热图和精细的未平仓合约细分。 2. 币安期货 API 提供对买卖深度、合约特定交易量历史记录和保证金比率快照的本机访问。 3. OKX 数据门户提供可下载的 CSV 档案,其中包含每日结算价格、按...
如何看懂DOGEUSDT永续合约图表?
2026-09-11 19:19:48
了解 DOGEUSDT 永续图表上的价格走势1. 蜡烛图的形成揭示了直接的市场情绪——绿色蜡烛表示买盘占主导地位,而红色蜡烛则反映该区间内的抛售压力。 2. 实体上方和下方的灯芯信号拒绝更高或更低的价格;在波动较大的模因币市场中,长上影线通常先于短期反转。 3. 接近关键水平的连续小实体蜡烛表明在突...
如何查看SOL期货成交量和持仓量?
2026-09-14 00:40:03
访问 SOL 期货市场数据1. 前往SOL永续合约或季度合约上市的官方交易平台,例如Bybit、OKX或Bitget。 2. 找到SOL/USDT或SOL/USD期货交易对页面,切换到“合约概览”或“市场数据”选项卡。 3. 识别标记为“交易量(24 小时)”和“未平仓合约”的实时字段,这两个字段通...
如何查看XRP期货交易量和持仓量?
2026-09-15 05:00:12
访问实时 XRP 期货数据1. 访问列出 XRP 永续合约和季度期货合约的主要衍生品交易所,包括 Binance、Bybit、OKX 和 Bitget。 2. 导航至XRP/USDT或XRP/USD交易对页面,找到实时显示交易量和持仓量数据的市场深度面板。 3. 确认显示的持仓量是否反映了多头/空头...
如何查看DOGE期货成交量及持仓量?
2026-09-12 08:39:38
了解 DOGE 期货交易量1. 期货交易量是指在特定时间范围内交易的DOGE份期货合约的总数,通常以每天或每小时计算。 2. 高成交量通常表明市场参与度较高,并且可以表明潜在的趋势延续或逆转,具体取决于价格走势背景。 3. 交易者监控交易量峰值以及突破或崩溃,以评估合法性——交易量上升支持的持续价格...
如何查看ETH期货交易量和持仓量?
2026-09-16 19:00:18
访问实时 ETH 期货数据1. Binance、Bybit和OKX等主要中心化交易所提供实时仪表板,显示ETH永续和季度期货交易量和持仓量。这些指标每 5-10 秒更新一次,无需登录其公开市场页面即可访问。 2. Glassnode、CryptoQuant 和 Coinglass 等链上分析平台可以...
如何查看BTC期货交易量和持仓量?
2026-09-12 15:19:55
BTC期货指标的数据源1. CoinGlass API v4 提供 30 多个交易所的实时融资利率、清算热图和精细的未平仓合约细分。 2. 币安期货 API 提供对买卖深度、合约特定交易量历史记录和保证金比率快照的本机访问。 3. OKX 数据门户提供可下载的 CSV 档案,其中包含每日结算价格、按...
如何看懂DOGEUSDT永续合约图表?
2026-09-11 19:19:48
了解 DOGEUSDT 永续图表上的价格走势1. 蜡烛图的形成揭示了直接的市场情绪——绿色蜡烛表示买盘占主导地位,而红色蜡烛则反映该区间内的抛售压力。 2. 实体上方和下方的灯芯信号拒绝更高或更低的价格;在波动较大的模因币市场中,长上影线通常先于短期反转。 3. 接近关键水平的连续小实体蜡烛表明在突...
查看所有文章














