Smart contract

Tous les jours, on assiste à la rédaction de contrats, une tâche astreignante au sein des entreprises. Et pourtant, cette contrainte est croissante et mobilise toujours plus des ressources au fil des ans.

Mais qu’est-ce qu’un contrat ? Il s’agit en fait d’une entente, mise à l’écrit ou laissée sur une bande vocale, qui tient deux parties face à une obligation. Le contrat est un acte complètement consenti pour les deux côtés. Il prend la place d’une législation dans le cas où l’une des parties n’en respecte pas les termes. La partie qui fait défaut va alors devoir compenser son manquement par le règlement de dommages-intérêts.

Bien que le contrat soit un outil déjà popularisé au niveau mondial, il n’est pas pour autant un outil parfait.

Si une des parties consentantes fait une entorse aux termes de l’entente (ne les respecte pas, les change à sa guise ou les contourne pour en tirer profit), les suites financières de cet acte peuvent être lourdes. Et pourtant, des individus lambda ou encore des PME ne disposent pas toujours de finances assez puissantes pour faire face juridiquement à ce type de conflit (honoraires d’avocat, frais de justice). Il arrive très souvent en cas de non-respect d’une entente légalement établie, que la partie perdante ait du mal à obtenir dédommagement.

De plus, la rédaction du contrat est déjà contraignante puisqu’elle demande souvent la participation d’un prestataire de service (un juriste, par exemple). De ce fait, l’établissement du contrat demande du temps et parfois beaucoup d’argent. Le caractère international du contrat amplifie encore plus ces contraintes de moyens financiers.

Il s’agit donc d’une procédure compliquée, qui n’était associée à aucune autre option, avant que les Smart Contract ne fassent leur apparition.

Avec la naissance en 2009 du Bitcoin, il y a enfin eu une façon innovante de faire des envois d’actifs sans la nécessité d’un intermédiaire (une autre institution financière, par exemple). Avec le système de la blockchain, beaucoup d’entreprises dans tous les domaines ont porté un intérêt à cette procédure dépourvue d’intermédiaires et reconnue pour sa rapidité. Les Smart Contracts (ou smart contracts pour l’anglais) constituent un aspect de la fameuse chaine de blocs. Ces contrats ont la capacité de bouleverser le fonctionnement des sociétés, de par l’automatisation des tâches.

Vitalik Buterin, le génie de la blockchain, parle du Smart Contract comme d’un programme ayant une mainmise sur les actifs digitaux. Rappelons qu’il s’agit du développeur concepteur de la blockchain Ethereum, la version 2.0 du Bitcoin.

Pourquoi le contrat serait-il intelligent ?

Un contrat classique détermine les termes de l’entente entre deux ou plusieurs camps. Le Smart Contract repousse les limite et inscrit ces termes dans une chaine de blocs, avec une assurance de l’envoi d’un quelconque actif lorsque les conditions du contrat sont remplies.

Ce concept implique la relation entre un actif et un système maintenu dans une chaine de blocs. D’après le fondateur d’Ethereum, le système en question est censé valider systématiquement la condition, et à ce moment, démarre le code pour le transfert de l’actif ou non à une personne. Cela peut être un envoi à un ou plusieurs destinataires, ou un ensemble de codes qui combinent plusieurs actions.mu

Au Blockchain Summit de Washington, un autre expert en blockchain, Jeff Garzik  a exposé son idée selon laquelle les smart contracts pourraient très bien prendre la place des contrats traditionnels, et ce, dans beaucoup de domaines. Selon ce co-créateur de l’entreprise innovante Bloq, les Smart Contract promettent la réalisation avec précision des termes du contrat, ne laissent aucune place à l’incertitude ni d’embrouille pour la résolution des conflits. De plus, la technologie assure que les conditions sont cohérentes et sûres.

Bien entendu, à l’image des premiers essais de Smart Contract, ceux qui ont été créés jusque-là ont été stéréotypés. La plupart de ces contrats ne démarrent pas d’une page vierge. Il y a plusieurs modèles standard déjà pré-remplis et d’autres suivront selon les domaines d’usage.

Quelques domaines d’application des Smart Contracts

Plusieurs domaines d’entreprises peuvent trouver un profit dans les smart contrats : la finance, la logistique, les assurances, l’informatique. Retrouvez quelques cas pratiques :

