Smart Contracts - Comment fonctionnent-ils ?

0 63
Avatar for ChrissCrypto
3 years ago

Bonjour/Bonsoir à tous !

Les Smart Contracts, ont étés créés par Nick Szabo, célèbre Cryptographe dans le monde des Cryptomonnaies, en 1994

Son idée était d'utiliser les Smart Contracts comme un outil qui formalise et sécurise les réseaux informatiques, en combinant des protocoles avec des interfaces utilisateurs.

Ils étaient essentiellement développés et utilisés pour ces domaines d'applications :

  • Systèmes de Crédit 

  • Traitement des paiements

  • Gestion des Droits sur un contenu

Et ensuite se sont popularisés, grâce à l'apparition de la Blockchain Ethereum, qui utilise les Smart Contracts comme fer de lance de son Réseau. Tout en restent majoritairement liés au monde des Finances.

 

Nous avons tous au moins une fois dans notre vie été en contact avec au moins une machine qui utilise un Smart Contract pour nous fournir un service/objet. Pour certains cela se produit presque tous les jours. Mais dans ce cas là, vous allez me dire : "OK, mais qu'est-ce que j'utilise au quotidien et qui fonctionne avec un Smart Contract ?"

C'est relativement simple à deviner. La fonction principale d'un Smart Contract, hormis son auto-exécution, c'est qu'il utilise l'ordre d'exécution 'SI .. ALORS' ('IF .. THEN'), donc concrètement, dès que vous avez effectué une transaction financière, vous recevez un service ou un produit.

Vous commencez à trouver ?

Pour les 2 plus connus, si ce ne sont les plus simples, ce sont : 

  • Les Terminaux de paiement

  • Les Distributeurs automatiques.

 

Les Terminaux de paiement : 

Lorsque vous faites un achat dans un magasin, peu importe ce que vous achetez, peut importe le type de magasin, et que vous payez en 

  • Sans contact

  • Carte bancaire

  • Carte de fidélité

  • Cash …

L'ordre d'exécution s'active : 'SIvous avez l'argent nécessaire pour payer la factureALORSvous pouvez repartir avec vos achats'

  • → Toutes ces transactions fonctionnent par le biais d'un Smart Contracts 

 

Les Distributeurs automatiques :

Ils fonctionnent sur le même principe. Vous sélectionnez votre boisson, snack .., vous insérez l'argent Cash, ou par Carte (ou sans contact), c'est alors que l'ordre d'exécution s'active 'SI .. ALORS', et dès lors que vous avez payé, vous pouvez récupérer votre achat.

  • → La façon la plus simple de comprendre l'utilité d'un Smart Contract.

 

C'est 2 objets, sont indissociables de notre quotidien, et il devient banal de les utiliser, mais dites vous bien que la technologie derrière tout cela est relativement complexe.

Dans ces 2 cas de figures, nous pouvons illustrer facilement et clairement comment les Smart Contracts fonctionnent 

Si vous payez en cash (dans le cas d'un distributeur automatique), il n'y a plus besoin d'une 'personne' qui fasse l'appoint, et qui vous rende la monnaie, la machine le fait tout seul, et si vous payez un carte bancaire, la machine interroge votre banque, qui répond en confirmant si oui ou non vous disposez des fonds pour payer.

Ces processus ne prennent que 1 à 2 secondes ! Il n'y a plus besoin de l'intervention d'une tierce personne, qui prenne connaissance de l'ordre, qui vérifie manuellement, pour ensuite valider ou non l'ordre (perte de temps, frais supplémentaires due à l'intervention 'humaine'). 

 

