Un processus informatique hébergé sur une blockchain

Un processus informatique hébergé sur une blockchain

Vitalik Buterin envisage tout d'abord son projet sur la blockchain Bitcoin V. Glossaire : « Bitcoin ». , mais il rencontre immédiatement des difficultés. Il s'agit d'une base de données décentralisée consignant l'ensemble des transactions réalisées. Elle crée un historique irrévocable et vérifiable, consultable directement et réputé infalsifiable V. supra, nos et s. . Ainsi l'existence de chaque bitcoin contenu dans un porte-monnaie électronique peut être vérifiée à tout instant. La blockchain est un registre ne trouvant d'application que dans le domaine monétaire.
La blockchain Bitcoin permet de réaliser des échanges. Vitalik Buterin souhaite ajouter la possibilité de définir des conditions à ces échanges en profitant des avantages de la blockchain.
Les règles sont connues à l'avance. Elles ne sont pas modifiables. Elles peuvent être consultées par l'ensemble de la communauté.

Génération et déploiement d'un sur une à partir d'un exemple

Le contrat porte sur la vente d'un objet au prix de dix ETH. Lui adjoindre un smart contract a pour but d'automatiser son exécution. Lorsqu'un utilisateur se porte acquéreur, le montant de la transaction est mis en gage. À réception, il confirme sa bonne livraison. Les dix ETH sont automatiquement débloqués sur le compte du vendeur.
1) Opérations préalables à l'écriture du smart contract
Sur un plan purement technique, cette étape est facultative.
Le contrat est conclu hors de la blockchain. Dénommé « contrat fiat », il consigne l'accord des parties dans un contexte défini et un langage intelligible.
2) La spécification du contrat
Le contrat fiat est traduit dans un « pseudo-code ».
À ce stade, le langage naturel est toujours le seul utilisé. La rédaction du pseudo-code a vocation à définir les variables et les actions à programmer sur un plan opérationnel. Il établit la règle du jeu. La personne à l'origine du contrat détermine qui sont les parties et quel est le portefeuille (wallet) utilisé.
Le vendeur est X, l'acquéreur est Y. Chacun a une adresse reliée à un portefeuille contenant des ethers déterminé pour la transaction.
Si Y se porte acquéreur de l'objet, alors il met en gage la somme de dix ETH sur la blockchain, faisant office de registre.
Si l'utilisateur Y confirme la bonne réception de l'objet, alors le prix de dix ETH est transféré à X.
Le fait pour l'acquéreur Y de mettre en gage la valeur de l'objet convoité est une manière de vérifier sa solvabilité avant de lancer le processus.
Le fait pour le vendeur X de ne recevoir paiement qu'après la bonne réception rassure Y sur le fait qu'il sera livré.
3) Écriture du smart contract
Le programmeur crée le smart contract. Il traduit l'enseignement acquis dans un langage de programmation. Sur la blockchain Ethereum, le plus utilisé est « Solidity ». Le smart contract apparaît comme la suite logique du contrat. Mécaniquement, soit il l'exécute soit il s'arrête et le cas échéant, sanctionne son inexécution si le code le prévoit.
Le fichier créé aura une extension « .sol » pour « Solidity ».
4) Compilation du smart contract
À partir du fichier, le compilateur génère un code algorithmique. Ce code binaire assemblé (bytecode) composé de 0 et de 1 est semblable aux codes machines exécutés par un ordinateur.
5) Écriture de l'interface
Le smart contract doit être accessible pour pouvoir être utilisé. L'interface contractuelle (ABI) permet d'interagir avec les utilisateurs. Elle prend la forme d'un site web classique. Au lieu de se connecter à un serveur centralisé, le site va se connecter à l'adresse du contrat, créée à partir des adresses de X et de Y.
6) Déploiement du contract sur la blockchain réelle
L'adresse XY générée pour le smart contract est déployée sur la blockchain. Cette étape comporte une phase de test afin de corriger le code avant son déploiement effectif. Un smart contract est inarrêtable. Vérifier que l'exécution du code aboutit au résultat escompté avant son déploiement effectif n'est pas obligatoire mais rassurant. Des structures indépendantes, distinctes du programmeur, proposent d'auditer le code source, d'analyser son comportement face aux situations pouvant se présenter et de rechercher les éventuelles failles techniques.
L'exécution se déroule automatiquement. Lorsqu'Y clique pour faire l'acquisition de l'objet du contrat XY, le smart contract s'actionne en bloquant une somme de dix ETH provenant du portefeuille de Y. Ce mouvement est inscrit sur la blockchain. X procède à la livraison de l'objet. Y clique de nouveau depuis l'interface pour confirmer la bonne réception de l'objet. Le smart contract verse automatiquement la somme de dix ETH à X. La transaction est inscrite sur la blockchain.
7) Précisions
La validation des conditions peut résulter d'autres écritures de la blockchain. Ayant nécessairement été vérifiées préalablement à leur inscription et la blockchain étant infalsifiable, cela suffit à déclencher l'exécution automatique du contrat.
En revanche, dans l'exemple ci-dessus, la livraison est un élément extérieur à la blockchain. Dans ce cas, une variable peut être ajoutée. Le livreur peut jouer le rôle d'oracle certifiant la réalité de la livraison. On évite ainsi la mauvaise foi de l'une ou l'autre des parties prétendant soit avoir adressé l'objet alors que ce n'est pas le cas, soit ne pas avoir reçu l'objet. Le vendeur ne prend pas le risque de rester impayé par suite de la négligence de l'acquéreur à valider la réception.
La rapidité d'exécution du processus smart contractuel est souvent mise en avant par ses promoteurs. L'exemple démontre néanmoins que les étapes sont nombreuses avant d'aboutir au déploiement du smart contract.
En pratique, un smart contract n'est pas déployé pour une transaction unique. L'adresse XY est référencée dans la blockchain. Ainsi un programmeur peut décider de l'utiliser en l'état pour exécuter un contrat similaire. Il peut également ajouter des conditions pour adapter le smart contract. Dans ce cas, une nouvelle adresse pour accéder au smart contract est créée et insérée dans un nouveau bloc de la chaîne. Les deux programmes ne peuvent donc pas se confondre.
a3-244-fig001
Image

