市值: $3.9136T 0.630%
成交额(24h): $202.872B 13.680%
恐惧与贪婪指数:

67 - 贪婪

  • 市值: $3.9136T 0.630%
  • 成交额(24h): $202.872B 13.680%
  • 恐惧与贪婪指数:
  • 市值: $3.9136T 0.630%
加密货币
话题
百科
资讯
加密话题
视频
热门加密百科

选择语种

选择语种

选择货币

加密货币
话题
百科
资讯
加密话题
视频

什么是代理合同?

代理合同通过分开逻辑和存储来实现可升级的智能合约,从而使开发人员可以在不更改合同地址或丢失数据的情况下更新功能。

2025/07/21 07:50

了解代理合同的概念

代理合同是在以太坊等区块链平台上使用的智能合同开发中常用的设计模式。它的主要目的是将合同的逻辑与其存储区分开。这种分离允许开发人员在不更改合同地址或丢失代理本身中存储的数据的情况下升级或修改合同的逻辑。

该代理合同充当中介机构,该中介机构将呼叫另一个合同(通常称为实施合同) 。代理持有所有状态变量,而实施合同包含功能业务逻辑。这种架构模式对于维持分散应用(DAPP)的长期灵活性至关重要。

代理合同的运作方式

代理合同的机制在很大程度上取决于EVM(以太坊虚拟机)中的授权特征。当用户与代理合同进行互动时,代理使用授权将执行转发到当前实施合同。这样可以确保代码在代理的上下文中运行,这意味着存储,地址和平衡属于代理合同。

这是其工作原理的细分:

  • 代理合同包含对当前实施地址的引用。
  • 当在代理上调用函数时,它使用DelegateCall在实现合同的上下文中执行该函数。
  • 执行过程中所做的所有更改都会影响代理的存储,而不是实施合同。

此方法可以升级性能,而无需重新部署整个合同系统,这对于维持用户信任和合同连续性至关重要。

不同类型的代理合同

有几种类型的代理合同,每种合同都有特定的用例和实施详细信息:

  • 透明代理:此类类型的路由不同,取决于它们是来自管理员还是常规用户。管理员呼叫将转发给代理管理合同,而常规电话转到逻辑合同。
  • UUP(通用升级代理标准) :在此模型中,升级功能是在逻辑合同本身中实现的。这使用相同的标准在所有代理中都实施了一致的升级机制。
  • BEACON代理:该代理人没有直接存储实施地址,而是动态提供当前实施地址的信标合同。这允许同时进行多个代理的质量升级。

每种代理类型在安全性升级性复杂性方面都有其优点和权衡。

部署代理合同的步骤

部署代理合同涉及多个步骤。这是一个详细的演练:

  • 部署实施合同:其中包含实际的业务逻辑。如果使用某些代理类型(例如UUP),则不应具有构造函数,因为这可能会干扰未来的升级。
  • 部署代理合同:在部署期间,您指定实施合同的地址。一些代理合同还需要设置管理员地址。
  • 与代理进行互动:所有用户交互应通过代理。使用TruffleHardhatRemix等工具与代理进行交互,并确保使用正确的ABI。
  • 升级实现(如果需要) :当准备就绪逻辑的新版本时,部署新实施合同并更新代理对其的参考。此步骤取决于所使用的代理类型。

这些步骤中的每一个都必须仔细执行,以避免资金或安全漏洞的损失

代理合同的安全考虑

代理合同引入了开发人员必须解决的新安全挑战

  • 存储碰撞:如果实现合同和代理未仔细设计,则存储变量可能会重叠,从而导致意想不到的数据损坏。
  • 初始化问题:实施合同中的构造函数如果不替换为初始化功能,可能会导致问题。必须保护这些功能,以防止部署后重新启动。
  • 访问控制:必须严格控制升级合同的能力。管理密钥管理不善会导致恶意升级
  • 测试复杂性:代理合同增加了测试的复杂性,要求开发人员对代理和实施合同进行彻底测试。

