-
bitcoin $76624.373304 USD
-1.79% -
ethereum $2250.136487 USD
-1.36% -
tether $0.998277 USD
-0.04% -
bnb $691.737526 USD
-2.23% -
xrp $1.250415 USD
0.10% -
usd-coin $0.999636 USD
-0.01% -
solana $91.769993 USD
-2.60% -
tron $0.320718 USD
1.77% -
hyperliquid $83.540560 USD
-2.42% -
zcash $1129.534445 USD
-10.74% -
dogecoin $0.073771 USD
-2.08% -
monero $615.670132 USD
1.37% -
unus-sed-leo $9.294663 USD
-1.19% -
chainlink $11.068406 USD
-2.21% -
cardano $0.186724 USD
-2.00%
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.
-
ZRO Échangez maintenant$1.86
7.67%
-
LIT Échangez maintenant$3.32
7.22%
-
PUMP Échangez maintenant$0.004264
6.73%
-
PIEVERSE Échangez maintenant$1.16
6.27%
-
ZEC Échangez maintenant$1207.51
4.53%
-
VVV Échangez maintenant$22.39
4.31%
- Midterms américains, marchés de prédiction et courses aux cryptomonnaies : un pari à enjeux élevés sur l'avenir de Washington
- 2026-11-04 04:30:22
- Actifs numériques, finance mondiale et IA : franchir la prochaine frontière à DavosWeb3 et au-delà
- 2026-11-04 04:30:22
- Le prix de l’Avalanche AVAX baisse au milieu de problèmes plus larges du marché ; L’intérêt institutionnel reste fort
- 2026-11-03 12:35:02
- Pourquoi le prix quantitatif est-il en baisse ? Une plongée en profondeur dans la récente glissade de QNT au milieu de la nervosité du marché
- 2026-11-03 12:55:01
- Analyse du graphique des prix XRP d'Egrag Crypto : êtes-vous prêt pour la « plus grande vague 3 » ?
- 2026-11-03 01:15:01
- La société mère de Bed Bath & Beyond soutient l'accord SPAC d'une valorisation de 350 millions de dollars de tZERO : ce que les New-Yorkais doivent savoir
- 2026-11-03 01:15:01
Connaissances connexes
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
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
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
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
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
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
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
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
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
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
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
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














