Les Smart Contracts sont des protocoles de transactions informatisés, qui exécutent automatiquement des conditions définies au préalables et inscrites dans la Blockchain. En utilisant les Instructions Conditionnelles "IF … THEN" (SI .. DONC) ; Si la Condition A est remplie, alors il faut Executer B.
Ils sont devenus populaires dès 2015 grâce à la Blockchain Ethereum, créée par Vitalik Buterin. Le Smart Contract le plus connu reste tout de même le Bitcoin (BTC) bien que celui-ci ne soit limité qu'à une utilisation purement financière, et l'échange de Cryptomonnaies.
Alors que les Smart Contrats développés grâce et sur la Blockchain Ethereum ont un éventail d'application plus diversifié :
Transaction Financières
Création de Monnaies (Tokens)
Et surtout l'avantage important, est la création de Smart Contract directement par des développeurs
Alors que dans notre société actuelle, tout est centralisé :
Les Banques centralisent leur contrats
Les Assurances centralisent leurs contrats dans un Cloud et centralisent surtout l'informations des clients
Les Tribunaux centralisent les affaires ...
Notre futur ne peut se faire que dans : la Décentralisation & l'Exécution Automatique
Avant d'entrer plus dans ce Sujet, il est nécessaire, si ce n'est primordial, de savoir que les Smart Contracts, n'ont rien de SMART et ne sont pas non plus des CONTRACTS à valeur juridique. Je m'explique :
Le mot SMART est surtout utilisé pour désigner de quelque chose qui est : 'Astucieux', 'Évolutif', ou qui représente une 'Nouvelle Technologie' (tout comme les mots 'Smart Phone', 'Smart Homes', 'Smart Cities')
Le mot CONTRACT fera plutôt référence à l'accord entre 2 voir plus, de parties concernées par cet engagement
Les Smart Contracts ont été Conceptualisés et Développés par Nick Szabo, en 1994, bien avant la naissance de la première des Cryptomonnaies (le Bitcoin (BTC) qui est apparu en 2009, avec son premier Bloc miné, du nom de 'Genesys Bloc'), mais aussi bien avant la naissance de la Monnaie Virtuelle de Nick Szabo 'Bit Gold' (créée en 1998)
Dont la brève présentation est : "Un protocole de transactions informatisés qui exécute les termes d'un contrat. Les objectifs généraux sont de satisfaire aux conditions contractuelles communes"
A la base, lors de sa création, les Smart Contracts pouvaient déjà être appliqué à plusieurs domaines :
Système de Crédit
Traitement des Paiements (comme par exemple, les salaires pour une entreprise)
Gestion des Droits sur un contenu (comme pour les droits d'auteurs pour une musique qui étaient diffusés à la Radio, à la TV ou lors d'un spectacle)
Globalement, les Smart Contracts sont hébergés sur une Blockchain dédiée. La plus utilisée est la Blockchain Ethereum, mais depuis peu il en existe d'autres qui proposent des Smart Contracts :
Blockchain Cardano
Blockchain EOS
Blockchain Tezos
Blockchain NEO
Blockchain Tron
Sans oublier que la Blockchain Bitcoin peut elle aussi héberger/proposer des Smart Contracts
L'utilisation de la Blockchain, ainsi que de la Décentralisation dans le processus d'utilisation et d'application des Smart Contracts permet l'impartialité du processus de Validation de ceux-ci.
Un Smart Contract reste néanmoins un code informatique, codé par un Développeur ou un Développeur Web, qui doit aussi avoir de bonnes connaissances des Blockchains, qui peut aussi se faire assister par un Juriste pour être proche de la Loi en Vigueur, tout en sachant que le Smart Contrat n'a aucune valeur juridique. Mais dès que ceux-ci sont déployés sur une Blockchain, ils ne nécessitent plus de supervision ou de contrôles d'une tierce partie
La création de Smart Contrat est très complexe, l'écriture en elle-même peut être la première source de bug, d'où l'intérêt d'utiliser dès le début le bon langage de programmations, tels que :
Solidity (le plus utilisé sur Ethereum, et surtout le plus simples pour les novices)
Viper
Serpent (similaire à Python)
Lem …
Les avantages des Smart Contracts sont :
Traitement économique et rapide des transactions
Contenu parfaitement clair et précis
Prévisibilité du règlement du Contrat
Aucune possibilité d'influencer le Contrat
Haute Transparence ainsi que Fiabilité et Sécurité
Déroulement via un infrastructure Globale
Coût de déploiement et de transaction faibles
Mais ils comportent aussi des limites :
Nécessite une base de données numérique
L'accès à l'information en dehors de la Blockchain est restreint, il faut faire appel à des Oracles
Aucune possibilité d'influencer ou de modifier le Contrat, une fois celui-ci déployé sur la Blockchain
Pas de mécanisme prévu en cas de litige
Les cocontractants sont souvent anonymes
Adopte une Logique de transaction binaire → IF … THEN (SI ... DONC
Les domaines d'application sont très vastes :
Finances
Assurances
Paiement déterminé et récurrent
Enchères
Gestion de l'identité
Location Maison/Appartement/Voiture
Paiement des Artistes/Musiciens
Traçabilité des produits Alimentaire et/ou Pharmaceutiques
Elections Locales/Nationales
Plateformes d'échanges de Cryptomonnaies
Il faut tout de même noter que, même si les Smart Contracts sont extrêmement sécurisés, de par le faite qu'ils soient hébergés sur une Blockchain, ils sont codés par des Humains, et les Humains peuvent être :
Partiaux
Faillibles
Malades
Incompétents
Corruptibles
Et une simple erreur dans le Code, peut être exploité par des Hackers qui peuvent en tirer profit, comme cela à été vu le 17 juin 2016 avec The DAO (The Decentralized Autonomous Organization) avait levée 150 Millions $ (alors que l'ETH valais 20$ à l'époque), une erreur dans le code a permis à des Hackers de dérober 50 Millions $
Alors que les Programmes Informatiques n'ont pas d'Âmes, donc en cas de problème de sécurité, le seul fautif ne peut être que celui qui a rédigé le Contrat. Et sont aussi moins cher qu'un Humain, d'où le principe de faire automatiser les actions par le Programme pour un gain d'argent non négligeable
Rappelez vous aussi, que la puissance d'un Smart Contrat réside uniquement dans l'intelligence que celle de son programmateur
Pour de détails à venir sur :
Comment fonctionne un Smart Contract
Quelle Blockchain et quelle langage de programmation
Différence entre Smart Contract et Contrat Classique
Domaines d'applications plus détaillés …
A Suivre.
A Bientôt
Christophe WILHELM
© Bitcoin Meister
Source images: Google
Resources