Introduction à Aztec : Le camouflage de valeurs sur blockchain publique

Jérémy Martin
September 26, 2024
Blockchain

Introduction

La technologie blockchain a transformé notre manière de penser la transparence, la décentralisation et la confiance. Son principe fondamental permet aux participants d’un réseau distribué de parvenir à un consensus sur l'état d'un registre partagé, garantissant que chaque transaction est visible et vérifiable par tous. Bien que cette approche ait apporté une transparence révolutionnaire à des secteurs comme la finance, les chaînes d'approvisionnement et la gouvernance, elle pose également un défi majeur : la confidentialité. Dans les blockchains traditionnelles, chaque transaction est publique, et bien que pseudonyme, l'activité des utilisateurs peut souvent être retracée et liée, créant des préoccupations en matière de confidentialité pour les individus et les entreprises.

Ce dilemme entre transparence et confidentialité devient de plus en plus problématique à mesure que l'utilisation de la blockchain se développe. Les utilisateurs qui souhaitent profiter des avantages de la technologie décentralisée sans compromettre des informations sensibles—comme les montants des transactions, les contreparties ou les actifs détenus—font face à un choix difficile. Le besoin de technologies préservant la confidentialité dans la blockchain devient de plus en plus pressant, en particulier dans les secteurs où la confidentialité est primordiale, tels que les services financiers et les contrats commerciaux. C'est dans ce contexte qu'intervient Aztec, un protocole blockchain conçu pour répondre à ces préoccupations en matière de confidentialité en utilisant des techniques cryptographiques avancées, en particulier les preuves à divulgation nulle de connaissance (Zero-Knowledge Proofs ou ZKPs).

1. Le problème de la confidentialité dans la blockchain

La nature fondamentale des blockchains publiques est de créer de la transparence, une caractéristique qui garantit la confiance au sein d'un réseau décentralisé. Dans des systèmes comme Bitcoin et Ethereum, chaque transaction est diffusée à tous les participants du réseau. Le registre blockchain est immuable et transparent—ce qui signifie que tout observateur peut voir les détails de chaque transaction, des adresses de l'expéditeur et du destinataire au montant transféré et au moment de la transaction. Bien que cette transparence soit essentielle pour établir la nature sans confiance des systèmes décentralisés, elle comporte des compromis.

L'un des défis majeurs de cette transparence est l'exposition des données financières et des historiques de transactions. Même si les adresses blockchain sont pseudonymes (liées à un utilisateur par une adresse plutôt que par un nom réel), des techniques d'analyse avancées peuvent souvent désanonymiser les utilisateurs en liant les historiques de transactions et en corrélant les données de la blockchain avec des informations externes. Ce niveau d'exposition est problématique pour diverses raisons :

  • Confidentialité financière : Les utilisateurs peuvent ne pas vouloir que tout leur historique de transactions soit visible publiquement. Dans la banque traditionnelle, les transactions sont privées, visibles uniquement par la banque et le titulaire du compte. Sur une blockchain, tout observateur peut suivre le flux de fonds entre les adresses.
  • Secret commercial : Les entreprises utilisant la blockchain peuvent involontairement exposer une activité commerciale sensible à des concurrents ou des acteurs malveillants en leur permettant de suivre des transactions, des obligations contractuelles ou des transferts internes.
  • Risques pour la sécurité personnelle : Les personnes fortunées, les célébrités ou d'autres cibles potentielles pourraient être menacées si leurs schémas de transactions, leurs avoirs ou leurs habitudes de dépenses sont facilement accessibles via un registre public.

