Fiabilité et sincérité des systèmes blockchain François-Vivien Guiot, MDC en droit public, université Toulouse 1 Capitole Nicolas Herbaut, Doctorant en informatique, LaBRI, université de Bordeaux
I. Introduction
Système - « ensemble d’éléments qui dépendent réciproquement les uns des autres de manière à former un tout organisé » - « ensemble d’idées logiquement solidaires et tendant à offrir une vue cohérente d’un objet ou d’un champ d’étude »
Système = confiance? Fiabilité et Sincérité du système ex : « système inéquitable numérique » (SIN)
Mutation des opérateurs de réseaux en fournisseur de Clouds Neutralité du net Supports de la confiance menacés The DAO – gouvernance d’un écosystème blockchain Irréversibilité de la chaîne Réflexion sur les valeurs du système en cause
Instaurer la confiance = Condition du développement des Smart Contracts Réflexion sur le code et l’architecture qui régulent le système régulation intrinsèque Réflexion sur l’apport législatif régulation extrinsèque
II. Code is law
Définitions Blockchain: une base de données distribuée transparente, sécurisée, et fonctionnant sans organe central de contrôle. Smart Contracts: protocoles informatiques qui facilitent, vérifient et exécutent la négociation ou l'exécution d'un contrat, ou qui rendent une clause contractuelle inutile HERBAUT GUIOT
Smart Contract Workflow Blockchain Déploie les smart contracts Sur la blockchain code Smart Contract Organisation HERBAUT GUIOT
Smart Contract Workflow Blockchain code Smart Contract Fournit des données non présentes dans la chaîne e.g. cours de bourse, météo, horaires des avions… Oracles
Smart Contract Workflow Blockchain Entrées du smart contract Données Blockchain Données Utilisateurs Données Oracle code Smart Contract Organisation Oracles
Smart Contract Workflow Blockchain Données Blockchain Données Utilisateurs Données Oracle Sorties du Smart Contract écrites dans la chaîne code Smart Contract Organisation Oracles
Smart Contract Workflow Blockchain Données Blockchain Données Utilisateurs Données Oracle code Smart Contract Organisation Oracles
What Could Go Wrong ?
Smart Contract Workflow Blockchain Données Blockchain Données Utilisateurs Données Oracle code Smart Contract Organisation Oracles
Angles d’attaque Organisation compromise déployant des smarts contracts corrompus Smart contrats buggés exploités par des utilisateurs malveillants Blockchain dont l’algorithme de consensus est exploité Vol de clés des utilisateurs finaux Oracles corrompus HERBAUT GUIOT
Des réponses imparfaites Organisation compromise Un utilisateur peu inspecter le code sources des contrats et s’assurer qu’ils fonctionnent comme attendu Smart contrats buggés Possibilité de vérification formelle (difficile et peut-être impossible pour certains contrats) Blockchain exploitée Augmenter le nombre de nœuds de validations pour rendre le consensus plus difficile à compromettre HERBAUT GUIOT
Des réponses imparfaites Vol de clés des utilisateurs finaux Limiter l’utilisation de wallets en ligne Oracles corrompus Problème d’identification de la source Multiplication des oracles concordants HERBAUT GUIOT
Un impacts sociétal important Usage Blockchain et Smart contracts pervasif (fintech, supplychain, plateforme d’échanges de l’économie du partage…) Toute donnée écrite dans la blockchain y est écrite pour toujours Il est impossible de revenir en arrière en conservant la confiance dans le système Tout résultat inscrit dans la blockchain est opposable HERBAUT GUIOT
Notre proposition Non-opposabilité temporaire et procédures d’appels dans les résultats de smart contracts Chaque résultat est consigné dans un container horodaté L’utilisateur initiant le contrat peu accéder au résultat et en faire appel La procédure d’appel est définie dans le contrat initial, et peut utiliser un oracle humain Sans appel, le résultat devient opposable une fois le délai dépassé HERBAUT GUIOT
Arbitrage des smarts contrats non opposables Blockchain Oracle Arbitre Résultat SC opposable Utilisateur arbitrage code Smart Contract Résultat SC Container (non-opposable) Demande d’arbitrage
Discussion L’approche est utile si la vaste majorité des SC n’est pas arbitrée fonctionnement non-nominal de la blockchain Bénéfices Permet de rendre arbitrable les smarts contrats Sans arbitrage, le résultat est identique au SC d’origine Avec l’arbitrage, le résultat du contrat peut être invalidé et la blockchain peut retourner à son état initial Limites Que faire si l’arbitre est compromis? Réduit la fluidité des transactions de la blockchain et son coût HERBAUT GUIOT
Travaux futurs Que faire dans le cas où plusieurs smarts contrats s’enchainent? Atomicité des SC arbitrables dans une transaction réversible Implémentation du modèle sur Hyperledger Fabric évaluation du coût de l’arbitrage Estimation du délais optimal en fonction du cas d’utilisation HERBAUT GUIOT
III. Code by law ?
Réfutation de l'hypothèse du non-droit J. Carbonnier, Flexible droit, chap. II. Ex: Lex numerica, société créée de fait ...
Adaptation du droit En amont: Standard de preuve et fiabilité Statut de l’information Statut de l’arbitre Sécurité du stockage et de l’utilisation des clés.
Adaptation du droit En aval: Délai d’appel Droits dans la procédure d’appel Contestation de la décision d’appel
IV. Conclusion Standardisation et pouvoir de marché des acteurs Extériorité des facteurs de confiance vis-à-vis du système