RGPD et Blockchain

La réglementation RGPD qui est applicable à partir du 25 mai 2018 a été élaborée pour un monde où la donnée est collectée, stockée et traitée de manière centralisée, habituellement par un organisme auquel l’usager accorde sa confiance pour en faire bon usage.

Les risques que le RGPD adresse sont les fuites de données personnelles ou leur traitement abusif.

La blockchain a pour but principal la réplication de données sur des registres distribués dont le contrôle est assuré par des entités différentes, afin de s’affranchir d’un tiers de confiance unique. Ses propriétés facilitent les transactions de pair à pair, de même que l’absence d’un responsable des traitements unique permet d’éviter les pratiques de profilage systématique.

Il apparaît donc que la réglementation RGPD tout comme les blockchains rendent possible la protection de l’intérêt des individus contre la gouvernance excessive des GAFAM et autres entreprises adeptes du Big Data dont les modèles économiques sont partiellement construits sur le traitement des données utilisateurs.

Paradoxalement, les propriétés des blockchains les rendent difficilement compatibles avec certaines des obligations RGPD.

  • L’accès libre aux données stockées dans les registres distribués de la blockchain
    Ceci peut entrer en conflit avec les obligations RGPD de protection des données
  • La propriété immuable de la blockchain
    Cette propriété coexiste difficilement avec les directives RGPD de droit à l’oubli et de conservation limitée dans le temps
  • La gouvernance partagée / Elimination des tiers de confiance
    Cet aspect est en contradiction avec la directive RGPD de nommer un délégué à la protection des données. Qui est le référent des utilisateurs s’il n’y a pas de responsable au traitement des données ?
  • Le traitement automatique des données via les smart contrats
    En effet, RGPD vise à combattre des décisions fondées exclusivement sur un traitement automatisé et affectant les utilisateurs de manière significative.

Le vote du Cloud Act par le congrès américain d’autre part rend pratiquement impossible l’application extraterritoriale du RGPD. Les données stockées sur des registres distribués d’une blockchain publique situés sur le sol américain peuvent tomber sous le coup d’une investigation des autorités américaines et entrer en contradiction avec la disposition interdisant les transferts ou divulgations non autorisés par le droit de l’Union.

De plus, les obligations RGPD n’ont pas les mêmes répercussions selon les types de blockchains utilisés. 2 cas principaux se distinguent :

  • Les blockchains publiques – open permissionless
  • Les blockchains privées, permissionnées ou permissionless

 

  • Les blockchains publiques

Les données contenues dans les blocs, encryptées ou non, même au travers de simples condensats ou hash (dont la présence prouve l’existence de données potentiellement privées), peuvent contenir ou être dérivées d’informations personnelles. On peut donc dire que les blockchains publiques contiennent des données personnelles qui restent accessibles dans les registres distribués.

Le mécanisme de signature des transactions et leur vérification se fait par un algorithme de chiffrement par courbes elliptiques qui joue un rôle crucial dans la technologie blockchain. Il assure aussi la génération des paires de clés (clé privée et clé publique) nécessaire aux signatures. Il est communément accepté que les ordinateurs quantiques pourront un jour (lointain, sans doute dans quelques décennies) casser les algorithmes de chiffrement, ou même remonter les clés privées appairées aux clés publiques, dans des délais devenant « praticables ».

Il serait possible d’utiliser des algorithmes quantum-proof qui pourraient assurer la confidentialité sur quelques décennies supplémentaires, cependant, comme tout projet informatique, ce type de choix technique doit se faire au vu d’autres paramètres dont la performance : les données sont-elles suffisamment critiques pour devoir les chiffrer ou même utiliser des algorithmes quantum-proof qui pourraient impacter la rapidité des transactions ?

