Le terme « contrat intelligent » fait souvent référence à Ethereum. Qu’est-ce qu’un contrat intelligent ? La réponse courte dirait qu’un contrat intelligent est un programme informatique. Ils sont vraiment le cœur même de l’implémentation d’Ethereum ; et, il est intéressant d’explorer ce concept plus en profondeur afin de vraiment saisir la puissance et la vision de la plateforme.

Si vous n’avez pas beaucoup de connaissances techniques, ne vous en inquiétez pas… Pour l’écriture de contrats intelligents, vous devez maîtriser le codage ou embaucher un programmeur. Mais, vous n’avez pas besoin de savoir coder pour comprendre le concept et le fonctionnement de ceux-ci. Toutefois, il est toujours utile d’avoir une compréhension de base du fonctionnement des programmes informatiques,même si vous ne savez pas nécessairement comment les écrire vous-même.

Mise en exemple

Alors qu’ils peuvent faire des choses incroyablement complexes, tous les programmes informatiques fonctionnent essentiellement de manière binaire. Ils uffit pour cela de voir toutes les données traitées résumées à des 1 et des 0 représentants autant de « oui » et de « non. » Dans cette méthode, il n’y a pas de place pour des « peut-être. » Un exemple concret :

 si je passe une vidéo et que je clique sur le bouton pause, alors la vidéo se met sur pause.

Dans cet exemple, l’ordinateur doit d’abord vérifier si une vidéo est encours de lecture. C’est la première question « oui ou non » à laquelle il faudra répondre. Si la réponse est « oui », alors une vidéo est en effet diffusée et cela laisse place à la seconde question : est-ce qu’il y a un clic sur le bouton pause ? Oui ou non. Et, tant qu’il n’y aura pas de clic ; l’ordinateur attendra et continuera à répéter la question jusqu’à ce que la réponse soit oui. À moins évidemment que la réponse de la question 1 ne change… Dans la vie de ce programme, l’unique but est de répondre à la question sur le bouton pause. Jusqu’au moment où cela se produit et où la vidéo est mise en pause…

L’échange et les transactions en bitcoins ne sont en fait qu’une prolongation de ce raisonnement informatique simple… L’essentiel est que la personne A envoie des fonds à la personne B. Le logiciel Bitcoin posera une série de questions : la personne A dispose-t-elle réellement d’un fonds suffisant? La personne A possède-t-elle la propriété de l’adresse détenant ces fonds ?L’adresse de la personne B est-elle valide ? Tant que les entrées correctes sont fournies, le réseau Bitcoin décentralisé atteindra un consensus pour effectuer les calculs et exécuter le programme. Ainsi, la transaction sera vérifiée et la personne B recevra les fonds.

Les tâches de transfert

Le programme Bitcoin en cours d’exécution ne traite qu’un type de transaction. Les « Bitcoins » sont essentiellement des nombres déplacés d’une adresse numérique à une autre, et dont les mouvements sont enregistrés et stockés sur la blockchain. Celle-ci fournit un système permettant à un réseau décentralisé d’ordinateurs de parvenir à un consensus sur les tâches à effectuer et ensuite d’exécuter lesdites tâches. Dans le cas des Bitcoins, ces« tâches » sont des transferts de montant de A à B, mais y a-t-il une raison quelconque pour que ce système ne puisse pas être utilisé pour gérer d’autres types de tâches ? Eh bien, non, et c’est précisément dans ce but que l’Ethereum est pensé. L’Ethereum utilise la même infrastructure de blockchain,mais elle ouvre la porte à tout type de programme à exécuter.

Même lorsque nous continuons à penser en termes de transactions financières, les possibilités qu’offre l’Ethereum sont quasi sans limite. Il crée un environnement beaucoup plus flexible pour les systèmes de paiement… Par exemple, avec l’Ethereum, un dépôt sécurisé devient possible. Un montant pourrait être conservé sur une chaîne de blocs pendant une période de temps spécifiée attendant que certaines conditions soient remplies. Dans le cas contraire, le montant reviendrait dans le portefeuille du débiteur. Si elles devaient être remplies, alors la somme serait effectivement virée sur le compte du bénéficiaire. Avec le Bitcoin, il n’y a malheureusement aucun moyen de conserver ce type de paiement en escompte ; il faut passer par un tiers,un intermédiaire. Ce type de transaction conditionnelle est un exemple simple,mais pourtant frappant, de tout ce qui pourrait être exécuté grâce aux contrats intelligents d’Ethereum.

Un autre cas d’utilisation de ces contrats intelligents pourrait inclure une approche « multi-signature » pour la libération de fonds. En clair, cela signifie qu’un nombre spécifique de personnes doivent toutes être d’accord pour débloquer des fonds afin que le contrat soit rempli. On peut rendre les choses encore plus complexes, et bien plus excitantes… En l’occurrence, utiliser des contrats intelligents pour déclencher d’autres contrats intelligents. Avec un exemple pour illustrer le tout : mettons que vous aimiez parier sur le sport. Vous pourriez utiliser un contrat pour placer le pari, et en arrière-plan un autre contrat intelligent serait utilisé pour recueillir des données sur le jeu. Avecl e traitement des résultats, un autre contrat intelligent se déclencherait pour distribuer les gains aux gagnants.

L’apparition de contrats intelligents et leur utilité

