Qu’est ce qu’un Smart Contract ? (contrat intelligent)

Qu’est ce qu’un Smart Contract ? (contrat intelligent)

Apprendre & comprendre Ethereum Guide Ethereum
10 juillet 2017 par CanardCoinCoin

(Originalement en anglais) Cet article est une traduction libre, et qui sera améliorée avec le temps, de l’article de Tomek Kurpanik (spécialiste blockchain) « What Are Smart Contracts & How Do They Work » déniché à l’origine via sa formidable réponse sur Quora à « What are smart contracts« .


Si tu préfères le français, ça se passe ci-dessous ⬇

 

contrat intelligent - smart contract

 

 

Définition des « Smart Contracts » & comment fonctionnent ils ?

Déjà, tu te sens un peu perdu pour expliquer à tes amis ce qu’est bitcoin et la blockchain, et pire quand il faut parler de smart contract c’est le chaos dans ton esprit. Pas vrai ?

! Ce que tu vas apprendre

  • ce qu’est un contrat intelligent (définition adaptée pour les débutants)
  • exemple simplifié de contrat intelligent
  • comment ça fonctionne
  • … et tout ça d’une façon facile à comprendre

Avant de commencer, éliminons 2 idées reçues à propos des contrats intelligents. Et rétablissons la vérité :

  • Les contrats intelligents ne sont pas intelligents et n’ont rien à voir avec l’intelligence artificielle
  • La majorité des blockchains (des crypto-monnaies) n’utiliseront pas de contrat intelligent pour la raison simple qu’elles ne peuvent pas (elles n’ont pas été conçues pour ça)

Utilisons la blockchain Ethereum pour expliquer le concept

C’est un excellent exemple car cette plateforme est spécialisée dans l’exécution de contrats intelligents.

A savoir : Bitcoin est la première crypto-monnaie à utiliser des contrats intelligents basiques. Leurs but principal est de permettre des paiements pair-à-pair (peer to peer) entre ses utilisateurs. Et c’est tout. Si peu ! qu’on ne parle généralement pas de Bitcoin comme étant un exemple de contrat intelligent car la blockchain de Bitcoin n’utilise pas la totalité du potentiel des contrats intelligents.

Pourquoi ? C’est à cause du langage de programmation qui restreint les possibilités 🙁

Vitalik buterin (fondateur d’Ethereum) a vu cela comme une opportunité d’aller plus loin que Bitcoin. Son idée : utiliser des contrats intelligents qui ne sont pas restreints par le langage de programmation.

Nick Szabo est l’inventeur des contrats intelligents en 1994. La rumeur dit qu’il pourrait être la personne qui a inventé Bitcoin. Si tu veux jouer les détectives et résoudre ce casse tête tu peux te renseigner ici.

La définition de Wikipedia

Les contrats intelligents (en anglaisSmart Contracts) sont des protocoles informatiques qui facilitent, vérifient et exécutent la négociation ou l’exécution d’un contrat, ou qui rendent une clause contractuelle inutile (car rattachée au contrat intelligent) (wikipedia)

Expliquons cela 🙂

Quelle est le but des contrats intelligent ?

Pour comprendre cela, voyons d’abord pourquoi les gens ont besoin d’un contrat.

La réponse est simple.

Ils ne se font pas totalement confiance.

Le manque de confiance entre des personnes qui doivent exécuter un accord n’est pas nouveau.

Par exemple, vous ne feriez pas confiance à votre agent immobilier pour vendre votre maison s’il n’y avait pas, entre lui et vous, un accord préalable, n’est-ce pas? Et c’est encore plus angoissant si vous devez envoyer de l’argent, sur internet, à une personne que vous n’avez même jamais vu, pas vrai ?

Les contrats intelligents résolvent ce problème… mais comment ?

Qu’est ce qu’un contrat intelligent

Les contrats intelligents ont pour but de fournir un élément de confiance (de confiance entre 2 personnes). On dit aussi un « tiers de confiance ».

Comment ?

Il y a une astuce.

Ce ne sont pas des tas de papier remplis de langage juridique et difficile à comprendre. Il faut parfois faire appel à des avocats pour comprendre le contenu d’un contrat papier.

Les contrats intelligents sont la version digitale des contrats traditionnels.

Ce sont des programmes dont le seul but est de lier légalement ceux qui y participent. Ce sont des lignes de code écrit dans la langage de programmation Solidity.

Ce code est compilé en « bytecode » et déployé dans la blockchain en tant que contrat intelligent

Voir un exemple basique

contract Escrow {

address buyer;
address seller;
address agent;

function Escrow(address _agent, address _seller) {
// In this simple example, the person sending money is the buyer and sets up the initial contract
buyer = msg.sender;
agent = _agent;
seller = _seller;
}

  function release() {
if (msg.sender == agent)
suicide(seller); // Send all funds to seller
else throw;
}

  function cancel() {
if (msg.sender == agent)
suicide(buyer); // Cancel escrow and return all funds to buyer
else throw;
}
}

