Les smarts contracts pour non développeurs 2

Ethereum offre la possiblité d’exécuter des programmes sur l'ensemble de son réseau, les smarts contracts. Le nom est vendeur, le concept ancien: faciliter l’exécution de clauses contractuelles en les automatisant.

L'échec de la DAO, fond d'investissement automatisé, montre les limites de ce modèle. Si la science informatique est précise, la programmation est un artisanat.

A la suite de la première introduction sur la programmation des smarts contracts, retour sur les enjeux théoriques.

L'ordinateur, un automate générique

On vous a peut être introduit les ordinateurs comme des calculatrices puissantes. Il n'en est rien. Alors que inventeurs des siècles précédents, de Pascal à Babbage, ont travaillé sur des calculatrices mécaniques puis électriques, le génie d'Alan Turing a été de conceptualiser une machine capable de réaliser n'importe quelle opération logique.

En pratique, un ordinateur peut s'imaginer comme un employé de bureau traitant une pile de papiers. Il prend la première feuille d'un pile à droite de son bureau, suit l'instruction, puis la pose à gauche. Les instructions sont en nombre limité et représenté par un chiffre: changer le contenu de la feuille, avancer ou reculer de plusieurs feuille ou changer l'état actuel, noté sur un calepin à part.

Le code, une liste "à faire"

La programmation consiste à rédiger, en texte, une suite d'instructions qui seront ensuite décomposées en opérations encore plus simples comme ci-dessus pour l'ordinateur. La liste des instructions est plus complete mais reste limitée.

En plus des déclarations et fonctions étudiées la dernière fois, on trouve aussi:

Les opérations unitaires

Comme enregistrer une information dans une variable :

destination = "3 rue du Commandant Charcot";

Les structures de contrôle

Les structures de contrôle permettent de décider de l'opération qui sera exécutée ensuite:

si  (AdresseActuelle == "3 rue du Commandant Charcot")
alors Afficher("Vous êtes arrivés");

Comme en droit, il est possible de combiner de façon logique des conditions cumulatives (par le symbole &&), alternatives (||) ou la négation d'une condition.

Les smart contracts

Fonctionnement

Que font alors les smarts contracts? Exécuter une suite d'instructions en suivant des conditions. Un inconvénient majeur, les smarts contracts ne peuvent lire ni agir directement sur le monde.

Pour la lecture du monde, il faut avoir recours à un tiers. Par exemple, si on imagine un contrat d'assurance de couverture de risque météorologique pour un agriculteur, il peut lire les données du site de Meteo France.

Pour l'action sur le monde, Ethereum offre un premier levier, sa propre monnaie l'Ether. Avec la possibilité de gérer l'argent confié au contrat, qu'il s'agisse d'un investissement ou d'un sequestre.

Rapport avec le droit

Le smart contract n'est pas un contrat, celui ci naît de la rencontre des volontés. Tout au plus son code peut représenter l'essentiel des obligations auxquelles les parties entendent souscrire. Ainsi la DAO précisait dans ses conditions que l'ensemble des clauses et conditions des investissement était contenus dans le code.

Le piratage de ce contrat soulève des questions. Les parties ont elles entendu souscrire à toutes les utilisations possible de ce contrat, y compris détournement du fonctionnement attendu? Les manipulations utilisant les limitations techniques de l’exécution de ce code et les manipulations du fonctionnement de l'ensemble du réseau sont elles des modalités l'exécution de ce contrat, ou une forme d'intervention extérieur?

En savoir plus ? Rejoignez nos meetups avec Open Law et Cellabz ou contactez nous. Pour quelques cas d'usages, voici le retour du premier festival blockchain.