Les assurances. D’après Jerry Cuomo (Vice-President for Blockchain IBM), l’utilisation des Smart Contract dans ce domaine reste encore chimérique, mais c’est une illustration des possibilités. En cas d’accident de voiture, par exemple, on ne sait ce qui pourrait se passer. Supposons qu’il y ait un Smart Contract, une chaine de bloc, peut-on savoir si la conduite est vraiment assurée par l’homme ? L’est-elle par l’ordinateur ? Et si la conduite s’est fait automatiquement ? Le contrat peut être défini selon ces paramètres, tout comme le paiement des indemnités.

Dans une même visée, il est possible de créer des formules d’assurances avec des conditions de temps. Une compagnie qui établit un Smart Contract

est en mesure d’offrir des modalités de remboursement variées selon le lieu de l’accident à un moment précis. Si le conducteur a circulé par un temps dégagé, que la route était en parfaite état, un accident sera indemnisé de manière différente d’un accident ayant eu lieu sur un chemin en piètre état et par un temps couvert.

L’immobilier. Pour Jeff Garzik (Bloq), le smart contract peut être un moyen de rendre les transactions immobilières plus rapides, avec la suppression du passage du paiement par le dépôt fiduciaire. On peut également penser à inscrire le bien acquis dans un registre public cadastres publics sont l’apanage des faussaires dans certains pays corrompus.

La Supply Chain. Les grandes entreprises de distribution comme UPS pourraient établir des contrats basés sur le modèle suivant : si le livreur reçoit un paiement en espèces au moment d’une livraison, la livraison marque l’efficacité de la vente et déclenche automatiquement un achat de pièces servant à la production d’un nouvel article. C’est aussi une prédiction de Jeff Garzik.

La loi du code

L’application des Smart Contracts se fait par l’intermédiaire du système des chaines de blocs ou « blockchain ». En clair, il s’agit d’un registre partagé dont la sécurité est sûre en raison de la décentralisation. C’est grâce à cette technologie que le contrat est mis en œuvre sans souci. Les Smart Contracts sont aussi le point de départ de réalisations plus compliquées comme les DAO (Organisation Autonome Décentralisée) ou encore les Dapp (qui sont des applications décentralisées). Ce sont en gros des systèmes et programmes qui s’exécutent de façon autonome.

Le secteur des assurances figure parmi les premiers concernés par les Smart Contracts. Imaginons un contrat qui soit validé (donc une indemnisation automatique) quand une des conditions mentionnées dans les termes est présente. On peut citer entre autres des délais dans le décollage d’un avion, ou des aléas météorologiques…

En voici donc les avantages :

  • L’inutilité de l’intervention de l’homme pour exécuter le contrat (assurances par exemple).
  • La suppression des longues procédures
  • Une diminution des coûts.
  • Economie sur la logistique matérielle (parc, installations informatiques).

L’ajout de données non internes aux Smart Contract implique la connexion de la chaine de blocs avec des programmes oracles. C’est là qu’il puisera les informations nécessaires pour la réalisation du contrat comme la météo ou les horaires.

Systématisation et limites des Smart Contracts

Jerry Cuomo reste quand même réaliste quant aux limites du smart contract. Par exemple, les ententes complexes ne peuvent pas encore être mises en vigueur actuellement. Il a fallu plusieurs dizaines d’années pour que de nombreux process soient appliqués avec les régulations respectives. Des conventions élémentaires peuvent toutefois utiliser le smart contract. C’est le cas des vérifications de conformité, par exemple.

L’automatisation des tâches n’est pas le seul avantage des Smart Contracts. Il y a aussi la réduction du nombre d’actions.

C’est un détail crucial en termes de conformité. Dans le capital-investissement, où les actions sont transférées à des particuliers (avec un profit ajourné), la systématisation de la procédure est indispensable, avec la surveillance des restrictions. La blockchain constitue donc une voie intéressante pour la modélisation de ces procédures et le suivi des modalités d’entente.

Stockage du Smart Contract

Ethereum est l’exemple le plus proche. Il s’agit d’un système de blockchain qui connait du succès dans la gestion des Smart Contract.

Le contrat est placé sur le système lui-même, dans la partie accessible au public. Les acteurs du minage via l’Ethereum Virtual Machine peuvent en lire le contenu. Il est crypté dans un langage connu des développeurs puisqu’il est en Solidity, puis codé sous la forme EVM Bytecode. C’est ce dernier langage qui figure sur le livre de la chaine de blocs.

« Smart contract », un contrat qui s’exécute sans intermédiaire

Le système Ethereum apporte bien plus que les chaines de blocs qui existent déjà, car il fonctionne avec un langage particulier (Solidity) qui a la propriété de contribuer à l’exécution de plusieurs fonctions. Considéré comme « turing-complete », ce langage a des aptitudes plus élevées et opère des fonctions intégrales.

Une programmation simple des « contrats »…

