-
bitcoin $81146.637119 USD
4.42% -
ethereum $2629.002357 USD
5.43% -
tether $0.999603 USD
0.05% -
bnb $762.026478 USD
0.54% -
xrp $1.421069 USD
7.12% -
usd-coin $0.999888 USD
0.00% -
solana $112.034023 USD
5.89% -
tron $0.337704 USD
0.49% -
zcash $1570.017975 USD
5.10% -
hyperliquid $93.163180 USD
6.09% -
dogecoin $0.087182 USD
3.38% -
monero $568.185286 USD
6.74% -
chainlink $12.335175 USD
4.41% -
cardano $0.223261 USD
4.32% -
unus-sed-leo $8.875972 USD
-0.19%
什么是最小代理合同(EIP-1167)?
A minimal proxy contract efficiently forwards calls to an implementation contract using delegatecall, enabling cost-effective deployments and shared logic across multiple instances.
2025/07/15 05:00
了解最小代理合同
最少的代理合同是一项轻巧的智能合同,旨在将所有呼叫转发给另一个合同,同时保持最小的开销。它在基于以太坊的系统中起着至关重要的作用,尤其是在用共享逻辑部署合同的多个实例时。该概念是通过EIP-1167形式化的,该概念概述了使用最少的字节码创建现有合同克隆的标准。
这种机制背后的核心思想是代码重用。开发人员可以部署代理人将所有功能调用委派给现有的实施合同,而不是每次都使用相同的逻辑部署新合同,而是可以部署一个代理。这大大降低了部署成本并简化了升级。
关键概念:最小代理合同仅包含将执行重定向到目标合同的必要代码。
EIP-1167如何工作?
EIP-1167利用固定性以实现其功能。 VelegateCall允许一份合同从另一个合同中执行代码,同时保留呼叫合同的上下文(例如msg.sender和Storage)。在最少的代理人的情况下,这意味着代理人在不更改呼叫者上下文的情况下将所有传入的呼叫转发给实施合同。
这是其工作原理:
- 代理合同包含一个单个存储插槽,该存储插槽包含实施合同的地址。
- 当用户与代理进行交互时,触发了后备功能。
- 这个后备函数使用授权函数将呼叫转发到存储的实现地址。
由于其简单性,代理合同几乎不需要天然气才能部署,通常不到50,000天气。这种效率使其成为需要快速,便宜地部署许多类似合同的场景。
最小代理合同的结构
最小代理合同通常遵循EIP-1167定义的严格结构。它包括:
- 一个恒定的地址变量指向实施合同。
- 在该实现地址执行授权的后备功能。
- 没有超出实施地址的构造函数或状态变量。
该设计确保代理不会存储任何逻辑本身,而只是充当实施合同的渠道。以下是以坚固性书写的这种合同的简化版本:
pragma solidity ^0.8.0;合同最小值{address private immutable implementation; constructor(address _implementation) { implementation = _implementation; } fallback() external payable { address impl = implementation; assembly { let ptr := mload(0x40) calldatacopy(ptr, 0, calldatasize()) let result := delegatecall(gas(), impl, ptr, calldatasize(), 0, 0) let size := returndatasize() returndatacopy(ptr, 0, size) switch result case 0 { revert(ptr, size) } default { return(ptr, size) } } }}
重要说明:在后备功能中使用内联装配对于保持代理最小和高效至关重要。
最小代理合同的用例
由于其效率和灵活性,最小代理合同在各种分散应用和协议中广泛使用。一些最常见的用例包括:
- 令牌工厂:从单个实施合同中创建多个ERC-20或ERC-721令牌。
- 可升级合同:作为升级性模式(例如透明代理或UUP)的基础层。
- 高效部署:实例化数百或数千个合同时降低部署成本。
- 合同模板:提供标准化模板,用于多个部署的可预测行为。
这些用例中的每一个都受益于减少的部署足迹以及在多个代理之间保持一致逻辑的能力。
最小代理与其他代理模式之间的差异
以太坊中有几种代理模式,包括透明代理,UUP(通用升级代理标准)和信标代理。在复杂性,升级性和汽油成本方面,每个人都有自己的权衡。
最小代理和其他代理类型之间的关键区别在于功能和可扩展性:
- 除非与其他基础架构配对,否则最小代理不支持升级。
- 透明的代理包括管理逻辑和代理注册表,增加了气体使用和复杂性。
- UUPS代理允许通过实施合同进行独立的升级。
最小的代理最适合在部署后实施或外部处理升级后保持静态的方案。
安全考虑和最佳实践
尽管最少的代理合同很简单,但它们并非没有风险。开发人员应遵循最佳实践以确保安全使用:
- 确保实施不变性:部署后,除非明确打算和确保,否则实施地址不应更改。
- 避免存储冲突:由于代理和实施共享存储上下文,因此需要仔细计划,如果以后扩展代理。
- 验证字节码:始终验证代理和实施合同的字节码以防止恶意修改。
- 彻底测试:使用HardHat或Foundry之类的工具在MainNet部署前模拟相互作用和测试边缘案例。
关键提示:切勿假设代理合同从实施中继承安全性,必须单独审核。
常见问题
问:我可以升级最少的代理合同吗?虽然最小代理本身不包括升级逻辑,但您可以通过将它们与其他标准(例如UUP)相结合或使用外部控制器来管理实施地址来创建可升级的系统。
问:与完整合同相比,部署最少的代理人多少钱?部署最少的代理通常费用约为20,000-50,000天气,而部署完整合同的价格可能超过200万天然气,具体取决于复杂性。
问:有没有办法从部署的代理中检索实现地址?是的,实现地址通常存储在特定的存储插槽中(通常是插槽0)。您可以使用eth_getStorageAt或检查合同创建代码等工具阅读它。
问:最小的代理是否与所有固体版本兼容?它们与坚固0.5.0及以上的坚固性很好。但是,为了获得最佳的兼容性和节省的气体,建议使用0.8.x或更新。
免责声明:info@kdj.com
所提供的信息并非交易建议。根据本文提供的信息进行的任何投资,kdj.com不承担任何责任。加密货币具有高波动性,强烈建议您深入研究后,谨慎投资!
如您认为本网站上使用的内容侵犯了您的版权,请立即联系我们(info@kdj.com),我们将及时删除。
- Egrag Crypto 揭示 XRP 趋势:驾驭短期波动以获得长期收益
- 2026-09-19 16:40:02
- 香港前银行家因加密货币行贿 47 万美元被判入狱四年
- 2026-09-19 16:35:01
- XRP 价格预测:在不断变化的市场浪潮中驾驭波动并突破关键水平
- 2026-09-19 12:45:01
- Binance 新上市、SWIFT 17 家银行和 Pepeto 100x 入门:加密货币金融的下一波浪潮
- 2026-09-19 09:00:02
- 拉加德、币安和希腊策略:一场高风险的欧盟监管僵局
- 2026-09-19 08:55:01
- MemeToro 加密货币预售审查:公共代码旨在获得信任,但执行是 $MT 代币的关键
- 2026-09-19 08:35: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 档案,其中包含每日结算价格、按...
如何阅读SOLUSDT永续合约图表?
2026-09-19 14:19:47
了解 SOLUSDT 价格结构1. SOLUSDT 永续合约图表显示 Solana 原生代币相对于 Tether 报价的实时价格走势。每根蜡烛代表一个定义的时间间隔(例如 1 分钟、15 分钟或 1 天),并编码开盘价、最高价、最低价和收盘价。 2、上影线表示更高层的拒绝;下影线反映支撑区附近的买盘...
如何查看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 档案,其中包含每日结算价格、按...
如何阅读SOLUSDT永续合约图表?
2026-09-19 14:19:47
了解 SOLUSDT 价格结构1. SOLUSDT 永续合约图表显示 Solana 原生代币相对于 Tether 报价的实时价格走势。每根蜡烛代表一个定义的时间间隔(例如 1 分钟、15 分钟或 1 天),并编码开盘价、最高价、最低价和收盘价。 2、上影线表示更高层的拒绝;下影线反映支撑区附近的买盘...
查看所有文章