De la même façon, l’immuabilité, la gouvernance partagée et la possibilité de faire tourner des « smart contrats » font des blockchains publiques des technologies peu adaptées à la conformité RGPD. La question se pose particulièrement pour les DAO (Decentralized Autonomous Organizations) qui sont des structures à la gouvernance décentralisée régies par des smart contrats, permettant à leurs contributeurs de proposer des projets et de voter pour ou contre leur financement. Une DAO ne dispose pas de personnalité juridique. Bien qu’elle soit constituée d’un ensemble de participants agissant comme une société, c’est-à-dire avec un projet commun ayant un but a priori lucratif, elle ne peut pas en tant que telle s’inscrire dans les cadres juridiques existants, et obtenir une personnalité morale.

En conséquence, les utilisateurs de ces organismes DAO ne sont théoriquement pas protégés par la réglementation RGPD. Plus généralement, les blockchains publiques elles-mêmes étant développées par des communautés open source, aucune entité légale ne les représente et pourrait se voir opposer ces directives européennes.

En théorie, on pourrait imaginer qu’une blockchain publique dans laquelle on aurait introduit de manière mal intentionnée des données personnelles à caractère sensible pourrait être mise à mal par la RGPD… il est cependant difficile d’appréhender les sanctions qui pourraient lui être imposées.

La responsabilité des données inscrites dans les blockchains publiques est donc transférée aux personnes proposant des services tiers et utilisant ces blockchains. En particulier, cela peut concerner tous les services d’exchange proposant des wallets de cryptomonnaie, qui doivent se conformer à toutes les réglementations du droit des entreprises, et notamment aux règles de KYC (Know Your Customer) appliquées aux fintechs. Plus largement, tous les services utilisant les blockchains publiques sont concernés.

Cependant, comme nous allons le voir plus loin, il existe des best practices pour utiliser les blockchains publiques et rester conforme aux directives RGPD.

  • Les blockchains privées

Dans le cas des blockchains privées, la responsabilité face aux directives RGPD est d’emblée portée par les entreprises utilisant ces blockchains dans le cadre de leurs projets. Les blockchains permissionnées ont la possibilité de restreindre la consultation des transactions.

Comme nous le verrons plus tard, certaines blockchains qui ont été conçues dans le but de protéger les données utilisateur (privacy-by-design) peuvent mettre en avant des avantages supplémentaires.

Dans tous les cas, le rôle de l’architecte et intégrateur dans la conception de ces projets est de concevoir des architectures garantissant la conformité RGPD.

 

Les points critiques à respecter sont les suivants :

  • Protection des données utilisateurs

Une des solutions de mise en conformité est d’anonymiser les données. Cependant les exigences liées sont élevées car l’anonymisation doit rendre strictement impossible tout lien permettant d’identifier les individus.

La manière plus couramment utilisée est la pseudonymisation. Différentes techniques sont possibles dont l’une des plus robustes est  l’émission de clés publiques renouvelées systématiquement à chaque transaction, ce qui permet de suffisamment brouiller le lien avec l’émetteur pour écarter l’identification.

Ainsi, La fondation Sovrin, dont le projet vise à diffuser « une identité auto-souveraine » et permet aux individus de prouver leur identité tout en gardant confidentielles (zero knowledge proof) les informations non requises pour leur identification, a mis en place un protocole pour l’émission d’une paire unique d’un pseudonyme utilisateur et clé publique à chaque transaction. Ce renouvellement fréquent de clés publiques rend extrêmement compliquée la corrélation d’un pseudonyme avec un individu.

La cryptomonnaie Monero utilise une autre technique d’anonymisation qui consiste à utiliser des adresses éphémères. Ces adresses éphémères ou furtives permettent aux destinataires des fonds de créer des adresses publiques uniques auxquelles les payeurs peuvent envoyer le montant désiré. Une fois la transaction inscrite dans la blockchain, le destinataire peut trouver l’adresse, l’utiliser pour générer une clé privée, et dépenser les fonds. Ce protocole rend quasi-impossible l’identification du destinataire de la transaction. Il rend également l’utilisation de Monero très populaire dans le milieu du numérique clandestin, pour des transactions illicites ou le blanchiment d’argent : l’anonymisation est donc vertueuse pour la protection de la vie privée mais doit s’associer à des règles visant à limiter les pratiques criminelles (du type KYC).

