Contenu

  • Introduction

  • Que sont les transactions confidentielles ?

  • Un aperçu de la cryptographie impliquée

  • De quoi sont capables les transactions confidentielles ?

  • conclusion


Introduction

Il est souvent considéré comme essentiel au fonctionnement d’une blockchain que le système soit transparent. Cela signifie que chaque nœud du réseau doit pouvoir stocker une copie et vérifier qu'aucune règle n'a été violée. Pour de nombreux registres distribués, n'importe qui peut télécharger un explorateur de blocs en ligne qui lui permettra d'effectuer des recherches dans les blocs, les transactions et les adresses.

Du point de vue de la vie privée, ce n’est pas une situation idéale. Dans un système comme Bitcoin, toute transaction peut être liée à celle qui la précède. Les pièces ne sont pas techniquement fongibles, ce qui signifie qu’elles peuvent être liées à des transactions spécifiques. Personne ne peut vous empêcher d'envoyer des bitcoins, mais votre transaction peut être rejetée si les pièces impliquées ont préalablement transité par une « adresse sur liste noire ».

Dans le pire des cas, le manque de fongibilité pourrait profondément affecter les fondements mêmes du système. Les pièces « propres » pourraient développer une prime par rapport à leur valeur, tandis que les anciennes, en raison de leur histoire, perdraient de la valeur.

Dans Bitcoin, la confidentialité est souvent surfaite. Non seulement les pièces peuvent être suivies, mais aussi les utilisateurs. Ceux-ci jouissent d'un « pseudonyme » (au lieu de noms, des adresses publiques sont visibles), qui n'est pas sans défauts. Des techniques d'analyse sophistiquées peuvent, avec un niveau de précision croissant, agréger des adresses dans le but de désanonymiser les entités du réseau.

L'une des propositions de mise à jour visant à rendre les transactions véritablement privées est celle des transactions confidentielles.


Que sont les transactions confidentielles ?

Les transactions confidentielles (CT) ont été abordées pour la première fois en 2013 par Adam Back, PDG de Blockstream ; et plus tard Gregory Maxwell -développeur Bitcoin- élargira son analyse. Maxwell mettrait en évidence les problèmes mentionnés dans la section précédente (c'est-à-dire la fongibilité et le faible « pseudonyme ») et proposerait une solution. Les montants envoyés pourraient être masqués du reste du réseau, de sorte que seules les parties impliquées dans la transaction puissent connaître ces données.

Dans des circonstances normales (avec des transactions visibles publiquement), il est facile pour un nœud de vérifier que le montant reçu ne dépasse pas le montant envoyé. Si Alice veut envoyer à Bob 0,3 BTC, elle prendra une sortie non dépensée (disons 1 BTC) et la divisera en deux parties : 0,3 qu'elle enverra à Bob et 0,69 qu'elle se renverra (la différence Ce qui manque correspond à la déduction de la commission minière).

Pour les autres nœuds, il s'agit d'une algèbre simple : 1 est supérieur à 0,3 + 0,69, les signatures sont toutes correctes et les entrées d'Alice n'ont pas encore été dépensées ailleurs, la transaction doit donc être valide. Cependant, lorsque les quantités sont obscurcies, les choses ne sont plus si triviales. Comment pouvez-vous même évaluer si une quantité inconnue est égale ou supérieure à la somme de deux autres quantités inconnues ?


Un aperçu de la cryptographie impliquée

Pour masquer les données, un cryptage est requis. Cependant, les méthodes traditionnelles sont comparables au stockage de documents dans un coffre-fort : une fois enfermés à l’intérieur, ils sont inutilisables jusqu’à ce que le coffre-fort soit retiré. Ce dont nous avons besoin pour que les transactions confidentielles fonctionnent, c'est d'un coffre-fort numérique qui ne révèle pas son contenu, mais dont les propriétés peuvent être vérifiées par un tiers.

La réponse à cette question réside dans le cryptage homomorphe, plus précisément dans un schéma appelé « engagement de Pedersen ». Ce type de cryptage permet à un tiers d'effectuer des opérations sur des données cryptées (qu'il ne peut pas voir) à plusieurs fins.

Un hachage ordinaire peut être utilisé pour valider des données que vous souhaitez révéler ultérieurement. Imaginez que vous souhaitiez annoncer un concours sur les réseaux sociaux, dans lequel quiconque devinera votre échange préféré remportera un prix de 0,01 BTC. Les participants pourraient être sceptiques quant à la possibilité de voir les réponses une fois le concours terminé et de pouvoir choisir un échange qui n'a pas été mentionné.