Ces préoccupations en matière de confidentialité ont donné naissance à une demande de solutions blockchain préservant la confidentialité. Les utilisateurs veulent pouvoir effectuer des transactions privées tout en bénéficiant de la sécurité et de la décentralisation que la blockchain fournit. Pour répondre à cette demande, un certain nombre de protocoles visant à améliorer la confidentialité ont émergé. Cependant, ils rencontrent souvent un équilibre délicat entre le maintien de l'intégrité de la blockchain et la préservation de la confidentialité. Aztec, développé comme une solution de couche 2 sur la blockchain Ethereum, a été conçu pour combler cet écart. Aztec y parvient en utilisant des preuves à divulgation nulle de connaissance (ZKPs), une catégorie de preuves cryptographiques qui permet à une partie de prouver à une autre qu'une déclaration est vraie sans révéler d'informations supplémentaires sur cette déclaration. Ce concept a des applications vastes dans les technologies de protection de la vie privée, et Aztec exploite son potentiel pour permettre des transactions confidentielles.

L'implémentation des zk-SNARKs au sein d'Aztec représente une avancée significative dans l'univers des blockchains. La technologie Zero-Knowledge, en particulier les zk-SNARKs, joue un rôle crucial dans l'évolution de la confidentialité sur la blockchain. Avant son introduction, la confidentialité dans les blockchains était soit obtenue par des solutions complexes hors chaîne, comme les mélangeurs ou les chaînes latérales, soit par des blockchains entièrement centrées sur la confidentialité, comme Zcash ou Monero. Bien que ces approches soient efficaces dans certains aspects, elles présentaient souvent des problèmes de scalabilité, des défis réglementaires ou des limitations en termes d'utilisabilité. Aztec est l'un des projets pionniers utilisant cette technologie de manière pratique et évolutive. En appliquant les zk-SNARKs à son système de Notes, Aztec garantit que les informations sensibles—comme les montants des transactions ou les identités des utilisateurs—restent confidentielles tout en étant cryptographiquement vérifiables. Cela ouvre de nouvelles possibilités pour la confidentialité dans la finance décentralisée, permettant des cas d'utilisation où la discrétion est essentielle, tels que les prêts privés, les contrats intelligents cryptés et les transactions commerciales confidentielles.

2. Les preuves à divulgation nulle de connaissance : un fondement pour la confidentialité

Le concept de confidentialité dans la blockchain est ancré dans le désir de permettre aux transactions de rester confidentielles tout en bénéficiant de la sécurité et de la confiance des systèmes décentralisés. Les preuves à divulgation nulle de connaissance (ZKPs) constituent une innovation cryptographique clé qui permet cet équilibre. Ce chapitre explore le fonctionnement des ZKPs, en particulier dans le contexte de la blockchain, et introduit la technologie zk-SNARKs (Zero-Knowledge Succinct Non-Interactive Arguments of Knowledge), qui est fondamentale pour le protocole Aztec. En utilisant les zk-SNARKs, Aztec permet que les transactions soient vérifiées sans révéler d'informations sensibles, garantissant la confidentialité sans compromettre la sécurité ou la décentralisation.

Au cœur, une preuve à divulgation nulle de connaissance (ZKP) est un protocole cryptographique qui permet à une partie (le "prouveur") de prouver à une autre partie (le "vérificateur") qu'elle connaît une information ou qu'une certaine affirmation est vraie, sans révéler l'information elle-même. La puissance des ZKPs réside dans leur capacité à fournir une certitude et une vérification sans exposition.

Le concept de preuve à divulgation nulle de connaissance a été introduit pour la première fois dans les années 1980 par les chercheurs Goldwasser, Micali et Rackoff, qui ont défini les propriétés fondamentales qu'une ZKP doit satisfaire :

  • Complétude : Si l'affirmation est vraie, le vérificateur sera convaincu du fait par la preuve.
  • Solidité : Si l'affirmation est fausse, un prouveur malveillant ne peut pas convaincre le vérificateur qu'elle est vraie, sauf avec une probabilité extrêmement faible.
  • Zero-Knowledge (Connaissance Nulle) : Le vérificateur n'apprend rien au-delà du fait que l'affirmation est vraie. Il n'obtient aucune information supplémentaire sur les données sous-jacentes ou les calculs.

