Patrick Barban est Professeur de droit privé (CY Cergy Paris Université, LEJEP, CERMUD). En 2024, il a dirigé la rédaction de l’ouvrage “Structures et usages de la Blockchain”.
J'ai en quelque sorte la tâche de vous faire une introduction à cette technologie et de vous montrer pourquoi tous nos questionnements sont intrinsèquement liés à la structure même de ce type de plateforme numérique. L’objectif est de présenter quelques-uns des enjeux juridiques. Je vais juste les esquisser ; je prendrai peut-être, dans certains cas, un exemple pour illustrer dans le détail une application concrète, mais je laisserai évidemment les collègues approfondir sur certains points.
Donc prenez cette intervention comme une présentation générale. Je m'excuse d'ores et déjà pour ceux qui connaissent très bien la blockchain car il n'y aura pas forcément d'éléments nouveaux sur la technique. Mais j'espère que, dans tous les cas, ça vous permettra de voir les enjeux juridiques qui sont attachés.
La technologie Blockchain
Le droit de la blockchain est en réalité intrinsèquement lié à la structure de cette technologie. Cette technologie est apparue en 2008, vous le savez peut-être, avec le Bitcoin et le livre blanc de Satoshi Nakamoto. La blockchain est en quelque sorte, un registre distribué. C'est-à-dire qu'en fait, vous avez des bases de données, donc un registre, qui sont dupliquées à l'identique sur un certain nombre de serveurs.
Et concrètement, plus le nombre est important, plus vous allez assurer la sécurité de ce registre. Le but de cette duplication est double. Il s'agit tout à la fois de préserver les données, mais également de permettre une forme de décentralisation, c'est-à-dire une autonomie de la blockchain.
La blockchain est un registre distribué qui va fonctionner par un système de pair-à-pair, c'est-à-dire que tous les serveurs qui vont détenir une copie de ce registre, vont communiquer en permanence entre eux, soit pour prendre une copie du registre et ensuite l'utiliser, soit pour ajouter des données au registre par le biais d'un bloc.
L'ensemble est protégé par la cryptographie, à deux niveaux. Un premier niveau qui est celui de la protection des utilisateurs, niveau sur lequel je ne vais pas élaborer, mais qui se matérialise pour protéger l'accès au profil utilisateur, qu'on appelle un wallet : vous devez entrer une clé privée pour pouvoir initier des transactions. La protection cryptographique se fait également au niveau du registre lui-même puisque l'objectif est de mettre en place un registre sans maître de réseau, donc un registre autonome. Et pour que le registre puisse attirer des utilisateurs et présenter une utilité, il est nécessaire qu'il y ait une confiance absolue, c'est-à-dire qu'il n'y ait pas de risque de piratage, de corruption, de mauvais fonctionnement. En conséquence, on doit faire en sorte d'avoir une structure suffisamment protégée.
Quand on a un seul opérateur, un maître du réseau, par exemple une banque qui gère ses comptes sur sa base de données, les erreurs peuvent être rattrapées par cet opérateur mais en matière de blockchain ça sera évidemment un peu plus difficile. Pour comprendre comment fonctionne cette cryptographie, il faut comprendre la structure d'un bloc.
La structure d'un bloc : données et cryptographie
Le terme blockchain, c'est simplement un bloc de données qui est chaîné, c'est-à-dire qui est relié à un autre par un ordre chronologique. Il y a un horodatage qui existe et chaque nouveau bloc de données est ajouté après celui qui le précède. L’ordre étant connu, on peut ensuite lire la blockchain pour reconstituer les événements.
De façon très schématique, un bloc de données c'est globalement (i) un code d'entrée qu'on appelle un hash d'entrée, (ii) des données que l’on veut enregistrer dans le registre et (iii) un code de sortie.
Pour commencer avec le premier élément, le code d’entrée. Le code d’entrée est identique au code de sortie du bloc qui le précède pour faire le lien entre les blocs. Ce chaînage est ce qu’on appelle en informatique un arbre de Merkle.
Sur le registre, on peut enregistrer tout un ensemble d'informations. Ça peut être des informations brutes, des messages, des données… on peut vouloir mettre en place un cadastre, par exemple, donc indiquer des éléments permettant de mettre en place le cadastre. Mais ces données, ça peut aussi représenter ce qu'on appelle des coins, des jetons, ou des tokens. Bitcoin par exemple est un jeton, Ether est un jeton et ces données ont la spécificité d'être rattachées dans les transactions à des wallets. Ça permet de créer des liens entre ces données et le wallet et, en quelque sorte, le programme sait que ces données-là, ces jetons-là, appartiennent à tel utilisateur qui peut ensuite les transmettre.
Ce que vous pouvez ajouter, sur la plupart des infrastructures blockchain aujourd'hui, ce sont des programmes complexes qu'on appelle des smart contracts. Ces programmes complexes sont enregistrés par le biais d'une transaction et ce sont des programmes qui permettent d'appliquer des formules automatiques. Vous pouvez ainsi mettre en place des loteries et beaucoup d'autres systèmes, comme des clauses de paiement et autres par le biais de ces programmes complexes.
Une fois que vous avez rempli le bloc avec toutes ces données, il faut déterminer son code de sortie. C'est là qu'on va trouver les apports de la cryptographie. Parce que le code de sortie, en réalité, va être calculé par référence à tout le contenu du bloc. C'est-à-dire que le code d'entrée et le contenu même des données vont faire l'objet d'un hachage: vous allez prendre ces données et, par le biais d'un programme, les réduire en une suite de caractères.
Ce type de cryptage est très intéressant puisque si vous changez le moindre élément, quel qu’il soit, le hachage va complètement changer. Même un élément mineur. Par exemple, le mot bœuf : pour trois écritures possibles, "Bœuf", "bœuf" et "boeuf", le hash dans va être complètement différent. C’est extrêmement important puisque ça permet de protéger le bloc de données. Si jamais le programme détecte que le hash ne correspond pas aux éléments qui sont inscrits, le bloc va être supprimé. Et le serveur qui a une copie de ce registre corrompu va supprimer ce bloc et tous les blocs qui le suivent puisqu’on va présumer que les données ne sont plus correctes. On va alors récupérer une copie saine du registre ailleurs. D'où l'utilité d'avoir évidemment un très grand nombre de copies de ce registre réparties dans le monde.
Les fonctions et modalités de la Blockchain
Les jetons
Le premier usage qui découle de la blockchain, ce sont ce qu'on appelle les jetons. Comme je vous l'ai dit, les jetons sont tout simplement des données. Et ces données ont comme caractéristique d'être reliées à un portefeuille utilisateur. Quand vous allez céder par exemple vos bitcoins sur le registre Bitcoin, vous allez initier une transaction pour dire que vous voulez transmettre ces bitcoins à tel portefeuille et la transaction va indiquer que les bitcoins en question sont désormais reliés au portefeuille du destinataire.
Par le biais de ce mécanisme de registre distribué, ces données ont toujours un titulaire et quand vous les transmettez à quelqu'un d'autre, cette transmission va être effective d'un point de vue informatique. C'est un point qui est très important puisque ça évite un problème que l'on avait jusqu'alors en matière informatique : le problème de la double dépense. C'est-à-dire que, sans maître de réseau pour contrôler le transfert des jetons ou pour prendre l’exemple d’un compte bancaire en ligne, sans banque pour contrôler si le paiement est autorisé, vous pouvez avoir une duplication du paiement, ou toutes sortes de difficultés.
La blockchain crée une forme d'appropriation - terme à prendre avec des pincettes -, mais une forme d'appropriation de données sur internet, c'est-à-dire qu'on crée une titularité. D'habitude quand vous envoyez des données sur internet, par exemple un mail avec un document, vous conservez le document dans votre ordinateur et vous allez envoyer une copie. Là, pour bien réfléchir au registre, quand vous allez envoyer un jeton, vous allez perdre le pouvoir que vous aviez sur ce jeton. Et ça c'est un point qui est central : vous allez vraiment le transmettre à quelqu'un d'autre et vous n'aurez plus aucun pouvoir sur ce jeton qui pourra être ensuite cédé à d'autres personnes.
Donc les jetons constituent un premier outil. Il en existe avec différentes caractéristiques, je ne vais pas rentrer dans le détail maintenant par manque de temps, mais on a des jetons qui veulent répliquer des monnaies, Bitcoin et autres, on a des jetons financiers qui répliquent des valeurs mobilières, et on a des jetons d'usage qui sont une forme de catégorie balais. Tous ces jetons, les autres intervenants en parleront après, sont aujourd'hui quasiment tous encadrés d'une manière ou d'une autre par la réglementation européenne, donc il y a bien une régulation de ces crypto-actifs.
Les smart contracts
L'autre élément dont j'ai parlé, ce sont les smart contracts, ces programmes informatiques que vous allez pouvoir enregistrer sur le registre et qui vont parfois avoir accès à leurs propres portefeuilles.
L'idée est que ces programmes vont répondre à des éléments objectifs, c'est-à-dire que s'ils constatent un événement objectif, ils vont pouvoir appliquer un programme. Le premier exemple a été, je crois, une loterie mise en place par smart contract. Illustration : si vous envoyez un jeton sur le smart contract, le smart contract a comme instruction de choisir au hasard un numéro entre 1 et 10. S’il tire le numéro 1, il vous rembourse votre mise et vous paie le même montant donc vous avez deux fois votre mise. Mais si c'est un autre numéro, vous perdez la somme que vous aviez placée sur le portefeuille. Voilà un exemple simple de cette automaticité des smart contracts. Ils permettent de mettre en place des mécanismes automatiques sur blockchain, ce qui va jouer un rôle très important en matière contractuelle comme on le verra.
La décentralisation : garante de l'immuabilité et de la sécurité de la blockchain
Enfin le troisième élément, c'est que le registre est décentralisé, c'est-à-dire qu'il n'a pas de maître. Le registre est immuable et ça assure la sécurité finalement de la blockchain. Je vais passer un peu vite sur les fonctions que ça peut accomplir, mais vous avez des fonctions qui sont très utiles pour le droit. Donc on peut utiliser cela comme un registre public ; on pourrait remplacer par exemple le registre du commerce et des sociétés ou le registre professionnel par ce type de registre.
On peut mettre en place des relations d'échange. Céder ou acquérir des jetons, c'est un exemple d'échange. Vous allez pouvoir mettre en place des paiements ; pas des obligations monétaires mais des paiements en Bitcoin ou en autre jeton, c'est une possibilité. Et avec les smart contracts vous pouvez mettre en place des organisations un peu plus complexes. Donc prévoir des pouvoirs donnés à certains serveurs, certains portefeuilles et d'autres qui ont moins de prérogatives.
Les contraintes juridiques
On pourrait se dire que si on peut mettre en place des clauses contractuelles sur blockchain, alors on peut prendre n’importe quel contrat une fois qu'il a été conclu et automatiser l'exécution de ses clauses par le biais de smart contracts sur blockchain. Le programme pourrait par exemple réclamer un paiement ou effectuer un paiement à telle date ; le programme pourrait vérifier que vous envoyez bien un document à telle date et pourrait ensuite libérer un compte séquestre ou autre. Vous pouvez mettre en place toute une série d'éléments contractuels sur la blockchain ce qui, évidemment, permet de faciliter l'exécution contractuelle, les relations contractuelles, et d'assurer une forme de confiance et d'automaticité.
Malheureusement, tout ça relève un peu d’un monde idéal. C'est aussi d’un monde un peu inquiétant parce que tout ne doit pas être automatique dans les relations contractuelles. On a un droit des contrats qui est humaniste, qui est fondé sur des rapports humains, pour une raison. Tout ne va pas être aussi simple, il va parfois être nécessaire de recourir à un juge. Il y a certaines clauses d'ordre public qu'on ne peut pas écarter. Par exemple en matière de délais de grâce, de clauses pénales ou autres.
Le caractère immuable de l'inscription sur la blockchain va soulever des questions. Qu'en est-il du droit à l'oubli? C'est un point central aussi pour les données: que se passe-t-il pour les données que l'on a mises sur la blockchain? Que se passe-t-il si quelqu'un veut retirer ces données du programme? Voilà toute une série d'éléments qu'il faudra évidemment appréhender.
Les outils qui sont offerts sont importants, que ce soit les jetons ou les smart contracts. Ils peuvent modifier profondément la manière dont des individus mettent en place des relations contractuelles, des relations d'investissement et autres. Mais évidemment il y a toute une série d'obstacles. Dans un ouvrage que j'ai coordonné avec des collègues, dont certains sont d'ailleurs ici, nous avons pu réfléchir à ces difficultés, ces obstacles et ces limites.
Illustration
Je vais vous donner juste un exemple, ça sera beaucoup plus clair pour vous. Vous pourrez voir les apports de la blockchain en matière de droit des contrats.
Commençons par les avantages. J'en ai déjà dit un petit mot, mais on peut automatiser certains processus, en particulier quand le contrat qui a été mis en place est relativement simple. Donc on peut mettre en place des clauses sur blockchain pour assurer une exécution automatique. C'est très utile, beaucoup de grandes entreprises utilisent aussi le contract management, c'est-à-dire la gestion de projet par contrat. On peut se surveiller, on peut faire en sorte de voir ce que fait l'autre aussi, donc il y a une forme d'autorégulation des cocontractants. Et l'immuabilité sur une blockchain publique fait qu'il ne peut pas y avoir de manipulation de données, donc il y a une forme de sécurité, de transparence qui est comme ça mise en place. Et les choses peuvent ainsi paraître fonctionner assez simplement.
Par exemple, prenons un contrat de transport de marchandises. Un transporteur va transporter des marchandises d'un port, supposons à New York, vers le port du Havre. Et il a un délai pour le faire donc il signe ce contrat avec l'expéditeur. Alors on analyse le contrat, on se rend compte que le contrat a été conclu à une certaine date, qu'un délai de livraison de 5 mois est prévu et qu'on peut prévoir une date limite donc d'exécution. L'expéditeur doit donc assurer le transport de marchandise dans le délai contractuellement fixé. Si vous voulez mettre en place ce type de contrat de marchandise sur blockchain, vous devez tout d'abord inscrire les clauses par le biais de smart contracts et les enregistrer sur la blockchain. Pour pouvoir suivre le contrat en question, vous allez pucer vos marchandises avec des puces RFID. L'avantage de la puce RFID, c'est qu'elle va pouvoir être reconnue à différentes bornes qui sont localisées à des endroits différents. Mais, là d'ores et déjà, vous voyez qu’il y a des petits obstacles. Parce que les marchandises, elles, sont dans le monde réel, ce ne sont pas des données. Donc en fait, il faut vérifier que ce sont les bonnes marchandises. Un humain va devoir vérifier que les marchandises sont conformes au contrat et qu'elles sont en bon état ; il va falloir encoder la puce RFID et la placer dans le container. En tout cas, à la fin, vous allez avoir un sas de débarquement où les puces vont être détectées et, si les délais sont respectés, le smart contract va procéder à un paiement. Si par contre c’est hors délai, il va potentiellement envisager une indemnisation forfaitaire, encore une fois par smart contract.
Problématiques liées à la clause pénale
Tout ça paraît très simple quand on dit les choses comme ça: on met un clause pénale, tout est automatisé, c'est facile sauf que la clause pénale est quand même soumise à un régime d'ordre public et qui n'est absolument pas adapté à la blockchain.
La première chose, c'est que la clause pénale doit être prévue au contrat. Donc, il faut se demander en amont comment on la traduit.
Ensuite, elle est mise en œuvre s'il y a une inexécution ou une mauvaise exécution. Dans l'exemple que j'ai donné, c’est facile : le délai est dépassé, c'est quelque chose d'objectif. Un smart contract, je vous le rappelle, peut déceler des éléments objectifs. Une date, c'est un élément objectif : la puce n'a pas été détectée à destination avant une date fixée dans le contrat ; le smart contract va s'activer. Ici, il n'y a pas de difficulté. Mais ce n'est pas le seul cas de mauvaise exécution.
Que se passe-t-il si les marchandises arrivent dans les délais et qu'elles sont détruites ? Il y a aussi une obligation de conservation qui appartient au transporteur. Mais ça, le programme sera incapable de déceler. Donc, il faudra recourir à un tiers, un humain, qui va vérifier l'état des marchandises et qui devra donc enregistrer sur blockchain le bon état des marchandises ou, à l'inverse, le mauvais état.
Et troisième élément, en cas de clause pénale, si l'indemnité qui est fixée dans la clause est manifestement excessive ou dérisoire, le débiteur de cette clause peut demander au juge de modifier le montant de ce forfait. Et c'est une clause d'ordre public, on ne peut pas l'écarter contractuellement. Donc que se passe-t-il dans ce cas ? Et bien vous avez un litige, le juge va prendre une décision et il faudra bien rentrer les éléments de cette décision dans le programme ou corriger ce qui a été mis en place par le programme.
Mais ça va poser un autre problème car la clause, en tant que telle, va s'appliquer automatiquement, même s'il y a un litige. Donc, il faudra prévoir quelque chose pour empêcher son application notamment s'il y a un litige.
On voit finalement que le système juridique s'adapte assez mal en droit des contrats avec cette automaticité. On peut mettre en place certains éléments mais on ne peut pas tout mettre en place.
Je vais conclure là-dessus, j’espère avoir réussi à expliquer un petit peu comment fonctionne la blockchain et surtout comment, avec ce type de programme, on arrive en fait à des nombreuses modalités qu'on peut exploiter. Mais évidemment, on ne peut le faire que dans le cadre du respect du droit.
Je vous remercie.
Questions / Réponses
Est-il est possible d'envisager un tel contrôle sur des obligations plus complexes comme la traçabilité d'investissement qui sont prévus dans les contrats?
Patrick Barban:
Oui, clairement. Dans le domaine de la finance on peut chercher à savoir où vont les financements qui ont été octroyés et notamment dans le cadre des obligations européennes. À ce niveau-là, c'est évident. Ça peut même être la traçabilité en matière alimentaire et c'est le premier domaine qui a été exploité. C'est-à-dire que, grâce à la blockchain, avec ce registre public, on peut tout retracer. C'est d'une grande aide et ça a déjà été mis en place par l'industrie.
Codage de smart contract
Il faut maîtriser la programmation. Par exemple, n'importe qui peut élaborer un smart contract sur Ethereum. Ça demande un investissement, c'est-à-dire que grand public ne pourra pas facilement mettre en place de telle clause sur blockchain. Mais j'en profite pour faire très rapidement la publicité d'un de mes projets de recherche qui commence : on va essayer de développer un logiciel pour transposer certaines clauses sur sur blockchain. On est en train de de travailler là-dessus.
La mise en demeure
Enfin, pour répondre à une question que je viens de voir sur la mise en demeure dans le droit des contrats: ce n'est pas bloquant parce qu'en fait, vous avez une très grande liberté contractuelle par rapport à cette mise en demeure. Donc si vous prévoyez dans votre contrat des modalités pour l'écarter, il n'y aura pas de difficulté. Mais ça ne sera pas le cas par exemple des délais de grâce, des clauses pénales… je n'ai pas tous les exemples en tête, mais il y a un certain nombre de cas dans lesquels vous pouvez recourir au juge et, si vous contestez aussi le bien fondé d'une obligation contractuelle, le juge va intervenir. Ici la blockchain ne va pas vous apporter de réponse.