Ce que vous pouvez faire, c'est fournir à vos abonnés un hachage : une chaîne de nombres et de caractères apparemment aléatoires qui correspondent à une entrée spécifique. Vous passez votre échange via une fonction pour obtenir un certain résultat. Nous allons illustrer avec l'algorithme SHA256 :


f1624fcc63b615ac0e95daf9ab78434ec2e8ffe402144dc631b055f711225191


En regardant cela, vous n'avez aucune idée de la nature de l'entrée. Vous ne pouvez pas non plus inverser la fonction pour l'obtenir. Cependant, si vous savez que l'entrée était « Binance », vous pouvez facilement vérifier que votre hachage correspond à celui mentionné ci-dessus. De cette façon, vos abonnés sont assurés que vous ne modifierez pas votre réponse à la fin du concours, car cela produirait un résultat totalement différent.

Cependant, en réalité, ce n’est pas très sûr. Bien que vos abonnés ne puissent pas effectuer d'ingénierie inverse sur l'algorithme, ils peuvent créer une liste de transactions potentielles, en hachant chacune d'elles jusqu'à ce qu'ils obtiennent une correspondance. Nous pouvons réduire cette probabilité en ajoutant des données aléatoires appelées facteurs aveuglants aux données que nous allons hacher. 

Si nous entrons « Binance est mon échange préféré, je l'aime plus que tout autre échange 2#43Wr », il devient beaucoup plus difficile pour un adversaire de deviner (et pour 0,01 BTC, il est certainement peu probable que quiconque essaie).

Un engagement Pedersen nous permet d'ajouter les contributions derrière les engagements. Comme l’illustre Maxwell :


C(BF1 + D1) + C(BF2 + D2) = C(BF1 + BF2, D1 + D2)

Où BF est le facteur aveuglant et D les données.


Il reste encore quelques étapes à suivre qui impliquent la cryptographie à courbe elliptique et les tests de portée, mais l'idée de base est qu'un utilisateur est fortement engagé envers son adresse. Lors de l'envoi de fonds, deux engagements supplémentaires sont créés (un pour le changement d'adresse à restituer à l'utilisateur et un pour l'adresse de destination).

Personne ne sait combien est envoyé, mais ils peuvent vérifier que les engagements d'échange et de destination (le côté gauche de l'équation de Maxwell) correspondent à l'adresse source (le côté droit de l'équation). Si cela est évalué correctement, la transaction de l'utilisateur est valide, car il peut être démontré que les entrées sont égales aux sorties.


De quoi sont capables les transactions confidentielles ?

Si les transactions confidentielles étaient mises en œuvre dans Bitcoin, nous bénéficierions d’un système beaucoup plus privé. Les entrées et les sorties seraient masquées du réseau plus large, et les entrées dans le grand livre seraient obscurcies, mais les nœuds pourraient toujours vérifier leur authenticité. Avec cette augmentation massive de la confidentialité, les bitcoins peuvent devenir effectivement fongibles, car l'analyse en chaîne ne révèle plus l'historique d'une unité donnée.

Quant à savoir si les transactions confidentielles seront intégrées dans le protocole, cela ne semble pas probable pour le moment. Avec cette fonctionnalité supplémentaire, les transactions sont beaucoup plus volumineuses que les transactions standard : étant donné l'espace de bloc limité, cela ne ferait qu'augmenter la demande. Cela nécessiterait également qu’une majorité des participants acceptent de modifier le code, une tâche qui s’avère traditionnellement difficile.


En conclusion

Les transactions confidentielles ont connu quelques itérations dans d’autres crypto-monnaies et chaînes latérales Bitcoin. Par exemple, Monero les utilise en combinaison avec des constructions appelées signatures en anneau pour obtenir l'anonymat et la fongibilité. Liquid sidechain les implémente pour une plus grande confidentialité et MimbleWimble les étend aux mêmes points de terminaison.

Compte tenu des avantages qu’elles apportent, les transactions confidentielles impliquent le compromis d’une empreinte plus importante. Les crypto-monnaies ont souvent du mal à être évolutives et performantes au niveau de la couche de base, et les transactions de plus grande taille ne sont pas attrayantes pour tout le monde. Cela dit, les défenseurs de la vie privée estiment qu’il est essentiel de cacher les montants des transactions et que les participants permettent réellement aux crypto-monnaies de servir d’argent fongible.