Advency quick access
Retour
Blockchain

Développer et déployer des contrats intelligents sur Ethereum : pour les non-codeurs

Si vous avez parcouru un tas de blogs remplis d'extraits de code et que vous ne savez toujours pas comment créer un contrat intelligent dans Ethereum, vous êtes au bon endroit. Nous vous aiderons à faire le tri sans une seule ligne de code - juste ce qu'un propriétaire d'entreprise doit savoir.

Visuel smart contract
Publié le 14 mars 2022, mis à jour le 11 avril 2022

Si vous avez parcouru un tas de blogs remplis d'extraits de code et que vous ne savez toujours pas comment créer un contrat intelligent dans Ethereum, vous êtes au bon endroit. Nous vous aiderons à faire le tri sans une seule ligne de code juste pour que vous compreniez.

Dans cet article nous parlerons principalement de Ethereum mais le principe reste globalement le même dans le cas de l'utilisation d'un autre réseau.

Pour vous aider à saisir toute l'idée du développement de contrats intelligents sur Ethereum, commençons par un exemple.

Imaginez qu'une compagnie d'assurance invente un nouveau produit - une police d'assurance voyage basée sur la blockchain qui compense les vols retardés. Chaque passager dont l'avion est en retard reçoit instantanément un paiement.

Pour réaliser ce coup, l'entreprise pourrait créer une application de contrat intelligente fonctionnant sur la blockchain Ethereum. Pourquoi pas une application web ou mobile classique ?

Certains diront que c'est parce que les contrats intelligents sont intelligents - ces mini-applications s'exécutent automatiquement lorsque des critères préprogrammés sont remplis. Dans notre cas, lorsqu'une API d'informations de vol signale un vol retardé, un contrat intelligent initie automatiquement un paiement à l'assuré.

Pourtant, pourquoi ne pas utiliser une bonne vieille application Web (ou mobile) , travaillant sur un serveur privé au lieu des manigances de la blockchain ?

Table des matières :

  • Principes de base du contrat intelligent
  • Comment fonctionne un contrat intelligent ?
  • Ethereum en tant que plate-forme pour créer des dApps
  • Langages de programmation et chaîne d'outils pour les contrats intelligents
  • Développer un contrat intelligent sur Ethereum en 3 étapes
  • Comment surmonter les lacunes des contrats intelligents
  • Il est temps de créer un contrat intelligent Ethereum
  • Principes de base du contrat intelligent
  • Ne vous inquiétez pas si vous n'avez pas suivi tous les détails de notre introduction tête première. Nous allons rapidement récapituler les principaux concepts que vous devez connaître pour créer et déployer des contrats intelligents.

Principes de base du contrat intelligent

Ne vous inquiétez pas si vous n'avez pas suivi tous les détails de notre introduction. Nous allons rapidement récapituler les principaux concepts que vous devez connaître pour créer et déployer des contrats intelligents.

Chaîne de blocs. L'endroit où vivent les contrats intelligents. C'est comme une base de données mondiale distribuée qui existe sur d'innombrables nœuds enregistrant les transactions et tout autre changement sur le réseau sur la base d'un consensus en ajoutant des blocs de données.

Il existe différentes blockchains, mais celle qui nous intéresse le plus à la lumière des contrats intelligents est Ethereum. C'est une blockchain dite programmable. Vous pouvez le programmer avec des contrats intelligents.

Eth - la crypto-monnaie d'Ethereum générée par les participants à la blockchain et nécessaire pour effectuer toute transaction ou exécuter un contrat intelligent.

Contrats intelligents. Ce sont des programmes écrits sur une blockchain. Vous pouvez les coder sur Ethereum, Binance Chain, Hyperledger, EOS et d'autres blockchains. Cependant, généralement, lorsque leurs avantages sont discutés, les gens parlent de contrats intelligents basés sur Ethereum.

Les applications qui s'exécutent sur des contrats intelligents sont appelées applications décentralisées (dapps) car lorsqu'elles s'exécutent sur une blockchain publique, aucune autorité n'a le contrôle sur elles.

Comment fonctionne un contrat intelligent ?

Ces applications sont appelées contrats intelligents car elles ressemblent à des accords écrits, uniquement rendus en code.

Si les critères prédéfinis sont remplis, un contrat intelligent lance une action. Le plus souvent, il s'agit d'un paiement, ou il peut s'agir d'un transfert de propriété, ou parfois de l'initiation d'un autre contrat intelligent.

Comme toute opération sur une blockchain, chaque transaction effectuée par un contrat intelligent est totalement transparente et immuable, ce qui signifie qu'elle ne peut pas être annulée.

Ethereum en tant que plate-forme pour créer des dApps

Vous vous demandez peut-être : "Quand dois-je faire un contrat intelligent sur Ethereum ?"

