Last Updated on juin 4, 2018 by Talium
Blockchains publiques (vs privées) : un outil privilégié pour les applications grand public
Il existe deux grands types de blockchains, les blockchains publiques d’une part qui sont consultables par tous et qui ne présentent aucune restriction quant à la participation au réseau. Les blockchains privées d’autre part où il est nécessaire d’obtenir une permission ou de faire partie d’une communauté pour s’impliquer.
Avantages des blockchains publiques
Alors que les blockchains publiques sont des outils très performants pour le développement de services d’intérêt commun, de par leurs propriétés de gouvernance collective, de transparence et d’ouverture, elles sont essentiellement utilisées aujourd’hui en production pour des services financiers comme les plateformes d’échange de cryptomonnaies.
Leur utilisation pour les services visant le grand public présente de nombreux intérêts qu’il nous semble pertinent de partager au travers de l’expérience de notre collaboration sur le projet BCDiploma – un service destiné au plus grand nombre et utilisant une blockchain publique : Ethereum.
BCDiploma, ainsi que l’exprime son CEO Luc Jarry-Lacombe « répond à une attente des établissements d’enseignement supérieur en créant le standard pour la certification des millions de diplômes émis chaque année dans le monde ». Un diplômé pourra ainsi prouver à un tiers l’obtention de son diplôme grâce à un URL et/ou un QRcode qui rendra celui-ci lisible et vérifiable, cette information étant stockée de manière immuable dans la blockchain.
Le choix d’une blockchain publique est au cœur de la philosophie de ce projet et trouve sa logique dans le souci d’adoption par les partenaires institutionnels de l’enseignement supérieur très attachés à la transparence et à une forme d’indépendance. La blockchain publique, combine un modèle open source au caractère public de l’ensemble de ses nœuds et garantit ainsi transparence et pérennité. BCDiploma a de surcroît développé un framework opensource EvidenZ au cœur de sa solution. Un tel projet pourrait plus difficilement trouver de légitimité sur une blockchain privée, sans accès au code source et régie par un seul acteur ou consortium. La blockchain publique permet la mise en place d’un écosystème open source où les écoles/universités restent propriétaires de leurs données et auraient la possibilité de les utiliser indépendamment de l’éditeur de la solution. Ils peuvent également avoir accès au framework opensource qui régit le traitement de leurs données.
Les blockchains publiques et l’environnement opensource présentent donc les avantages d’introduire de la transparence dans les services proposés et de s’affranchir d’une dépendance envers le prestataire ou envers la blockchain elle-même. Ces avantages sont absolument déterminants dans le cadre d’un projet d’envergure internationale faisant intervenir des acteurs institutionnels, et dans l’intérêt du grand public.
Points de vigilance dans le cas d’utilisation de blockchain publiques
D’un autre côté, l’utilisation de blockchains publiques induit certaines contraintes que nous partageons ci-dessous et qui se sont présentées dans le cadre du projet BCDiploma :
- Coût d’utilisation
Ethereum comme beaucoup de blockchains publiques utilise un consensus par preuve de travail via le minage. Plus on stocke de données dans la blockchain, plus on rajoute de blocs à la chaîne, plus on sollicite les mineurs et plus on utilise les ressources de stockage des registres. Ces opérations ont un coût non négligeable, répercuté dans la cryptomonnaie de la blockchain et donc sujet à une fluctuation de change. Il est donc primordial d’optimiser la quantité d’information injectée dans la blockchain, et c’est là un des gros sujets de R&D du projet. Le stockage des données offchain est exclu car il réintroduit de l’opacité via un système de base de données centralisée. Nous avons donc recours à un smart contract dont l’objet est de recréer le diplôme final à partir d’une quantité de données minimale enregistrée dans la blockchain.
- Garantie de l’identité des acteurs
Dans le modèle opératoire de BCDiploma, il est particulièrement important de garantir l’identité de l’entité émettrice des diplômes. Sans cette garantie, le risque est d’ouvrir la possibilité à l’usurpation d’identité d’organismes de formation et l’émission frauduleuse de diplômes. Alors que des solutions KYC avancées ont été élaborées dans le cadre des fintechs, peu de services décentralisés blockchain se sont penchés sur des solutions pour l’authentification des personnes morales. C’est même une cause de défaillance potentielle d’expérimentations dans ce domaine menées des organismes comme le MIT, la Holberton School, ou l’ESILV en France. Pour garantir l’identité des écoles, le framework EvidenZ de BCDiploma intègre un smart contract « SmartValidation » dans lequel est impliqué un tiers « validateur ». Ce tiers garantit l’existence de l’école et autorise l’émission d’un certificat d’identité. Ce dernier permet à l’école d’enregistrer les données des diplômes dans Ethereum et garantit l’authenticité des diplômes en lecture.
- Sécurisation et protection des données
Lorsque l’organisme de formation est prêt à charger de nouveaux diplômes sur la blockchain, il a accès à une DApp (Decentralized App) open source qui va lui permettre d’encrypter les informations des diplômes dans ethereum, à l’aide d’une master key elle-même stockée dans un module HSM. Via l’application sont créés des nombres aléatoires correspondant à l’ID du diplôme, l’ID du diplômé et la clé de persistance. La clé du diplôme est elle-même créée par dérivation de la master key et d’une clé intermédiaire issue de la concaténation de la clé de persistance et de l’ID du diplômé. La sécurisation du projet est donc assurée par cet algorithme cryptographique complexe qui permet de garantir l’unicité de chaque clé et de réduire au maximum le risque de hacker le système pour créer un faux diplôme.
Un point critique est la qualité des nombres aléatoires générés. En effet, il est essentiel pour la sécurité des fonctions cryptographiques mises en œuvre que ces nombres soient parfaitement aléatoires. Reprenons le cas du célèbre hacking de la console PS3 : En 2010, un groupe de personnes a mis en évidence une anomalie dans la console de jeu PS3. Celle-ci vérifie la légitimité des jeux utilisés grâce à l’algorithme de signature ECDSA. Elle intègre donc un générateur de nombres aléatoires. L’appel à ce générateur était dans ce cas mal implanté et produisait toujours le même nombre «aléatoire». À partir de la connaissance de ce nombre et de deux signatures, il est possible de retrouver la clef privée. Une fois cette clef connue, il est possible de signer n’importe quel jeu (par exemple piraté) correctement.
Dans le cadre du développement du projet BCDiploma, nous utilisons l’état de l’art des algorithmes de génération de nombres aléatoires, ce qui permet de sécuriser le projet contre les utilisations frauduleuses, et d’assurer sa pérennité avec un potentiel d’émission de milliards de diplômes. La sécurisation du système doit également couvrir les données stockées off chain, dans notre cas les clés de persistance qui sont gérées via la solution cloud Microsoft Azure. Le rôle de l’intégrateur est alors de mettre en place la solution cloud la plus performante et sécurisée pour les besoins du projet, les clés de persistance étant utilisées à la fois dans l’algorithme cryptographique, la lecture des diplômes et la mise en œuvre du droit à l’oubli.
- Compatibilité RGPD et droit à l’oubli
La technique la plus « simplement » compatible avec les directives RGPD en matière d’effacement des données personnelles dans le cadre d’un projet blockchain est de stocker ces données hors de la blockchain, dans une base de données hébergée de manière centralisée ou décentralisée. La blockchain n’intègre alors que le hash des transactions. Mais comme nous venons de le voir, ce n’est pas le cas dans le projet de notre partenaire BCDiploma, où le stockage dans la blockchain est la garantie de l’intégrité des données. Afin d’assurer la comptabilité GDPR et la possibilité d’exercer le droit à l’oubli, la solution utilisée est de donner au diplômé la possibilité de détruire la clé de persistance associée à son diplôme. Cette clé étant nécessaire à la lecture du diplôme, sa destruction interdit définitivement l’accès à celui-ci, ce qui permet l’exercice du droit à l’oubli.
- Indépendance par rapport à la blockchain
Un dernier point critique pour l’adoption de la solution par les partenaires de formation est la possibilité de pérenniser le projet sans dépendance vis-à-vis du prestataire ou de la blockchain utilisés. Comme nous l’avons vu, l’application étant open source, les organismes de formations peuvent continuer à l’utiliser en s’affranchissant de l’auteur de la solution. De même, nous avons été impliqués dans le projet pour permettre la portabilité du projet dans une autre blockchain en cas de besoin. La totalité des données serait ainsi préservée et transférable en cas de nécessité de migration.
Le choix d’une blockchain publique présente donc de nombreux atouts pour la transparence et la pérennité d’un projet d’intérêt commun. Il convient simplement au concepteur et à l’intégrateur de trouver les bons compromis pour assurer l’intégrité des données et le respect des réglementations, sécuriser le système contre les fraudes, et permettre la portabilité des données dans un contexte d’environnements technologiques en pleine évolution.
Si ce sujet vous intéresse, venez-vous immerger dans l’univers blockchain pendant les BlockDays & LedgerDays les 11 et 12 juin 2018 à l’école 42 à Paris. L’occasion de poser vous questions à BC Diploma : https://www.eventbrite.fr/e/billets-blockdays-ledgerdays-1-11-et-12-juin-2018-a-42-46188397741
Cet événement est ouvert à tous : https://matrice.io/blockdays-ledgerdays-1.pdf
Merci à Luc Jarry-Lacombe, CEO de BCDiploma, Vincent Langard, CTO de BCDiploma et Marc Majewski, Blockchain Engineer chez Talium pour leur contribution.
Plus d’informations :