Cet exemple a été écrit par Chriseth.

Toutefois, les Smart Contracts sont des programmes, et il y a donc des choses qu’il n’est pas possible de faire :

  • Engager un avocat pour te représenter et défendre ton cas ^^
  • Impossible de poursuivre ton agent immobilier pour récupérer l’argent quand il a vendu la maison
  • Faire pression sur l’autre personne quand tu as l’avantage dans la négociation
à lire aussi :  [Infographie] Histoire d'Ethereum

La bonne nouvelle est que la technologie des contrats intelligents le fait pour toi.

Comment les contrats intelligents fonctionnent ?

Dans notre exemple, cette technologie est la blockchain Ethereum. Elle utilise la Machine Virtuelle Ethereum (EVM en anglais) pour traiter les contrats intelligents.

Le fuel (ether) est utilisé pour payer la puissance de calcul des ordinateurs de la EVM qui traitent et exécutent les contrats.

Note que, ce processus de rémunération par commission est vraiment – vraiment – pas cher… un chouilla 😉

L’idée derrière les contrats intelligents est simple .

Il sont exécutés sur des bases de logique simple, IF-WHEN-THEN (SI-QUAND-ALORS) par exemple :

  • IF/WHEN tu m’envoies l’objet X, ALORS la somme (d’argent) sera à toi
  • IF/WHEN tu transfere une certaine sommes d’argent, THEN l’objet X sera à toi
  • IF/WHEN je termine le travail, ALORS la somme sera à moi

Ces exemples sont basiques, mais illustrent bien l’idée que le contrat intelligent permet de poser des conditions.

Il n’y a pas de limite sur combien de IF ou THEN tu peux inclure dans ton contrat intelligent.

Par exemple :

  • IF/WHEN tu m’envoies l’objet X et Y à la date Z, THEN A et B sera à toi à la date C, etc

Tu vois un peu mieux maintenant toutes les possibilités. Voyons comment tu peux utiliser ça dans la vie réelle.

Comment utiliser un contrat intelligent

Chaque contrat a son adresse dans la blockchain. Une fois qu’un contrat est diffusé dans le réseau, tu peux interagir avec lui en le trouvant avec son adresse.

Par exemple, tu pourrais faire « je veux que 5€ d’Ethereum quitte mon portemonnaie dés que la personne avec qui je traite fait la chose X »

Appelons cette personne Bob, et Bob va laver ta voiture.

Tu n’as pas besoin d’être à ses côtés pour le regarder mouiller les éponges et utiliser le jet d’eau. Bob s’applique et fini le job en une heure. Maintenant Bob veut être payé.

Il va sur le réseau Ethereum, met son adresse et trouve ton contrat. Maintenant, il soumet chacune des informations qui prouvent qu’il a bel et bien lavé la voiture.

Si le contrat intelligent est content des preuves fournis, ALORS la somme convenue va sur le porte-monnaie de Bob.

Tu as saisi l’idée ?

  1. Tu crées un contrat qui va demander des choses (comme des preuves que la voiture est lavée)
  2. Bob fait le job et peut donc fournir ces preuves
  3. Bob est payé et ta voiture brille de mille feux 😉

Tu peux créer autant de conditions et exigences dans ton contrat intelligent. Le niveau de complexité est virtuellement illimité.

C’est cela qu’Ethereum fait très bien…et que Bitcoin ne peut pas faire.

C’est la différence entre ces deux blockchaines.

Note que, les contrats intelligent peuvent aussi marcher ensemble : un contrat A peut faire appel à un contrat B, etc. C’est flexible.

C’est donc d’un grand niveau de sophistication

Et ce n’est pas tout…autant faire encore mieux, pas vrai ? 

L’exécution du contrat se passe dans la blockchain, et cela veut dire que c’est transparent, immuable, peu cher et décentralisé.

Bienvenue dans une nouvelle ère. La technologie de la blockchain sera bientôt aussi ordinaire que d’avoir internet.

Pourquoi les contrats intelligents sont si populaires

Le contrat intelligent a des caractéristiques qui le rendent meilleur qu’un simple contrat ordinaire.

Les plus sont :

  • Simplicité, vitesse d’exécution et mise à jour en temps réel. Ces 3 caractéristiques rendent les contrats traditionnels primitifs
  • Redondance des entités centralisées et d’autres intermédiaires qui contribuent souvent à l’augmentation du risque (??? passe la souris ici  pour voir le texte original)
  • Pas d’humain au milieu pour gérer le contrat : l’execution est plus rapide, et les frais sont minimes
  • L’exécution automatique du contrat signifie qu’il n’y a pas de retard de paiement possible
  • Transparence garantie, certitude, sécurité et légitimité du processus

A quel point sont-ils intelligents

Comment j’ai dit au début , le mot « intelligent » n’a rien à voir avec le fait d’être intelligent.