Pour garder les choses simples, vous avez besoin d'une application intelligente basée sur des contrats sur Ethereum lorsque vous pouvez penser à des actions entièrement automatisées pour votre produit numérique. Disons que vous développez une application de fitness qui fonctionne sur une blockchain et que les utilisateurs gagnent de la crypto à chaque fois qu'ils s'entraînent.

Supposons également que vous suivez les entraînements avec des capteurs personnalisés que les clients doivent acheter. Vous pouvez distinguer les faux entraînements des vrais avec une précision de 99 % en utilisant les données provenant de ces gadgets. Dans ce cas, vous pouvez implémenter un contrat intelligent pour verser automatiquement X montant de votre crypto (FitnessCoin ou tout ce que vous voulez appeler) aux portefeuilles Ethereum des utilisateurs après qu'ils aient passé X temps à faire de l'exercice

Donc, la vraie réponse à la question, "Pourquoi pas une application régulière qui n'a rien à voir avec la blockchain ?" est le coût d'exploitation d'un tel produit. Il est inférieur avec les contrats numériques automatisés.

Si nous revenons à l'exemple du produit d'assurance de notre introduction (celui qui compense les vols retardés) - même s'il s'agit d'une application Web, la compagnie d'assurance a besoin d'opérateurs et de personnel de soutien pour l'exécuter. Cependant, lorsqu'il s'agit d'une application basée sur un contrat intelligent (ou dApp), elle fonctionne seule, ce qui réduit considérablement les coûts opérationnels.

Un autre scénario populaire pour la mise en œuvre de contrats intelligents est l'offre initiale de pièces de monnaie (ICO) . Supposons que vous ayez besoin de collecter des fonds pour développer cette application de fitness générant des crypto-monnaies que nous avons référencée ci-dessus. Vous lancez une campagne ICO, qui implique entre autres de frapper des pièces virtuelles (FitnessCoin si vous avez aimé le nom) et de les vendre à des investisseurs. Pour ce faire, vous aurez besoin de contrats intelligents : ils servent à répartir les pièces achetées entre les utilisateurs.

En relation : Comment développer une application décentralisée

Langages de programmation et chaîne d'outils pour les contrats intelligents

Il existe plusieurs langages de programmation pour coder les contrats intelligents. En fonction de la blockchain avec laquelle vous travaillez, vous aurez le choix entre :

  • Solidity ou Vyper, pour construire des contrats intelligents sur Ethereum, Binance Chain, Tron
  • C++, sur la blockchain EOS
  • Golang, pour Hyperledger

Mentionnons également brièvement d'autres outils qui pourraient vous être utiles pour créer votre propre contrat intelligent. Et même si je ne suppose pas que vous allez coder vous-même, cela ne fait jamais de mal d'avoir au moins une compréhension de haut niveau des compétences requises pour faire le travail.

IDE (environnements de développement intégrés) - logiciels où les programmeurs saisissent du code. Heureusement, il y en a quelques-uns qui ne nécessitent ni installation ni configuration car ils sont entièrement basés sur le Web :

  • Remix
  • EthFiddle

Les frameworks sont comme des boîtes à outils avec des instruments plug-and-play pour compiler et déployer un contrat intelligent sur Ethereum. Ils sont livrés avec des utilitaires pour tester sur une instance de blockchain locale, des options d'intégration pour créer d'autres composants de vos dapps et d'autres éléments qui rationalisent le déploiement de contrats intelligents Ethereum .

  • Truffle (livré avec Ganache qui permet de démarrer rapidement une blockchain personnelle)
  • Hardhat
  • OpenZeppelin SDK

Enfin, vous aurez besoin de réseaux de test (également appelés chaînes de test) ou de réseaux de blockchain locaux à des fins de test. Ils ne nécessitent pas de véritable ETH (crypto-monnaie Ethereum) pour payer l'exécution d'un contrat intelligent, et vous pouvez demander autant de solde ETH que vous en avez besoin. Un autre avantage est que toutes les transactions se produisent immédiatement sans que le réseau mondial de nœuds en ligne ait besoin de calculer et de vérifier chaque transaction.

  • Rinkeby
  • Kovan
  • Ropsten

Autres choses dont vous auriez besoin pour commencer à construire des contrats intelligents, nous devrions également mentionner Geth, qui nous permet d'exécuter un nœud Ethereum, qui à son tour est nécessaire pour interagir avec d'autres nœuds sur le réseau.

Développer un contrat intelligent sur Ethereum en 3 étapes

À un niveau très élevé, pour construire un contrat intelligent, vous devez :

  • Écrire son code
  • L'essayer
  • Et enfin, le déployer

