Madre : le projet “blockchain” de la Banque de France

Rigaut-Luczak Lola
5 min readOct 5, 2018

--

Il y a quelques semaines, MADRE, le projet “blockchain” de la Banque de France, a reçu le prix de l’innovation. Il doit servir à gérer les identifiants SEPA, grâce à une “blockchain” privée. A travers l’étude de ce projet, nous allons tenter de comprendre ce qu’est une “blockchain” privée et comment ce concept se compare aux systèmes distribués traditionnels.

Définition de la “blockchain”

Il faut tout d’abord bien noter qu’il n’existe pas de véritable consensus sur la définition de “blockchain” [1]. Nous allons donc d’abord essayer de déterrer les éléments importants qui se cachent derrière ce mot valise…

Lorsque l’on parle de “blockchain”, on associe souvent le problème des généraux byzantins. Satoshi Nakamoto a d’ailleurs expliqué le principe derrière Bitcoin avec cette analogie dans un de ces emails [2]. Il fait référence à une chaîne de preuve de travail, concept qui deviendra plus tard block chain pour enfin devenir la fameuse technologie “Blockchain”.

Pourquoi avons-nous besoin de cette chaîne de preuve de travail ? Cette chaîne sert à créer une chronologie entre les transactions. C’est très important d’avoir une chronologie lorsque l’on a une base de données distribuée. Il faut que chaque base de données soit identique aux autres, ainsi il faut pouvoir s’assurer que toutes traitent les mêmes transactions dans le même ordre : c’est là où l’on a besoin d’un consensus et que notre chaîne de preuve de travail intervient. Dans le cas contraire, nos bases de données ne sont pas identiques et il y a une incohérence. Il est donc tout simplement impossible d’avancer tous ensemble s’il n’y a pas de consensus.

Or il se trouve que l’on a déjà créé des algorithmes qui permettent de faire cela sans “blockchain” : Paxos, RAFT, ou encore PBFT… (parfois on peut lire que des algorithmes dérivés de PBFT sont des blockchains PoA, c’est inexact).

La grande différence entre ces algorithmes et notre chaîne de preuve de travail est qu’eux sont déterministes (après un cycle, on sait que tout le monde a les mêmes données) et l’autre est probabiliste (plus on avance dans le temps, plus la probabilité que tout le monde ait traité une même transaction est proche de 1). Bien sûr, une approche peut être plus avantageuse que l'autre pour certaines applications spécifiques. Par exemple, l’approche déterministe est rapide mais permet d’avoir un nombre de noeuds très limités, tandis que l’approche de Nakamoto permet d’avoir un grand nombre de noeuds mais consomme beaucoup d’énergie et est très lente.

Le cas de la Banque de France

Le projet Madre est un projet de “blockchain” privée. Cela implique que seulement un nombre restreint d’utilisateurs autorisés pourront détenir et faire fonctionner les noeuds qui feront vivre le réseau. Dans notre cas, ces utilisateurs assermentés sont des banques avec l’autorisation de la Banque de France.

D’après un document trouvé en ligne [3], le projet aurait été réalisé à partir d’un fork d’Ethereum. Il utiliserait donc le consensus de Nakamoto, le même que Bitcoin. Rappelons que cette solution est très lente et énergivore mais qu’elle reste idéale lorsqu’on a un grand nombre de noeuds. Au vu des éléments dont nous venons de parler, le choix de ce type de consensus paraît inadapté compte tenu du cahier des charges d’un tel projet. Il aurait été plus optimal d’utiliser une solution de base de données distribuée répliquée classique.

Il est précisé aussi dans le même document que chaque banque aura un noeud qui opérera sous sa responsabilité. Distribuer les noeuds en plusieurs localités géographiques permet en cas de problème (un incendie, innondation, panne d’électricité,…) d’avoir toujours une copie des données sur un autre serveur physique. C’est recommandé pour les données critiques, comme par exemple les données bancaires. C’est pour cela que lorsque l’on parle de la décentralisation on dit souvent qu’il n’y a pas de point individuel de défaillance dans ce-dit système (“No single point of failure”). On retrouve aussi cette notion dans les systèmes distribués traditionnels. Or il y a décentralisation (au sens informatique) et décentralisation (au sens entité en contrôle). Le projet Madre est décentralisé dans les deux sens car les serveurs sont multiples et dans différents lieux, mais aussi sous le contrôle de différentes entités. Il y a un grand désavantage à avoir plusieurs entités en charge pour la maintenance du projet et du réseau. Cela demande une grande coordination lors des mises à jour et particulièrement les mises à jour critiques, comme des patchs de sécurités (car rappelons que les “blockchains” sont programmées par des humains qui peuvent commettre des erreurs).

Nous avons déjà noté que les entités en question sont des établissements bancaires désignés par la Banque de France elle-même. Elle a déjà un droit de regard sur qui utilise l’application et peut sûrement aussi révoquer les privilèges d’une banque. Le choix d’un système décentralisé n’est donc pas non plus le fait d’une volonté de résister à la censure comme pour Bitcoin, où un tel droit ne pourrait être révoqué sur simple demande.

La combinaison de ces deux derniers points nous fait penser qu’une base de données distribuée répliquées sous le contrôle de la banque de France avec une API dédiée connectée à des banques partenaires était suffisante pour répondre au besoin du projet, tout en réduisant considérablement les coûts. Sans compter que les programmes développés pour répondre à ces besoins sont déjà utilisés par plusieurs compagnies informatiques dans le monde, et maintenus par des ingénieurs en informatique spécialisés. A noter que les systèmes distribués sont effectivement une spécialisation existante en informatique, déjà enseignée dans le cursus universitaire.

Blockchain Partner [4], la start up qui a accompagné la Banque de France sur le choix de la “blockchain”, assure un gain de temps faisant passer la durée d’enregistrement d’un identifiant SEPA de plusieurs jours à quelques heures. On peut se demander si ce n’est pas simplement dû à une numérisation et automatisation des tâches plus qu’à l’ajout d’une “blockchain”, en tant que telle.

Conclusion

Je n’ai pas connaissance d’un rapport détaillé sur le projet Madre, il est donc possible que certaines des affirmations tenues par la Banque de France aient depuis changé et soient désormais erronées. Il reste que dans les grandes lignes le choix de la Banque de France manque de cohérence. Le plus grand intérêt de la Banque de France pour choisir de développer un projet “blockchain” semble être celui du coup de publicité.

On notera aussi que la start up Blockchain Partner, qui a accompagné ce projet se dit pourtant spécialisée dans cette technologie. On comprend donc pourquoi ils ont poussé ce projet sur cette voie mais peut être au dépend d’une solution plus adaptée pour son client.

En conclusion, il a été mis en évidence les avantages et désavantages des différents systèmes distribués : consensus de Nakamoto ou algorithmes déterministes. On retient que la finalité du projet est très importante lors du choix de la technologie la plus adaptée et qu’un système distribué ne se cantonne pas seulement à la “blockchain”. Il existe toute une spécialisation en informatique enseignée dans le parcours universitaire français.

--

--

Rigaut-Luczak Lola

Ingénieure en informatique. Intéressée par Bitcoin depuis 2013. Ne comprend pas la blockchain.