ZKP, 3 lettres pour délivrer la valeur de l’information tout en garantissant sa confidentialité

Theo Mogenet
8 min readApr 23, 2018

By Théo Mogenet, Freelance blockchain advisor & Aurélien Calot, Business Developer @ QED-it

Comment tirer pleinement profit des Big Data sans risquer de verser dans le Big Brother ?

Aujourd’hui, les entreprises et les gouvernements investissent toujours plus massivement pour récolter de la donnée et la transformer en information aidant à la prise de décision. Cette donnée existe partout à l’état brut, et il s’agit donc de la récolter et de la partager pour bénéficier du miel informationnel.

L’émergence de l’Internet de l’information a aidé les départements marketing du monde entier dans la prise de décision; celle de l’Internet des objets nous permet de réaliser l’automatisation de quantités de processus industriels. Demain, l’Internet de la valeur générera-t-il l’information dont nous avons besoin pour mieux nous organiser sur le plan économique?

Certes, le partage de la donnée dégage de la valeur pour nos sociétés, mais en même temps il constitue un facteur d’inquiétude pour l’individu. Comment protéger sa vie privée dans un monde toujours plus data-driven? Le législateur et les entreprises sont donc face à un dilemme de taille : délivrer la valeur de l’information privée tout en garantissant sa confidentialité.

Pour exaucer le rêve de Turing, et conjurer le cauchemar d’Orwell, la formule tient en 3 lettres : ZKP (Zero-Knowledge proofs).

Définition

Les ZKP (“preuves à divulgation nulles de connaissance” en français) sont des méthodes cryptographiques qui permettent à une entité, le “prouveur”, de prouver à une autre entité, le « vérificateur », qu’une proposition est vraie sans toutefois révéler d’autres informations que la véracité de la proposition. Je vous le concède, cette définition est assez indigeste. Clarifions donc tout cela à l’aide d’un exemple.

Rien de mieux pour comprendre des choses compliquées que de se mettre à la place d’un enfant. Voici donc une petite histoire, bien pratique pour comprendre simplement ce que sont les ZKP.

“Ski Slopes” from the original “Where’s Waldo”

C’est l’histoire de Pierre qui veut fait une plaisanterie à Jeanne, grande fan du livre “Où-est Charlie?”. Comme à chaque Noël, il offre à son amie un livre “Où-est Charlie?”, mais cette fois il l’a lui même modifié en éliminant de chaque image le personnage Charlie pour faire tourner son amie en bourrique.

Après plusieurs heures de recherche acharnée, Jeanne comprend la supercherie. Cela ne la fait pas vraiment rire, et elle décide d’inventer un système pour que l’on ne l’y reprenne plus: un système qui lui permettra de savoir avec certitude que Charlie est bien présent dans toutes les images des livres “Où-est Charlie?” que Pierre lui offre, sans perdre le plaisir de la recherche du personnage.

Voici sa solution : une grande enveloppe opaque qui fait 4 fois la taille du livre, et dans laquelle elle perce un petit trou. Pierre devra glisser le livre dans cette enveloppe et placer Charlie exactement à l’endroit du trou, de sorte que Jeanne puisse avoir une preuve infaillible de l’existence de Charlie sur l’image, sans avoir aucune idée du contexte et donc de l’endroit où Charlie se trouve sur l’image.

Cette simple méthode permet donc à Pierre (prouveur) de prouver qu’une information est vraie (« Charlie est présent sur l’illustration ») à Jeanne (vérificatrice) sans révéler les données sous-jacente (les coordonnées du point Charlie dans l’illustration).

Le parallèle cryptographique de cette méthode, applicable à des cas bien plus complexes, ce sont les Zero-Knowledge Proof.

Les ZKP en application

Audit, KYC, assurance, credit scoring, cyber-assurance, financement de collatéral… partout où l’enjeu de la communication de données privées et sensibles est présent, les ZKP apportent des solutions.

