? Le mouvement d'automation. ? Bien avant l'ère numérique, est né un mouvement d'automation
Forgé par D.S. Harder, vice-président de la Ford Motor en 1951.
dit « mécaniciste » portant l'idée d'automatiser un certain nombre de tâches à l'aide des nouvelles technologies et sans intervention humaine. Dans notre vie quotidienne, les exemples nés de ce courant sont nombreux. Les essuie-glaces s'activent lorsqu'il pleut. Le chauffage se déclenche si la température baisse en dessous d'un seuil prédéterminé. Les volets se ferment quand la nuit tombe, etc.
Un processus informatique fondé sur une transaction
Un processus informatique fondé sur une transaction
? Un programme informatique. ? Dans les années 1990, Nick Szabo propose d'étendre ce mouvement aux normes juridiques. Conceptualisé de longue date, ce projet se développe grâce aux progrès informatiques.
Le concept naît en observant le fonctionnement d'un distributeur de boissons. L'insertion de l'appoint de monnaie entraîne invariablement la réception d'une canette. L'idée est de reproduire cette instruction conditionnelle dans un code informatique. D'une condition booléenne
Langage informatique binaire inventé par G. Boole consistant à programmer des variables où le chiffre 0 correspond à « non » et « faux » et où le chiffre 1 correspond à « oui » et « vrai ».
naît une action. Le smart contract est basé sur cette boucle conditionnelle : « If this (condition booléenne) then that (conséquence) ».
Fonctionnement d'un smart contract
a3-240-fig001
Image
Source : https://pro-du-code.com/comprendre-les-expressions-conditionnelles-si-alors-sinon-if-then-else/">Lien</a>, consulté le 27 mars 2020.
L'objectif de cette technologie est d'assurer l'efficacité des transactions en automatisant leur exécution. Lorsque les conditions prédéterminées par les parties sont remplies, le smart contract s'exécute automatiquement.
L'attrait du numérique face à l'analogique
L'attrait du numérique face à l'analogique tient à la rapidité d'extraction des informations. Il s'agit d'une méthode mathématique, pas nécessairement informatique.
Alors que la méthode analogique consiste à recueillir une information continue, la méthode numérique échantillonne et quantifie. La première sera représentée par une courbe. La seule limite à la finesse d'observation se trouve dans la capacité de l'observateur à percevoir la variation. La seconde sera représentée par un histogramme et nécessitera de déterminer l'intervalle auquel l'information devra être relevée.
L'exemple du thermomètre au mercure est représentatif de cette différence de méthode. L'approche analogique de la température conduit à observer le mouvement du mercure de manière continue. La méthode est précise, mais elle n'est pas exploitable en l'état. L'approche numérique traduit de manière chiffrée à intervalles réguliers prédéterminés la température observée. La précision est moindre mais le résultat est exploitable immédiatement.
L'algorithme permet d'automatiser ce relevé et d'en tirer les conséquences lorsqu'elles sont prédéterminées. À même cause, même conséquence. C'est le principe même d'une condition booléenne.
? La traduction d'une transaction. ? Techniquement, la norme juridique est exprimée en langage naturel
V. Glossaire : « Langage naturel ».
dans un document appelé contrat « fiat »
V. Glossaire : « Fiat ».
. Le langage de programmation">Lien (ou script) traduit la norme juridique en norme informatique. Trois familles de script existent. Les interpréteurs traduisent l'action au fur et à mesure de son exécution, permettant une correction du programme au cours de sa conception. Les compilateurs sont plus rapides. Ils transposent entièrement les instructions en code informatique, lequel s'exécute en une seule fois. En revanche, l'erreur n'est pas permise
Différence entre un compilateur et un interpréteur (www.youtube.com/watch?v=4lXp_89c3RU">Lien, consulté le 27 mars 2020).
. Une catégorie hybride, dite « JIT »
Just In Time.
, compile dans l'instant.
Seul un langage « Turing-complet »
Du nom du mathématicien et cryptographe A. Turing, inventeur de « La Bombe de Turing » capable de déchiffrer « Enigma », la machine cryptant les messages des Allemands pendant la Seconde Guerre mondiale.
permet de programmer un smart contract. Ce langage a trois qualités. Il est capable de mettre en place des boucles conditionnelles de type « If this… then that… ». Il est déterministe dans la mesure où les mêmes actions combinées aux mêmes conditions donneront toujours le même résultat. Il est en mesure de s'arrêter pour éviter que les boucles ne se reproduisent indéfiniment.
De l'instruction à l'autoexécution
En résumé, le smart contract est la traduction codée de la transaction. Il extrait la totalité des conditions qu'elle contient. Lorsqu'elles sont toutes réunies, il s'autoexécute.
Cette technique avancée vaut sa qualification de smart au contrat autoexécutant. Néanmoins, le programme informatique lui-même n'a aucune intention. Il est ce que le programmeur a voulu qu'il soit
S. Abiteboul et G. Dowek, Le temps des algorithmes, Le Pommier, 2017, p. 8. Adde p. 177 et s.
. Ainsi, si l'exécution ne nécessite aucune intervention humaine, la traduction du programme en langage machine est bien le fait de l'homme.
Le smart contract ne doit pas son existence à la blockchain. Le mécanisme est indépendant et peut exister indépendamment d'une infrastructure blockchain. En revanche, lorsque Vitalik Buterin, un jeune programmeur, l'imagine comme une application décentralisée
Elles sont dites « DApps » et sont développées sur blockchain par opposition aux applications développées sur serveurs centralisés ; V. Glossaire : « DApps ».
sur une blockchain, il lui donne un nouveau souffle. En plus de l'automatisme, le mécanisme profite des avantages de la blockchain, infalsifiable, immuable, transparente. L'objectif est d'utiliser le climat de confiance créé par la blockchain
">Lien propice à son développement
(Section II)
.