Capitalisation boursière: $2.5665T -2.09%
Volume(24h): $64.1207B 43.32%
Indice de peur et de cupidité:

35 - Peur

  • Capitalisation boursière: $2.5665T -2.09%
  • Volume(24h): $64.1207B 43.32%
  • Indice de peur et de cupidité:
  • Capitalisation boursière: $2.5665T -2.09%
Cryptos
Les sujets
Cryptospedia
Nouvelles
Cryptosopique
Vidéos
Top Cryptospedia

Choisir la langue

Choisir la langue

Sélectionnez la devise

Cryptos
Les sujets
Cryptospedia
Nouvelles
Cryptosopique
Vidéos

Qu'est-ce qu'un contrat de proxy minimal (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.

Jul 15, 2025 at 05:00 am

Comprendre le contrat de proxy minimal

Un contrat de proxy minimal est un contrat intelligent léger conçu pour transmettre tous les appels vers un autre contrat tout en maintenant des frais généraux minimaux. Il joue un rôle crucial dans les systèmes basés sur Ethereum, en particulier lors du déploiement de plusieurs instances d'un contrat avec une logique partagée. Le concept a été formalisé via EIP-1167 , qui décrit une norme pour créer des clones de contrats existants en utilisant une quantité minimale de bytecode.

L'idée principale derrière ce mécanisme est la réutilisation du code . Au lieu de déployer un nouveau contrat avec une logique identique à chaque fois, les développeurs peuvent déployer un proxy qui délègue tous les appels de fonction à un contrat de mise en œuvre préexistant. Cela réduit considérablement les coûts de déploiement et simplifie les mises à niveau.

Concept clé: un contrat de proxy minimal ne contient que le code nécessaire pour rediriger l'exécution vers un contrat cible.

Comment fonctionne EIP-1167?

L'EIP-1167 exploite l'opcode DelegateCall dans la solidité pour réaliser sa fonctionnalité. DelegateCall permet à un contrat d'exécuter du code à partir d'un autre contrat tout en préservant le contexte (tel que MSG.Sender et le stockage) du contrat d'appel. Dans le cas d'un indicateur minimal, cela signifie que le proxy transmet tous les appels entrants vers un contrat de mise en œuvre sans modifier le contexte de l'appelant.

Voici comment cela fonctionne:

  • Le contrat de proxy contient un seul emplacement de stockage qui contient l'adresse du contrat de mise en œuvre.
  • Lorsqu'un utilisateur interagit avec le proxy, la fonction de secours est déclenchée.
  • Cette fonction de secours utilise DelegateCall pour transmettre l'appel à l'adresse d'implémentation stockée.

En raison de sa simplicité, le contrat de proxy nécessite très peu de gaz pour le déploiement - souvent moins de 50 000 gaz. Cette efficacité le rend idéal pour les scénarios où de nombreux contrats similaires doivent être déployés rapidement et à moindre coût.

Structure d'un contrat de proxy minimal

Un contrat de proxy minimal suit généralement une structure stricte définie par l'EIP-1167. Voici ce que cela comprend:

  • Une variable d'adresse constante pointant vers le contrat de mise en œuvre.
  • Une fonction de secours qui effectue un délégation de cette adresse d'implémentation.
  • Aucun constructeur ou variable d'état au-delà de l'adresse de mise en œuvre.

Cette conception garantit que le proxy ne stocke aucune logique lui-même mais agit simplement comme un conduit pour le contrat de mise en œuvre. Vous trouverez ci-dessous une version simplifiée d'un tel contrat écrit en solidité:

 pragma solidity ^0.8.0; contrat minimalproxy {


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) } } }

}

Remarque importante: L'utilisation de l'assemblage en ligne dans la fonction de secours est essentielle pour maintenir le proxy minimal et efficace.

Des cas d'utilisation pour un minimum de contrats de proxy

Les contrats de proxy minimaux sont largement utilisés dans diverses applications et protocoles décentralisés en raison de leur efficacité et de leur flexibilité. Certains des cas d'utilisation les plus courants comprennent:

  • Usines de jeton: création de plusieurs jetons ERC-20 ou ERC-721 à partir d'un seul contrat de mise en œuvre.
  • Contrats de mise à niveau: servant de couche de base pour les modèles de mise à niveau comme le proxy transparent ou les UUP.
  • Déploiements économes en gaz: Réduction du coût de déploiement lors de l'instantifage des centaines ou des milliers de contrats.
  • Modèles de contrat: offrant des modèles standardisés pour un comportement prévisible sur plusieurs déploiements.

