Catégories
Citation

Philosophie : Schopenhauer et la volonté

Le Monde comme volonté et comme représentation, publié en 1819 par le philosophe allemand Arthur Schopenhauer est une œuvre immense en 4 livres, dont l’ambition est de synthétiser ses conceptions au sujet de l’ontologie, la métaphysique, la morale ou encore l’esthétique.

philosophy poster - Max Temkin - Schopenhauer et la volonté

« L’homme est certes libre de faire ce qu’il veut, mais il ne peut vouloir ce qu’il veut. »

« Le monde est le miroir dans lequel la volonté prend connaissance d’elle-même. »

Plus de citations philosophiques.

Catégories
Présentations

Blockchain & Smart Contract (part 5)

Soyons très clairs dès le départ : un smart contract, n’est pas « intelligent » (smart) et est encore moins un contrat, au sens légal du terme !

Si vous ne l’avez pas déjà fait, je vous recommande de consulter les parties précédentes de cette présentation sur les bases de la Blockchain : part1part2part3part4

Synthétiquement, un smart contract est un bloc de code qui auto-exécute un ensemble d'instructions, dont le résultat est stocké sur une blockchain après vérification. Cliquez pour tweeter

C’est le principal composant technique des nombreuses applications décentralisées (dApps). En plus d’être autonome et transparent, l’un des points théoriques importants est qu’il fonctionne en mode « trustless », sans avoir recours à une tierce partie ou autre système garantissant la confiance.

2 vidéos (en anglais) pour débuter :

Smart contracts simply explained (4mn)
Code is Law? (16mn)

Un smart contract est en fait une évolution des contrats Ricardiens développés à partir de 1996 pour répondre à la question de la numérisation des contrats. Par l’utilisation de différentes technologies numériques (markup tags, hashing, cryptographie…), un contrat Ricardien permet qu’un système automatisé puisse « lire » un contrat entre 2 entités, afin de définir son objectif, avant de l’exécuter.

A l’opposé, les smart contracts, tels que définis dans le travail du chercheur Nick Szabo sont conçus de manière abstraite pour automatiser l’exécution d’un agrément que les parties ont déjà accepté et validé.

L’intégration de ce modèle logique au sein de diverses blockchains crée donc une version hybride du contrat Ricardien.

L’exemple le plus classique est nommé ERC20, sur la blockchain Ethereum, et il peut être étendu pour répondre à des besoins spécifiques. Il existe d’autres blockchains proposant des fonctionnalités proches ou similaires.

Smart contracts are awesome!
Autonomie, confiance, pertinence…

Pour simplifier, ce sont des contrats cryptés, des programmes autonomes qui s’exécutent seuls avec la garantie que les termes du « contrat » ne peuvent pas être modifiés. Notons malgré tout qu’ils n’ont pas d’autorité juridique réelle : ils sont juste une application technique d’une transaction, comme une « poignée de mains » numérique.

Ils s’exécutent obligatoirement au-dessus d’une blockchain, qui va stocker l’information correspondante.

En théorie, cela signifie une réduction des coûts, car il n’est pas fait appel à des tiers (avocat, notaire, banque…). Dans le même esprit, il est immuable : il ne peut pas être modifié (même en cas d’erreur détectée), à moins de faire un « fork »… avec toutes les conséquences que cela engendre sur les contrats antérieurs…

Usages d’un smart contract

Dans l’absolu, il peut ou pourrait servir à presque tout, dès lors que l’on souhaite automatiser des transactions digitales… Les solutions DeFi (Decentralized Finance) ou plus basiquement les NFTs (j’y reviendrai dans un autre billet) en font un large usage.

Pour exécuter de multiples tâches, la plupart des applications décentralisées dApps agrègent de multiples smart contracts, en synergie, pour créer un ensemble de fonctionnalités évoluées.

Les domaines concernés les plus courants aujourd’hui :

  • Finance : la majorité des services financiers ont été portés sur des solutions DeFi, que ce soit le fait de prêter, emprunter ou acheter/vendre des valeurs mobilières.
  • Gaming : le domaine des jeux en ligne dans sa version Blockchain vise à permettre aux joueurs de reprendre le contrôle d’une partie de la valeur des actifs qu’ils apportent, lorsqu’ils achètent des personnalisations ou des configurations spécifiques. Les NFTs dans ce contexte autorisent l’achat et la vente (théorique) de personnages, fonctionnalités etc. La rareté de certains tokens (jetons) crée une valeur potentielle et offre l’éventualité de plus-values.
  • Droit : l’un des domaines où de nombreux intervenants forment beaucoup d’espoir, est celui de donner une véritable valeur juridique aux smart contracts dans certaines industries. Maintenant que le principe de la e-signature est reconnu, beaucoup pensent que la prochaine étape à mi-chemin entre technologie et droit est la reconnaissance des smart contracts. Certains états américains ont déjà sauté le pas dans des contextes très précis (mariage par exemple).
  • Immobilier : à travers la possibilité de transformer un bien en « jeton » (token), simple ou multiple, un bien immobilier, un terrain… peut être créé, identifié, stocké et géré sur une blockchain. Certains pays ont commencé à tester cette solution pour leur cadastre par exemple. La théorie veut qu’une telle solution simplifie les transactions, limite les coûts (intermédiaires) et garantisse la sécurité et la confiance des intervenants.
  • D’autres champs sont évalués dans le même esprit : les chaines d’approvisionnement, le suivi de produits particuliers (pharmacie…), le vote électronique, la gestion des droits dans le domaine culturel etc.

