BlockChain et Smart Contract, qu’est-ce que c’est ?

Blockchain et smart contract - Némésis studio

28 Fév BlockChain et Smart Contract, qu’est-ce que c’est ?

Temps de lecture : 9 min

Chers lecteurs,

S’il y a bien un article à lire en ce début d’année, c’est bien celui-ci ! Nous allons, en effet, vous présenter un sujet qui pourrait bien révolutionner notre avenir : le smart contract. Peut-être vous est-il totalement inconnu ou en avez-vous déjà entendu parler. Toujours est-il que le smart contract est un sujet que nous trouvions important de vous présenter pour ouvrir le champ de vos possibilités numériques.

L’histoire du smart contract

Le terme « smart contract » est populaire depuis peu mais son concept n’est pas nouveau. En effet, dans les années 1990, le cryptographe Szabo (désormais célèbre pour ses travaux sur la blockchain) décrivait déjà le smart contract comme un outil qui formalise et sécurise les réseaux informatiques en combinant des protocoles avec des interfaces utilisateur. Nick Szabo décrivait également l’utilisation de contrats intelligents dans divers domaines impliquant des accords contractuels : systèmes de crédit, traitement des paiements, gestion des droits sur un contenu. C’est seulement depuis 2009 et l’essor des crypto-monnaies comme le Bitcoin que les smart contracts sont réellement apparus. Leur but était alors d’ajouter des conditions d’échange des crypto-monnaies. Ils se sont peu à peu complexifiés pour permettre une gestion de conditions de plus en plus poussée.

Qu’est-ce qu’un smart contract ?

Pour comprendre ce qu’est un smart contract, il est intéressant de comprendre le système dans lequel il évolue.

La Blockchain

Un smart contract est généralement déployé sur une blockchain. La blockchain actuellement la plus utilisée pour le dépôt de smart contract est le réseau Ethereum mais de nombreux autres réseaux peuvent être utilisés.

Pour ceux qui se disent « Mais c’est quoi la blockchain ? », imaginez un grand livre comptable partagé et infalsifiable. Chaque utilisateur dispose d’une clé privée lui permettant d’accéder au livre et d’y ajouter ses transactions à la suite des autres. Une fois une transaction ajoutée au livre comptable, elle ne peut plus être modifiée ou supprimée.

Dans le cas de la blockchain, le livre comptable est en fait un système de stockage et de transmission sécurisée de données numériques. Ce système est décentralisé et auto-hébergé par ses utilisateurs. C’est comme si chaque utilisateur disposait d’une copie conforme ou d’une partie du livre comptable chez lui.

Chaque utilisateur dispose d’une clé privée (série de chiffres et de lettres unique) et d’une clé publique (générée à partir de la clé privée).

La clé publique est connue par tous les utilisateurs de la blockchain. Elle permet d’initier une transaction en chiffrant son action. Cette clé peut être comparée au certificat utilisé dans le cadre d’une signature électronique. Elle prouve l’identité de l’utilisateur et la véracité de son action.

La clé privée ne doit surtout pas être rendue publique. Celle-ci permet de déchiffrer une transaction. La seule condition pour faire cette action est que la transaction soit chiffrée avec la clé publique générée par la clé privée.

Maintenant que nous avons en tête ce qu’est la blockchain, revenons à nos smart contracts.

Le Smart contract

Le smart contract ou contrat intelligent est un programme informatique publié sur une blockchain dont le but est d’exécuter automatiquement des instructions prédéfinies. Il s’agit en quelque sorte d’une version numérique plus évoluée de nos habituels contrats papier.

Pour s’appliquer, les conditions convenues dans le contrat intelligent doivent être remplies. Il s’agit en grande majorité de conditions permettant le déblocage / la transmission de fonds financiers. Dans ce cas, si les smart contracts sont très utilisés, c’est qu’ils permettent souvent de s’affranchir d’intermédiaires comme les banques. Les smarts contracts permettent en effet d’effectuer des transactions de façon automatique et sécurisée sans intermédiaire pour vérifier ou faire appliquer le contrat. Les coûts opérationnels sont ainsi généralement réduits de manière significative.

Comment fonctionne un smart contract ?

Prenons l’exemple sur Ethereum. Généralement, les contrats intelligents Ethereum sont constitués d’un code de contrat et de deux clés publiques :

  • Ces clés sont générées à partir de la clé privée du créateur du smart contract afin de les rendre légitimes.
  • La première clé publique est celle fournie par le créateur du contrat. Elle sert à prouver que le smart contract est activé par une clé privée car un smart contract ne peut être activé que par un utilisateur ou par un autre contrat intelligent.
  • La seconde clé représente le contrat lui-même et agit comme un identifiant numérique unique propre à chaque contrat intelligent.

