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 peut stocker une copie et vérifier qu'aucune règle n'est enfreinte. Pour de nombreux registres distribués, n'importe qui peut charger un explorateur de blocs en ligne qui lui permet de rechercher des blocs, des transactions et des adresses.
Sur le plan de la confidentialité, ce n’est pas idéal. Dans un système comme Bitcoin, chaque transaction peut être liée à une précédente. Les pièces ne sont pas techniquement fongibles, ce qui signifie que chacune peut être liée à des transactions spécifiques. Personne ne peut vous empêcher d’envoyer des bitcoins, mais ils peuvent refuser d’accepter votre transaction si ces pièces ont déjà transité par une adresse sur liste noire.
Dans le pire des cas, un manque de fongibilité pourrait avoir un impact profond sur les fondements mêmes du système. Les pièces propres peuvent rapporter plus cher, tandis que les pièces plus anciennes auraient moins de valeur compte tenu de leur histoire.
La confidentialité dans Bitcoin est souvent surestimée. Non seulement les pièces peuvent être tracées, mais les utilisateurs peuvent également le faire. Ils jouissent du pseudonymat (les adresses publiques sont visibles à la place des noms), mais cela n'est pas sans défauts. Des techniques d’analyse sophistiquées peuvent, avec une précision croissante, regrouper les adresses dans le but de désanonymiser les entités du réseau.
Une mise à niveau proposée pour rendre les transactions véritablement privées est celle des transactions confidentielles.
Que sont les transactions confidentielles ?
Les transactions confidentielles (CT) ont été discutées pour la première fois par Adam Back, PDG de Blockstream, en 2013, puis développées par le développeur Bitcoin, Gregory Maxwell. Maxwell a souligné les problèmes mentionnés dans la première section (fongibilité et faible pseudonymat) – et a proposé une solution. Les montants transférés pourraient être protégés du réseau plus large afin que seules les parties à la transaction sachent combien ont été envoyés.

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 0,3 BTC à Bob, elle prend une sortie non dépensée (appelons-la 1 BTC) et la divise en deux morceaux : 0,3 à envoyer à Bob et 0,69 à lui renvoyer (le reste étant perdu comme une taxe minière).
Il s’agit d’une algèbre simple pour les autres nœuds : 1 dépasse 0,3 + 0,69, les signatures sont toutes correctes et les entrées d’Alice n’ont pas déjà été dépensées ailleurs, la transaction doit donc être valide. Toutefois, lorsque les montants sont masqués, les choses ne sont pas si triviales. Comment commencer à évaluer si un montant inconnu est égal ou supérieur à la somme de deux autres montants inconnus ?
Un aperçu de la cryptographie impliquée
Pour masquer les données, un cryptage est requis. Cependant, les méthodes traditionnelles s’apparentent à mettre des documents dans un coffre-fort : une fois enfermé à l’intérieur, il devient inutilisable jusqu’à ce qu’il soit retiré. Ce dont nous avons besoin pour que les transactions confidentielles fonctionnent, c'est d'un coffre-fort numérique dont le contenu n'est pas révélé, mais dont les propriétés peuvent être vérifiées par un tiers.
La réponse réside spécifiquement dans le cryptage homomorphe, 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 régulier peut être utilisé pour valider les données que vous souhaitez révéler ultérieurement. Supposons que vous souhaitiez annoncer un concours sur les réseaux sociaux, où celui qui devinera votre échange préféré remportera un prix de 0,01 BTC. Les participants pourraient être sceptiques car il suffirait de consulter les réponses après la clôture du concours et de 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 faites passer votre échange via une fonction afin d'obtenir un certain résultat. Nous allons illustrer avec l’algorithme SHA256 :
f1624fcc63b615ac0e95daf9ab78434ec2e8ffe402144dc631b055f711225191En 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. Si vous savez que l'entrée était « Binance », vous pouvez facilement vérifier que son hachage correspond à celui répertorié ci-dessus. De cette façon, vos abonnés ont une certaine assurance que vous ne modifierez pas votre réponse à la fin du concours – cela produirait un résultat totalement différent.
En réalité, cependant, ce n’est pas très sûr. Bien que vos abonnés ne puissent pas procéder à l'ingénierie inverse de l'algorithme, ils peuvent créer une liste d'échanges possibles, en les hachant chacun jusqu'à ce qu'ils obtiennent une correspondance. Nous pouvons réduire cette probabilité en ajoutant des données aléatoires appelées facteur aveuglant aux données que nous allons hacher.
Si nous saisissons « Binance est mon échange préféré, je l'aime plus que tout autre échange 2#43Wr », cela devient beaucoup plus difficile à deviner pour un adversaire (et pour 0,01 BTC, il est certainement peu probable que quiconque tente de le faire).
Un engagement Pedersen nous permet d’ajouter les éléments 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, impliquant la cryptographie à courbe elliptique et les preuves de plage, mais l'idée de base est qu'un utilisateur a un engagement Pedersen pour son adresse. Lors de l'envoi de fonds, deux engagements supplémentaires sont créés (un pour l'adresse de changement à restituer à l'utilisateur et un pour l'adresse de destination).
Personne ne sait combien est envoyé, mais ils peuvent vérifier que les engagements de changement et de destination (le côté gauche de l’équation de Maxwell) correspondent à l’adresse d’origine (le côté droit de l’équation). Si l’évaluation est correcte, alors la transaction de l’utilisateur est valide, car il peut être prouvé que les entrées sont égales aux sorties.
Que peuvent accomplir les transactions confidentielles ?
Si les transactions confidentielles devaient être implémentées 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 sur le grand livre seraient masquées – mais les nœuds pourraient toujours vérifier leur authenticité. Avec cette amélioration massive de la confidentialité, les bitcoins pourraient effectivement être rendus fongibles, car l'analyse de la 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 semble peu probable à l’heure actuelle. 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. Il faudrait également que la majorité des participants acceptent de modifier le code, une tâche qui s'est traditionnellement révélée difficile.
Pensées finales
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é. La sidechain Liquid les implémente pour une plus grande confidentialité, et MimbleWimble les étend aux mêmes fins.
Pour les avantages qu’elles apportent, les transactions confidentielles s’accompagnent du compromis d’une plus grande empreinte. Les crypto-monnaies ont souvent des difficultés en termes d’évolutivité et de débit au niveau de la couche de base, et les transactions de plus grande taille ne plaisent pas à tout le monde. Cela dit, les défenseurs de la vie privée estiment qu’il est essentiel de masquer les montants des transactions et les participants afin de réellement permettre aux crypto-monnaies de servir d’argent fongible.

