[mis à jour le 7 mai 2019] « Blockchain de certification et de traçabilité » ? Lorsque la Commission ouverte du Barreau de Paris me demande de venir expliquer (en moins de 30 minutes) à quoi peut servir un protocole blockchain et surtout, « comment ça marche » concrètement par exemple dans une supply chain, j’arrive !!! Vous trouverez ci-dessous les slides que j’ai présentées lors de LA 28ÈME MENSUELLE AFRICAINE – LES INVESTISSEMENTS EN AFRIQUE FACE AUX ENJEUX DES NOUVELLES TECHNOLOGIES le jeudi 2 mai 2019 à la maison des avocats du Barreau de Paris.
Blockchain de certification et de traçabilité : comment ça marche ?
Un protocole blockchain ? Les membres d’une chaine publique / privée envoie des messages vers les noeuds (les serveurs) d’une chaine. Chaque message de chaque expéditeur est reçu par un noeud qui « hache » le message et l’envoie aux autres noeuds.
Chaque noeud remplit des blocs avec (le hash de) ces messages. Lorsqu’un bloc est remplit, le noeud le « valide » (c’est le « minage ») et l’envoie aux autres noeuds. Chaque noeud dispose donc de tous les blocs qui contiennent tous les messages de tous les participants à la chaine.
Un protocole blockchain envoie les messages et les blocs validés à tous les autres noeuds de la chaine en mode peer-to-peer. Il n’y a plus de base de données « master » ou « centrale » mais une chaine de blocs détenus à l’identique par chaque noeud. C’est (déjà) cela, la révolution blockchain.
Blockchain de certification et de traçabilité : pas de token ni de smart contract !
Les blockchains dont je vais vous parler servent à faire de la certification de data et de la traçabilité de produits. Nous ne parlerons pas de « token », ni de « crypto-monnaie », ni de « smart contract »( qui n’intéressent pour l’instant que l’univers de la finance 3.0..)..
Blockchain de certification et de traçabilité : un logiciel pour tous les membres d’une même chaine
En pratique, les « expéditeurs » de « messages » dans une chaine doivent simplement installer le logiciel de la chaine dans un terminal (ordinateur / tablette / smartphone).
En pratique encore, les noeuds sont des serveurs sur lesquels est installé un logiciel permettent de recevoir les « messages » des « expéditeurs ».
Les terminaux des membres comme les serveurs des noeuds d’une même chaine doivent être tous connectés à un réseau de communication électronique…
Blockchain de certification et de traçabilité : la traçabilité des informations contenues dans des « data »
Si vous êtes un industriel qui fabrique un produit de grande consommation (des bouteilles d’eau minérale, des plats surgelés, du lait infantile, etc.), votre supply chain est composée une grande quantité de prestataires professionnels, depuis la conception du produit, en passant par son transport, son stockage et sa livraison jusqu’au point de vente aux consommateurs.
Aujourd’hui, cet industriel ne dispose que de très peu de data liées au cycle de fabrication et de vente de son produit. La mise en oeuvre d’un protocole blockchain permet de résoudre ce problème. Et potentiellement, la quantité de data à collecter est gigantesque. Avec toutes ces data, on peut faire des traitements de BIG DATA…
Blockchain de certification et de traçabilité : gérer les intervenants professionnels
Gérer l’accès des professionnels qui envoient des data dans une supply chain ? C’est savoir « qui » fait « quoi » et « quand » dans la chaine de la conception, de l’emballage, du transport, du stockage et de la livraison d’un produit. Aujourd’hui, aucun logiciel de CRM, ni aucun autre protocole de collecte et de traitement de data ne le permet.
Blockchain de certification et de traçabilité : l’information transparente des consommateurs
Les industriels souhaitent aujourd’hui donner de la visibilité à leurs clients sur ce qu’est le produit vendu. D’ou vient le produit ? De quoi est-il composé ? Où a-t-il été fabriqué ? Avec quels ingrédients ? Depuis combien de temps avant sa mise en vente ?
Toutes ces informations peuvent être fournies de manière traçable grâce à la mise en oeuvre d’un protocole blockchain.
Blockchain de certification et de traçabilité : la certification de l’identité des acteurs d’une supply chain
L’utilisation des protocoles de cryptographie asymétrique à « clé privée + clé publique » permet de s’assurer que chaque intervenant dans un protocole blockchain est identifié avec un très haut degré de probabilité par l’usage de sa « clé privée » unique. Cet intervenant ne pourra pas contester l’origine de l’information qu’il a signé de sa clé privée, puisque cette clé est unique et liée à son adresse publique dans le protocole blockchain.
L’industriel maitre de la chaine sera quasiment certain de l’origine de l’information via l’identification de son émetteur. C’est déjà cela, la certification (de l’émetteur des messages). En langage informatique, on parle alors de fonction d’authentification.
Reste pour notre industriel à s’assurer du « quoi » et du « quand ». Dans une blockchain « publique » (sans gouvernance connue) ou « privée », controlée par un maitre de la chaine, le processus permettant de devenir membre est identique. Le « nouvel entrant » qui veut disposer d’un droit de lecture et/ou d’écriture dans une chaine doit d’abord en devenir membre. Et pour cela, ce « nouvel entrant » doit créer sa clé cryptographique « privée », qui permet de générer sa clé « publique », laquelle permet (à son tour) de créer son adresse publique unique dans la blockchain.
L’accomplissement du procédé technique suffira dans une blockchain « publique » à accès totalement libre (et à gouvernance INCONNUE) de type Bitcoin.
Dans une blockchain sérieuse, avec une gouvernance connue ou acceptée au préalable (hypothèse des blockchains dites privées), il faudra ajouter une dose de juridique. Si le prestataire de blockchain est qualifié au sens du Règlement eIDAS, pas de problème. Si la blockchain est privée, à accès restreint, il faudra que le candidat accepte en plus (et surement au préalable) des conditions d’utilisation / conditions générales de service.
Blockchain de certification et de traçabilité : le contrôle d’intégrité des data transmises dans la blockchain
Si le maitre de la chaine sait avec une très très forte probabilité « qui » envoie des data, il souhaitera avoir la même certitude sur le contenu des data transmises. C’est ici qu’intervient la fonction de contrôle d’intégrité assurée par le protocole blockchain.
Si chaque « message » transmis par un intervenant dans une supply chain peut être vérifié, c’est que les data concernées ne sont pas modifiées ultérieurement. C’est grâce à l’usage des fonctions cryptographiques de hachage que la garantie de non-modification peut être assurée. Le hachage cryptographique ? C’est la conversion à sens unique d’un fichier numérique en une « empreinte » (« hash », « # » ou « checksum ») , vérifiable par le futur hachage du même fichier de données. Si un fichier haché tel jour peut être ultérieurement haché à nouveau et que le nouveau « hash » est strictement identique au hash conservé dans la chaine, c’est que le message est « conforme » à l’original. Là comment la preuve « technique ». Reste à gérer le problème de la preuve « juridique » (nous y reviendrons en fin de présentation).
Le hachage des « messages » est en principe assuré par les noeuds d’une blockchain. Mais si les blocs de certaines blockchains peuvent conserver des données dans un format de type « message + hash » (c’est le cas de la chaine Bitcoin), d’autres (c’est le cas des blockchains de traçabilité) ne stockent que les hashs des messages. Tout dépend de la volonté du maitre de la chaine : si notre industriel veut assurer la transparence du contenu des messages, il faudra qu’il utilise la combinaison « message + hash » de manière à ce que chaque membre de la chaine puisse vérifier le contenu du message dans la chaine elle-même.
Blockchain de certification et de traçabilité : l’horodatage des messages
L’intérêt d’un protocole blockchain est d’identifier « qui » écrit dans la chaine et « quoi« . Ne manque plus qu’une étape, techniquement facile : l’horodatage des messages, le « quand ».
Dans toutes les blockchains, la fonction d’horodatage permet d’assurer quand un message a été transmis (techniquement : à quelle heure un noeud a reçu un message et l’a haché).
Et cette fonction sert à des tas de choses : par exemple vérifier « quand » les camions de transport des produits sont partis d’un point A vers un point B, « quand » les camions sont arrivés au point B, etc.
Blockchain de certification et de traçabilité : la Vérité est dans la chaine de blocs ?
C’est une des questions les plus fréquemment posées : parce que les data sont « blockchainisées », ces informations sont Vraies ? Un capteur qui enverrait des data dans une blockchain ne se tromperait jamais ? Si c’était le cas, ça se saurait et les tribunaux ne serviraient plus à rien…
La seule certitude que peut proposer l’usage d’un protocole blockchain est que la data contenue dans une chaine de blocs ne sera pas modifiable une fois transmise. N’attendez pas d’une blockchain qu’elle apporte la Vérité. D’ailleurs, en terme de preuve, et même après signature d’un contrat sur la preuve, les informations prouvées par les data stockées dans une blockchain peuvent faire l’objet d’une preuve en sens contraire. Ce n’est pas moi qui le dit, c’est – en France – le Code civil depuis 2016 (Ordonnance de réforme du droit des contrats).
Blockchain de certification et de traçabilité : le problème de la preuve
S’il est bien une source de difficulté dans la compréhension du fonctionnement des blockchains, c’est la réalité de la preuve qui résulte des data qui y sont intégrées. Il faut hélas le répéter, le simple usage d’un protocole de signature électronique de type « clé privée + clé publique », le hachage et l’horodatage des messages ne confèrent pas à eux seuls une valeur de preuve judiciaire aux data d’une chaine de blocs :
– soit le protocole blockchain est reconnu par la loi (c’est le cas en France des transferts de « minibons » par exemple avec l’Ordonnance n° 2016-520 du 28 avril 2016 relative aux bons de caisse qui encadre les « Dispositifs d’Echange Electroniques Partagés » ou D.E.E.P. (terme légal utilisé pour se référer à un protocole blockchain);
– soit la chaine est opérée par un prestataire qualifié au sens du Règlement UE eIDAS du 23 juillet 2014 (à ma connaissance, pas de prestataire qualifié en France à ce titre);
– soit les membres de la chaine de blocs ont tous signé au préalable un « contrat sur la preuve » qui permet de donner une reconnaissance légale – entre membres – aux data contenues dans la chaine; l’intérêt de ce contrat sur la preuve – parfaitement légal – est de pouvoir aller en justice en justifiant de la force légale attachée aux data de la chaine;
– soit… à défaut de l’une des trois options précédentes, les data de la chaine valent juridiquement… pas grand chose en terme de preuve. La réalité est cruelle, comme dirait le Roi des Troyens.
[mise à jour du 30/01/2020 : pour une analyse plus juridique de la validité des « data » collectées par une blockchain, c’est ici qu’il faut cliquer]
Blockchain de certification et de traçabilité : une définition pratique ?
Et pour rendre votre approche juridique d’un protocole blockchain un tant soit-peu pratique, voici la liste des principaux domaines du droit à prendre en compte si vous décidez d’encadrer contractuellement une blockchain de certification et de traçabilité: