Comment on page

Les Smarts Contracts

L’univers de la crypto et de la blockchain en général est très complexe, parfois même très technique. Trop technique. Cependant, selon votre domaine d’expertise et selon, votre degré d'intérêt et de temps à allouer à la crypto, vous n’aurez pas les mêmes compétences.
Il y a cependant des termes, des concepts à connaître absolument. Et pour cela, pas besoin de rentrer dans la technique pure, l’important est de comprendre le concept, et le restituer avec des mots simples. C’est ce que nous allons voir ici, nous dresserons un panorama des smarts contracts, ces contrats si essentiels à la crypto et que vous utilisez, parfois sans même le savoir.

Un smart contract, c’est quoi ?

Le Bitcoin est né peu après la faillite de 2008, promettant ainsi une alternative au système bancaire qui, à cette époque, vivait des heures sombres et perdait la confiance des particuliers et des professionnels. C’est comme ça qu’est née l’idée du Bitcoin, bien que les monnaies décentralisées étaient déjà discutées depuis plusieurs années. Dans la lignée, nous avons assisté à la création d’Ethereum avec une idée simple, si le BTC permettait des échanges de valeurs, ETH pourrait ajouter des règles conditionnelles à ces échanges.
Notez qu’il est possible de créer des SC sur Bitcoin, mais cela est beaucoup plus limité que sur Ethereum, qui est designé pour ça, avec son langage de programmation, Solidity.
Les smart contracts sont des algorithmes, sur Ethereum, c’est Vitalic Buterin, le fondateur du réseau Ethereum, qui a introduit cette notion pour compléter les fonctionnalités de la blockchain avec des services que ne pouvaient pas proposer la blockchain du Bitcoin. Cependant, il n’est pas le premier à en parler. La première mention des smart contract remonte à 1997 par Nick Szabo dans un article appelé “Formalizing and Securing Relationships on Public Networks
Très concrètement, et dans sa traduction littérale, un smart contract est un contrat intelligent. Pourquoi contrat ? Car il s’agit véritablement de contrats, à la différence près qu’ils ne sont pas régis par le droit commun, mais par un ensemble de règles prédéfinies .
Pourquoi intelligent du coup ? Tout simplement parce qu’une fois ces règles établies et paramétrées dans le smart contract, il exécutera automatiquement. Smart n’est-ce pas ?
Dans les faits, un smart contract se matérialise par des lignes de codes, tout est informatisé. Ce code va remplacer l’intermédiaire habituellement nécessaire pour qu’un contrat soit valide. En contenant toutes les modalités prédéfinies, il est en lui-même l’intermédiaire.
Les smarts contracts tournent SUR la blockchain. Si vous entendez parler de smart contracts, vous entendez indirectement parler de la blockchain.
Mais alors pourquoi faire ce genre de contrats ? Pour deux raisons. La première est le manque de confiance entre les parties lors d’un accord, et la nécessité de stipuler les modalités sur un contrat. Et deuxièmement, pour supprimer les intermédiaires et tout ce qu’ils peuvent apporter en matière d’incertitudes et de coûts.

Mais pourquoi ne pas passer par un intermédiaire ?

Pour plusieurs raisons, certaines évidentes. Un intermédiaire, n’est-ce pas l’antithèse de la crypto qui se veut libre et décentralisée ? C’est ce vers quoi il faut tendre et les smarts contracts sont un formidable outil pour y parvenir.
L’avantage de ce type de contrats réside aussi dans son caractère informatisé. En définissant en amont les modalités d’exécution, le risque d’une fausse manipulation liée à une erreur humaine n’existe plus. On le dit smart, mais en fait le smart contract n’est qu’un exécutant qui fait bêtement ce qu’on lui demande. Paradoxal vous avez dit ?
Un autre avantage réside dans la rapidité d’exécution. Un smart contract va s’exécuter instantanément une fois que les conditions de déclenchement sont réunies. Pas besoin de manipulation, c’est automatique !

Comment ça fonctionne dans les faits ?