Grâce à la simplicité d’enregistrement des tâches, on peut programmer des ententes dont les termes peuvent être simples ou plus fournis, en utilisant la chaine de blocs Ethereum. Les créateurs du registre informatique ont dénommé ces ententes des « smart contracts » en référence à l’intelligence de la machine car ceux-ci s’exécutent d’eux-mêmes dès que le système repère la réalisation des conditions programmées au départ.

Le déchainement suite aux Smart Contract

Ils s’exécutent sans aucune intervention et ils sont présents sur la chaine de blocs Ethereum. Les Smart Contracts intègrent dans leur langage de programmation même les modalités d’un agrément entre deux ou plusieurs acteurs. Le code de l’entente est enregistré sur la chaine de blocs gérée de manière décentralisée. Les envois d’actifs ou d’ordre du réseau de cette chaine de blocs sont consultables par tous et ne peuvent être annulés.

Notons qu’un contrat écrit, comme on en utilise habituellement, est limité à l’exposition des termes de l’entente. Le contrat intelligent, lui, va concrétiser leur réalisation grâce à un encodage informatique. Il veille à ce que les termes soient honorés lorsque les conditions sont réunies. Il n’est pas contraint par l’administration ni la législation comme l’est le type de contrat qui nous est familier.

On fait alors abstraction des entités qui régulent le contrat, à la justice ou encore à l’intervention d’un quelconque tiers. Ce caractère rend l’entente inviolable par quiconque, mais protège les termes contre toute modification a posteriori.

Les Smart Contracts établis par Ethereum vont changer radicalement la manière dont les individus et les entreprises vont matérialiser leurs engagements. Les nouvelles sociétés étudient déjà la façon d’intégrer ce système dans leurs réalisations, et la création de prestations y afférentes.

Actuellement, on ne peut encore prévoir l’aspect que pourraient avoir les Smart Contracts dans le futur proche, de la même façon qu’on ne pouvait pas savoir 30 ans passés ce que serait les médias sociaux ou le Cloud.

Pas encore popularisés, pourquoi ?

Bien que ces Smart Contracts aient suscité un intérêt énorme, ils ont quand même des limites qu’on ne peut contourner.

La contrainte majeure est celle-ci : ces contrats ne peuvent pas encore être manipulés par des personnes aux aptitudes restreintes en programmation. Comme ce n’est pas donné à tout le monde de faire du codage, ce type de procédé n’est pas encore accessible à la majorité des gens.

L’établissement de Smart Contract exige une expérience en programmation. En effet, les modalités de l’entente sont intégrées directement dans le code. Si on n’est pas un expert en programmation, on peut faire intervenir un expert. Celui-ci saura traduire les termes dans le langage informatique approprié.

D’une part, les Smart Contracts nous épargnent donc de l’intervention d’un homme de loi. Toutefois, il faut un programmeur pour les établir. La nécessité d’une tierce personne persiste toujours, et on ne s’aligne donc plus dans le principe initial qui est de supprimer les intermédiaires.

Cependant, BlockCat, une entreprise ayant pour objectif la libéralisation de l’usage et la gestion des Smart Contracts sur Ethereum, a lancé une initiative remarquable visant à abolir le besoin de compétences en programmation.

Malgré tout, on ne saura l’issue de cette initiative que dans les années à venir. Jusque-là, le fait de ne pas nécessiter de connaissances en codage pour établir des Smart Contracts reste une promesse.

Les bénéfices des Smart Contracts ?

Avec les « smart contracts », beaucoup de domaines d’application des blockchains se sont révélés. L’intégration d’un agrément sur ce type de registre décentralisé ne peut ni être modifiée, ni rediscutée.

Il n’y a pas de place pour l’interprétation dans la réalisation des termes d’un Smart Contract. Ce qui a été implémenté dans le code sera exécuté. Et comme la passation est financièrement lourde, l’avènement des smart contracts pourrait réduire cette contrainte.

Des inconvénients à cette invention révolutionnaire ?

On déplore tout de même le risque posé par les pirates informatiques qui pourraient modifier les Smart Contract. Cet inconvénient est commun à tout ce qui touche aux monnaies virtuelles et aux applications numériques. En effet, le code ouvert peut constituer une porte ouverte aux falsificateurs qui changeraient les modalités de l’entente, mais aussi transfèreraient les fonds. Une perte chiffrée en dizaines de millions d’Ethers a été causée par ce type de piratage sur le DAO.

Bien que les Smart Contracts offrent le potentiel de grandes réalisations, ils ne pourraient être pleinement exploités qu’avec un progrès technologique. La place de la législation est également floue actuellement.