Chacun de ces cas d'utilisation bénéficie de l'empreinte de déploiement réduite et de la capacité de maintenir une logique cohérente sur plusieurs procurations.

Différences entre le proxy minimal et les autres modèles de proxy

Il existe plusieurs modèles de proxy dans Ethereum, notamment des proxys transparents, des UUP (standard proxy universel modulable) et des procurations de balises. Chacun a ses propres compromis en termes de complexité, de mise à niveau et de coût du gaz.

La principale différence entre un indicateur indirect minimal et d'autres types de proxy réside dans la fonctionnalité et l'extensibilité :

  • Les indicateurs minimaux ne prennent pas en charge les mises à niveau, sauf s'ils sont associés à une infrastructure supplémentaire.
  • Les procurations transparentes incluent la logique d'administration et un registre de proxy, l'augmentation de l'utilisation du gaz et de la complexité.
  • Les indicateurs UUPS permettent des mises à niveau autonomes via le contrat de mise en œuvre.

Les indicateurs minimaux sont les mieux adaptés aux scénarios où la mise en œuvre restera statique après le déploiement ou où les mises à niveau sont gérées en externe.

Considérations de sécurité et meilleures pratiques

Bien que les contrats de proxy minimaux soient simples, ils ne sont pas sans risques. Les développeurs doivent suivre les meilleures pratiques pour assurer une utilisation sécurisée:

  • Assurer l'immuabilité de la mise en œuvre: une fois déployé, l'adresse de mise en œuvre ne doit pas changer à moins que, explicitement prévue et sécurisée.
  • Évitez les conflits de stockage: Étant donné que le contexte de stockage du proxy et de la mise en œuvre du partage, une planification minutieuse est nécessaire pour prolonger le proxy plus tard.
  • Vérifiez Bytecode: Vérifiez toujours le bytecode du proxy et du contrat de mise en œuvre pour prévenir les modifications malveillantes.
  • Testez soigneusement: utilisez des outils comme Hardhat ou Foundry pour simuler les interactions et tester les cas de bord avant le déploiement du MainNet.

Conseil critique: ne supposez jamais qu'un contrat proxy hérite de la sécurité de la mise en œuvre - il doit être vérifié séparément.

Questions fréquemment posées

Q: Puis-je mettre à niveau un contrat de proxy minimal? Bien que les proxys minimaux ne comprennent pas eux-mêmes la logique de mise à niveau, vous pouvez créer un système améliorable en les combinant avec d'autres normes comme les UUP ou en utilisant un contrôleur externe pour gérer les adresses d'implémentation.

Q: Combien de moins cher déploie un indicateur minimal par rapport à un contrat complet? Le déploiement d'un proxy minimal coûte généralement environ 20 000 à 50 000 gaz, tandis que le déploiement d'un contrat complet peut dépasser 2 millions de gaz selon la complexité.