D’autres algorithmes cryptographiques comme le calcul multipartite permettent d’échanger des informations entre parties prenantes dans le cadre d’une transaction, sans dévoiler le contenu des données.

Il est à noter, comme nous l’avons déjà indiqué, que toute opération de chiffrement des données impacte la performance du système en production. Cette solution, n’est donc pas optimale pour optimiser la vitesse des transactions.

Ainsi, pour le projet de notre partenaire Sunchain dans le domaine de l’autoconsommation collective d’énergie photovoltaïque, les données de production et de consommation sont captées par des boitiers TIC au niveau des compteurs. Nous pouvons limiter l’usage de chiffrement (afin de ne pas impacter la performance de ce système à forte composante IoT) car la blockchain Hyperledger Fabric permet la mise en place de channels dans lesquels les données ne sont accessibles qu’aux contributeurs autorisés, le consentement des utilisateurs étant requis pour l’accès à leurs données. L’identité des utilisateurs n’est d’ailleurs pas visible dans la blockchain, une table de rapprochement de pseudonymes créés pour chaque enregistrement est nécessaire et gérée séparément en off-chain.

  • Droit à l’oubli

Du fait de l’immuabilité des données stockées dans la blockchain, ce point est probablement le plus critique.

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 stocker les données directement dans la blockchain est pour certains projets une propriété importante sinon nécessaire. Alors comment faire ? Dans le projet de notre partenaire BCDiploma, une solution que nous implémentons consiste à chiffrer les données dans la blockchain à l’aide d’une clé qui résulte d’un tryptique de clés : une clé liée au diplôme (personnelle), la clé privée (master key) de l’organisme de formation et une clé dite de persistance, sur laquelle le diplômé a pouvoir de destruction. S’il la détruit, l’accès aux données du diplôme est définitivement prohibé, ce qui revient à l’exercice du droit à l’oubli.

  • Délégués à la protection des données

Dans le cadre d’un service du domaine privé tournant sur une blockchain publique ou privée, il est communément compris que ce délégué doit être nommé par le responsable du projet.

Dans le cadre d’une organisation décentralisée et autonome, une solution possible serait de mettre en place par consentement mutuel un traitement des données auto-souverain et de s’affranchir ainsi de la disposition RGPD.

  • Privacy-by-design

Dans la conception même de la solution blockchain, il est primordial d’intégrer en amont les protocoles et algorithmes correspondant aux exigences de confidentialité du projet qui doivent être traduites dans l’analyse de risques intégrée au cahier des charges. Ces choix techniques impactent véritablement l’application, ses performances, sa scalabilité et son évolutivité.

  • Smart Contrats

La réglementation RGPD prévoit que « toute personne a le droit de ne pas faire l’objet d’une décision fondée exclusivement sur un traitement automatisé, y compris le profilage, produisant des effets juridiques la concernant ou l’affectant de manière significative de façon similaire. » Les services du domaine privé traitant des données utilisateurs par le biais de smart contrats ont donc tout intérêt à recueillir le consentement de ces utilisateurs… consentement dont la traçabilité est d’ailleurs idéalement garantie par l’usage de blockchain.

 

Dans tous ces points critiques, il est important de ne pas perdre de vue que l’objectif même des blockchains est de protéger les utilisateurs de dérives provoquées par les systèmes centralisés. Les smarts contrats permettent en effet de protéger les utilisateurs de par la transparence qu’ils introduisent dans l’exécution d’un traitement automatisé (s’ils sont open source et donc auditables par tous les contributeurs). Il est légitime d’attendre que l’autorité de protection des données juge également la compatibilité RGPD des projets blockchain sur les dispositions intégrées dans leur conception en fonction d’une analyse de risque objective. Ainsi un projet comportant des données personnelles sensibles donnera lieu à des contraintes d’anonymisation ou pseudonymisation forte, et une architecture différente d’un projet plus classique où la priorité ira à optimiser la performance du système. De même, les projets moins sensibles seront moins impactés par la possibilité du recours au quantum computing permettant de rétablir le lien, dans quelques décennies, avec les identités des utilisateurs. Si les services utilisant les blockchains font preuve de bonne foi pour garantir la robustesse de leur approche, il est probable que les autorités feront preuve quant à elles de pragmatisme.

