Articles récents
  • Vivatech 2024 : Le rendez-vous incontournable de l’innovation et de la blockchain

    VivaTech 2024, l’un des plus grands salons de la technologie et de l’innovation en Europe, bat actuellement son plein à...

  • Le Digital Services Act (DSA) : les enjeux de son application dans ce contexte électoral

    Le règlement relatif à un marché unique des Services Numériques, plus communément appelé DSA pour Digital Services Act,...

  • Bitcoin : vers la fin de l’État-nation

    La monnaie représente un enjeu central pour les grands États de notre société contemporaine puisqu’elle permet de...

  • La Blockchain Business School et PyratzLabs lancent un programme de financement boursier

    L’industrie du Web3 est en pleine expansion et la demande de talents qualifiés dans le domaine de la blockchain ne...

Les proxys : fin de l’Immutabilité dans la blockchain ?

L’immutabilité, jadis incontestable, est aujourd’hui remise en question par l’émergence des proxys dans la blockchain. Découvrez si l’ère de l’immutabilité est en train de s’éroder dans notre article captivant.
Avancé

Les proxys : une bénédiction à double tranchant

 

Le smart contract, ou “contrat intelligent” en français, est un programme autonome qui exécute automatiquement les termes d’un contrat dès que les conditions préétablies sont remplies. Cela élimine la nécessité d’un intermédiaire et offre une plus grande efficacité et une réduction des coûts.

Cependant, ces contrats, bien qu’efficaces, ont aussi leur limites. Du fait de leur immutabilité, tout bug ou erreur dans leur code demeure éternellement. Si un développeur commet une erreur dans le code d’un smart contract, cette erreur demeura à jamais dans le programme. Dans le monde de la blockchain, (cela signifie que des millions, voire des milliards de dollars) peuvent être en jeu à cause d’une simple ligne de code erronée.

 

Comment rectifier une erreur ou mettre à jour une fonctionnalité une fois qu’un smart contract est déployé ?

La première solution, bien que rudimentaire, était la “migration de contrat“. Cela consistait à déployer un nouveau smart contract et à créer une sorte de “porte” pour transférer les actifs de l’ancien contrat vers le nouveau. Pour mieux visualiser, imaginez le monde des Cryptopunks, l’un des projets NFT les plus emblématiques sur la blockchain Ethereum. Si une imperfection était détectée dans le smart contract original gérant ces précieux NFTs, la solution aurait été de créer un nouveau contrat pour eux. Les détenteurs auraient alors dû passer par cette “porte“, effectuant une migration de leurs Cryptopunks précieux de l’ancien contrat vers le nouveau. Ce processus n’est pas seulement fastidieux, mais il exige aussi une immense confiance de la part des utilisateurs, car ils doivent effectivement envoyer leurs actifs vers un nouveau contrat, espérant qu’ils ne seront pas perdus en route.

 

C’est ici que le concept des smart contracts proxy prend toute son importance. Ces contrats promettent une solution élégante aux problèmes d’immuabilité, tout en préservant la confiance et la sécurité.

En se servant d’un contrat intermédiaire, le proxy, les interactions des utilisateurs sont redirigées vers une implémentation sous-jacente. Si une anomalie est identifiée dans le contrat initial, un nouveau contrat d’implémentation est créé. Le proxy peut ensuite être reconfiguré pour rediriger les interactions vers cette nouvelle version.

N’ayez pas peur, pour mieux saisir ce concept, prenons une analogie simple avec un commerce bien connu : la Fnac.

 

La Fnac et son Inventaire

La Fnac, en tant que magasin, possède une adresse fixe, reconnaissable et fiable. C’est cette constance qui attire et rassure les clients. Cependant, à l’intérieur, l’inventaire, constitué des produits, varie constamment : des articles sont ajoutés, d’autres sont retirés ou remplacés.

Dans cette analogie, la Fnac elle-même représenterait le “proxy”. L’adresse de la Fnac demeure inchangée, peu importe les variations de son inventaire. Quant à l’inventaire, il symbolise le “contrat d’implémentation” ou la logique du smart contract. Les modifications et les mises à jour sont effectuées sur l’inventaire, sans que l’adresse de la Fnac ne soit modifiée.

La mécanique derrière cette flexibilité est comparable à la manière dont un responsable de magasin à la Fnac pourrait confier la gestion de l’inventaire à un département spécifique tout en gardant la supervision générale. Dans le monde des smart contracts, cette délégation est réalisée grâce au mécanisme de delegatecall. Cette fonction permet à un contrat, semblable à notre responsable de magasin, d’exécuter le code d’un autre contrat, similaire au département d’inventaire, tout en conservant son propre état. Ainsi, tout comme le responsable délègue la gestion de l’inventaire sans changer l’adresse de la Fnac, le smart contract proxy utilise delegatecall pour déléguer la logique opérationnelle à un autre contrat.

 