Le, application décentralisée de la : résumé en images des avantages du point de vue du programmeur.

Les avantages du smart contract sur blockchain : vision du programmeur informatique">Lien
Cette technologie a été imaginée et mise en place par des informaticiens, des cryptographes et des programmeurs. Vitalik Buterin a écrit la genèse d'Ethereum ">Lien. Il explique avoir mené à bien ce projet notamment avec Gavin Wood G. Wood est un programmeur informatique britannique, cofondateur d'Ethereum. Il a écrit Solidity and the Yellow Paper définissant Ethereum Virtual Machine, et a été le premier directeur technologique d'Ethereum. , Jeffrey Wilcke J. Wilcke est un programmeur informatique, cofondateur d'Ethereum. et toute une équipe de programmeurs. Les smart contracts ont été pensés comme une technique numérique sans réfléchir à leur compatibilité avec les règles juridiques. Ils trouvent application dans de nombreux domaines et tendent à se développer.
Sans être exhaustif, des exemples concrets permettent de mieux comprendre l'intérêt des smart contracts. Il est double. Le smart contract permet de mettre en place une boucle conditionnelle permettant d'automatiser l'exécution. Le paiement intervient dès la réunion des conditions de la vente. Mais il s'agit également d'automatiser la sanction de l'inexécution. Ainsi le retard d'un avion ou d'un train peut être indemnisé automatiquement par le seul constat de ce retard sans qu'une réclamation auprès de la compagnie d'assurance soit nécessaire. La seule constatation d'une intempérie frappant un terrain agricole suffit à déclencher l'indemnisation pour la perte d'exploitation prévue au contrat d'assurance. Le non-paiement d'un loyer verrouille le véhicule ou l'appartement objet du bail, etc.
Les smart contracts trouvent d'ores et déjà application dans divers domaines tels que le droit des assurances ou encore le droit des entreprises, précisément au sein des pactes d'actionnaires. Depuis peu, une librairie de cinq smart contracts, touchant au droit des sociétés, a été mise à disposition des juristes en libre accès.
L'interaction des smart contracts avec les objets connectés leur donne des perspectives d'avenir plus importantes encore.

Smartphone, , , , … les objets intelligents envahissent notre quotidien.