Pourquoi choisir un expert middleware pour son projet blockchain?

Retour d’expérience sur 2 ans de R&D et intégration blockchain

Un projet blockchain, c’est en réalité un projet d’intégration systèmes avec une petite partie (autour de 20%) de tâches liées à la blockchain. La vraie complexité, c’est le reste, qui va apporter les propriétés faisant la différence entre un Proof of Concept (POC) et un projet pouvant passer en production : robustesse, scalabilité, performances, sécurité, haute disponibilité, évolutivité logicielle et système, bonne intégration à des logiciels, à des flux, à du hardware… tout en respectant des contraintes plus ou moins fortes selon les projets : coût, consommation d’énergie, fiabilité du système dans la durée, etc. La valeur ajoutée de l’intégrateur, outre le développement et les compétences spécifiques inhérents aux blockchains, est de construire l’architecture globale garantissant l’homogénéité des systèmes des différents acteurs impliqués, intégrant les contraintes, sans oublier la mise en place des outils analytiques ou de gouvernance permettant le pilotage du projet.

Notre partenariat technique avec la startup Sunchain, qui mène un des rares projets blockchain français aujourd’hui au stade de pilote avancé, nous a permis de tirer des enseignements précieux de plus d’un an et demi de travail de développement et d’intégration blockchain. Nous en partageons les principaux ci-dessous. Ce projet d’autoconsommation collective d’énergie solaire utilisant de l’IoT a remporté divers prix et labels prestigieux (cf.
https://www.linkedin.com/feed/update/urn:li:activity:6381728681106247681/).
Talium assure l’expertise et l’intégration blockchain.

 

Les producteurs (soleils) mutualisent leur énergie sur le réseau,
les consommateurs (prises) la partagent. Crédit : Sunchain.

  • De l’importance d’être agnostique en choix technologiques

Lorsque nous avons commencé le travail R&D en septembre 2016, nous avions effectué des benchmarks sur des blockchains adaptées au projet Sunchain et sa contrainte d’implication d’IoT. L’important était de pouvoir exécuter des smart contrats sans faire de minage, de manière à garantir la scalabilité et limiter la consommation d’énergie (la sobriété énergétique étant également un vrai choix en adéquation avec les valeurs portées par la start up Sunchain).

Notre choix s’est d’abord porté sur la blockchain Eris (aujourd’hui aussi appelée Hyperledger Burrow) de Monax Industries, qui intègre le consensus Tendermint et permet de faire tourner des smart contrats Solidity sur la machine virtuelle d’Ethereum. Ce choix semblait répondre au besoin, mais il a finalement été éliminé pour deux raisons. Tout d’abord, Tendermint s’est avéré trop bavard par rapport aux contraintes de bande passante, épuisant rapidement les forfaits 3G des nœuds de validation. Ensuite, nous avons dû porter Eris sur une architecture ARM, ce qui s’est à l’époque avéré très compliqué et inadapté, nous demandant de redémarrer périodiquement le système.

En veille permanente sur les nouvelles releases de blockchains pour perfectionner les réponses aux problématiques du projet, nous nous sommes intéressés et avons benchmarké dès début 2017 diverses blockchains sans minage, consommant peu d’énergie et ayant un grand potentiel de scalabilité tout en solutionnant d’autres problématiques (et permettant l’utilisation de smart contrats). Ethereum avec consensus Proof of Authority a retenu notre attention, mais nous avons finalement choisi Hyperledger Fabric, notamment du fait de sa stabilité par rapport à l’architecture. On en était au tout début, à une version pré-alpha 0,6 issue d’un hackathon. Nous avons réussi à stabiliser le système, tout en le faisant évoluer suivant les différentes versions d’Hyperledger : alpha, beta et 1.0 sortie 6 mois plus tard.

Le fait d’être technologiquement agnostiques nous permet donc d’être en veille permanente dans un  environnement en pleine évolution de faire les meilleurs choix blockchain pour les projets de nos clients.

  • Anticiper les contraintes de coût et les risques hardware

Quand nous sommes passés à Hyperledger, nous avons dû adapter  en partie notre architecture. Ce projet présente toutes les caractéristiques d’une architecture IoT où des boîtiers collectent et chiffrent les données au niveau des compteurs. Nous avons dû repenser le système dans son ensemble pour minimiser la consommation de bande passante et les coûts de télécommunication : une contrainte importante pour assurer la faisabilité économique des projets en production. Dans ce contexte techno très innovant, les architectures mises en place ont été monitorées pour vérifier l’impact réel sur le volume de communication. Egalement, notre préoccupation a été de minimiser les risques hardware : plus on met de software côté IoT, plus la maintenance et les mises à jour sont rendues complexes dans un contexte technique en évolution permanente.

L’architecture actuellement en place est très évolutive : la containerisation propre à Hyperledger Fabric simplifie le déploiement des nœuds et permettra, lors de l’industrialisation, d’assurer que le consensus est suffisamment distribué et d’envisager dans le futur un rôle accru de la part des utilisateurs dans le portage de nœuds validateurs et l’audit du système y.c. les smart contrats.

  • Vérifier la conformité avec la réglementation

Qui dit blockchain dit également stockage et transfert de données pouvant comporter un caractère personnel. C’est le cas dans ce projet d’autoconsommation collective où les données de consommation individuelles sont soumises  au « droit à l’oubli ». Ceci est rendu possible par l’anonymisation des données de consommation et une gestion séparée des tables de rapprochement. La blockchain ne stocke pas les numéros PRM des abonnés, garantissant la compliance RGPD.

  • Garantir une visualisation des données performante

Un des livrables d’un projet blockchain comme Sunchain et qui ne peut pas tout à fait être traité de la même manière qu’un projet IoT classique est la visualisation des données par les utilisateurs ou les partenaires qui viendront se connecter, majoritairement via un accès web. Afin de maximiser la performance de ce service, Talium a choisi de développer un nœud client spécifique pour mettre à disposition les données du smart contrat puis de les présenter via une plateforme permettant de concevoir des visuels pertinents, de programmer des alertes et de monitorer les transactions.

  • S’adapter aux besoins en data et en intégration aux SI des partenaires

Dans le cadre du projet d’autoconsommation collective de Sunchain, Enedis, le gestionnaire de réseau public de distribution d’électricité, interface ses systèmes avec la blockchain pour recueillir le bilan de la répartition des flux. . Notre rôle d’intégrateur a été de développer un système pour mettre à disposition les données certifiées par la blockchain. Nous avons donc mis en œuvre les outils d’interfaçage entre le SI d’Enedis et l’architecture blockchain diffusant les clés de répartition (c.à.d. comment l’électricité non consommée des producteurs a été répartie entre les utilisateurs consommateurs). Enedis combine la relève des courbes de charge des compteurs de chaque client avec ces taux de répartition et transmet les informations de facturation vers les autres acteurs. Enedis a par ailleurs développé un format de données disponible pour tous les acteurs souhaitant répliquer ce type de projet d’autoconsommation collective utilisant les blockchains. Du point de vue de cet acteur clé, standardiser ce format de données et l’interface entre ses Systèmes d’Information et les blockchains est essentiel afin de faciliter le déploiement industriel de ces solutions.

Les projets blockchain sont pour la plupart jeunes, ils démarrent souvent comme une start-up, la priorité initiale est de démontrer le concept applicatif et de convaincre les premiers clients et utilisateurs.

Mais si le succès est au rendez-vous, il faut passer à la phase d’industrialisation pour garantir la fiabilité et la sécurité du service. Pour cela il est impératif d’adopter une démarche d’expert intégrateur pour la conception de l’architecture et de respecter certains principes au risque de devoir plus tard apporter des patchs à son application et devoir affecter sa performance et sa sécurité.