Les contrats proxy constituent une solution technique essentielle pour résoudre le problème de l'immutabilité des smart contracts déployés sur la blockchain principale. Ce pattern permet de mettre à jour la logique d'un contrat tout en conservant son adresse et son état, évitant ainsi les migrations complexes et risquées. Le proxy fonctionne comme un redirecteur qui stocke l'adresse du contrat logique principal et utilise delegatecall pour exécuter le code dans son propre contexte de stockage.

L'approche classique utilise Hardhat avec le plugin OpenZeppelin hardhat-upgrades, qui simplifie le déploiement des proxies mais maintient toute la logique d'orchestration côté client en JavaScript. Cette solution convient bien au développement et à l'administration mais ne permet pas à d'autres utilisateurs ou smart contracts de créer facilement des instances. En revanche, EVMPack propose une approche révolutionnaire en déplaçant l'intégralité du processus sur la blockchain, fonctionnant comme un gestionnaire de packages on-chain similaire à npm.

Avec EVMPack, n'importe quel utilisateur ou contrat peut créer une instance de proxy via une seule transaction en appelant la fonction usePackageRelease de la factory EVMPackProxyFactory. Cette approche atomique crée un proxy isolé avec son propre administrateur, rendant le processus entièrement décentralisé et accessible. Le système permet également des mises à jour sécurisées via la fonction upgradeAndCall, où le proxy lui-même recherche la nouvelle implémentation dans le registre EVMPack, réduisant ainsi les risques d'erreur humaine.

Cette architecture ouvre de nouvelles possibilités pour les applications décentralisées, permettant aux protocoles DeFi, DAO et projets NFT de créer des instances actualisables de manière composable. EVMPack représente ainsi une infrastructure fondamentale pour la nouvelle génération d'applications blockchain, favorisant la réutilisabilité et l'interopérabilité entre contrats de manière beaucoup plus accessible que les solutions traditionnelles.