Au fur et à mesure que nous renforçons l’Internet dans nos vies, les contrats intelligents trouvent de nouveaux objectifs à remplir. Par exemple, avec les voitures intelligentes qui deviennent de plus en plus répandues, nous pourrions facilement envisager une transition en ce qui concerne les horodateurs. Plus de parcmètres en rue, les contrats intelligents les remplaceraient avec, imaginons, des capteurs reliant le véhicule à la place de parking spécifique. Ce type de contrat pourrait déduire automatiquement le tarif en fonction du temps. La seule préoccupation du conducteur serait de se garer plutôt que de chercher de la petite monnaie. Dans ce scénario, les villes pourraient faire disparaître tout son système, depuis les machines jusqu’à l’entretien technique et de relevé des compteurs.

En réalité, les contrats intelligents peuvent se montrer redoutablement efficaces dans le domaine de l’approvisionnement, car ils font le lien avec une réalité de terrain. L’approvisionnement de nos jours se fait dans un contexte global avec une délocalisation de certaines tâches. Mettons que vous alliez dans un magasin et achetiez une brosse à dents. Ce magasin ne dispose que d’un stock de 10 brosses et vous venez d’acheter la dernière. Son fournisseur est à100 kilomètres et la production se fait en Chine… L’usine chimique qui fournit le plastique est quant à elle basée au Brésil.

Au moment de la transaction, lorsque vous achetez la brosse à dents, un réseau de contrats intelligents pourrait immédiatement informer l’entrepôt que le magasin n’a plus d’article dans son inventaire. Le fabricant et le fournisseur pourraient, eux, être informés par des contrats sous-jacents de la nécessité de préparer un envoi vers l’entrepôt pour le premier et de matières premières pour le second.

Contrats intelligents et automatisation de tâches

Les avantages de l’automatisation par des contrats intelligents incluent l’élimination de toute la paperasserie, de la bureaucratie, des délais, d’erreurs humaines et de frais associés aux intermédiaires entre chaque maillon de la chaîne de production. Des systèmes qui sont aujourd’hui incroyablement complexes et vulnérables à de nombreux points de vue deviendraient transparents à chaque transaction. C’est là l’une des applications les plus prometteuses pour les contrats intelligents.

Malgré les différences fondamentales entre Bitcoin et Ethereum, beaucoup de gens ont tendance à traiter ces deux projets comme des « concurrents », luttant pour le contrôle de l’espace blockchain. Même pour ceux qui ne s’intéressent qu’à l’Ether en tant que monnaie et qui ne se soucient pas particulièrement de la technologie, la vision d’avenir de cette technologie n’est pas vraiment précise. En fin de compte, le Bitcoin et l’Ethereum sont deux technologies bien distinctes qui ont des objectifs et des applications différents. Ils coexistent dans l’espace sans nécessairement se concurrencer. Le Bitcoin est conçu pour être une monnaie : c’est une fin en soi. L’Ethereum utilise l’Ether comme devise pour exécuter des contrats intelligents. La devise Ether est elle aussi une fin en soi.

Ainsi, les deux projets ne sont pas vraiment concurrents. En ce sens qu’il sont tous deux des visions, des objectifs et des usages différents. Afin de mieux comprendre le concept de contrats intelligents et le fonctionnement de la plateforme Ethereum, il est utile d’explorer certains des principes fondamentaux du développement de ce logiciel. Si vous avez une certaine expérience avec un langage de programmation, vous aurez un avantage en termes de compréhension sur la façon dont le code est exécuté dans les contrats intelligents. Si non, ne vous inquiétez pas. Encore une fois, vous n’avez pas vraiment besoin de savoir comment coder pour comprendre comment fonctionne Ethereum, mais c’est plus facile si vous maîtrisez certains concepts de base en programmation.

Comprendre le concept d ‘ « état » dans le développement d’applications

Il s’agit d’un point majeur dans le fonctionnement des programmes. Fondamentalement,l’état fait référence à ce qui se passe dans une application à un moment donné dans le temps. Chaque fois que quelque chose change, l’état de cette application change.

Par exemple, mettons que vous visitiez une page Web qui vous oblige à créer un compte. Vous aurez probablement besoin de remplir un formulaire, d’insérer quelques informations et de valider le tout pour envoyer votre formulaire au serveur du site. Vous serez ensuite redirigé vers une autre page « Bienvenue »et vous aurez accès au reste du site. En arrière-plan, lorsque vous envoyez le formulaire et que le site vous redirige, l’état du programme en cours d’exécution change.

Pourquoi est-ce important ? Les contrats intelligents d’Ethereum ne sont jamais que des programmes ou des applications. Chaque itération de l’état d’une application est stockée dans la blockchain. Cela peut sembler compliqué – et,en réalité, ça l’est -, mais l’enregistrement de l’historique du programme est fondamental pour le bon fonctionnement des contrats intelligents Ethereum. Dans les applications Ethereum, lorsqu’une « transaction » se produit, le code logiciel peut être déclenché et exécuté. Ainsi, l’état de cette application peut changer et ce qui vient de se produire dans le code est enregistré et stocké sur la blockchain. En conservant ces enregistrements, jusqu’à l’historique complet de toutes les exécutions d’une application, en y donnant librement accès et en pouvant vérifier chaque changement, on crée des transactions sécurisées.

Par Pierre Collignon


Pour revenir en arrière : Introduction à l’Ethereum
Pour lire la suite : L’EVM, la machine virtuelle