Pour parler très rapidement de technique, les smarts contracts sont faits, à ce jour, avec le langage informatique appelé “Solidity”. C’est le langage informatique de la blockchain jusqu’à nouvel ordre, et Vitalic Buterin le définit comme ceci :
“Un langage de programmation Turing-complet qui peut être utilisé pour créer des “contrats” qui permettent de coder des fonctions arbitraires de transition d’état, permettant aux utilisateurs de créer n’importe lequel des systèmes décrits ci-dessus, ainsi que de nombreux autres que nous n’avons pas encore imaginé, en écrivant simplement la logique dans quelques lignes de code.”
Parenthèse : Ce langage est relativement complexe et son caractère récent en fait un frein au développement effréné sur la blockchain. Ce frein tend à se réduire grâce à des projets tels que Cartesi qui envisage d’offrir la possibilité de développer avec les outils Linux classiques. Parenthèse fermée.
Voyez Ethereum comme un ordinateur global qui appartient à tout le monde. C’est un commun industriel qui appartient à tout le monde et à personne en même temps. C’est sur Ethereum que les développeurs vont faire tourner leurs smart contracts.
Le smart contract est composé d’étapes de validation. Toutes ces étapes doivent être complétées pour que le contrat s’exécute. Toutes ces étapes de validation seront inscrites dans la blockchain, rendant l’ensemble transparent, immuable et consultable par n’importe qui. Cela permet de donner de la confiance aux utilisateurs puisque les conditions sont connues d’avance, et que seule la validation de toutes les conditions permet l’exécution du contrat.
L’inscription dans la blockchain des étapes de validation empêche toute modification à posteriori. Une fois qu’un SC est créé, il ne peut plus jamais être changé. Il est aussi distribué, ce qui veut dire qu’il est validé par le réseau.
Ils ont un intérêt certain pour permettre l’échange d’actifs, ici de cryptoactifs, de manière fluide, rapide et décentralisée.
Généralement, ils doivent comporter 4 composantes pour être fonctionnels :
  • Immuabilité
  • Ensemble des informations disponibles pour toutes les parties
  • Auto-exécutant
  • Opérations simples
Les avantages d’un smart contract sont :
  • Transparence
  • Vitesse
  • Sécurité
  • Coût

Vous en connaissez des smart contracts ?

Les smarts contracts, c’est un peu le nerf de la guerre des différentes blockchains. La plus connue et la plus utilisée est bien entendu Ethereum, que nous ne présentons plus. La blockchain ETH concentre à elle seule plus de 70% des smarts contracts fonctionnels dans l’univers de la crypto.
Dessus, vous en connaissez forcément quelques-uns. Nous appelons ça des dApps (applications décentralisées), et la plus connue de toutes reste Tether, le digne créateur de l’USDT !
Mais ce n’est pas la seule, nous avons déjà parlé de Maker DAO (dont le stablecoin est le DAI), il y a aussi Chainlink pour connecter les données réelles captées à des smarts contracts. Une autre Dapp bien connue que vous avez peut être utilisée, c’est Uniswap.
Les possibilités sont infinies, et les applications très diversifiées.
D’autres blockchains ont développés des écosystèmes pour construire des dApps, c’est le cas par exemple de EOS ou de Cardano, mais aussi d’acteurs plus récents tels que Polkadot, dont on parle énormément en ce moment, et Avalanche, qui a sorti son mainnet en septembre dernier.
Mais les smart contracts peuvent sortir de la blockchain pour être utiles à des applications de la vie réelle, comme le vote démocratique, les services bancaires, les assurances ou encore les paiements des livraisons. Pour cela, ils doivent être couplés à des données réelles grâce à des oracles.

Les oracles

Les smart contracts fonctionnent la plupart du temps avec des oracles, du moins dans leur forme la plus étendue, c'est-à-dire en créant un pont entre la vie réelle et la blockchain. Les oracles permettent d’intégrer des informations du monde réel sur la blockchain, et plus précisément sur un smart contract. C’est grâce à cela que nous pouvons imaginer des smarts contracts agissant sur des retards de transports ou par exemple pour créer un site de paris sportifs géré par smart contract.
Il y a un tout un volet primordial autour des oracles. En effet, pour que les smarts contracts soient fiables, il y a deux volets. Le premier évidemment, c’est que le smart contract en lui-même ne comporte pas d’erreurs, et pour cela, on ne le répètera jamais assez, les audits sont primordiaux. Ils permettent d’attester de la validité, de la sécurité et de la performance d’un SC. Evidemment, les audits doivent être réalisés par des organismes externes au projet en question, sinon ça n’aurait pas trop de valeur.
Mais il faut aussi s’assurer de la validité et de la qualité des informations transmises par les oracles, sans quoi le smart contract n’aura pas de données fiables sur lesquelles se baser et engendrera des erreurs. Pour s’assurer de la véracité de ces informations, la technique adoptée est de se baser sur plusieurs oracles afin de recouper les informations et éviter tout dysfonctionnement.
Notez qu’il y a deux types d’oracles :
  • Les oracles entrants : Ceux qui vont apporter des informations du monde réel vers la blockchain
  • Les oracles sortants : Ceux qui vont extraire des informations de la blockchain vers le monde réel