Une fois déployé et comme mentionné précédemment, un smart contract ne peut s’appliquer qu’à certaines conditions. Ces conditions sont listées dans le programme informatique composant le contrat intelligent. Chaque condition validée est enregistrée dans la blockchain de façon irrévocable (pas de modification ou suppression à posteriori) ce qui garantit la sécurité et la véracité des données. Dès lors que toutes les conditions sont validées, le contrat peut s’exécuter automatiquement.

Peut-on modifier ou supprimer un smart contract ?

Il est impossible de modifier un contrat intelligent après son déploiement. Toutefois, lors de sa création, il est possible d’insérer dans le code une fonction nommée « AUTODESTRUCTION » qui sera en mesure de « supprimer » le contrat intelligent et de la remplacer par un nouveau. Si cette fonction n’est pas intégrée lors de la création du smart contract, elle ne pourra pas être utilisée.

Il existe également des smart contracts qui offrent aux développeurs plus de flexibilité. Ils sont plus ou moins « actualisables » en intégrant des « sous-contrats » possédant la fonction « AUTODESTRUCTION » qui peuvent être supprimés et remplacés.

Quelles sont les applications d’un smart contract

Actuellement, le smart contract sert principalement à automatiser des échanges de cryptomonnaies. D’ailleurs, de nombreuses transactions effectuées via les smart contracts ont des conditions très simples (exemple : si on est le 2 du mois il faut envoyer X argent sur tel compte).

Certains cependant, implémentent des conditions très poussées qui pourraient bien révolutionner pas mal de choses dans un avenir proche. On voit par exemple apparaître de plus en plus d’applications utilisant les smart contracts se développer sur la blockchain : échanges monétaires décentralisés, jeux et paris sportifs, cloud décentralisé, plateformes de marchés prédictifs, etc.

Pour en savoir plus, n’hésitez pas à consulter  https://www.stateofthedapps.com/ qui référence et classe un grand nombre de ces applications.

Vous l’aurez compris, les contrats intelligents peuvent être utilisés de multiples façons. Nous allons vous présenter quelques exemples concrets qui tendent à se développer. Toutefois, il convient de garder en tête que le cadre légal des smart contracts n’est pas encore défini et que certaines applications présentées ci-dessous sont encore utopiques.

Exemple d’application dans le secteur des assurances

L’assurance représente un secteur prometteur pour les smart contracts car de nombreux processus pourraient être automatisés grâce à eux. Plusieurs compagnies d’assurances ont d’ailleurs testé l’utilisation des smart contracts dans le cadre de situations précises et facilement vérifiables pour dédommager automatiquement leurs assurés. L’essai concret à retenir est certainement celui permettant de dédommager les voyageurs aériens en cas de retard de vol.

Exemple : Un voyageur souscrit à un smart contrat lui assurant une indemnité automatique en cas de retard de ses vols auprès de son assurance. Lors d’un vol, le système de l’assureur vérifie l’heure d’atterrissage de l’avion sur une base de données accessible publiquement. Si un retard est observé, les termes du contrat sont appliqués directement, et l’utilisateur est averti dès son arrivée à l’aéroport du montant de son indemnisation et de son virement imminent.

Ces quelques tests ouvrent de nombreuses perspectives d’avenir pour ce secteur et on peut aisément imaginer une automatisation/simplification des démarches globales d’indemnisation dans le futur.

Exemple d’application dans le secteur du e-commerce

Les smart contracts permettent d’assurer des transactions en toute confiance et pourraient être appliqués au e-commerce pour limiter les litiges.

Exemple : Un internaute commande un objet sur une boutique en ligne lui garantissant un achat sécurisé grâce au contract intelligent. Ce contrat est passé entre le e-commerçant, le transporteur et le client et prévoit certaines conditions :

  • Si le colis est bien livré au client, alors le e-commerçant et le transporteur sont rémunérés.
  • Si le colis est perdu ou endommagé par le transporteur, le client est remboursé et le transporteur doit des indemnités au e-commerçant.

Exemple d’application dans le secteur de l’immobilier

En France, la législation ne permet pas encore de s’exonérer de la signature chez le notaire, mais le reste du secteur immobilier semble être un terrain de jeu propice pour la blockchain et les smart contracts. De nombreuses start-up s’emparent d’ailleurs du sujet pour proposer des solutions innovantes qui sont en passe de révolutionner ce secteur.

