-
Bitcoin
$117,535.6430
-1.96% -
Ethereum
$2,950.1953
-2.08% -
XRP
$2.8259
-3.26% -
Tether USDt
$1.0000
-0.03% -
BNB
$677.3876
-2.33% -
Solana
$159.0712
-4.23% -
USDC
$0.9999
-0.01% -
Dogecoin
$0.1898
-6.45% -
TRON
$0.2998
-0.45% -
Cardano
$0.7138
-6.11% -
Hyperliquid
$47.0501
-4.76% -
Stellar
$0.4340
-13.55% -
Sui
$3.8647
0.72% -
Chainlink
$15.2575
-4.83% -
Hedera
$0.2302
-8.07% -
Bitcoin Cash
$489.6147
-3.99% -
Avalanche
$20.5523
-5.71% -
UNUS SED LEO
$9.0068
-0.27% -
Shiba Inu
$0.0...01286
-5.44% -
Toncoin
$2.9705
-1.24% -
Litecoin
$91.7344
-4.42% -
Monero
$336.3426
-2.78% -
Polkadot
$3.8274
-6.86% -
Uniswap
$8.7424
-0.03% -
Dai
$1.0000
0.02% -
Ethena USDe
$1.0005
-0.02% -
Bitget Token
$4.3335
-3.27% -
Pepe
$0.0...01177
-8.03% -
Aave
$307.1105
-4.03% -
Bittensor
$403.7514
0.49%
Qu'est-ce qu'un contrat de proxy minimal (EIP-1167)?
Un contrat de proxy minimal transfère efficacement les appels vers un contrat de mise en œuvre à l'aide de DelegateCall, permettant des déploiements rentables et une logique partagée sur plusieurs 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.
-
CROSS
$0.2079
55.26%
-
BGSC
$0.0076
42.12%
-
USELESS
$0.3550
16.64%
-
BANANA
$23.04
16.61%
-
FUN
$0.0222
12.88%
-
1INCH
$0.3476
12.07%
- Handgames du Yukon: Renaissance culturelle de la Première nation Carcross
- 2025-07-15 16:50:12
- Bitcoin Bonanza de la stratégie: 600 000 BTC et au-delà!
- 2025-07-15 16:30:12
- Bitcoin's Wild Ride: rallye, records de record et la prise de bénéfices inévitables
- 2025-07-15 15:10:11
- XRP, Bitcoin Dominance et Altcoins: Décoder l'avenir de la crypto
- 2025-07-15 15:30:11
- Bitcoin Rally refroidit: la prise de bénéfices ou simplement reprendre son souffle?
- 2025-07-15 15:10:11
- Bitcoin, crypto, conversations: portefeuilles dormants, déverrouillage de jetons et Trump Memecoins - oh mon!
- 2025-07-15 15:30:12
Connaissances connexes

Comment recouvrir une stratégie de trading à terme Bitcoin?
Jul 15,2025 at 11:35am
Comprendre Bitcoin Trading à terme Bitcoin Le trading à terme implique des contrats pour acheter ou vendre Bitcoin à un prix et une date prédéterminés...

Psychologie du trading Bitcoin Contrats
Jul 13,2025 at 02:50am
Comprendre les montagnes russes émotionnelles de Bitcoin Trading à terme Bitcoin Le trading contractuel, en particulier sous forme de contrats à terme...

Le réseau Lightning peut-il être utilisé pour des contrats intelligents?
Jul 14,2025 at 11:28pm
Comprendre la fonctionnalité principale du réseau Lightning Le réseau Lightning est une solution de deuxième couche construite sur des protocoles de b...

Meilleur moment de la journée pour échanger Bitcoin des contrats?
Jul 13,2025 at 05:29am
Comprendre les contrats Bitcoin et leur volatilité Bitcoin Les contrats, en particulier les contrats à terme, sont des instruments dérivés qui permett...

Comment lire les graphiques de chandeliers pour Bitcoin Futures?
Jul 15,2025 at 03:00am
Comprendre les bases des graphiques de chandeliers Les graphiques de chandeliers sont largement utilisés dans le trading des crypto-monnaies, en parti...

Comment utiliser les niveaux de Fibonacci dans le trading de contrats Bitcoin?
Jul 13,2025 at 08:07am
Comprendre les niveaux de fibonacci dans le trading Les niveaux de Fibonacci sont un outil d'analyse technique utilisé par les commerçants pour id...

Comment recouvrir une stratégie de trading à terme Bitcoin?
Jul 15,2025 at 11:35am
Comprendre Bitcoin Trading à terme Bitcoin Le trading à terme implique des contrats pour acheter ou vendre Bitcoin à un prix et une date prédéterminés...

Psychologie du trading Bitcoin Contrats
Jul 13,2025 at 02:50am
Comprendre les montagnes russes émotionnelles de Bitcoin Trading à terme Bitcoin Le trading contractuel, en particulier sous forme de contrats à terme...

Le réseau Lightning peut-il être utilisé pour des contrats intelligents?
Jul 14,2025 at 11:28pm
Comprendre la fonctionnalité principale du réseau Lightning Le réseau Lightning est une solution de deuxième couche construite sur des protocoles de b...

Meilleur moment de la journée pour échanger Bitcoin des contrats?
Jul 13,2025 at 05:29am
Comprendre les contrats Bitcoin et leur volatilité Bitcoin Les contrats, en particulier les contrats à terme, sont des instruments dérivés qui permett...

Comment lire les graphiques de chandeliers pour Bitcoin Futures?
Jul 15,2025 at 03:00am
Comprendre les bases des graphiques de chandeliers Les graphiques de chandeliers sont largement utilisés dans le trading des crypto-monnaies, en parti...

Comment utiliser les niveaux de Fibonacci dans le trading de contrats Bitcoin?
Jul 13,2025 at 08:07am
Comprendre les niveaux de fibonacci dans le trading Les niveaux de Fibonacci sont un outil d'analyse technique utilisé par les commerçants pour id...
Voir tous les articles