Passons maintenant chaque étape, afin que vous sachiez à quoi vous attendre de votre prestataire de développement pendant le projet avant de commencer à créer votre propre contrat intelligent.

Note aux développeurs : il s'agit d'un didacticiel léger sur le développement de contrats intelligents Ethereum pour les débutants. Donc pas de code ici
Développer des contrats intélligent

CODE

Les développeurs écrivent du code en utilisant un langage de programmation approprié. « Qu'y a-t-il à savoir ? » : 

  • Le code décrit les conditions d'exécution d'un contrat : initier une transaction ou tendre la main à une autre dApp interconnectée.
  • Il existe des flux de données spéciaux (appelés oracles) qui sont utilisés pour connecter un contrat intelligent à des événements réels hors chaîne, qui peuvent faire partie de sa logique d'exécution.
  • Les développeurs peuvent utiliser des bibliothèques open source (par exemple, OpenZeppelin ) et des modèles. Il n'est donc pas nécessaire de tout coder à partir de zéro.

TEST

Une fois que vous avez mis un contrat intelligent sur la blockchain Ethereum (également connue sous le nom de réseau principal), il devient immuable. Cela signifie que vous ne pourrez pas le modifier. Hélas, ce n'est pas un scénario convivial pour les tests, n'est-ce pas ?

Alors, que faites-vous pour tester un contrat intelligent ? Vous faites tourner une blockchain locale (ce qui signifie que tous les autres nœuds qui composent une blockchain typique vivront sur votre machine), ou vous utilisez l'une des chaînes de test, par exemple, Rinkeby.

Si vous construisez une blockchain autorisée (c'est-à-dire celle qui n'est pas publique) à l'aide d'Hyperledger, vous aurez besoin de ces réseaux de test : REMME, Hyperledger Umbra.

Concept de contrat intelligent

Ce que ces réseaux privés vous offrent, ce sont des transactions instantanées (pas besoin d'attendre qu'un autre bloc soit calculé par un réseau de nœuds) et une crypto gratuite, nécessaire pour les tests.

DÉPLOYER

Par déploiement, nous entendons placer votre contrat intelligent sur la blockchain, qu'il s'agisse d'Ethereum ou d'une blockchain privée basée sur Ethereum. Tout ce qu'il faut pour déployer, c'est effectuer une transaction, ce qui nécessite naturellement de dépenser de la cryptographie. Soyez donc prêt.

Une autre chose à noter est que le contrat intelligent doit également être compilé avant d'être déployé. Par compilation, nous entendons convertir son code en un fichier JSON lisible par une application Web classique.

Après ces étapes, vous êtes en direct, et les fonctions codées s'enclencheront automatiquement lorsque les paramètres programmés seront remplis.

Comment surmonter les lacunes des contrats intelligents

Malgré tout le battage médiatique autour de l'avenir décentralisé, l'utilisation de cette technologie présente encore certains inconvénients dont vous devez être conscient.

CODE IMMUABLE

Le code immuable signifie que vous ne pourrez pas annuler un contrat une fois qu'il a été déployé. Par conséquent, le coût d'un bug est nettement plus élevé qu'avec un logiciel classique qui peut être corrigé à la volée. Heureusement, il existe de nombreux environnements de test facilement disponibles qui simulent la blockchain.

QUAND LE PUBLIC EST TROP PUBLIC

Déployer un contrat intelligent sur Ethereum implique que tout le monde sur cette blockchain y aura accès. Je doute que trop d'entreprises soient prêtes à rendre leurs opérations aussi transparentes. Bien sûr, une blockchain autorisée (en lecture privée) basée sur Ethereum est toujours une option : Hyperledger est un excellent choix, par exemple.

VITESSE

Cela peut prendre entre 16 secondes et 5 minutes pour qu'un contrat intelligent effectue une transaction sur Ethereum. Ils travaillent sur Ethereum 2.0 (Ethereum Consensus Layer) qui gérera 10 000 transactions par seconde, mais pour le moment, ce n'est que 30 transactions par seconde. Et devinez quoi, de nombreuses personnes dans le monde effectuent des transactions sur Ethereum chaque seconde. Encore une fois, la blockchain privée résout efficacement ce défi.

Il est temps de créer un contrat intelligent Ethereum

Comme vous pouvez le voir, il y a pas mal de choses à considérer avant de créer une plate-forme de contrat intelligent qui trouvera un réel attrait auprès des utilisateurs ; c'est également le cas pour le développement d'applications fintech en général. Si vous souhaitez que nous examinions votre concept d'application basée sur Ethereum, Binance Chain, Tezos ou sur une autre blockchain compatible Solidity ou que nous vous conseillions, contactez-nous dès aujourd'hui pour planifier un rendez-vous.

 

Photo de profil de Fabien
Fabien
Responsable technique
Accessibilité