Cas des DAOs : les Decentralized Autonomous Organizations (organisations autonomes décentralisées) sont des entités juridiques, des entreprises où l’actionnariat est représenté par des smarts contracts. Une telle structure fonctionne théoriquement de manière totalement automatisée quant à son environnement administratif, ne nécessitant pas ou peu d’intervention physique (locaux, embauches, salaires…).

Bien évidemment, la tendance naturelle actuelle est d’ajouter une couche d’Intelligence Artificielle (IA ou AI – Artificial Intelligence) dans la création et le traitement de smart contracts. Si ceux qui sont utilisés actuellement sont « relativement simples », l’IA pourrait permettre la création de smart contracts extrêmement complexes pour des besoins industriels précis.

L’hypothèse est que les smart contracts pourraient bénéficier de la puissance de calcul immense de l’IA et de ses capacités d’adaptation autonome. A l’inverse, l’IA tirerait partie des capacités d’auto-exécution et de stockage sécurisé des smart contracts sur une blockchain.


Au regard de toutes ces potentielles avancées, la pratique est souvent beaucoup moins « révolutionnaire » que les promoteurs de nouvelles solutions veulent bien nous le faire croire, voire carrément irréalistes sur le moyen ou long terme (e-voting, copyright…). De la théorie à la pratique, il y a encore de nombreux pas à faire… et d’expériences à tenter… D’où de nombreux échecs de projets qui sur le papier semblaient intéressants, mais pas forcément pertinents.

Car il convient de ne jamais oublier que l’usage d’une Blockchain nécessite des compétences dédiées et surtout a un coût, lorsque l’on utilise une validation PoW majoritairement. On le voit avec l’envol des frais en Gas sur Ethereum depuis un certain temps…

La question à laquelle il faut toujours essayer de répondre, est « quelle solution existante fait/ferait exactement la même chose ? »
Et en parallèle, il faut aussi répondre à « pour quel coût ? »

Si on oublie d’auditer (correctement)

« Smart contracts generate absolute confidence in their execution. The transparent, autonomous, and secure nature of the agreement removes any possibility of manipulation, bias, or error. »

Mais la réalité peut vous rattraper très vite, comme on le voit régulièrement… Exemple avec le hacking de Titan (qui s’est finalement bien terminé pour tout le monde a priori).

Si la théorie veut qu’une blockchain soit totalement sécurisée (?), du fait de la puissance de calcul massive utilisée par la validation PoW, et aussi immuable, les applications qui s’exécutent au-dessus peuvent l’être beaucoup moins…

L’audit d’un smart contract a pour objectif l’examen minutieux du code qui sous-tend les termes et conditions du smart contract, afin d’identifier toute vulnérabilité ou erreur (cf. ci-dessus un signe « > » là où il n’aurait pas fallu) avant son déploiement.

Les risques posés par un contrat mal conçu et non audité sont multiples :

  • résultats inadéquats,
  • vol de données, dont données personnelles,
  • hacking partiel ou total de la blockchain,
  • blocage de la blockchain,
  • etc.

Globalement, les auditeurs se consacreront à évaluer et rectifier les erreurs de conception, les failles de sécurité et les erreurs dans le code.

Un bon audit, par des développeurs spécialisés de préférence en analyse manuelle et automatisée du code, permettra éventuellement de :

  • optimiser le code,
  • améliorer la performance du smart contract,
  • mieux sécuriser les portefeuilles (wallets),
  • augmenter la sécurité potentielle contre les attaques.

Bien évidemment, il est aussi toujours préférable de penser à tester dans un environnement approprié (sandbox)…

Il faut donc penser à auditer son smart contract avant de le diffuser !

Ne jamais oublier que, dès qu’il est activé et mis en ligne sur une blockchain, il n’est plus modifiable… A bon entendeur…

Questions, remarques, commentaires ? Je suis à votre disposition.

Licence