Qu’est-ce qu’un smart-contract ou contrat intelligent ?

Origine des smart-contracts

L’idée provient de Nick Szabo, informaticien, juriste et cryptographe, et apparaît au début de l’année 1994. Il utilise le terme de smart-contract pour définir un ensemble d’engagements “digitaux” tels que des protocoles dans lesquels les parties remplissent chacune leurs promesses.
L’idée originale de Szabo à propos des contrats intelligents était de donner la possibilité à certains de ces contrats une valeur juridique, ou non. Cette idée fut mise en sommeil pendant de nombreuses années car aucune technologie ne supportait l’implémentation des smart-contracts.

En 2009 l’application de la technologie blockchain émerge avec le Bitcoin. On peut dire que le Bitcoin implémente une ébauche de contrat intelligent. La véritable révolution arrive en 2013 avec l’apparition d’EthereumEthereum permet de construire des contrats intelligents plus complexes en utilisant un langage spécifique nommé Solidity. Ce dernier permet aux développeurs d’écrire des processus complexes dans un court laps de temps de code.

La montée en puissance de ces protocoles a permis à l’idée du contrat intelligent de renaître pour automatiser et améliorer de nombreux processus. Un contrat intelligent permet de se passer d’intermédiaire, et donc de tiers de confiance, pour réaliser certaines clauses prévues dans le contrat.
Cette intégration avec la technologique blockchain s’est toutefois révélée plus difficile que prévu…

 

Qu’est-ce qu’un smart-contract, ou contrat intelligent

Les contrats intelligents, ou smart-contracts en anglais, sont des bouts de code qui permettent à une blockchain (à l’origine celle de l’Ethereum) de transporter ou de déplacer des données sans intermédiaire. Aucune action humaine n’est nécessaire pour faire en sorte que le smart-contract s’exécute. Ce dernier va s’exécuter en fonction des règles qu’il contient et de données qui sont certifiées exactes. Les “règles” d’un smart-contract peuvent être considérées comme étant automatiquement déclenchées après la signature du contrat et donc son acceptation. Il existe la possibilité d’intégrer dans le contrat intelligent des sanctions en cas de non exécution de celui-ci. Cela pourrait permettre de réduire les contentieux.

Les  règles sont inscrites de manière immuable dans une Blockchain.
Cela permet de s’assurer que le transfert d’un actif (tokens, acte de propriété…) se fait lorsque les conditions contractuelles se vérifient.
Le contrat devient donc infalsifiable et s’exécute parfaitement dans les règles.
Les smart-contrat possèdent une adresse dans la blockchain, comme par exemple :

Cela signifie qu’il est possible de communiquer avec lui en le trouvant grâce à cette adresse.

En allant plus loin, il est possible de créer des organisations, services, applications pouvant fonctionner de manière indépendante.
Les dApp ou les DAO peuvent en être des exemples.

 

Comment fonctionne les smart-contracts ?

Comme nous l’avons vu précédemment ces contrats de nouvelle génération permettent de se passer d’intervention humaine et de tiers de confiance.
Les premiers smart-contract ont été écrit sur la blockchain Bitcoin mais ils sont limités au transfert de valeur. Grâce à Ethereum et à son langage de programmation Solidity il est possible de réaliser des contrats intelligents beaucoup plus complexes permettant le transfert d’actifs représentant autre chose que de la valeur. Le langage est Turing-complet, cela signifie qu’il prend en compte des fonctions, systèmes, calculs extrêmement complets.
Sur la blockchain Ethereum on utilise la Vitural Ethereum Machine pour gérer ces contrats. Pour faire fonctionner ces contrats intelligents il faut leur envoyer un message, pour cela il faut payer les frais de transactions Ethereum qu’on appelle du GAS et qui sont de l’Ether.

Les contrats intelligents s’exécutent avec des conditions comme IF/WHEN…
Nous avons pris des exemples de conditions simples, mais il n’y a aucune limite. Il est possible de faire des combinaisons ultra complexes et spécifiques.
Voici l’exemple d’un smart-contract (très) basique à propos de l’envoi et de la réception de tokens :

 

 

Quelles peuvent être les utilités des smart-contracts ?

Pour le moment les contrats intelligents sont encore peu exploités. Mais dans un futur proche il est possible que nous en utilisions pour une multitude de choses.
Voici quelques exemples qui montrent l’utilité des smart-contracts :

  • S’assurer de la bonne réception d’un bien ou service par un acheteur et de l’argent pour le vendeur
  • Un exemple dans l’assurance : une conduite lors d’un temps clair et sur une route dégagée donnerait une compensation différente d’une conduite de nuit sur une route cabossée. Les données parviendraient d’un Oracle qui se chargera d’inscrire des données extérieures telles que la météo dans la blockchain.
  • Dans la supply-chain : en fonction des commandes de ses clients, une entreprise commanderait automatiquement le nombre de pièces nécessaires à la réalisation de tel ou tel produit

Les possibilités sont multiples et infinies. Des millions de processus peuvent d’automatiser comme les actes de naissance, de notariat…

 

 

Quels peuvent être les risques des smart-contracts ?

Comme dans l’informatique, le risque principal est celui d’un piratage. Il est plus facile d’exploiter des failles car le code est open-source et de modifier les termes du contrat intelligent. Le cas est déjà apparu plusieurs fois, le plus connu est l’affaire The DAO qui a entraîné la perte de plusieurs millions d’Ether et le fork entre ETH (Ethereum) et ETC (Ethereum Classic).

Autre “problème”, le fait qu’il soit impossible d’arrêter un smart-contract une fois qu’il est exécuté. Cela peut être très problématique si le contrat intelligent est mal codé.

Autre risque, l’utilisation d’Oracles malveillants. Nous en avons parlé tout à l’heure dans notre exemple dans l’assurance. Imaginons que l’Oracle ne délivre pas les bonnes informations, le contrat intelligent se basera alors sur de fausses informations.
Pour diminuer les risques il est possible de se baser sur plusieurs Oracles pour limiter les risques de corruption.

Pour le moment les contrats intelligents ne bénéficient pas de cadre légal. Avec toute les régulations commençant à être mises en place et le potentiel de ces derniers, nul doute qu’un cadre sera prochainement défini.

 

 

Quelques informations supplémentaires à propos des smart contracts

  • Les smart contracts n’ont pas de valeur juridique, mais cela pourrait changer prochainement
  • Les smart contracts n’intègrent pas d’intelligence artificielle, ce sont des bouts de code qui s’exécutent et se déclenchent par des données externes. Eux-mêmes permettent de modifier d’autres données, on peut considérer ceux-ci comme des événements
  • Il est facile de programmer des smart contracts : tout dépend du contrat intelligent que vous souhaitez développer et de vos compétences. Pour programmer des smart contracts sur la blockchain Ethereum vous devez utilisez un langage spécifique nommé Solidity. Des templates commencent à sortir afin de faciliter la création de contrats intelligents.
  • De très nombreuses blockchain, donc par association crypto-monnaie, n’utilisent pas de smart-contracts

 

Vous vous posez d’autres questions ? Nous avons peut-être déjà la réponse dans notre Foire Aux Questions.
Si ce n’est pas le cas n’hésitez pas à la poster en commentaire !

 



Il n’y a pas de mauvaises questions, juste des bonnes réponses 😉

Cet article vous a aidé ❤ ? N’hésitez pas à nous le faire savoir en attribuant une note sur 5 ou en nous laissant un commentaire 🙂

 

Avis des lecteurs
[Total : 2    Moyenne : 5/5]


Poster un Commentaire

avatar