Académie. > Approfondir – La Finance Décentralisée, les services financiers de la blockchain

Approfondir – La Finance Décentralisée, les services financiers de la blockchain

28 août 2023

Temps de lecture 6 minutes

Canelle de Balasy

Partagez cet article

Share on LinkedIn
Share on Twitter
Share on Facebook
Share on Instagram
Share on Whatsapp

L’avènement d’Ethereum a changé la donne dans le monde de la blockchain, en introduisant la possibilité de créer des smart contracts. Ces derniers permettent de programmer des fonctionnalités dans des logiciels stockés sur la blockchain. Et il n’a pas fallu longtemps pour que des développeurs commencent à créer des services financiers sous la forme de smart contracts, ce qu’on appelle communément les applications de finance décentralisée (dApps).

 

Les protocoles de finance décentralisée ont principalement copié des services qui existaient déjà dans le monde de la finance traditionnelle. Ils présentent la possibilité notamment de générer du revenu pour leurs utilisateurs, ce qui est une avancée par rapport aux crypto-actifs de première génération comme le Bitcoin, dont la seule possibilité de gain réside dans l’espérance que leur prix augmente.

 

Une explication théorique du fonctionnement des services de finance décentralisée peut être complexe à comprendre. Nous prendrons ici le parti de l’expliquer par le biais d’exemples d’applications les plus communes que l’on peut trouver sur le marché.

 

Le dépôt/emprunt

 

Le premier cas d’usage, et le plus simple à comprendre, est celui du dépôt/emprunt.  De même que pour une banque, il est ainsi possible de prêter des crypto-actifs à une autre personne pour en tirer un revenu sous la forme d’un taux d’intérêt. Mais cette activité a quelques différences par rapport à ses homologues centralisés. Tout d’abord, tout se fait par le biais de smart contracts, donc via des adresses sur la blockchain. Cela signifie qu’il n’est pas possible de connaître l’identité du prêteur comme de l’emprunteur.

 

En théorie, un emprunteur n’aurait donc pas d’intérêt à rembourser un emprunt sur une application de finance décentralisée, puisqu’il ne peut être identifié. En pratique, les emprunts sur les plateformes de finance décentralisée sont tous sur-collatéralisés, ce qui signifie que pour emprunter l’équivalent de 1000€, je dois déposer une garantie d’au moins 1500€. On peut immédiatement se dire que cela n’a donc aucun intérêt. Mais l’intérêt fondamental est par exemple de déposer de l’Ether (ETH) comme garantie, dont le cours pourra continuer à grimper et qu’il ne sera pas nécessaire de dépenser, et d’emprunter un stablecoin, par exemple de l’USDT.

 

C’est en fait un mécanisme similaire à une hypothèque : je peux emprunter des euros, tout en garantissant le remboursement par la valeur de mon bien immobilier. Le but pour beaucoup d’investisseurs va alors être de pouvoir emprunter des stablecoins pour prendre de nouvelles positions sur le marché, ce qui revient à utiliser un effet de levier.

Contract Accounts 

Un Contract Account, également appelé compte de Smart contract, est un type spécial de compte Ethereum qui est associé à un Smart contract. Contrairement aux EOAs, les Contract Accounts n’ont pas de clé privée et sont contrôlés par le code du Smart contract lui-même. Les Contract Accounts sont utilisés pour déployer et exécuter des contrats intelligents sur la blockchain Ethereum.

Lorsqu’un contrat intelligent est déployé sur la blockchain Ethereum, un nouveau Contract Account est créé avec une adresse unique. Ce compte est associé au code du Smart contract et peut stocker de l’Ether et des données d’état. Les utilisateurs peuvent interagir avec un contrat intelligent en envoyant des transactions à son adresse. Lorsque le contrat est exécuté, il peut effectuer des calculs, stocker et modifier des données, et même envoyer des transactions à d’autres contrats ou EOAs.

 

Maintenant que nous avons vu les différents types d’adresses sur le réseau Ethereum. Voyons comment sont exécutées les transactions sur Ethereum.

 

L’exécution des Smart contracts, l’EVM

 

L’EVM (Ethereum Virtual Machine) est un composant essentiel de la plateforme Ethereum. C’est une machine virtuelle qui permet l’exécution des smart contracts sur la blockchain Ethereum.

 

L’EVM fonctionne comme une couche d’exécution au-dessus de la couche de consensus de la blockchain. Elle fournit un environnement sécurisé et isolé dans lequel les smart contracts peuvent être exécutés de manière déterministe et reproductible. Chaque nœud de la blockchain Ethereum exécute une copie de l’EVM pour valider les transactions et les smart contracts.

 

L’EVM est basée sur la pile (stack-based), ce qui signifie qu’elle utilise une pile de données pour effectuer ses calculs. Les instructions de l’EVM sont conçues pour manipuler cette pile de données et effectuer des opérations telles que l’arithmétique, la logique, l’accès à la mémoire et le contrôle de flux.

 