Comme exemple de Smart Contract, on peut citer l’agrément pour un service. Supposons qu’un individu A veuille payer un prestataire B. L’entente est enregistrée sur la chaine de blocs Ethereum via le contrat intelligent. Au moment où ce dernier est établi, A inscrit le salaire qu’il veut verser à B sur la chaine de blocs. A la réalisation du service par B, A a devoir payer pour honorer son contrat. La vérification se fait de manière systématique. Le paiement est envoyé à B. Si B n’honore pas sa part du marché, A retrouvera son argent.

D’autres perspectives grâce au langage Solidity:

  • Des ententes incluant plusieurs acteurs, donc d’une complexité plus grande. Ces contrats, dont certains sont utilisés actuellement, incluent les contrats-cadres, les contrats d’entreprises, de royalties, d’actionnaires…

Ici, l’avantage de la formalisation de l’entente dans le registre Ethereum semble être justifié pour les contrats compliqués. C’est le cas par exemple de l’application d’un droit de préemption ou d’une caution.

  • Des systèmes dont le fonctionnement surpassent les simples contrats. Vous verrez sur le site d’Ethereum qu’il existe plusieurs domaines où Solidity peut trouver son utilité. Voici des exemples bien ambitieux :
    • Lancement de monnaie particulière à un projet, échangeable pour les membres et ouvrant la porte à des bénéfices.
    • Instauration de plateforme pour des contributions financières sans gestion centralisée, consacrée à un projet.
    • Montage d’une DAO avec une description du concept sur la plateforme.

Cette énumération est loin d’être exhaustive. Les applications décentralisées naissent chaque jour en se fondant sur le principe des Smart Contracts. C’est le cas de Digix, Slock.it, Augur ou encore Maker. Ils ne fonctionnent que lorsque toutes les exigences de l’entente sont bien réunies.

Nous l’avons précisé : ce type de programme fonctionne en analysant les modalités d’exécution décrites au départ, lors de l’insertion du code. A titre d’exemple, il est possible de mettre une date de réalisation au contrat. Ainsi, la machine ne va exécuter le programme qu’à ladite date, ni avant, ni après.

Le souci émane alors quand le système doit valider les conditions du contrat. Deux situations peuvent se produire :

  • Les termes du contrat sont intriqués à d’autres contenus du registre ou se limitent en repères de temps. Le système analyse facilement les conditions en vérifiant l’existence de l’inscription codée ou la date dédiée à la réalisation de la commande et opère en fonction.
  • Les termes du contrat ne sont pas dans le registre (la chaine de blocs). C’est le cas lorsque la prestation est externe. Il faut alors un intermédiaire fiable, appelé « oracle » dans le langage propre à Ethereum. L’oracle est un programme qui introduit les données dans la chaine de blocs pour permettre l’exécution précise du contrat. Voici comment se compose l’oracle :
    • Un intermédiaire fiable est désigné, les auteurs du contrat le connaissent ;
    • Il peut s’agir d’une base de données crédible (supposons, pour le pari sportif que cette base de données équivaudrait aux résultats publiés dans une revue de référence);
    • Un Oracle décentralisé, présent sur la chaine de blocs, peut être appelé en tant qu’intermédiaire. Ce genre de service fait intervenir plusieurs membres du réseau qui vont voter et définir l’exactitude des résultats pour l’exécution du contrat. Parmi ces services, on compte Oraclize.

…pratique, crédible, sans frais et réalisé en toute sécurité.

Lorsque les termes du contrat se réalisent, l’exécution s’opère de manière automatique. Concrètement, il s’agit de l’envoi à la chaine de blocs d’un ordre pour exécuter le contrat.

Pour que le contrat s’exécute, il faut qu’il soit approvisionné en gaz. C’est en quelque sorte le combustible qui fonctionner le système. Toutefois, ce « gaz » ne coûte pas très cher et s’estime en centimes. Si le contrat est plus compliqué à exécuter, le gaz peut se chiffrer en euros.

Une fois qu’un contrat figure sur le registre, il gagnera en :

  • Publicité : les opérations qui ont lieu dans le registre peuvent être consultables par tous. Chacun peut donc inspecter si le contrat a bien été mis en exécution. Si un des contractants est en possession du code source, il peut inspecter l’inscription du code.
  • Sécurité : la chaine de blocs elle-même est un système au cryptage puissant permettant la sécurité des données. Changer les données de la chaine de blocs nécessite un piratage de plus de la moitié des membres du réseau.
  • Immuabilité : une fois qu’une inscription a été faite dans le registre, les données y seront pour toujours. Toutes les transactions faites depuis son invention y figurent encore, et sont consultables dans l’historique. Ainsi, un contrat intégré dans la chaine de blocs y reste et ne peut pas être changé.
  • Fiabilité : Eteindre toutes les machines constituant la chaine de blocs n’est pas techniquement possible. Aussi, le registre est toujours fonctionnel, de manière indéfinie.