Ils peuvent seulement effectuer des calculs basiques comme ajouter, soustraire, multiplier et diviser, etc. Les contrats intelligents ne sont pas fait pour réaliser des analyses de données complexes.

à lire aussi :  Qui est Vitalik Buterin ? Le créateur d'Ethereum

Ils ne tiennent pas compte des nouvelles variables (d’un point de vu du langage de programmation) autres que celles spécifiées au préalable.

Le code n’est pas interactif et tu ne peux pas le réparer en temps réel.  C’est l’une des plus grandes préoccupations quand il s’agit de traiter des contrats intelligents.

Le mauvais côté d’un contrat intelligent

Il est impossible de stopper un contrat une fois qu’ils a été envoyé à l’exécution.

Cela peut créer des conséquences sévères si les programmes ont été mal écrit. Il y n’a une seule solution pour corriger un programme intelligent qui aurait ce genre de problème.

Et c’est la voie traditionnel – la voix légal. Aujourd’hui, il n’y a pas de meilleure solution.

Et il apparait comme incontournable que…

…l’idée d’une plateforme décentralisée de cours de justice/jugement/etc basée sur une blockchain puisse un jour être crée. (pour résoudre des problèmes de contrat intelligent…voire encore plus)

Ok, je vais te dire ce qui est cool :

Exemple de contrats intelligents en action

Voyons comment les contrats intelligents pourraient contribuer à améliorer la vie de tous les jours. (sans détail technique)

Crédits et hypothèques

Vendre ou acheter une maison est un long processus. Disons qu’il y a plusieurs étapes

  • Tu dois être accepté pour mettre ta maison en gage
  • Tu cherches une maison à acheter
  • Tu visites une douzaine de maison avant de faire une offre d’achat sur une ou deux

…sauf que tu t’aperçois que tu ne peux pas débloquer les fonds car tu as déjà un crédit sur le dos et la banque te dit que ta maison actuelle ne suffit pas comme garantie

Un contrat intelligent aurait pu assurer que tu es bien éligible pour le montant de l’achat/vente. Et cela aurait prit une seconde.

Aujourd’hui, il peut se passer plus d’un mois pour obtenir les clés de sa maison une fois que tu l’as achetée… 1 mois !

Et cela à cause de la paperasse entre les vendeurs, acheteurs et avocats. Quelle perte de temps pour engraisser les bureaucrates.

Avec le contrat intelligent tu aurais gagné

  • du temps
  • de l’argent

Le vote

Tu peux aussi utiliser un contrat intelligent pour enregistrer les votes dans la blockchain.

Par exemple, Emmanuel ‍ devient président  dès que l’on sait que Marine  n’obtient pas la majorité.

C’est transparent et indiscutable. Rien ni personne ne peut le discuter. Pas même les petits candidats de la France Insoumise.

La transaction peer-to-peer

Comme je l’ai dit plus haut, les transactions de Bitcoin sont basées sur des contrats intelligents très rudimentaires.

C’est déjà une façon de transférer des fonds qui a fait ses preuves, et qui devient de plus en plus populaire.

Toutefois, on pourrait maintenant imaginer des possibilités beaucoup plus larges :

  • hypothèques
  • prêts aux particuliers
  • prêts pour les affaires
  • cartes de crédit

Ces services fonctionneraient avec des contrats intelligents mais avec une différence significative :

Le coût d’un crédit (le coût des intérêts) pourrait diminuer de plus de 7 fois qu’il n’est aujourd’hui.

Cela est dûe aux coûts administratifs et assurances (qui ne sont pas nécessaires dans la blockchain)

! Besoin d’une autre explication en vidéo ?

En conclusion

Les contrats intelligents ne sont pas parfaits, et dans le futur nous verrons une amélioration de cette technologie.

Que ce soit pour la facilité d’utilisation ou les fonctionnalités, il y a toujours un champ d’amélioration. Pourtant, ils s’avèrent être une bien meilleure option que les contrats traditionnels.

Et cela s’applique à peu près à tout ce que tu peux penser.

Ils peuvent te placer aux commandes de toutes tes affaires personnelles et professionnelles.

Toutes les entités centralisées deviennent obsolètes (avocats, tiers de confiance humain, etc)

Bien évidemment, cela ne signifie pas que les avocats et agents immobiliers iront pointer à pôle-emploi.

C’est leur façon de travailler qui pourrait s’en trouver changée. La dynamique des contrats intelligents pourrait faire changer leur métier en rendant leurs services meilleurs.

Tu seras capable d’avoir des choses faites plus rapidement et moins chers. Mais tu auras toujours besoin d’un agent immobilier pour te trouver des acheteurs et d’un avocat pour te représenter.

Les contrats intelligents vont révolutionner le monde… c’est déjà le cas.

La question est, vas tu rejoindre ce nouveau monde ?

1 étoile2 étoiles3 étoiles4 étoiles5 étoiles (18 votes, avmoyenne 4,11 sur 5)
Loading...

Add a comment

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.

X
X