Dans un contexte de blockchain, les ZKPs sont devenues un moyen clé de préserver la confidentialité tout en permettant au réseau de valider les transactions. Le besoin d'une telle technologie découle de la transparence inhérente à la plupart des blockchains. Par exemple, Bitcoin et Ethereum maintiennent des registres accessibles publiquement où tout le monde peut inspecter les détails des transactions. Bien que cela assure la confiance et l'immutabilité, cela compromet la confidentialité des utilisateurs qui peuvent ne pas vouloir que leurs activités financières soient exposées au monde entier.

Les ZKPs offrent un moyen de préserver la confidentialité en permettant aux transactions d'être vérifiées sans divulguer les détails de ces transactions. Avec la croissance de la finance décentralisée (DeFi) et le désir croissant de contrats intelligents confidentiels, les ZKPs deviennent un outil essentiel dans les protocoles blockchain modernes. Aztec exploite cette technologie pour s'assurer que les utilisateurs peuvent effectuer des transactions privées sans miner la sécurité ou la fiabilité de la blockchain.

Les zk-SNARKs, ou arguments succincts non interactifs de connaissance à divulgation nulle, représentent un type spécifique de preuve à divulgation nulle de connaissance qui a attiré une attention significative dans les applications blockchain. Les zk-SNARKs sont une forme compacte et efficace de ZKP qui permet une confidentialité évolutive dans les systèmes décentralisés. Ils permettent à une partie de prouver qu'elle possède une connaissance sans avoir à interagir continuellement avec le vérificateur ou à fournir des preuves longues et complexes.

Les aspects “succinct” et “non-interactif” des zk-SNARKs sont particulièrement importants pour leur utilisation dans la blockchain :

  • Succinctesse : Les zk-SNARKs sont extrêmement efficaces. Les preuves générées sont de petite taille et peuvent être vérifiées rapidement, ce qui est crucial pour maintenir les performances dans les systèmes blockchain où l'efficacité informatique est une priorité.
  • Non-interactivité : Les ZKPs traditionnelles nécessitent souvent plusieurs échanges de communication entre le prouveur et le vérificateur, ce qui peut être contraignant dans un environnement décentralisé. Les zk-SNARKs, cependant, permettent de générer et de vérifier une preuve unique sans besoin d'interaction continue, ce qui les rend idéaux pour les applications blockchain où un prouveur et un vérificateur peuvent ne pas pouvoir interagir directement.

L'implémentation des zk-SNARKs par Aztec est l'une de ses caractéristiques définissantes. En intégrant les zk-SNARKs dans son protocole, Aztec permet aux utilisateurs de créer des preuves qui vérifient la validité d'une transaction sans révéler les détails sous-jacents, tels que le montant de la transaction ou les parties impliquées. L'utilisation des zk-SNARKs garantit que bien que les transactions restent confidentielles, l'intégrité de la blockchain n'est pas compromise. Les zk-SNARKs représentent une avancée majeure dans ce domaine en permettant aux transactions d'être à la fois privées et vérifiables. Avec les zk-SNARKs, les utilisateurs peuvent prouver la validité d'une transaction—comme prouver qu'ils possèdent suffisamment de fonds pour compléter un transfert ou qu'ils sont autorisés à exécuter un contrat intelligent—sans révéler les détails réels de la transaction. Cela signifie que :

  • Le montant de la transaction peut être caché à la vue du public.
  • Les identités de l'expéditeur et du destinataire peuvent rester privées.
  • La logique des contrats intelligents peut être exécutée sans exposer des données commerciales ou financières sensibles.

L'utilisation des zk-SNARKs par Aztec vise à améliorer la confidentialité sans sacrifier la sécurité et la vérifiabilité de la blockchain. Par exemple, lorsqu'un utilisateur effectue une transaction en utilisant le système de Notes d'Aztec (comme expliqué dans les chapitres suivants), la transaction est cryptée, mais les zk-SNARKs sont utilisés pour prouver que la transaction respecte les règles de la blockchain (c'est-à-dire que l'utilisateur a suffisamment de fonds, qu'il n'y a pas de double dépense, etc.).