Pour mettre en application cette technologie sur des cas-d’usage concrets, il faut la combiner avec une autre technologie montante: la blockchain d’entreprise. Voici deux applications types, développées par QED-it (http://qed-it.com/), un leader franco-américano-israélien du “Zero-Knowledge Blockchain” (https://www.zeroknowledgeblockchain.com/): l’une dans le monde de l’audit, l’autre dans le financement de collatéral.

AUDIT

Pour vérifier la santé financière d’une entreprise lors d’une acquisition ou d’un investissement, on mandate une entreprise d’audit. Le résultat de cet audit est fondé sur la donnée financière et comptable à laquelle l’entreprise auditée va donner l’accès. Cette donnée est la plupart du temps privée et sensible puisqu’elle représente les comptes de l’entreprise (inventaires, états financiers, paie, provisions…).

Actuellement, en France, plus de 80% des entreprises n’ont pas accès à une prestation d’audit alors même qu’elles leurs sont pourtant d’une grande utilité (assurance-crédit, prévisionnel, revente, appels d’offre…).. D’une part parce que l’audit légal obligatoire ne concerne que les sociétés de capitaux qui atteignent certains critères de chiffre d’affaire, de nombre de salariés, et de bilan. D’autre part parce que la main d’œuvre qualifiée nécessaire aujourd’hui à une prestation d’audit est chère, et que la plupart des PME ne peuvent pas se permettre de telles dépenses.

Quel rôle pour les Zero-Knowledge Proofs ?

Là où une entreprise d’audit est agréée pour traiter des données sensibles et privées, les ZKP permettent de fournir une preuve sur des données sensibles sans avoir accès aux données elles-mêmes.

Pour cela l’entreprise auditée connecte d’abord la solution QED-it à ses sources de données internes (documents comptables, solutions internes) et externes (compte bancaire, gestionnaire de paie, CRM). Rassurez-vous, les données privées ne quittent jamais le système interne de l’entreprise en question. Seules des preuves de données circulent comme on peut le voir dans le schéma ci dessous.

L’auditeur va ensuite pouvoir envoyer une requête informatique d’audit à l’entreprise auditée (une formule comptable de valorisation par exemple), et l’entreprise auditée va ainsi pouvoir envoyer une réponse à cette requête. Cette réponse est une preuve fondée sur les données privées de l’entreprise qui interviennent dans les formules de valorisation, mais l’auditeur ne reçevra que cette preuve et non les données sous-jacentes.

On retrouve ici notre schéma de prouveur-vérificateur : le vérificateur (ici l’auditeur) demande une preuve d’information sur plusieurs données (ici une requête d’audit) à un prouveur (ici l’entreprise auditée). Grâce au système de Zero-Knowledge Proofs, ce prouveur peut fournir des réponses à ces requêtes sans qu’aucune autre information que la réponse elle-même ne soit communiquée au vérificateur.

Le travail d’interprétation et d’analyse de l’auditeur reste inchangé, mais la manière d’acquérir et de traiter de la donnée de façon sûre et sécurisée est révolutionnée. En s’appuyant sur les ZKP, les entreprises d’audit peuvent ainsi adresser un marché plus large (TPE/PME) et international (plus besoin d’équipes terrain), permettant ainsi à davantage d’entreprises d’avoir accès à une prestation d’audit.

FINANCEMENT DE COLLATERAL

Notre second exemple s’inscrit dans une autre industrie où la coopération et l’échange de données sont clés : l’industrie bancaire. Dans l’industrie bancaire, les opérations de financement structuré du commerce des produits de base (cacao, sucre…), ou trade finance en anglais, nécessitent la coopération d’une pluralité acteurs : entrepôts, traders, et banques.

Décomposons le déroulement type d’une transaction en prenant l’exemple du cacao :

  1. Un trader achète une certaine quantité de cacao à un entrepôt chargé de stocker le produit
  2. Le trader s’adresse ensuite à plusieurs banques afin d’obtenir une ligne de crédit pour financer l’opération
  3. Après une analyse en interne, une des banques sollicitées répond positivement à la demande et finance le deal

L’un des principaux facteurs de risque que rencontrent les banques sur ce type d’opération est celui du double-financement : le trader adresse des demandes de financement auprès de plusieurs banques pour un seul et même deal, mais les banques n’ont aucune certitude que le deal n’a pas déjà été financé par une autre banque. Il y a eu en effet plusieurs cas de traders frauduleux qui ont obtenu un financement de deux banques pour une seule et même opération, faisant donc défaut à l’une des deux banques lorsque celle-ci demande remboursement.

Pour pallier ce problème, il serait idéal que le trader ait le moyen de prouver aux banques sollicitées que le deal qu’il propose n’est pas déjà financé par une concurrente. En l’état, une telle solution n’est pas envisageable, car une grande partie des données décrivant la transaction sont sensibles pour le trader et doivent donc demeurer confidentielles :

  • Les banques ont accès au prix et au type de produit qu’elles choisissent de financer, mais le trader ne veut pas que toutes les banques et les autres traders aient accès à l’ensemble des données sur sa transaction (quelle quantité, quel prix au kilo, quel entrepôt), notamment parce que ces données sont le résultat d’une négociation, qui constitue le cœur de son activité.
  • Tout le long du process de trade finance, les banques ne veulent pas que leurs concurrentes puissent savoir quels deals elles ont financé, à qui et pour quel montant: ces informations doivent demeurer privées.

Se pose alors la question de savoir comment générer une preuve irréfutable attestant le fait qu’un deal donné n’est pas déjà financé par une autre banque, sans qu’une telle preuve contienne les informations sous-jacentes au deal (quantité, produit, prix etc.) ?

En la matière, la Blockchain offre un début de solution, car elle peut servir de registre ouvert dans lequel sont consignés les différents deals. Cependant, même avec un système Blockchain le problème n’est que partiellement résolu, car s’il est ainsi possible de prouver l’unicité du deal, c’est au prix de la confidentialité de l’information (rappel : puisque, dans un réseau Blockchain, les données sont distribuées, tous les nœuds peuvent y accéder). Si le système Blockchain en question est utilisé conjointement au ZKP, on obtient alors le résultat attendu et la donnée demeure inaccessible pour les parties qui ne sont pas impliquées dans l’opération :

  1. Lors de la transaction, l’entrepôt émet un certificat unique adossé au deal
  2. Muni de ce certificat unique, le trader va demander une pré-validation de son deal: si le certificat unique est adossé à un autre deal déjà financé, le système invalide la demande. Sinon la demande est transmise aux banques
  3. Les banques ont alors accès à l’ensemble des deals pas encore financés et déjà financés, et peuvent choisir de financer tel ou tel deal sans asymétrie d’information

D’autres cas d’usages?

Ce que ces deux exemples nous révèlent d’essentiel, c’est que, malgré le niveau d’informatisation qui caractérise actuellement les processus commerciaux, il existe toujours des situations où le manque d’information est fortement préjudiciable.

Il faut remarquer que ces situations persistent car nous ne disposons actuellement d’aucun moyen technique pour prouver que quelque chose est vrai, sans divulguer plus que nous ne le voudrions pour cela. Ainsi, l’usage des Zero-Knowledge Proofs ne se limite pas aux deux exemples que nous avons choisi ici pour illustrer notre propos. Bien au contraire, partout où la confidentialité de la donnée vient limiter la capacité des différents acteurs d’une chaîne de valeur à générer de la confiance, les ZKP offrent une alternative.

Ces méthodes sont encore jeunes et feront probablement l’objet de nombreux développements sur d’autres cas d’usage dans les années à venir, mais leurs premières applications laissent entrevoir d’immenses perspectives.

--

--