Introduction
La transparence du système est la clé du fonctionnement normal de la blockchain. La soi-disant transparence signifie que chaque nœud du réseau peut stocker une copie et a le droit de vérifier s'il y a des violations. Dans de nombreux registres distribués, n'importe qui peut charger un explorateur de blocs et parcourir les blocs, les transactions et les adresses du réseau.
Du point de vue de la confidentialité, cette approche n’est pas idéale. Dans des systèmes comme Bitcoin, chaque transaction peut être liée aux transactions précédentes. Techniquement, les jetons ne sont pas fongibles, ce qui signifie que chaque jeton est lié à une transaction spécifique. Personne ne peut vous empêcher d'envoyer des Bitcoins, mais si ces pièces transitent par une adresse sur liste noire, l'autre partie a le droit de rejeter la transaction.
Dans le pire des cas, un manque d’homogénéité peut avoir de profondes conséquences sur les fondements du système. Les pièces propres gagnent une prime, tandis que les premières pièces perdent de la valeur en raison de problèmes historiques.
La confidentialité de Bitcoin est souvent surestimée. En fait, les jetons et les utilisateurs du système sont traçables. Les gens sont habitués à fonctionner de manière anonyme (en affichant une adresse publique au lieu d’un nom), mais cette approche présente certains inconvénients. Avec une précision toujours croissante, des analyses de pointe regroupent les entités du réseau pour la désanonymisation.
Les transactions confidentielles constituent un moyen amélioré de promouvoir des transactions véritablement privées.
Qu'est-ce qu'une transaction confidentielle ?
Le concept de transactions confidentielles (CT) a été proposé pour la première fois en 2013 par Adam Back, PDG de Blockstream, puis élargi et étendu par le développeur Bitcoin Gregory Maxwell. Dans la première partie, Maxwell a souligné les problèmes mentionnés d'« homogénéisation » et de « faible anonymat » et a proposé des solutions correspondantes. Il a souligné que le montant de la transaction peut être caché dans le réseau plus large et que seuls les participants à la transaction peuvent connaître la valeur spécifique.

Dans des circonstances normales (les transactions peuvent être consultées publiquement), les nœuds peuvent facilement vérifier que le montant des pièces reçues dépasse le montant envoyé. Par exemple, Alice souhaite envoyer 0,3 BTC à Bob, elle utilise le résultat non dépensé (appelons-le « 1 BTC ») et le divise en deux parties : 0,3 BTC à Bob et 0,69 BTC à renvoyer vers le portefeuille personnel (le reste les fonds sont extraits au fur et à mesure que les frais miniers sont payés).
Pour les autres nœuds, c'est une question d'algèbre simple : 1 > 0,3+0,69, les signatures sont toutes correctes, et l'entrée d'Alice n'est pas consommée ailleurs, donc la transaction doit être valide. Une fois le montant caché, les choses se sont compliquées. Comment déterminer si un montant inconnu est supérieur ou égal à la somme de deux autres montants inconnus ?
Un aperçu des principes cryptographiques impliqués
Afin de masquer les données, certaines techniques de cryptage doivent être appliquées. Cependant, la méthode traditionnelle est similaire au stockage des documents dans un coffre-fort : une fois verrouillés, ils ne peuvent être retirés qu’après être déverrouillés. Les transactions confidentielles fonctionnent de la même manière qu'un coffre-fort numérique, où le contenu est caché et la propriété des actifs peut être vérifiée par des tiers.
La réponse réside dans le « cryptage homomorphe », un mécanisme appelé promesse de Pedersen. Ce type de cryptage permet à des tiers d'effectuer des opérations sur les données cryptées à diverses fins sans pouvoir visualiser le contenu spécifique.
Un hachage régulier peut être utilisé pour soumettre les données que vous souhaitez afficher. Disons que vous souhaitez annoncer un concours sur les réseaux sociaux pour gagner 0,01 BTC en devinant votre échange préféré. Les participants peuvent être sceptiques quant au concours, car vous pouvez certainement consulter leurs réponses après le concours et choisir un échange que personne n'a mentionné.
Pour ce faire, vous fournissez à vos fans un hachage : une chaîne apparemment aléatoire de chiffres et de caractères (correspondant à une entrée spécifique), en transmettant la réponse via une fonction spécifique (c'est-à-dire en spécifiant l'échange) et enfin en obtenant le résultat. Prenons l'exemple de l'algorithme SHA256 :
f1624fcc63b615ac0e95daf9ab78434ec2e8ffe402144dc631b055f711225191Sur la base de la valeur de hachage ci-dessus, vous ne connaissez pas l'entrée spécifique et vous ne pouvez pas obtenir l'entrée précédente en exécutant la fonction à rebours. Mais si vous savez que l'entrée est « Binance », vous pouvez facilement déterminer que son hachage correspond à celui répertorié ci-dessus. De cette façon, les fans se sentiront plus à l'aise en sachant que vous ne modifierez pas votre réponse à la fin du jeu, ce qui entraînerait un résultat complètement différent.
En fait, cette méthode n’est pas absolument sûre. Bien que les fans ne puissent pas effectuer d'ingénierie inverse sur l'algorithme, ils peuvent créer une liste d'échanges et faire correspondre les hachages un par un jusqu'à ce qu'ils obtiennent la bonne réponse. Pour éviter de telles opérations, nous pouvons ajouter des données aléatoires, appelées « facteur de masquage », aux données qui doivent être hachées.
Si nous entrons « Binance est mon échange préféré par rapport à tout autre échange #43Wr», il sera difficile pour les concurrents de deviner le résultat (après tout, ils ne peuvent pas essayer un nombre incalculable de fois pour seulement 0,01 BTC).
Avec les promesses de Pedersen, nous pouvons ajouter des entrées après la promesse. Maxwell a expliqué cela comme suit :

C(BF1 + D1) + C(BF2 + D2) = C(BF1 + BF2, D1 + D2)
où BF fait référence au facteur de masquage et D fait référence aux données
Les prochaines étapes impliquent la cryptographie à courbe elliptique et les preuves de plage, mais l'idée de base est d'effectuer le traitement d'engagement de Pedersen sur l'adresse. Lors de l'envoi de fonds, le système générera deux « engagements » supplémentaires (l'adresse de changement et l'adresse de destination pour le retour des fonds).
Personne ne connaît le montant envoyé, mais on peut vérifier que le changement et l'engagement de destination (le côté gauche de l'équation de Maxwell) sont égaux à l'adresse d'origine (le côté droit de l'équation). Si le calcul est correct, il suffit de prouver que l'entrée et la sortie sont égales, indiquant que la transaction de l'utilisateur est valide.
Ce que les transactions confidentielles peuvent réaliser
Si des transactions confidentielles sont mises en œuvre dans Bitcoin, un système plus privé peut être créé. Les entrées et sorties du système seront masquées et les entités du grand livre seront obscurcies, mais les nœuds pourront toujours vérifier leur authenticité. Avec une confidentialité considérablement améliorée, l’analyse de la chaîne ne peut pas révéler l’historique d’une unité donnée, ce qui rend Bitcoin effectivement fongible.
Quant à savoir si des « transactions confidentielles » peuvent être intégrées dans l’accord, cela semble peu probable pour le moment. Avec l'ajout de cette fonctionnalité, la taille des transactions sera plus grande que celle des transactions régulières, ce qui créera naturellement davantage de demande sur le marché compte tenu de l'espace limité des blocs. De plus, une majorité des participants au réseau doivent accepter de modifier le code, ce qui a posé problème dans le passé.
Résumer
Certaines crypto-monnaies ont réitéré dans une certaine mesure des transactions confidentielles dans les sidechains Bitcoin. Par exemple, Monero intègre parfaitement les transactions confidentielles à la structure « signature en anneau » pour obtenir anonymat et homogénéité. La confidentialité de Liquid sidechain et de MimbleWimble a également été considérablement améliorée.
Les transactions confidentielles présentent certes de nombreux avantages, mais elles se heurtent également au problème de l’augmentation du volume de traitement. Les crypto-monnaies sont depuis longtemps confrontées à des défis en termes d'évolutivité et de débit de la couche de base, et les volumes de transactions importants interdisent également à de nombreuses personnes. Néanmoins, les défenseurs de la vie privée affirment qu’il est nécessaire de cacher les montants des transactions et les participants pour que les crypto-monnaies deviennent des monnaies véritablement homogènes.