Payer à la caisse d'un magasin, ou à un distributeur automatique, illustre toutes les spécificités d'un Smart Contract :

  • Auto-exécution (Exécution automatique)

  • Traitement des paiement

  • Trustless (lorsque 2 parties n'ont pas besoin de se connaître pour se faire confiance)

  • Suppression des intermédiaires 

  • Réduction des coûts (opérationnels)

 

Revenons au sujet qui nous intéresse, les Smart Contracts dans l'univers des Cryptomonnaies.

Comme dit précédemment, les Smart Contracts sont apparus en 1994, créés par Nick Szabo, il faudra attendre 2015, et l'apparition de Ethereum, co-fondé par Vitalik Buterin, pour les voir se populariser.

Bien avant la naissance de la Blockchain Ethereum, il existait déjà des Smart Contracts, disponibles sur la Blockchain Bitcoin, mais ceux-ci sont très restrictifs (et le sont encore). Car chaque Blockchain peut présenter une manière différente d'implémenter les Smart Contracts.

Ce qui est bon à savoir et à prendre en compte rapidement, c'est que pas tout le monde ne peut 'Coder' un Smart Contract, bien que celui-ci ne soit qu'un Code Informatique, il doit être Codé par un professionnel, Codeur, ou Codeur Web, avec le soutien d'un Juriste éventuellement.

 

Chaque Blockchain utilisa un Langage de Code spécifique, et le langage le plus utilisé est celui de Ethereum, pour sa facilité et sa simplicité d'utilisation :

  • Blockchain Bitcoin, Langage interprété : Script, Langage développeur : Miniscritp, Policy

  • Blockchain Bitcoin Cash, Langage interprété : Script (modifié), Langage développeur : CashScript, Spedn

  • Blockchain Ethereum, Langage interprété : EVM bytecode, Langage développeur : Solidity, Vyper

  • Blockchain Tezos, Langage interprété : Michelson, Langage développeur : Liquidity, LIGO, SmartPy, Archetype

  • Blockchain Cardano, Langage interprété : IELE bytecode, Langage développeur : Plutus, Marlowe … 

 

Si nous prenons l'exemple du Smart Contract Ethereum, il doit répondre à un certain nombres de critères pour être acceptable sur la Blockchain :

  • Distribué : Répliqué et distribué sur l'intégralité sur Réseau Ethereum

  • Déterministe : Réalise uniquement les actions pour la/lesquelles il a été conçu, et seulement si les exigences contractuelles sont respectés

  • Autonome : Permet d'automatiser toute sortes de tâches, grâce à la fonctionnalité d'auto-exécution

  • Immuable : Ne peut en aucun cas être modifié après son déploiement (sauf si la fonction dénommée 'AUTODESTRUCTION' est incluse dans son code, ce qui permettra ensuite de 'supprimer' le Smart Contract)

  • Personnalisable : Qu'il puisse être codé de différentes manières, et qu'il puisse être utilisé sur des Application Décentralisés (dApps)

  • Trustless : Deux parties (ou plus) peuvent interagir par le biais d'un Smart Contracts, sans nécessairement se connaître, ni se faire confiance

  • Transparent : Les Smart Contracts sont basés sur une Blockchain Publique, leur code est donc visible et consultable par tout le monde.

 

Le fait qu'un Smart Contracts soit basé sur une Blockchain, est une garantie de son immuabilité, mais pas que, il n'est plus modifiable et ne peut plus être supprimé (sauf si une fonction déterminée est inscrite dans son code avant son déploiement).

Il est aussi très important de préciser, que le Smart Contract est un Code informatique, codé par un Humain. Bien que ce Code/Smart Contract en lui même soit immuable, il fera uniquement la tâche pour laquelle il a été écrit, donc si le Code comporte une erreur, si une adresses de destination est erroné, ou si une condition n'est pas expliqué clairement, cela ne sera pas la faute du Code, mais de celui qui l'a Codé, et comme il n'est pas modifiable et ne peut pas être supprimé après son déploiement, il est plus que nécessaire de vérifier, faire vérifier le code et le tester avant son déploiement, pour éviter tout soucis futurs.

Étant donné que son Code est rendu Publique, il peut aussi être hacké. D'où la nécessité de travailler aussi sur la protection de celui-ci.

 

Voici quelques caractéristiques qui différencie un Smart Contract d'un Contrat Classique :

  • La mise en Œuvre rapide et immédiate (au lieu de juste pour la durée du Contrat)

  • Sa lisibilité est facile pour la Machine et compliqué pour l'Humain, alors que les Contrats Classique c'est l'inverse

  • Sa rédaction est rapide, pour une personne qui est adepte du Codage

  • Sa sécurité est élevée, à l'inverse d'un Contrat Classique qui aura une sécurité limitée

  • Son Archivage est facile

  • L'extraction des données est immédiate, alors que pour les Contrats Classique elle est lente

  • Et enfin, le Smart Contract est public, s'il est sur une Blockchain Publique, alors que le Contrat Classique est confidentiel.

 

Comme vous avez pu le comprendre, les Smart Contracts sont extrêmement utiles pour automatiser les tâches (auto-exécutions quand une partie ou toutes les conditions sont complétées), pour simplifier et faciliter des transaction financières avec un gain de temps et d'argent. Mais les Smart Contrats peuvent aussi être vulnérables, et cette vulnérabilité n'est la cause que de celui qui l'a Codé.

 

 

A Bientôt

Christophe WILHELM

Bitcoin Meister

© Bitcoin Meister

 

Source images: Google

Resources

  1. https://bitcoinmeister.eu/

  2. https://nakamotoinstitute.org/

1
$ 3.26
$ 3.26 from @TheRandomRewarder
Avatar for ChrissCrypto
3 years ago

Comments