Cette capacité à dissimuler les détails des transactions tout en permettant au réseau de vérifier leur validité ouvre de nouvelles possibilités pour les opérations financières confidentielles sur les blockchains publiques. Cela permet des cas d'utilisation tels que :

  • Paiements privés : Les utilisateurs peuvent transférer des fonds sans révéler le montant ou les contreparties impliquées.
  • Prêts et emprunts confidentiels : Les protocoles DeFi peuvent émettre des prêts et gérer des garanties sans exposer des données financières sensibles.
  • Transactions interentreprises : Les entreprises peuvent utiliser des contrats intelligents pour gérer des relations commerciales sans rendre publiques les conditions contractuelles.

Bien que les zk-SNARKs offrent des avantages significatifs en termes de confidentialité et d'évolutivité, ils ne sont pas sans défis. Voici quelques avantages et obstacles clés associés aux zk-SNARKs :

Avantages :

  • Confidentialité : Les zk-SNARKs permettent des transactions privées sur des blockchains publiques, permettant des transferts d'actifs confidentiels et l'exécution de contrats intelligents.
  • Efficacité : Les preuves zk-SNARK sont petites et efficaces d'un point de vue computationnel, ce qui les rend pratiques pour une utilisation dans les systèmes blockchain nécessitant une vérification rapide des transactions.
  • Vérifiabilité : Malgré la confidentialité des transactions, les zk-SNARKs garantissent que toutes les transactions restent vérifiables et que l'intégrité de la blockchain est préservée.

Les futures défis auquels seront confronté la technologie sont :

  • Complexité : Les zk-SNARKs nécessitent des constructions mathématiques sophistiquées, telles que la cryptographie des courbes elliptiques et les appariements, ce qui peut rendre leur implémentation plus complexe que d'autres techniques cryptographiques.
  • Configuration de confiance : L'un des principaux défis des zk-SNARKs est le besoin d'une phase de configuration de confiance, où certains paramètres cryptographiques sont générés. Si cette configuration est compromise, elle pourrait miner la sécurité de tout le système. Bien que des avancées en matière de calcul multipartite (MPC) aient atténué ce risque, cela reste un point de préoccupation.
  • Coûts computationnels : Bien que les zk-SNARKs soient efficaces en termes de vérification, générer des preuves zk-SNARK peut être coûteux en termes de ressources, nécessitant des capacités de calcul puissantes.

Malgré ces défis, les zk-SNARKs se sont révélées être l'une des technologies de confidentialité les plus prometteuses pour la blockchain. Leur capacité à offrir à la fois confidentialité et vérifiabilité de manière succincte et évolutive en fait un élément central des protocoles blockchain axés sur la confidentialité comme Aztec.

3. Le système de Notes d'Aztec : vue d'ensemble

Le pilier de l'architecture de confidentialité d'Aztec est son innovant système de Notes. Ce système de Notes constitue la base sur laquelle Aztec permet des transactions privées sur des blockchains publiques telles qu'Ethereum. Une Note dans Aztec est une représentation cryptographique d'une valeur ou d'un actif. Chaque Note agit comme une unité de devise ou d'actif sur le réseau Aztec, similaire à la manière dont les jetons ou les soldes sont représentés dans les blockchains traditionnelles. Cependant, contrairement aux soldes de jetons publics, les Notes sont cryptées, ce qui signifie que leur valeur et leur propriété sont cachées du public. Seuls les participants autorisés—ceux qui possèdent les clés cryptographiques correctes—peuvent accéder aux données sous-jacentes.

Chaque Note a les attributs suivants :

  • Valeur : Le montant ou l'actif représenté par la Note.
  • Propriétaire : L'entité en possession de la Note, généralement un utilisateur ou une adresse sur la blockchain.
  • Identifiant unique : Un hachage cryptographique qui identifie de manière unique la Note sur le réseau.
  • Clés de chiffrement : Des clés cryptographiques associées à la Note qui contrôlent qui peut visualiser ou interagir avec les données de la Note.