Comprendre le Transparent Proxy Pattern

L’un des modèles de proxy les plus couramment utilisés est le Transparent Proxy Pattern, qui s’articule autour de trois contrats distincts :

Proxy contract : Il sert d’interface principale avec laquelle les utilisateurs interagissent.

Implementation contract : Ce contrat assure la logique et les fonctionnalités attendues.

ProxyAdmin contract : Il fait office de pont entre le contrat Proxy et le contrat Implementation.

Des outils comme le plugin OpenZeppelin Upgrades facilitent le déploiement de cette structure.

Mais qui détient réellement ces smart contracts proxies ? En général, il s’agit du développeur ou de l’entité qui gère le projet. Ils détiennent le pouvoir de rediriger le proxy vers une nouvelle version du contrat d’implémentation. Cette configuration soulève une question essentielle : sommes-nous en train de faire un pas en arrière vers la centralisation ? En confiant autant de pouvoir à une entité unique, ne risque-t-on pas de s’éloigner des principes fondamentaux de décentralisation qui caractérisent la blockchain ? Plongeons alors dans cette problématique cruciale.

 

Lire plus : Qu’est-ce qu’un NFT, Qu’est ce qu’un smart-contract

 

Un pas en arrière vers la centralisation ?

L’essence même de la blockchain est ancrée dans la décentralisation, offrant une garantie de transparence, de sécurité et d’intégrité. Cependant, en accordant à une seule entité la capacité de modifier la logique d’un smart contract par le biais d’un proxy, il semble qu’on s’approche d’un certain niveau de centralisation.

Ce potentiel de centralisation soulève de sérieuses préoccupations en matière de sécurité. Si l’adresse autorisée à actionner la fonction delegatecall tombe entre de mauvaises mains, les conséquences pourraient être désastreuses. Non seulement il y aurait un risque de modifications malveillantes du code, mais cela pourrait également ouvrir la porte à des détournements de fonds ou à d’autres manipulations indésirables. Ce scénario nous rappelle les dangers d’un modèle centralisé où un point unique de défaillance ou de contrôle peut compromettre l’intégrité de l’ensemble du système..

Face à ces préoccupations, des solutions innovantes ont vu le jour. De nombreux projets envisagent désormais d’utiliser les DAO (Organisations Autonomes Décentralisées) pour superviser les smart contracts proxy. Au lieu de laisser une entité unique prendre les rênes, la gouvernance d’un contrat est placée entre les mains d’une communauté. Chaque membre a son mot à dire, pouvant voter et influencer la direction du contrat.

C’est donc par le biais des DAO que la délégation, via la fonction delegatecall, est rendue plus décentralisée. Cette structure assure que toute mise à jour ou modification n’est mise en œuvre qu’après avoir obtenu le consensus de la communauté, renforçant ainsi la confiance et la sécurité autour de l’utilisation des smart contracts proxy.

 

Lire plus : Qu’est-ce que Ethereum, Qu’est-ce qu’une DAO

 

La fin de l’Immutabilité dans la blockchain ?

Eh bien, pas nécessairement. Bien que  proxy offrent, sans conteste, une agilité sans précédent, permettant des ajustements et des évolutions dans un monde où la technologie et les besoins changent rapidement. Toutefois, cette flexibilité ouvre une porte à des risques potentiels de centralisation et de vulnérabilités sécuritaires. Mais avant de sonner l’alarme, reconnaissons que la communauté blockchain n’est pas restée inactive face à ces défis. L’avènement des DAO, en instaurant une gouvernance décentralisée, offre une parade prometteuse. Ainsi, même à l’ère des smart contracts proxy, la vision initiale de la blockchain – décentralisée, transparente, sécurisée – peut perdurer.

La fin de l’immutabilité? Non. Plutôt une évolution de sa définition. En résumé, la blockchain évolue, mais son essence demeure.

Prev
Qu’est-ce que le Proof-of-History ?

Qu’est-ce que le Proof-of-History ?

Le Proof-of-History, ou preuve d’histoire, est un mécanisme de consensus qui permet de valider les échanges sur une...

Next
Interview de Cyril Grunspan, Directeur de l’Institut des Crypto-Actifs du Pôle Léonard de Vinci

Interview de Cyril Grunspan, Directeur de l’Institut des Crypto-Actifs du Pôle Léonard de Vinci

Aujourd’hui, l’Institut des cryptos-actifs a été inauguré au sein du Pôle Léonard de Vinci. Un nouvel Institut consacré...

Pierre Nadal

Vous Pourriez aussi aimer !
Article recommandé
Le Proof-of-History, ou preuve d’histoire, est un mécanisme de consensus…
fr_FRFrench