-
Bitcoin
$119000
-0.50% -
Ethereum
$3639
-2.63% -
XRP
$3.203
-9.08% -
Tether USDt
$1.000
0.00% -
BNB
$783.1
-1.70% -
Solana
$190.2
-6.72% -
USDC
$0.0000
0.01% -
Dogecoin
$0.2431
-9.18% -
TRON
$0.3099
-2.67% -
Cardano
$0.8189
-7.78% -
Hyperliquid
$43.91
-3.06% -
Stellar
$0.4314
-8.24% -
Sui
$3.764
-5.50% -
Chainlink
$18.26
-6.99% -
Hedera
$0.2467
-9.48% -
Bitcoin Cash
$518.4
-1.11% -
Avalanche
$24.04
-6.25% -
Litecoin
$113.7
-6.18% -
UNUS SED LEO
$8.969
-0.17% -
Shiba Inu
$0.00001397
-8.58% -
Toncoin
$3.216
-2.86% -
Ethena USDe
$1.001
0.02% -
Polkadot
$4.147
-7.43% -
Uniswap
$10.26
-4.70% -
Monero
$315.8
-2.39% -
Bitget Token
$4.745
-2.25% -
Pepe
$0.00001285
-8.39% -
Dai
$1.000
0.02% -
Aave
$291.4
-5.28% -
Bittensor
$430.5
-4.20%
什么是代理合同?
代理合同通过分开逻辑和存储来实现可升级的智能合约,从而使开发人员可以在不更改合同地址或丢失数据的情况下更新功能。
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),我们将及时删除。
- XRP,Solana和机构采用:加密的新时代?
- 2025-07-24 11:10:12
- Dogecoin,Remittix和Crypto协议:数字融资的演变
- 2025-07-24 10:50:12
- Blockdag,Hedera和Stellar:为加密货币的未来绘制课程
- 2025-07-24 10:50:12
- BlockDag的无投资优势:它可以超过Cardano的价格吗?
- 2025-07-24 11:10:12
- 韩国的信用卡行业涵盖了Stablecoin法规:新时代?
- 2025-07-24 10:30:12
- 比特币,湿骨和机构动力:解码加密货币的2025轨迹
- 2025-07-24 11:15:12
相关百科

为什么我的Bitstamp期货位置被清算?
2025-07-23 11:08:15
了解Bitstamp上的未来清算BitStamp上的期货交易涉及借贷资金以打开杠杆头寸,从而扩大了潜在的利益和风险。当您的保证金余额低于所需的维护阈值时,BitStamp会启动清算过程以支付借入的金额。之所以发生这种情况,是因为交换充当贷方,如果您的职位价值对您不利,您发布的抵押品将不足以确保贷款。...

BitStamp是否提供倒数合同?
2025-07-23 13:28:52
了解加密货币交易中的倒数合同在加密货币衍生产品领域,逆同是一种特定类型的期货或永久合同,在基本的加密货币(例如BTC或ETH)中,而不是在Stablecoins或Fiat货币中,定居点和抵押品在基本的加密货币中被划分为。这意味着,当交易者在反向合同中开设职位时,他们的利润和损失(p&L)将在基本资产...

如何找到您的Bitstamp Futures贸易历史?
2025-07-23 08:07:56
了解Bitstamp和未来交易的可用性从Bitstamp服务产品的当前状态开始,至关重要的是要澄清BitStamp不支持期货交易。该平台主要用作现货加密货币交换,使用户可以以当前市场价格购买,出售和交易数字资产,例如Bitcoin,以太坊和其他主要加密货币。在BitStamp上没有期货合同意味着用户...

我可以在Bitstamp Futures上使用尾随的停靠站吗?
2025-07-23 13:42:32
了解加密货币交易中的尾声停止尾随的停止是一种动态的停止订单,随着资产的价格朝着有利的方向移动,可以自动调整。与标准停止损失固定在设定的价格水平上不同,落后的停止遵循指定百分比或美元金额。这使交易者可以锁定利润,同时仍提供价格波动的空间。当价格逆转并达到落后的停车水平时,该订单会触发市场销售(或购买,...

BitStamp合同的交易时间是多少?
2025-07-24 11:56:51
了解Bitstamp和合同交易的可用性BitStamp是最长的加密货币交易所之一,该交换成立于2011年,总部位于卢森堡。尽管BitStamp以其现货交易服务而被广泛认可(允许用户购买和销售[Bitcoin(BTC) ,以太坊(ETH)和Litecoin(LTC))的加密货币,但目前尚未提供期货或衍...

交易Bitstamp Futures时如何管理风险?
2025-07-24 12:29:13
了解Bitstamp Futures及其风险状况交易Bitstamp Futures涉及签订合同以在未来日期以预定的价格购买或出售指定数量的加密货币。尽管Bitstamp主要被称为现货交易所,但至关重要的是要澄清BitStamp目前没有提供期货交易。期货通常在以衍生物为中心的平台(例如binance...

为什么我的Bitstamp期货位置被清算?
2025-07-23 11:08:15
了解Bitstamp上的未来清算BitStamp上的期货交易涉及借贷资金以打开杠杆头寸,从而扩大了潜在的利益和风险。当您的保证金余额低于所需的维护阈值时,BitStamp会启动清算过程以支付借入的金额。之所以发生这种情况,是因为交换充当贷方,如果您的职位价值对您不利,您发布的抵押品将不足以确保贷款。...

BitStamp是否提供倒数合同?
2025-07-23 13:28:52
了解加密货币交易中的倒数合同在加密货币衍生产品领域,逆同是一种特定类型的期货或永久合同,在基本的加密货币(例如BTC或ETH)中,而不是在Stablecoins或Fiat货币中,定居点和抵押品在基本的加密货币中被划分为。这意味着,当交易者在反向合同中开设职位时,他们的利润和损失(p&L)将在基本资产...

如何找到您的Bitstamp Futures贸易历史?
2025-07-23 08:07:56
了解Bitstamp和未来交易的可用性从Bitstamp服务产品的当前状态开始,至关重要的是要澄清BitStamp不支持期货交易。该平台主要用作现货加密货币交换,使用户可以以当前市场价格购买,出售和交易数字资产,例如Bitcoin,以太坊和其他主要加密货币。在BitStamp上没有期货合同意味着用户...

我可以在Bitstamp Futures上使用尾随的停靠站吗?
2025-07-23 13:42:32
了解加密货币交易中的尾声停止尾随的停止是一种动态的停止订单,随着资产的价格朝着有利的方向移动,可以自动调整。与标准停止损失固定在设定的价格水平上不同,落后的停止遵循指定百分比或美元金额。这使交易者可以锁定利润,同时仍提供价格波动的空间。当价格逆转并达到落后的停车水平时,该订单会触发市场销售(或购买,...

BitStamp合同的交易时间是多少?
2025-07-24 11:56:51
了解Bitstamp和合同交易的可用性BitStamp是最长的加密货币交易所之一,该交换成立于2011年,总部位于卢森堡。尽管BitStamp以其现货交易服务而被广泛认可(允许用户购买和销售[Bitcoin(BTC) ,以太坊(ETH)和Litecoin(LTC))的加密货币,但目前尚未提供期货或衍...

交易Bitstamp Futures时如何管理风险?
2025-07-24 12:29:13
了解Bitstamp Futures及其风险状况交易Bitstamp Futures涉及签订合同以在未来日期以预定的价格购买或出售指定数量的加密货币。尽管Bitstamp主要被称为现货交易所,但至关重要的是要澄清BitStamp目前没有提供期货交易。期货通常在以衍生物为中心的平台(例如binance...
查看所有文章