D’autres types d’oracles existent, nous les verrons peut-être prochainement.

AXA : En cas de retard d’avion, pas de retard de dédommagement

Les smarts contracts peuvent aussi servir à effectuer des actions sans nécessiter d’intervention humaine. En 2017, l’assurance AXA avait proposé une assurance nommée fizzy. Ceux qui y souscrivent pouvaient être remboursés automatiquement de leur billet d’avion si l’avion en question avait plus de 2 heures de retard.
Cette assurance fonctionnait sur la blockchain Ethereum et devait faciliter les démarches de ses clients en… les supprimant totalement. Faute de souscriptions nécessaires, AXA a mis fin à l’expérimentation en novembre 2019. AXA n’a toutefois pas dit son dernier mot en matière d’assurance basée sur la blockchain.
De nombreuses plateformes de travail dit “ubérisé” pourraient souffrir de l’arrivée de la blockchain dans l’économie. En effet, en promettant un réseau distribué sans tiers de confiance, les utilisateurs pourraient s’organiser autrement tout en respectant un cadre légal qui les couvre dans leurs transactions.

Ont-ils une valeur contractuelle ?

A l’heure actuelle, il serait faux de considérer les smarts contracts comme ayant la même valeur juridique qu’un contrat. Ce n’est pas le cas. Considérez, lorsqu’ils sont utilisés pour le monde réel, qu’ils constituent l’ombre portée d’un contrat existant dans sa forme classique.
Pour l’exemple d’AXA, le smart contract applique des règles pré établies par un contrat d’assurance tout à fait normal.
Nous pouvons imaginer que l’utilité réelle des smart contract, hors de la blockchain, permettra d’automatiser les tâches les plus rédhibitoires et les moins déterminantes. En effet, surtout en matière d’assurance, de nombreuses tâches requièrent beaucoup de temps et de démarches pour un coût peu important. Ils n’ont peut-être pas vocation à remplacer un notaire lors d’un acte de vente, mais plutôt de juguler la masse de petites opérations assurantielles qui ponctuent le quotidien. Il se place donc comme un assistant administratif automatisé pour les tâches à faible montant, mais régulières et nombreuses.

Quelles limites ?

Les SC peuvent perdre de leur utilité dans des dossiers qui requièrent des facultés disons plus “humaines”. La bonne foi, l’empathie ou tout simplement des situations dans lesquelles la solution n’est pas clairement identifiable montrent les limites de leur exécution.
D’autres limites peuvent être remontées, comme par exemple l’impossibilité d’arrêter un smart contract lorsque celui-ci est activé, il n’y a donc pas de bouton rouge pour stopper son exécution.
De plus, et cela représente à la fois un avantage et un inconvénient, il est immuable. De fait, il ne peut pas être modifié. En cas de nécessité de modifications, il faut tout simplement recréer un nouveau smart contract, pouvant rendre caduque l’ancien et obligeant l’ensemble des utilisateurs à migrer sur le nouveau contrat.

Conclusion

Les smarts contracts reposent sur la blockchain. Ils permettent d’automatiser des tâches, qui s’exécutent une fois que toutes les conditions édictées par le smart contract sont remplies.
Exit donc les erreurs humaines, les lenteurs et les désaccords. Si Ethereum a très longtemps tenu la barre, il a souvent été attaqué par ce qu’on appelle des “Ethereum killers”. EOS, ADA, THETA, COSMOS ont tenté, et pris des parts de marchés, mais ETH demeure largement en tête. De nouveaux projets tel que Avalanche veulent aussi tirer leur épingle du jeu. Il y a fort à parier que nous verrons de nombreuses évolutions d’ici peu, notamment avec le concours d’acteurs tels que Cartesi qui veulent rendre le développement de smart contracts plus accessibles aux développeurs classiques.