Dans le système Aztec, chaque transaction implique la création ou la consommation de Notes. Lorsqu'une transaction est initiée, de nouvelles Notes sont créées pour représenter les soldes résultants, et les anciennes Notes (du côté des entrées de la transaction) sont marquées comme consommées. Cela garantit que la relation entre les anciennes et les nouvelles Notes reste confidentielle, empêchant les observateurs de tracer le flux de fonds à travers la blockchain.

La confidentialité des Notes est maintenue à l'aide des zk-SNARKs, qui permettent au réseau de vérifier la validité des transactions sans révéler les détails. Par exemple, lorsqu'une nouvelle Note est créée, une preuve zk-SNARK est générée pour prouver que la Note représente une transaction valide, même si la valeur et la propriété de la Note sont cryptées. Le cycle de vie d'une Note dans le protocole Aztec tourne autour de sa création, son transfert et sa consommation. Ces processus garantissent que les actifs peuvent se déplacer en toute confidentialité entre les utilisateurs tout en préservant l'intégrité de la blockchain.

Une Note est créée chaque fois qu'un utilisateur initie une transaction qui transfère une valeur ou un actif dans le système Aztec. Chaque Note est identifiée de manière unique par un hachage cryptographique, qui représente les attributs de la Note—tels que la valeur et la propriété—dans un format sécurisé et codé. Ce hachage cryptographique est ensuite ajouté à l'arbre de hachage des Notes (discuté dans le chapitre 5), où il est stocké de manière sécurisée sans révéler les détails sous-jacents au public.

Lors de la création d'une Note, les étapes suivantes se déroulent :

  1. Génération de la Note : L'utilisateur spécifie le montant ou l'actif qu'il souhaite représenter sous forme de Note, ainsi que le destinataire qui sera autorisé à détenir la Note.
  2. Chiffrement : La Note est chiffrée à l'aide de la clé publique du destinataire, garantissant que seul le destinataire peut décrypter et accéder aux détails de la Note.
  3. Preuve zk-SNARK : Une preuve zk-SNARK est générée pour vérifier que la Note représente une transaction valide, sans révéler sa valeur ni les parties impliquées.
  4. Inclusion dans l'arbre de hachage des Notes : Le hachage de la Note nouvellement créée est ajouté à l'arbre de hachage des Notes, un arbre de Merkle qui agit comme le registre préservant la confidentialité des Notes sur le réseau Aztec.

Le processus de création de Note est conçu pour assurer la confidentialité tout en maintenant la vérifiabilité et la sécurité de la transaction. Chaque étape garantit que la valeur de la transaction reste cachée, mais que le réseau peut confirmer qu'elle respecte les règles de la blockchain.

Le transfert d'une Note d'un utilisateur à un autre est une fonction clé dans le système Aztec. Cependant, contrairement aux blockchains traditionnelles où les jetons ou les pièces sont directement transférés, Aztec utilise la création de nouvelles Notes pour refléter les transferts d'actifs. En essence, lorsqu'une Note est transférée, elle est "consommée" et remplacée par une nouvelle Note qui reflète la mise à jour de la propriété.

Le processus de transfert d'une Note implique :

  1. Consommation de l'ancienne Note : La Note qui représente actuellement l'actif est consommée, ce qui signifie qu'elle est marquée comme utilisée et n'est plus valide pour de futures transactions. Cela est nécessaire pour éviter la double dépense ou la réutilisation des Notes.
  2. Création d'une nouvelle Note : Une nouvelle Note est créée pour représenter l'état mis à jour de la transaction, comme un nouveau propriétaire ou une modification de la valeur. Cette Note est cryptée avec la clé publique du destinataire pour maintenir la confidentialité.
  3. Génération de la preuve zk-SNARK : Comme pour le processus de création, une preuve zk-SNARK est générée pour vérifier la validité de la transaction. Cette preuve confirme que l'ancienne Note a été correctement consommée et que la nouvelle Note respecte les règles de la blockchain, sans révéler les détails de la transaction.

