Introduction
La composabilité est souvent apparentée aux Lego. En effet, cette capacité à pouvoir dissocier chaque élément et les réassembler en un plus grand tout est un facteur très important et très recherché par les créateurs de Dapp (applications décentralisées). Il permet efficacement de cloner un système et d’y ajouter des éléments.
La composabilité est donc la capacité des composants d’un système à être modifié et recombiné en une autre structure afin de répondre à des besoins précis. Vous pouvez imaginer ça comme une sorte de grande bibliothèque dans laquelle se trouvent des éléments assemblables et compatibles entre eux.
Cette approche de conception des systèmes vise simplement à accroitre l’agilité ainsi que la vitesse de développement d’applications décentralisé en son sein.
Néanmoins, il existe plusieurs types de compossibilité.
La composabilité dans sa globalité
La composabilité repose sur trois grands principes :
- La modularité : Elle consiste à réunir un ensemble de services en un seul composant utilisé ensuite pour la réalisation d’une tâche précise. Les services déjà existants sont en fait des modules assemblables
- L’autonomie : Pour qu’un système puisse être considéré comme composable, il est nécessaire que chacun des composants qu’il contient soient autonome. Ceci est nécessaire afin de pouvoir les mettre à jour sans impacter négativement les autres composants
- L’accessibilité : Dans un système dit “composable”, il est essentiel que les éléments qui composent vos systèmes soient très accessibles et Open Source. Ils devront être présents dans une bibliothèque centrale avec suffisamment de données pour facilement déterminer leur potentiel et leur limite.
Vous l’aurez compris, dans un système idéale comme une blockchain, un réseau d’applications ou une architecture en microservices, chaque « service » ou « composant » peut être facilement modifié ou remplacé sans pénaliser les autres. En pensant correctement le choix de ses composants dès le départ, on facilite le travail des développeurs qui pourront facilement empiler les services comme des legos sans préoccupation.
La composabilité syntactique
La composabilité syntactique est la capacité pour des applications décentralisées (Dapps) et DAO (Decentralized Autonomous Organisation) de se cloner et à s’assembler les unes aux autres.
Nous prendrons pour exemple la blockchain Ethereum qui propose des smart contracts (contrats intelligents) publics pouvant être considérés comme des API open source qui peuvent être appelé par n’importe quel autre smart contract. La logique logicielle est donc déjà préétablie.
Concrètement, cela signifie que vous n’avez pas besoin de rédiger vous-même vos smart contracts, car il vous suffit, simplement, de savoir comment interagir avec eux.
Par exemple, n’importe quelle Dapp construite sur Ethereum pourra bénéficier des contrats déjà existants sur Uniswap qui n’ont plus rien à prouver côté sécurité, fiabilité et qui géreront toute la logique d’échange de jetons sur votre Dapp.
C’est cette facilité à pouvoir réutiliser des composants open source pour la construction du web 3 qui est très intéressante, car elle réduit fortement le temps de développement des applications décentralisées et permet donc aux Teams, qui en sont à l’origine, de se concentrer seulement sur les composants manquant à leurs projets.
La composabilité atomique
Il est important de noter qu’ Ethereum (pour reprendre notre exemple) permet une composabilité atomique.
En clair, plusieurs opérations effectuées sur plusieurs Dapps différentes peuvent être regroupées en une seule transaction et donc être exécutées simultanément. En revanche, si l’une des transactions échoue, alors c’est l’ensemble des transactions réunies qui échoue.
Cette fonctionnalité a notamment fait émerger des innovations telles que les flash loan (ou atomic loan) qui sont un outil parfait pour profiter de l’arbitrage en empruntant un actif sur une plateforme, effectuer l’action d’arbitrage puis rembourser l’emprunt dans une seule et même transaction.
En bref, la compossibilité atomique est un des piliers de la DeFi (Finance décentralisée).
La composabilité interne (morphologique)
Bien qu’un certain nombre de choses fût construit sur Ethereum de façon à simplifier la composabilité entre les Dapp, cela ne garantit pas que leur structure interne et leurs interfaces soient compatibles.
C’est afin de faciliter cette compatibilité interne que certaines normes ont été instaurées telles que les jetons, et les registres de noms et les formats de portefeuilles. Ces normes sont connues sous le nom de Ethereum Request for Comment (ERC). La plus populaire d’entre elles aujourd’hui étant la norme de token fongible ERC 20.
Également très connue, la norme ERC 721 utilisée cette fois-ci pour les Jetons non fongible très communément appelée NFT.
On notera également la norme ERC 1155 rendant compatibles les normes de Tokens fongible (ERC20) et non fongible (ERC721) facilitant ainsi grandement le développement de jeux, qui souvent allient les deux, sur la blockchain.
Outre les possessions numériques, le Web 3 apporte également une notion de réputation d’utilisateur notamment avec l’adresse ERC 20 reliée à votre wallet. En effet, la blockchain étant un réseau open source (la plupart du temps), les interactions effectuées avec celui-ci seront répertoriées et vérifiables, ce qui donne à vos interaction et historique une dimension de CV dans une certaine mesure pour le Web 3.
Cette réputation a été surnommée “score degen(erate)” par la communauté.
Pour le moment il n’existe pas encore de standardisation ERC concernant les DAO, cependant, certains groupes expérimentés sur le sujet s’unissent afin de pousser les recherches dans ce sens.
Conclusion
Outre les difficultés à fournir un environnement composable pour les DAO, la composabilité semble tout de même une solution efficace pour accélérer le développement de Dapp sur les réseaux.
Par ailleurs Ethereum n’est pas le seul réseau à adopter cette notion de norme de token.
Il parait évident que ces normes auront et ont déjà un impact conséquent sur le milieu de la DEFI, des Dapps mais également de la blockchain en général.