使用诸如Openzeppelin之类的框架的众多审计模式可以减轻许多此类风险。

代理合同的用例

代理合同被广泛用于各种分散融资(FEFI)协议和DAPP,其中长期维护至关重要。一些值得注意的用例包括:

  • 治理控制的升级:诸如AAVE复合使用代理合同之类的协议,可以允许社区驱动的升级而不会破坏用户交互。
  • 错误修复而无需重新部署:如果在部署的合同中发现了一个关键的错误,则开发人员可以在新实施中修复逻辑并升级代理而不会影响用户余额或合同地址。
  • 多合同系统:在多个合同一起工作的系统中,代理合同可以确保所有组件都可以以协调的方式升级。

这些用例证明了在现实世界区块链应用中代理合同的实际价值

常见问题

问:是否可以将代理合同用于所有类型的智能合约?

答:虽然代理合同广泛适用,但它们可能不适合不需要升级性的无权不可变的合同。例如,像ERC-20ERC-721这样的令牌标准通常受益于代理模式,但是某些协议更喜欢信任最小化的不变性。

问:如何有效地测试代理合同?

答:测试代理合同涉及验证代理和实施逻辑。使用HardhatFoundry等测试框架,并确保所有互动都通过代理进行。嘲笑代理环境和检查存储完整性至关重要。

问:代理合同是否与所有EVM兼容区块链兼容?

答:是的,代理合同依赖于EVM功能等EVM功能,这些功能可在所有兼容EVM兼容的链中可用,包括Binance Smart ChainPolygoninotum 。但是,工具或合同验证的差异可能会影响部署工作流程。

问:使用代理合同的气体影响是什么?

答:由于额外的授权步骤,代理合同增加了少量的开销。但是,此开销通常很少,并且不会显着影响用户体验。可以通过优化代理设计并最大程度地减少冗余呼叫来节省汽油。

免责声明:info@kdj.com

所提供的信息并非交易建议。根据本文提供的信息进行的任何投资,kdj.com不承担任何责任。加密货币具有高波动性,强烈建议您深入研究后,谨慎投资!

如您认为本网站上使用的内容侵犯了您的版权,请立即联系我们(info@kdj.com),我们将及时删除。

相关百科

库康期货限制国家

库康期货限制国家

2025-07-22 21:00:55

了解Kucoin期货和地理限制Kucoin Futures是一个流行的平台,用于在Bitcoin,以太坊等加密货币上交易永久和交付期货合约。但是,并非所有全球用户都可以访问这些服务。该平台根据各个司法管辖区的法规依从性执行地理限制。这些限制不是任意的,它们是由禁止或严格规范某些国家的衍生品交易的当地...

如何为Kucoin Futures设定停止损失?

如何为Kucoin Futures设定停止损失?

2025-07-22 20:01:14

了解Kucoin期货中的停止损失停止损失是一种风险管理工具,当市场超过预定义的价格超过您时,它会自动关闭位置。在Kucoin Futures上,此功能有助于交易者限制潜在的损失,而无需不断监视市场。当期货合约的价格达到您指定的停止损失水平时,系统会触发市场或限制订单以退出交易。这对于价格可能会迅速转...

Kraken Futures的交易时间是多少?

Kraken Futures的交易时间是多少?

2025-07-22 20:49:34

了解Kraken Futures交易时间Kraken Futures是公认的加密货币交易所Kraken的产品,它为用户提供了在各种数字资产上交易永久和季度期货合约的能力。与传统金融市场不同, Kraken的加密货币期货运行近24/7 ,与加密的全球和分散性质保持一致。但是,必须注意的是,虽然全天交易...

如何在Kraken Pro上绘制期货?

如何在Kraken Pro上绘制期货?

2025-07-22 19:42:41

了解Kraken Pro Futures接口在研究图表之前,必须认识到Kraken Pro如何结构其未来交易环境。当您登录到Kraken Pro时,请导航到位于仪表板顶部的“期货”选项卡。本节与现货交易不同,是专门为永久和季度期货合约设计的。进入室内后,选择要分析的期货对,例如BTC/USD或ETH...