Exemple : Un propriétaire bailleur souhaite utiliser le contrat intelligent pour s’assurer un revenu fixe et limiter tout litige. Dans ce cas, les conditions du bail ainsi que les modalités de paiement pourraient être enregistrés dans un smart contract et lister des conditions comme :

  • Lors d’un défaut de paiement de la part du locataire, une demande de prélèvement lui est automatiquement envoyée.
  • La caution déposée sur la blockchain lors de l’état des lieux d’entrée est automatiquement restituée au locataire si l’état des lieux de sortie est OK ou attribuée au propriétaire dans le cas contraire.

 

Actuellement, la plupart des exemples de contrats intelligents concernent les services financiers, mais avec un peu d’imagination, on constate que de nombreuses autres utilisations sont possibles.

Quelles sont les perspectives d’avenir des smart contracts ?

Du fait de l’utilisation croissante des objets connectés (IoT), de l’intelligence artificielle et de l’interconnexion de systèmes, les smart contracts devraient se démocratiser. Les simples échanges de cryptomonnaies devraient faire place à des processus beaucoup plus complexes mêlant divers technologies et objets. Des processus jusqu’alors complexes devraient se voir simplifiés grâce à la digitalisation des contrats et à la suppression d’intermédiaires.

Mais face à tant de données et nouveautés, notre société se trouve confrontée à des défis nouveaux, qu’elle doit relever notamment en matière d’administration et de législation.

Des questions se posent, par exemple, quant aux mesures prises lorsque les conditions d’un contrat intelligent ne sont pas convenablement remplies. En effet, le code informatique qui compose les contrats intelligents ne laisse aucune place aux situations délicates que le jugement humain réglerait à l’amiable. Il faudrait donc que les contrats intelligents prennent en compte le contexte et les circonstances pour répondre au mieux aux différents cas de figure qu’ils pourraient rencontrer…

Quels sont les risques des smart contracts ?

Le plus gros risque du smart contract est l’erreur humaine. En effet, les contrats intelligents sont des codes informatiques développés par des personnes susceptibles de faire des erreurs. Il y a déjà eu des problèmes notables dont le plus connu est The DAO.

En 2016, le projet The DAO (Organisation Autonome Décentralisée) fut déployé sur la blockchain Ethereum. Tout le monde pouvait déposer de l’argent sur la DAO et obtenir des dividendes basés sur les investissements effectués par la DAO.

La DAO a collecté 150 millions de dollars en Ether, alors que l’Ether ne valait que 20$. Malheureusement, le code gérant la sortie des fonds en Ether n’était pas suffisamment sécurisé et une personne y a trouvé une faille qui lui a permis d’extraire environs 50 millions de dollars (3 millions d’Ethers) pour les injecter dans un autre smart contract.

Ce piratage brutal a rappelé à tous les utilisateurs de blockchain qu’un code informatique pouvait comporter des bugs et des failles aux conséquences dramatiques. L’absolue nécessité de sécuriser le code informatique des smart-contracts a ainsi été mise en évidence.

Suite à ce piratage, deux camps se sont formés sur Ethereum : ceux qui souhaitaient corriger pour le futur les effets du piratage en effectuant un fork (une duplication avec modification) de la blockchain Ethereum, et ceux qui estimaient qu’un tel fork était contraire aux principes régissant les blockchains, parmi lesquels l’immutabilité de la chaine occupe une place importante. Ces derniers préféraient laisser le pirate s’enfuir avec ses 3 millions d’Ethers que remettre en cause ce principe.

Finalement, la fondation Ethereum a décidé que le code du contrat intelligent n’était plus valide et que l’argent envoyé à la DAO devait être rendu. En d’autres termes, les auteurs du contrat intelligent et les investisseurs ont commis une erreur et les développeurs d’Ethereum ont décidé de les sauver.

Conclusion

Vous savez à présent ce qu’est un smart contract. Nous espérons qu’il est maintenant évident pour vous que la puissance d’un contrat intelligent dépend de son auteur et de la manière dont il est codé. Les blockchains ont encore beaucoup de chemin à faire avant de pouvoir exprimer leur plein potentiel mais les solutions déjà en place sont très concluantes. Si vous avez des questions ou souhaitez en savoir davantage sur la BlockChain et les Smart Contracts n’hésitez pas à contacter l’équipe d’experts de Némésis studio. Nous sommes là pour vous conseiller et vous accompagner dans tous vos projets digitaux.