Q: Existe-t-il un moyen de récupérer l'adresse d'implémentation à partir d'un proxy déployé? Oui, l'adresse de mise en œuvre est généralement stockée dans un emplacement de stockage spécifique (souvent l'emplacement 0). Vous pouvez le lire à l'aide d'outils comme eth_getStorageAt ou en inspectant le code de création de contrat.

Q: Des proxys minimaux sont-ils compatibles avec toutes les versions de solidité? Ils fonctionnent bien avec Solidity 0.5.0 et plus. Cependant, pour une compatibilité optimale et des économies de gaz, l'utilisation de la solidité 0,8.x ou plus récente est recommandée.

Clause de non-responsabilité:info@kdj.com

Les informations fournies ne constituent pas des conseils commerciaux. kdj.com n’assume aucune responsabilité pour les investissements effectués sur la base des informations fournies dans cet article. Les crypto-monnaies sont très volatiles et il est fortement recommandé d’investir avec prudence après une recherche approfondie!

Si vous pensez que le contenu utilisé sur ce site Web porte atteinte à vos droits d’auteur, veuillez nous contacter immédiatement (info@kdj.com) et nous le supprimerons dans les plus brefs délais.

Connaissances connexes

Comment calculer le coût total de détention d'une position à terme BTCUSDT

Comment calculer le coût total de détention d'une position à terme BTCUSDT

Oct 26,2026 at 04:06am

Composantes du coût total des positions à terme BTCUSDT 1. Le coût total de détention d’une position à terme BTCUSDT comprend à la fois les frais expl...

Comment surveiller ensemble les taux de financement XRPUSDT et les intérêts ouverts

Comment surveiller ensemble les taux de financement XRPUSDT et les intérêts ouverts

Oct 20,2026 at 06:39pm

Mécanique du taux de financement sur les contrats perpétuels XRPUSDT 1. Les taux de financement sur les swaps perpétuels XRPUSDT sont calculés toutes ...

Comment définir un stop-loss au seuil de rentabilité sur les contrats à terme perpétuels SOLUSDT

Comment définir un stop-loss au seuil de rentabilité sur les contrats à terme perpétuels SOLUSDT

Oct 23,2026 at 09:34am

Comprendre les mécanismes de stop-loss au seuil de rentabilité 1. Un stop-loss au seuil de rentabilité est un ordre dynamique qui s'ajuste à la ha...

Comment utiliser le calculateur Binance Futures pour les transactions ETHUSDT

Comment utiliser le calculateur Binance Futures pour les transactions ETHUSDT

Oct 21,2026 at 02:00am

Comprendre l'interface du calculateur Binance Futures 1. La calculatrice est intégrée directement dans l'interface de trading Binance Futures,...

Comment vérifier le prix BTCUSDT avant une liquidation à terme

Comment vérifier le prix BTCUSDT avant une liquidation à terme

Oct 26,2026 at 12:20pm

Comprendre le prix Mark dans les contrats à terme BTCUSDT 1. Le prix mark est une valeur calculée utilisée par les bourses pour éviter les liquidation...

Comment ajuster l'effet de levier sur un contrat perpétuel TRUMPUSDT

Comment ajuster l'effet de levier sur un contrat perpétuel TRUMPUSDT

Oct 30,2026 at 10:19pm

Comprendre la mécanique des contrats perpétuels TRUMPUSDT 1. TRUMPUSDT est un contrat à terme perpétuel thématique coté sur plusieurs bourses de produ...

Comment calculer le coût total de détention d'une position à terme BTCUSDT

Comment calculer le coût total de détention d'une position à terme BTCUSDT

Oct 26,2026 at 04:06am

Composantes du coût total des positions à terme BTCUSDT 1. Le coût total de détention d’une position à terme BTCUSDT comprend à la fois les frais expl...

Comment surveiller ensemble les taux de financement XRPUSDT et les intérêts ouverts

Comment surveiller ensemble les taux de financement XRPUSDT et les intérêts ouverts

Oct 20,2026 at 06:39pm

Mécanique du taux de financement sur les contrats perpétuels XRPUSDT 1. Les taux de financement sur les swaps perpétuels XRPUSDT sont calculés toutes ...

Comment définir un stop-loss au seuil de rentabilité sur les contrats à terme perpétuels SOLUSDT

Comment définir un stop-loss au seuil de rentabilité sur les contrats à terme perpétuels SOLUSDT

Oct 23,2026 at 09:34am

Comprendre les mécanismes de stop-loss au seuil de rentabilité 1. Un stop-loss au seuil de rentabilité est un ordre dynamique qui s'ajuste à la ha...

Comment utiliser le calculateur Binance Futures pour les transactions ETHUSDT

Comment utiliser le calculateur Binance Futures pour les transactions ETHUSDT

Oct 21,2026 at 02:00am

Comprendre l'interface du calculateur Binance Futures 1. La calculatrice est intégrée directement dans l'interface de trading Binance Futures,...

Comment vérifier le prix BTCUSDT avant une liquidation à terme

Comment vérifier le prix BTCUSDT avant une liquidation à terme

Oct 26,2026 at 12:20pm

Comprendre le prix Mark dans les contrats à terme BTCUSDT 1. Le prix mark est une valeur calculée utilisée par les bourses pour éviter les liquidation...

Comment ajuster l'effet de levier sur un contrat perpétuel TRUMPUSDT

Comment ajuster l'effet de levier sur un contrat perpétuel TRUMPUSDT

Oct 30,2026 at 10:19pm

Comprendre la mécanique des contrats perpétuels TRUMPUSDT 1. TRUMPUSDT est un contrat à terme perpétuel thématique coté sur plusieurs bourses de produ...

Voir tous les articles

User not found or password invalid

Your input is correct