En conclusion, les Smart Contracts ont un grand potentiel en termes d’applications. Ils peuvent servir à la réalisation systématique d’engagements entre deux contractants en préservant des éventuels obstacles créés par l’un ou l’autre. Ils sont également des précurseurs au lancement d’applications décentralisées aux fonctions plus complexes. Ces contrats s’opèrent de manière autonome, sans risque, aux yeux de tous les participants, et sûrement, d’autant plus qu’ils sont impossibles à modifier ou à détruire.

Le pouvoir des Smart Contract équivaut aussi à leur faille. En effet, la modification d’un contrat déjà inscrit sur la chaine de blocs n’est pas envisageable, sauf si cela a été commandé dès l’inscription. Une fois l’enregistrement fait, le contrat y reste tel qu’il est jusqu’à sa réalisation. C’est donc au niveau de la conception qu’il faudra être méticuleux, pour que des détails ne posent pas de problème par la suite.

Contrats de confiance

En pratique, un Smart Contract équivaut à un programme consultable par ceux qui en ont eu la permission, et qui s’opère de manière transparente. Il a été imaginé dans le but d’accomplir les termes d’une entente de manière systématique à la concrétisation des conditions énoncées dans le contrat. Le programme est régi par des principes de vérification dans un système informatique. Il peut être appliqué au paiement d’un achat à l’arrivée d’un livreur, ou du paiement systématique des bénéfices d’un parieur à la fin d’un match de foot. En tant qu’unité numérique, le Smart Contract peut servir à concrétiser l’engagement commercial entre deux entités collaboratrices sans faire intervenir la question de confiance puisque le système est automatisé. La relation ne nécessite pas d’être chapeautée par une quelconque autorité. Les opérations sont honnêtes puisqu’elles sont régulées par le système et ne fait pas intervenir des agents humains.

Actuellement, les Smart Contracts sont étudiés au sein de deux projets : Ethereum et Codius. Le concept est encore en cours d’amélioration. La transposition du concept vers la réalité de l’économie est envisagée mais nécessite encore plusieurs mises au point. D’après les observateurs, il est possible d’obtenir des avantages financiers pour les sociétés qui viendraient à l’adopter. Il s’agira d’une nouvelle ère en termes de concrétisation des accords car tout le procédé sera automatisé. Cela abolira les étapes comme l’écriture, le suivi, la surveillance de l’application des termes… Avec la mise en œuvre automatique, on estime qu’il y aura moins de litiges, d’attentes de paiement, ainsi qu’une diminution des risques d’erreurs.

Diminution des litiges

Cette nouvelle génération de contrats pourrait surtout améliorer radicalement la façon dont les litiges sont gérés. En introduisant des commandes dans le programme afin que ceux-ci s’exécutent si l’une des parties n’honore pas sa part du marché, on peut diminuer les contentieux et alléger le travail de la justice. Une publication de 1997 mentionnait la possibilité, d’après Nick Szabo, de l’utilisation de ce type de contrat dans la location avec option d’achat. En cas d’arrêt des paiements du propriétaire, il serait possible de programmer le contrat de manière à laisser à la banque en ligne seule le contrôle du véhicule. Avec ce genre de contrat, les départements juridiques des sociétés pourraient très bien devenir obsolètes.

Les Smart Contract déchainent l’intérêt des entreprises puissantes qui observent la progression des recherches. La Caisse des Dépôts et Consignations a déclaré récemment qu’elle encourageait ce concept, et a monté un consortium de banques et de prestataires en assurances, avec d’autres entités influentes comme Croissance Plus, Finance Innovation ou encore le Conservatoire national des arts et des métiers. Elle envisage la création d’une entité française autour de cette technologie, afin de s’aligner avec la présence des groupes bancaires américains.

La chaine de blocs se popularisera très prochainement, tout comme les Smart Contracts. Cela soulève l’interrogation concernant la régulation. Ce type d’engagement intègrera-t-il les lois actuellement en vigueur ? Devra-t-on créer une règlementation particulière pour les intégrer dans le mode de vie actuel ? Les lois relatives à la cybernétique seront le nouveau défi : par quel moyen mettre en lien les contrats de la blockchain et le milieu juridique classique ?

0 commentaire

Laisser un commentaire

Emplacement de l’avatar

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *