Zama : qu’est-ce que c’est, comment ça fonctionne et comment en acheter ?

À mesure que la technologie se développe, le manque de protection des données sensibles des utilisateurs devient une problématique de plus en plus inquiétante.

C’est alors dans ce contexte que Zama a vu le jour, une entreprise dont le but est d’utiliser le chiffrement entièrement homomorphe (FHE) pour répondre à un problème qui touche quasiment tout le monde : la violation des données.

Qu’est-ce que c’est ? Comment ça fonctionne ? C’est ce que vous découvrirez tout a long de cet article.

Zama, une entreprise à la tête de la technologie FHE :

  • Zama utilise le chiffrement entièrement homomorphe (FHE) pour garantir la confidentialité des données
  • Zama a levé 73 millions de dollars pour développer ses outils de cryptographie avancée
  • fhEVM permet la création et le déploiement de contrats intelligents entièrement confidentiels

Qu’est-ce que Zama ?

Zama est une entreprise crypto basée à Paris axée sur le développement de solutions de “Fully Homomorphic Encryption” (FHE), une technologie permettant de traiter des données chiffrées sans les déchiffrer.

L’objectif ici est de permettre le développement d’applications qui préservent réellement la confidentialité des données de leurs utilisateurs. Pour y parvenir, Zama a développé différentes solutions, comme des contrats intelligents confidentiels grâce à son fhEVM, une nouvelle version de la technologie TFHE ou encore son framework “Concrete ML” axé sur l'entrainement de modèles de machine learning.

À termes, Zama vise à intégrer le chiffrement homomorphe dans un maximum d’applications et services on-chain, et ce, dans de nombreux domaines, comme la médecine, la reconnaissance faciale, l'Intelligence Artificelle ou tout simplement celui des crypto monnaies.

zama fhe presentation crypto

Par ailleurs, Zama a récemment levé 73 millions de dollars dans le cadre d'un financement de série A, co-dirigé par Multicoin Capital et Protocol Labs. Ce financement permettra à Zama de continuer à développer ses outils de chiffrement entièrement homomorphe (FHE).

Le chiffrement homomorphe : une révolution dans la manière dont les données sont traitées

Comme évoqué plus haut, Zama développe des solutions basées sur la technologie “Fully Homomorphic Encryption” qui fait de plus en plus parler d’elle dans l’écosystème.

Il est donc important de reprendre les bases de cette technologie avant d’entrer dans les détails techniques de Zama.

Imaginé pour la première fois à la fin des années 1970, le Fully Homomorphic Encryption (FHE) est une technique de cryptographie permettant de réaliser des calculs sur des données chiffrées sans jamais les déchiffrer. Autrement dit : ce mécanisme permet de protéger les données sensibles en les gardant chiffrées tout au long de leur traitement.

zama chiffrement homomorphe tfhe

Avec cette technologie, les entités centralisées traditionnelles, que ce soit les entreprises ou les gouvernements, ne peuvent techniquement plus avoir accès aux données privées de leurs utilisateurs.

Pour comprendre son fonctionnement, imaginez que vous avez un message secret dans une boîte fermée. Normalement, vous devez ouvrir la boîte pour lire le message avant de le remettre dans la boîte. Avec le FHE, vous pouvez déchiffrer et lire le message tout en le laissant dans la boîte fermée.

On retrouve toutefois certains défis avec le FHE, dont un en particulier : la gestion du “Noise” (Bruit : élément qui peut rendre les données illisibles) dans le chiffrement des données. En effet, les opérations homomorphes augmentent le niveau de bruit dans le texte chiffré, et si ce bruit devient trop important, il rend la décryption impossible.

zama bootstrapping fthe

Pour surmonter ce problème, Craig Gentry a introduit la technique de “bootstrapping“, qui réduit le bruit dans le texte chiffré après chaque opération de calcul.

Maintenant, d’autres approches ont vu le jour pour améliorer encore davantage le FHE, à savoir le “bootstrapping rapide” (Fast bootstrapping) et les “opérations moins bruyantes” (Less noisy operations) :

  • La première approche se concentre sur la réduction du temps de calcul nécessaire pour le bootstrapping, avec un mécanisme permettant d'exécuter ces opérations en seulement quelques millisecondes.
  • La seconde approche, quant à elle, optimise le FHE pour qu'il puisse effectuer des calculs sans recourir fréquemment au bootstrapping, en gérant mieux le “noise” dès le départ.

De son côté, Zama travaille à combiner ces deux approches pour créer le “Bootstrapping Programmable” que nous aborderons plus tard dans l’article.

Comment fonctionne Zama ?

Le fonctionnement de Zama se base principalement sur 4 technologies :

  • TFHE-rs : une bibliothèque d'outils développée en langage Rust qui permet de réaliser des calculs sécurisés sur des données chiffrées.

  • Concrete : framework open source qui convertit des programmes Python en programmes FHE pour protéger les données pendant les calculs.

  • Concrete ML : technologie sous-jacente de Concrete, axé exclusivement sur la machine learning afin de former et d'exécuter des modèles IA sur des données chiffrées.

  • fhEVM : solution pour exécuter des smart contracts confidentiels en Solidity sur des données chiffrées.

Revenons désormais en détail sur chacune de ces technologies 👇

TFHE-rs : l’outil de chiffrement avancé de Zama

TFHE-RS ou “Torus Fully Homomorphic Encryption – Rust” est un outil de chiffrement entièrement homomorphique développé par Zama dont le mécanisme est basé sur la technologie TFHE.

Pourquoi “RS” ? Tout simplement, car cet outil est écrit en langage de programmation Rust. Notez qu’il peut très bien être utilisé avec d'autres langages comme C et WebAssembly (WASM).

Cette technologie, qui reprend donc la plupart des fonctionnalités avancées du TFHE, permet de réaliser des calculs sécurisés sur des données chiffrées, en utilisant notamment des opérations homomorphes “booléennes” ET “arithmétiques” :

  • Circuits booléens : circuits qui effectuent des opérations logiques simples comme AND, OR, et NOT sur des valeurs binaires (0 ou 1).
  • Circuits arithmétiques : circuits qui effectuent des opérations mathématiques telles que l'addition, la soustraction, et la multiplication sur des nombres.

Pour faire très simple : cela signifie que TFHE-rs permet de faire des opérations logiques (comme ET, OU, NON) et des calculs mathématiques (comme addition, soustraction, multiplication) directement sur des données qui restent chiffrées.

Toutefois, le concept d’opération booléenne et arithmétique dépasse largement le cadre de cet article. Pour en apprendre davantage 👉 cliquez sur ce lien

Comme évoqué plus haut, TFHE-RS utilise une méthode appelée “bootstrapping programmable” (PBS), une version améliorée de bootstrapping classique.

Non seulement il réduit le bruit (concept abordé précédemment) dans les données chiffrées, mais il permet également d'effectuer des calculs spécifiques au cours du processus de réduction du bruit. En d'autres termes, pendant que le bruit est réduit, des opérations mathématiques supplémentaires peuvent être programmées et exécutées sur les données chiffrées.

Cette image devrait vous permettre d’y voir plus clair :

fthe zama crypto

Comment utiliser TFHE-RS ?

L’utilisation de TFHE-RS est relativement simple à prendre en main pour les développeurs. Pour l’utiliser, on suit globalement ces étapes :

  • Étape 1 : on crée une clé pour le client (pour chiffrer et déchiffrer les données) et une clé pour le serveur (pour faire des calculs sur les données chiffrées).
  • Étape 2 : on utilise la clé client pour chiffrer les données.
  • Étape 3 : on utilise la clé serveur pour faire des opérations sur ces données chiffrées.
  • Étape 4 : on utilise la clé client pour lire les résultats des opérations en déchiffrant les données.

Prenons un cas concret : supposons que nous avons une application de santé où nous devons calculer l'indice de masse corporelle (IMC) des patients sans jamais exposer leurs données personnelles (poids et taille). Nous allons utiliser TFHE-RS pour effectuer ce calcul de manière sécurisée.

Voici comment cela se présenterait en théorie :

  1. Création des clés : nous générons des clés pour le client et le serveur. La clé client est utilisée pour chiffrer et déchiffrer les données, tandis que la clé serveur est utilisée pour effectuer des calculs sur les données chiffrées.
  2. Chiffrement des données : les données sensibles (poids et taille) sont chiffrées à l'aide de la clé client. Ces données chiffrées sont alors prêtes pour les opérations homomorphes.
  3. Calcul de l'IMC : le serveur utilise la clé serveur pour effectuer les opérations nécessaires au calcul de l'IMC sur les données chiffrées. Il s'agit ici d'un calcul de division après avoir mis au carré la taille.
  4. Déchiffrement du résultat : le résultat chiffré du calcul de l'IMC est déchiffré par le client à l'aide de la clé client, permettant de connaître l'IMC sans n'avoir jamais exposé les données originales auprès du serveur.

Pour les plus curieux, cet article de Zama explique le concept de TFHE en détail👉 cliquez sur ce lien

Concrete : le framework qui rend FHE bien plus accessible

Concrete est un framework open source FHE qui dispose de tout tas d’outils conçus pour simplifier l'utilisation de cette technologie.

Destiné aux développeurs de logiciels, Concrete permet de convertir des programmes Python en programmes compatibles FHE. En d’autres termes, Concrete rend le FHE accessible en “encapsulant” les complexités techniques sous une interface simple à utiliser.

Le processus de base pour utiliser Concrete comprend trois étapes :

  1. Écrire du code Python comme à votre habitude
  2. Compiler ce code en un équivalent FHE grâce au framework de Concrete
  3. Exécuter le programme FHE résultant sur des données chiffrées.

Au final, cela permet aux services construits avec Concrete d'assurer la confidentialité des utilisateurs, car toutes les opérations se font sur des données chiffrées comme vue précédemment dans cet article.

De plus, même si le serveur est piraté, aucune donnée sensible n'est exposée, rendant Concrete particulièrement intéressant pour des usages à grande échelle, conformes à la règlementation.

Zama s'est d'ailleurs basé sur son framework Concrete pour mettre en place une nouvelle solution : Concrete ML

Concrete ML : un outil qui rend le Machine Learning confidentiel

Développé sur Concrete, Concrete ML se présente comme un autre framework, mais cette fois-ci conçu pour les data scientists et les chercheurs en machine learning. Concrètement, Concrete ML leur permet d’intégrer la technologie FHE dans des technologies axées sur le Machine Learning afin de rendre leurs modèles bien plus sécurisés et privés.

En effet, Concrete ML dispose d’une technologie permettant de convertir les modèles ML en équivalents FHE, et donc d’introduire tous les avantages du chiffrement homomorphe dans des processus tel que l’inférence ou encore et le traitement / entraînement de données (chiffées).

concrete ml zama

Concrete ML fonctionne aussi bien sur des modèles linéaires (modèles de prédiction), arborescents (structure de décision hiérarchique qui divise les données en sous-groupes) ou encore sur des réseaux de neurones (modèle ML composé de couches de neurones artificiels interconnectés) que nous vous invitons à examiner plus en détail sur cette page 👉 cliquez sur ce lien

Enfin, le processus pour utiliser Concrete ML est relativement simple à comprendre. En effet, les data scientists n'ont pas besoin de connaissances approfondies en cryptographie. Ces dernières peuvent utiliser des API connues (scikit-learn, PyTorch, etc.) pour créer leurs modèles de machine learning.

fhEVM : création de smart contract vraiment confidentiel grâce au FHE

fhEVM est la “machine virtuelle” de Zama qui permet la création et le déploiement de contrats intelligents (smart contracts) confidentiels via l’utilisation de la technologie TFHE-RS.

Avant cette solution, les développeurs devaient choisir entre deux options pour la gestion des données :

  • soit conserver toutes les données et applications sur la blockchain, rendant les informations visibles par tous.
  • soit garder les données privées hors chaîne, compromettant ainsi la “composabilité” des contrats intelligents.

Bonne nouvelle, fhEVM de Zama offre une solution qui garantit à la fois la confidentialité et la composabilité des contrats intelligents. En effet, même si les données sont privées (chiffrées), les contrats peuvent toujours interagir librement entre eux.

Mais alors, comment fonctionne fhEVM ?

Pour la création de smart contracts confidentiels via fhEVM, les développeurs utilisent le langage de programmation Solidity, comme ils le feraient pour n'importe quel contrat sur Ethereum.

La seule différente avec les smart contracts Solidity classiques étant que fhEVM introduit un nouveau type de données spécifiques, appelés “euint”, qui indiquent quelles parties du contrat doivent rester privées. Étant donné que les contrats sont similaires très à ceux sur Ethereum, l’intégration de cette “confidentialité” se fait de manière assez simple.

De plus, les développeurs doivent définir dans leurs contrats comment accéder aux états chiffrés. Ils décident qui peut voir ou utiliser les données. Vient ensuite le fameux chiffrement homomorphe qui fait en sorte que les calculs peuvent être effectués directement sur des données chiffrées, assurant ainsi que les informations sensibles restent privées.

Cette image illustre parfaitement les avantages de fhEVM comparé aux autres solutions disponibles sur le marché :

zama zhevm fhe

Vous l’aurez compris, fhEVM permet ainsi le développement de nombreuses applications décentralisées (dApps) confidentielles de la même manière que les dApps sur Ethereum ou d’autres réseaux blockchain.

Tenez, voici quelques exemples :

  • Tokenisation : échanger des tokens et des actifs réels (RWAs) sans que les montants ne soient visibles par les autres utilisateurs.

  • Transferts Privés : maintenir les soldes et les montants des transferts privés sans utiliser de mélangeurs (mixers).

  • Enchères : participer à des enchères sans révéler les montants des enchères ou les identités des gagnants.

Pour en apprendre davantage sur fhEVM 👉 cliquez sur ce lien

Zama prévoit-il de lancer son propre jeton utilitaire ?

Zama n'a pas l'intention de lancer une blockchain ou un token dans un avenir proche.

En effet, la société préfère se concentrer (pour le moment) uniquement sur le développement de nouvelles solutions de cryptographie, telles que le Fully Homomorphic Encryption (FHE) pour les applications blockchain et l'IA.