The Big Whale : Dans quel contexte votre protocole s’inscrit-il ?
Charles Guillemet : En cryptographie, on parle souvent de quatre grandes propriétés. La première, c’est l’authentification, c’est-à-dire la capacité à prouver que vous êtes bien la personne que vous prétendez être. La deuxième, c’est l’intégrité, qui garantit que les données que vous manipulez ou regardez n’ont pas été modifiées par quelqu’un d’autre. Ensuite, il y a la non-répudiation, qui fait en sorte que vous ne pouvez pas nier avoir effectué une action que vous avez réellement faite dans le passé. Pour ces trois premières propriétés, on utilise souvent des signatures cryptographiques. La quatrième propriété, c’est la confidentialité, et pour cela, on utilise le chiffrement.
Aujourd’hui, dans le monde des blockchains, on utilise principalement les trois premières propriétés. Par exemple, quand on s’authentifie, on prouve que l’on détient des bitcoins, ou que l’on est bien celui que l’on prétend être à un certain moment. L’intégrité est une propriété fondamentale fournie par la blockchain elle-même, qui garantit que les transactions n’ont pas été modifiées. Et enfin, la non-répudiation est également assurée par la blockchain, puisqu’une fois qu’une transaction est enregistrée, on ne peut plus la modifier ni la contester.
Par contre, la confidentialité est souvent laissée de côté dans les blockchains actuelles. Il y a très peu de blockchains qui sont véritablement anonymes, ou alors, elles ne le sont que partiellement. C’est pour cela que nous nous sommes dit qu’il y avait un besoin de confidentialité dans ce domaine. Après tout, nous n’avons pas toujours envie de partager toute notre vie en ligne, et nous avons des secrets que nous voulons garder. C’est ainsi que l’idée de créer une solution de confidentialité a vu le jour chez Ledger. Nous avons identifié ce besoin, et il nous a semblé important d’ajouter cette brique manquante.
Lire aussi - Enquête : Ledger, un géant à la croisée des chemins
Quelle est la proposition de votre Ledger Key Ring Protocol ?
Si l’on regarde ce que nous fournissons chez Ledger, nous avons déjà une brique de confiance, notre device, qui est notre produit principal. Ce device, comme nos produits Ledger Nano, Flex ou Stax, est très utile pour stocker les clés de vos cryptomonnaies et pour vous authentifier. Dès que vous avez besoin de prouver que vous êtes celui que vous prétendez être, que vous détenez bien des bitcoins ou que vous utilisez bien votre propre ordinateur, notre device assure la sécurité de ces actions. Cependant, lorsqu’il s’agit de chiffrer des données pour garantir la confidentialité, là, il n’y a rien. C’est ce que nous avons décidé d’ajouter à notre device : la capacité de gérer des clés de chiffrement.
Nous avons donc développé une nouvelle fonctionnalité qui permet de gérer ces clés. Le chiffrement ne se fait pas directement dans le device, pour des raisons techniques. Si nous essayions de chiffrer toutes les données à l’intérieur du device, cela signifierait qu’il devrait toujours être connecté, et cela risquerait d’être lent. Le chiffrement nécessite souvent de traiter de grandes quantités de données, de les chiffrer, de les déchiffrer, etc. Cela ne fonctionnerait pas de manière fluide dans le device lui-même. Donc, ce que nous avons décidé, c’est d’utiliser le device comme un porte-clés, un "key ring", qui va générer des clés. Ensuite, en tant qu’utilisateur, vous décidez quelles clés vous donnez à qui pour déchiffrer les données que vous voulez partager.
“La confidentialité est la brique manquante des blockchains” Pouvez-vous nous présenter des cas d’utilisation concrets ?
Imaginons que vous souhaitiez créer un équivalent de Google Drive, mais de manière souveraine et décentralisée. Si vous utilisez Google Drive aujourd’hui, vous stockez vos photos chez Google, et Google a accès à ces photos. Ils peuvent les chiffrer eux-mêmes s’ils le souhaitent, mais globalement, ils ont accès à vos données. Vous, en tant qu’utilisateur, vous choisissez à qui vous partagez l’accès. Maintenant, si vous voulez faire la même chose sans passer par Google, de manière décentralisée, vous pourriez utiliser ce protocole. Vous prenez vos photos, vous les chiffrez localement avec des clés générées par votre device Ledger, et ensuite, vous décidez à qui vous voulez partager l’accès à ces photos, et lesquelles. Quand vous faites cela, vous ne partagez pas les photos elles-mêmes, mais plutôt les clés de chiffrement nécessaires pour les déchiffrer.
Par exemple, moi, je pourrais chiffrer tous mes albums de vacances avec des clés différentes et partager certaines photos spécifiques avec toi. Par exemple, je pourrais vous partager uniquement les photos de Singapour que j’ai prises à la conférence Token 2049. Je pourrais alors prendre la clé de ce dossier spécifique et vous la donner, ce qui vous donnerait accès à toutes les photos du dossier, ou juste à certaines photos, selon mon choix. C’est ainsi que nous pourrions construire un système souverain et décentralisé, sans avoir besoin de faire confiance à un tiers comme Google.
Lire aussi - Ces ex-cadres de Ledger qui lancent des start-up
Depuis combien de temps travaillez-vous sur ce projet ?
Cela fait peut-être un an et demi que l’idée est dans l’air, mais cela ne fait que quelques mois que nous avons vraiment commencé à travailler dessus de manière active. Nous avons passé beaucoup de temps à nous demander quels seraient les cas d’usage que cela débloquerait, et il y en a plusieurs qui se dessinent. Je ne peux pas encore en parler aujourd’hui, malheureusement.
Nous avons un white paper que nous avons publié, et nous avons réfléchi à de nombreux cas où la confidentialité pourrait être utile. Par exemple, si l’on revient à l’idée de souveraineté des données, aujourd’hui, la plupart des services Web2 que nous utilisons stockent nos données dans leurs systèmes. Vous arrivez avec votre compte Google, par exemple, et toutes vos données sont stockées chez eux. Le service Web2 vous donne ensuite accès à ces données.
Si nous voulons renverser ce modèle, vos données doivent être les vôtres. Vous les stockez localement, vous les chiffrez localement, et ensuite, vous décidez à qui vous voulez partager ces données et comment. Si l’on réfléchit comme cela, il y a beaucoup de services Web2, comme les réseaux sociaux, où vous renoncez à la confidentialité de vos données en les stockant chez un tiers. Avec notre protocole, vous gardez le contrôle total de vos données, que ce soit en local ou chiffré sur des serveurs, et vous seul pouvez décider de les déchiffrer et de les partager. Cela permet de créer un véritable stockage souverain pour l’utilisateur.
Quand est-ce que ce protocole sera prêt et opérationnel ?
Le protocole existe déjà. Nous avons déjà publié un white paper et nous avons des implémentations qui fonctionnent sur nos appareils. Nous avons également développé des exemples concrets pour nous assurer que cela fonctionne bien en pratique. Parce que, bien sûr, sur le papier, tout fonctionne toujours parfaitement, mais il est important de tester les choses dans la réalité. Selon les retours que nous aurons pendant la période d’évaluation du white paper, nous pourrions rapidement sortir des fonctionnalités basées sur ce protocole. Donc globalement, tout est prêt, et il ne reste plus qu’à ajuster en fonction des retours que nous recevons.
“Nous voulons donner à l’utilisateur le contrôle total de ses données” Le concept de "broadcast encryption" existe depuis longtemps. Est-ce que ce que vous faites est une innovation majeure ou s'appuie-t-il sur des standards existants ?
En effet, ce concept est assez ancien. Nous n’avons pas réinventé la roue. Il existe déjà des protocoles qui font plus ou moins la même chose. Nous utilisons des standards cryptographiques qui existent déjà, donc nous n'avons pas créé de nouvelles normes de cryptographie. Ce qui est spécifique à Ledger, c'est la manière dont nous gérons les clés à l’aide de nos devices, et aussi la capacité que nous avons à faire du "selective data sharing", c'est-à-dire que vous pouvez choisir quelles données vous partagez et avec qui.
De plus, nous nous appuyons sur des techniques de dérivation de clés utilisées dans les blockchains. Cela permet à l'utilisateur de gérer de nombreuses clés à partir d'une seule clé maîtresse. Sinon, gérer une clé par photo ou fichier dans le cloud deviendrait vite ingérable. Nous résolvons ce problème en utilisant un système de dérivation de clés déterministe, où vous n’avez à gérer qu’une seule clé de départ, et toutes les autres sont générées de manière automatique.
Lire aussi - Ledger Flex, le nouveau portefeuille numérique de Ledger
Est-il obligatoire d’avoir un wallet Ledger pour utiliser ce protocole ?
Nous l’avons implémenté sur nos wallets Ledger, mais ce n’est pas exclusif. Avec n’importe quel wallet compatible avec le BIP 39 (un standard Bitcoin), il est possible de réimplémenter le même protocole que nous, et être compatible avec notre solution. Nous n’avons pas l’intention de rendre cela exclusif aux wallets Ledger.
Vous avez mentionné plus tôt que la confidentialité est un des points faibles des blockchains actuelles. Mais les preuves à divulgation nulle de connaissance (ZK proof) ne sont-elles une solution au problème de la confidentialité ?
Oui, les ZK proofs résolvent une partie du problème de la confidentialité. Ce qui est très intéressant avec les ZK proofs, c'est que vous pouvez prouver quelque chose sans divulguer d’informations sur le contexte. Par exemple, vous pouvez prouver que vous avez 21 ans sans avoir à montrer votre carte d’identité ni donner votre date de naissance. Vous pouvez également prouver que vous avez moins de bitcoins qu’une autre personne sans révéler le montant exact que vous possédez. Ce sont des protocoles très puissants qui garantissent la confidentialité des données.
Cependant, les ZK proofs ne permettent pas de résoudre tous les problèmes de confidentialité. Par exemple, si vous avez une photo que vous souhaitez chiffrer et partager uniquement avec une personne spécifique, les ZK proofs ne permettent pas de le faire. Pour cela, vous avez besoin d’utiliser du chiffrement. Les ZK proofs sont plutôt utilisés pour prouver des propriétés sans révéler d’informations sous-jacentes, mais ils ne chiffrent pas des données comme des photos ou des messages.
En fait, dans le monde des blockchains, les ZKproofs sont utilisés principalement pour l’intégrité, car ils permettent de prouver certaines propriétés tout en s’assurant que ces propriétés n’ont pas été altérées. Cela permet également de vérifier que les calculs ou les preuves sont corrects, sans avoir besoin de connaître les détails du calcul. C’est d’ailleurs pour cette raison que les blockchains utilisent souvent les ZK proofs pour des raisons d'intégrité, plus que pour la confidentialité.
Comment l’expérience utilisateur va-t-elle se dérouler sur les wallets Ledger ?
Sur le device Ledger, c’est assez simple. L’utilisateur verra apparaître une demande sur l’écran du device lui demandant s’il souhaite partager telle ou telle ressource. Il pourra alors donner son consentement directement sur l’écran du device, en appuyant sur un bouton. C’est aussi simple que ça. Nous essayons de rendre l’expérience utilisateur la plus fluide possible.
Lire aussi - Charles Guillemet : “La peur autour de Ledger Recover est totalement irrationnelle”
“On espère que les développeurs vont builder au-dessus de notre protocole” Dans votre billet de blog présentant le protocole, vous avez mentionné certains cas d’usage comme les messageries chiffrées. Concrètement, qu’est-ce que cela changerait dans le domaine de la communication sécurisée ?
Imaginons que vous utilisiez une messagerie chiffrée de bout en bout comme Signal. Avec ce que nous avons développé, vous pourriez dire que les clés de chiffrement de vos messages sont gérées directement par votre device Ledger. Cela permettrait d’améliorer la sécurité des communications, car vos clés seraient stockées en toute sécurité sur votre appareil Ledger, et vous auriez un contrôle total sur leur gestion.
Nous pourrions également imaginer réécrire complètement une solution comme Signal pour la rendre encore plus sécurisée. Par exemple, vous pourriez choisir de partager une partie d’une conversation avec une personne, tout en gardant d’autres parties privées. Vous pourriez également inviter une nouvelle personne dans une conversation de groupe et lui donner accès uniquement à certains messages, sans partager toute la conversation depuis le début. Ce genre de contrôle granulaire est possible grâce au chiffrement et à la gestion des clés, et cela apporterait des garanties de sécurité encore plus fortes.
Y a-t-il un business model derrière tout cela pour Ledger ?
Pour l’instant, nous nous concentrons principalement sur l’aspect technique. Nous voyons que cette technologie débloque beaucoup de cas d’usage intéressants. Nous avons déjà identifié certains petits cas d’usage qui nous permettront de sortir des fonctionnalités simples et utiles pour les utilisateurs. Nous ne sommes pas encore en train de développer un nouveau modèle économique autour de cela, mais cela pourrait arriver à l’avenir.
L'idée pour l’instant, c’est d’encourager les développeurs à utiliser notre protocole et à construire des applications innovantes avec cette technologie. Nous espérons que de nombreuses équipes de développement verront l'intérêt de cette solution et commenceront à l’utiliser pour créer des applications. Nous ne sommes pas encore en train de lancer une nouvelle unité commerciale autour de ce protocole, mais cela pourrait évoluer à l'avenir.
Est-ce que le protocole est breveté ? Et si oui, quel est le type de licence d’utilisation ?
Oui, certaines parties de ce que nous avons développé sont brevetées, mais notre approche des brevets est principalement défensive. Nous ne voulons pas empêcher l’innovation ou limiter l’utilisation de ce protocole par d’autres développeurs. Le protocole lui-même est ouvert et public. Vous pouvez l’utiliser librement pour des projets open source.
Notre stratégie de brevets est plus défensive qu'offensive. L'idée, c'est de protéger nos innovations pour éviter que d'autres entreprises ne les utilisent à des fins commerciales sans notre consentement. Mais nous encourageons l'innovation et nous voulons que les développeurs puissent utiliser cette technologie librement dans leurs projets open source.
“Nous ne prévoyons pas de créer un token de gouvernance” Comment se passera la sauvegarde des données chiffrées ? Est-ce que c’est chaque utilisateur qui gère sa propre sauvegarde, ou Ledger va-t-il recommander un service de cloud ?
Si vous voulez gérer votre propre système de sauvegarde, vous pouvez le faire. Le protocole est complètement ouvert, donc chacun peut décider comment il souhaite l’utiliser. Pour les fonctionnalités que nous allons offrir à nos utilisateurs, nous proposerons une solution qui sera transparente et facile à utiliser. L’utilisateur n’aura même pas à s’en soucier, tout sera géré de manière automatique en arrière-plan.
Étant donné que nous parlons de cryptographie et de souveraineté des données, envisagez-vous une décentralisation complète de ce protocole ?
Oui, par défaut, le protocole est décentralisé. Il n’y a pas de serveur central pour gérer les clés ou les données, tout tourne directement sur le device de l’utilisateur. Selon les applications que vous souhaitez développer avec ce protocole, il pourrait y avoir besoin d’une gouvernance autour de certaines fonctionnalités spécifiques, mais le protocole en lui-même est conçu pour fonctionner de manière décentralisée.
Est-ce que vous envisagez un jour de créer un token de gouvernance pour ce protocole ?
Non, ce n’est pas dans nos plans. Nous ne prévoyons pas de créer un token de gouvernance. Mais il est toujours possible que cela change à l'avenir, même si ce n’est pas du tout dans notre vision actuelle.