Les smart contracts écrits dans le langage de programmation Solidity sont compilés en bytecode, un ensemble d’instructions spécifiques à l’EVM. Ce bytecode est ensuite exécuté par l’EVM lorsqu’un utilisateur interagit avec le smart contract.

 

Lorsqu’une transaction est envoyée pour exécuter un smart contract, l’EVM exécute chaque instruction du bytecode séquentiellement. Cela peut inclure des opérations telles que la modification de l’état interne du contrat, l’interaction avec d’autres smart contracts ou l’envoi de transactions à d’autres adresses.

 

Chaque opération effectuée par l’EVM a un coût associé en termes de gaz. Le gaz est une mesure de la quantité de travail informatique nécessaire pour effectuer une opération. Les utilisateurs doivent payer des frais de gaz pour exécuter leurs smart contracts. 

 

L’EVM permet également la gestion des exceptions et des erreurs lors de l’exécution des smart contracts. Par exemple, si une division par zéro se produit ou si une instruction tente d’accéder à une zone de mémoire invalide, l’exécution du contrat est arrêtée et toute modification de l’état est annulée.

 

 

Qu’est-ce que Solidity ?

 

Solidity est un langage de programmation orienté objet, conçu spécifiquement pour écrire des smart contracts sur la blockchain Ethereum. Il est influencé par des langages tels que JavaScript, ce qui facilite la transition pour les développeurs familiarisés avec ce type de  langage. Solidity est un langage de haut niveau qui permet de définir des structures de données complexes, des fonctions et des interactions avec d’autres Smart contracts.

 

Dans cet exemple, le contrat “Voting” permet aux utilisateurs de voter pour des candidats numérotés de 0 à 2. Les votes sont enregistrés dans la variable mapping “votes”, où chaque adresse a un vote associé. La fonction “vote” permet aux utilisateurs de soumettre leur vote en spécifiant le numéro du candidat. Une vérification est effectuée pour s’assurer que le candidat est valide avant d’enregistrer le vote.

 

Comme on peut le voir sur l’exemple ci-dessus, le smart contract permet d’effectuer des actions via des événements ou des inputs qui lui sont fournis. Néanmoins, les smart-contracts ont besoin d’informations venant d’environnements externes à la Blockchain (comme des prix)

C’est là que les oracles entrent en jeu. Nous allons rentrer en détail de ce que sont les oracles, leur rôle essentiel dans l’écosystème Ethereum, et fournir des exemples concrets de leur utilisation.

Le liquid staking

 

Le passage d’Ethereum en preuve d’enjeu a ouvert la voie à une nouvelle source de revenu. Vous pourrez trouver notre article sur le staking. Cependant, bloquer des fonds dans un smart contrat pour des périodes assez longues n’est pas très pratique. Des plateformes de finance décentralisée proposent donc des crypto-actifs dérivés sur Ethereum, dont le sous-jacent est en fait des Ethers en staking.

 

Un investisseur a alors la possibilité d’acquérir ces produits dérivés, qui accumulent automatiquement les revenus de staking de leur collatéral. Ces actifs peuvent être achetés et vendus comme n’importe quel autre actif, donc en gardant une parfaite liquidité.

 

Le leader de ce marché est actuellement Lido, mais des concurrents comme Rocket Pool sont également disponibles.

 

Autres applications

 

De nombreuses autres applications de finance décentralisée sont aujourd’hui proposées sur le marché. On peut citer MakerDAO, qui est l’équivalent décentralisé d’une banque centrale, Nexus Mutual qui offre des services d’assurance sur les smart contracts, ou encore Synthetix (cours Synthetix), qui propose des produits dérivés sur des crypto-actifs, des actions et d’autres produits financiers.

 

Mais là où la finance décentralisée monte encore d’un cran en termes d’utilité, c’est dans la composabilité des applications. Tous les smart contracts d’une blockchain sont en effet compatibles les uns avec les autres, et permettent de créer des produits complexes à partir d’une position en crypto-actifs. Il est ainsi possible de prendre un emprunt sur Aave (cours AAVE), et d’utiliser les fonds dans un pool de liquidité sur Uniswap, ou n’importe quelle autre combinaison. 

 

Certains services proposent d’automatiser cette complexité et de créer des produits qui en un clic vont réaliser des montages à travers des services multiples afin de dégager le meilleur rendement possible. On pourra citer Yearn Finance (cours Yearn Finance) qui est un leader de ce marché.

 

La finance décentralisée s’est solidement ancrée dans l’écosystème de la blockchain, offrant une alternative robuste aux systèmes financiers traditionnels. Grâce aux smart contracts et à l’ingéniosité des développeurs, des services financiers autonomes, transparents et accessibles à tous ont vu le jour. 

 

Du prêt-emprunt à l’échange d’actifs, en passant par le staking, le DeFi repousse les frontières de la finance et met le pouvoir entre les mains des utilisateurs. Alors que l’industrie continue d’évoluer, il sera fascinant d’observer comment le DeFi façonne l’avenir de la finance mondiale et comment les institutions traditionnelles répondront à ce changement de paradigme.

Vous aimerez aussi.

Devenez un investisseur averti !