L'utilisation des zk-SNARKs dans le processus de transfert de Notes garantit que les transferts peuvent être vérifiés tout en restant confidentiels. La création de nouvelles Notes pour chaque transaction aide également à empêcher la traçabilité, car elle rompt le lien entre les anciennes et les nouvelles Notes, rendant extrêmement difficile pour un observateur de suivre le flux des fonds.

Lorsque une Note est consommée :

  1. La Note est marquée comme consommée : L'identifiant unique (hachage) de la Note est marqué dans le système comme n'étant plus valide.
  2. Une preuve zk-SNARK est générée : Cette preuve garantit que la Note a été consommée correctement et qu'aucune double dépense ne se produit. Elle vérifie également que toute nouvelle Note créée à partir de la transaction est valide et correctement liée à la Note consommée, sans révéler les détails de la transaction.

Ce mécanisme de consommation est une partie clé de l'architecture de confidentialité d'Aztec. Il garantit que chaque Note ne peut être utilisée qu'une seule fois, et que tout lien entre les anciennes et les nouvelles Notes est caché du registre public, ce qui maintient la confidentialité.

Le système de Notes d'Aztec est fondamental pour la nature préservant la confidentialité du protocole. En utilisant des Notes cryptées pour représenter des valeurs ou des actifs, Aztec garantit que les détails des transactions restent cachés du public, tout en permettant au réseau de vérifier la validité des transactions.

Voici les principales façons dont les Notes contribuent à maintenir la confidentialité sur le réseau Aztec :

  1. Chiffrement de la valeur et de la propriété : Les Notes sont cryptées à l'aide de la clé publique du destinataire, ce qui signifie que seul le destinataire prévu peut accéder aux détails de la transaction. Cela garantit que la valeur et la propriété des actifs restent confidentielles.
  2. Rupture de la traçabilité des transactions : Chaque fois qu'une Note est utilisée dans une transaction, elle est consommée et remplacée par une nouvelle Note. Ce processus rend difficile le lien entre les transactions, car il n'y a pas de connexion directe entre les anciennes et les nouvelles Notes. Les observateurs ne peuvent pas facilement tracer le mouvement des actifs à travers la blockchain.
  3. zk-SNARKs pour une vérification sans exposition : L'utilisation des zk-SNARKs garantit que le réseau peut vérifier la validité des transactions sans avoir besoin de connaître les détails des transactions. Cette vérification cryptographique permet au réseau de maintenir sa nature décentralisée et sans confiance, tout en offrant la confidentialité.
  4. Confidentialité flexible pour de multiples cas d'utilisation : Le système de Notes d'Aztec ne se limite pas aux simples transferts d'actifs. Il peut être utilisé dans une large gamme d'applications de finance décentralisée (DeFi), comme les prêts privés, le trading confidentiel et les contrats intelligents cryptés. Dans chaque cas, le système de Notes garantit que les informations sensibles sont protégées, tout en permettant à la blockchain de fonctionner de manière sécurisée.

Conclusion

L'approche innovante d'Aztec en matière de confidentialité sur la blockchain utilise les preuves à divulgation nulle de connaissance et les zk-SNARKs pour équilibrer la confidentialité et la transparence. Grâce à son système de Notes, les actifs sont cryptés et les transactions restent privées, tandis que les zk-SNARKs garantissent que le réseau peut vérifier les transactions sans révéler d'informations sensibles. Ensemble, ces technologies créent un cadre robuste pour des transactions sécurisées et préservant la confidentialité, positionnant Aztec comme un acteur clé dans l'avenir des systèmes financiers décentralisés et confidentiels.

Écrit par
Jérémy Martin
Research Director