Kraken Futures安全吗?

Kraken Futures安全吗?

2025-07-22 20:07:53

了解Kraken Futures及其监管框架由著名的加密货币交易所Kraken运营的Kraken Futures是一个旨在交易数字资产上永久期货合约的平台。用户所面临的主要问题之一是该平台是否在合规且安全的监管环境中运行。 Kraken在多个司法管辖区持有许可,包括在美国与金融犯罪执法网络(FINC...

如何在Kraken上打开一个简短的位置?

如何在Kraken上打开一个简短的位置?

2025-07-22 17:00:44

了解加密货币中的短职位短期职位使交易者可以从资产价格下降中获利。在Kraken上,这主要是通过保证金交易或期货合约来完成的。当您打开短时间时,您本质上是在借用Kraken,立即以当前市场价格出售的资产(例如Bitcoin或以太坊),并计划以较低的价格以较低的价格购买,以返回借入的金额。售价和购买价格...

库康期货限制国家

库康期货限制国家

2025-07-22 21:00:55

了解Kucoin期货和地理限制Kucoin Futures是一个流行的平台,用于在Bitcoin,以太坊等加密货币上交易永久和交付期货合约。但是,并非所有全球用户都可以访问这些服务。该平台根据各个司法管辖区的法规依从性执行地理限制。这些限制不是任意的,它们是由禁止或严格规范某些国家的衍生品交易的当地...

如何为Kucoin Futures设定停止损失?

如何为Kucoin Futures设定停止损失?

2025-07-22 20:01:14

了解Kucoin期货中的停止损失停止损失是一种风险管理工具,当市场超过预定义的价格超过您时,它会自动关闭位置。在Kucoin Futures上,此功能有助于交易者限制潜在的损失,而无需不断监视市场。当期货合约的价格达到您指定的停止损失水平时,系统会触发市场或限制订单以退出交易。这对于价格可能会迅速转...

Kraken Futures的交易时间是多少?

Kraken Futures的交易时间是多少?

2025-07-22 20:49:34

了解Kraken Futures交易时间Kraken Futures是公认的加密货币交易所Kraken的产品,它为用户提供了在各种数字资产上交易永久和季度期货合约的能力。与传统金融市场不同, Kraken的加密货币期货运行近24/7 ,与加密的全球和分散性质保持一致。但是,必须注意的是,虽然全天交易...

如何在Kraken Pro上绘制期货?

如何在Kraken Pro上绘制期货?

2025-07-22 19:42:41

了解Kraken Pro Futures接口在研究图表之前,必须认识到Kraken Pro如何结构其未来交易环境。当您登录到Kraken Pro时,请导航到位于仪表板顶部的“期货”选项卡。本节与现货交易不同,是专门为永久和季度期货合约设计的。进入室内后,选择要分析的期货对,例如BTC/USD或ETH...

Kraken Futures安全吗?

Kraken Futures安全吗?

2025-07-22 20:07:53

了解Kraken Futures及其监管框架由著名的加密货币交易所Kraken运营的Kraken Futures是一个旨在交易数字资产上永久期货合约的平台。用户所面临的主要问题之一是该平台是否在合规且安全的监管环境中运行。 Kraken在多个司法管辖区持有许可,包括在美国与金融犯罪执法网络(FINC...

如何在Kraken上打开一个简短的位置?

如何在Kraken上打开一个简短的位置?

2025-07-22 17:00:44

了解加密货币中的短职位短期职位使交易者可以从资产价格下降中获利。在Kraken上,这主要是通过保证金交易或期货合约来完成的。当您打开短时间时,您本质上是在借用Kraken,立即以当前市场价格出售的资产(例如Bitcoin或以太坊),并计划以较低的价格以较低的价格购买,以返回借入的金额。售价和购买价格...

查看所有文章

User not found or password invalid

Your input is correct