Introduction aux transactions confidentielles
Accueil
Articles
Introduction aux transactions confidentielles

Introduction aux transactions confidentielles

Avancé
Publié le Feb 10, 2020Mis à jour le Dec 28, 2022
6m

Introduction

Il est souvent considĂ©rĂ© comme essentiel pour le 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 se rendre sur un explorateur de blocs en ligne qui lui permet de rechercher des blocs, des transactions et des adresses.

Sur le front de la confidentialitĂ©, ce n'est pas idĂ©al. Dans un systĂšme comme Bitcoin, chaque transaction peut ĂȘtre reliĂ©e Ă  une transaction 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 le bĂ©nĂ©ficiaire peut refuser d'accepter votre transaction si ces piĂšces ont prĂ©cĂ©demment transitĂ© par une adresse figurant sur une 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 ĂȘtre plus chĂšres, tandis que les piĂšces plus anciennes peuvent avoir moins de valeur en raison de leurs antĂ©cĂ©dents.

La protection de la confidentialitĂ© dans le rĂ©seau Bitcoin est souvent surestimĂ©e. Non seulement les piĂšces peuvent ĂȘtre tracĂ©es, mais les utilisateurs aussi. Elles bĂ©nĂ©ficient du pseudonymat (les adresses publiques sont visibles Ă  la place des noms), mais cela n'est pas sans dĂ©faut. Des techniques d'analyse sophistiquĂ©es peuvent, avec une prĂ©cision croissante, regrouper des 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 (TC) ont Ă©tĂ© Ă©voquĂ©es pour la premiĂšre fois par Adam Back, PDG de Blockstream, en 2013, puis dĂ©veloppĂ©es par Gregory Maxwell, dĂ©veloppeur de Bitcoin. Maxwell a dĂ©crit les problĂšmes mentionnĂ©s dans la premiĂšre section (fongibilitĂ© et pseudonymitĂ© faible) et a proposĂ© une solution. Les montants transfĂ©rĂ©s peuvent ĂȘtre protĂ©gĂ©s du rĂ©seau dans son ensemble, afin que seules les parties effectuant des transactions connaissent les montants envoyĂ©s.



Dans des circonstances normales (avec des transactions visibles par le public), il est facile pour un nƓud de vĂ©rifier que le montant reçu ne dĂ©passe pas le montant envoyĂ©. Si Alice souhaite envoyer 0,3 BTC Ă  Bob, elle prend une sortie non dĂ©pensĂ©e (disons 1 BTC) et la divise en deux : 0,3 Ă  envoyer Ă  Bob, et 0,69 Ă  lui renvoyer (avec le reste perdu en frais de minage).
Il s'agit d'une opĂ©ration 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 encore Ă©tĂ© utilisĂ©es ailleurs. La transaction doit donc ĂȘtre valide. Cependant, lorsque les montants sont masquĂ©s, les choses ne sont pas si triviales. Comment Ă©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, le chiffrement est requis. Toutefois, les mĂ©thodes traditionnelles sont semblables Ă  placer des documents dans un coffre : une fois verrouillĂ©s Ă  l'intĂ©rieur, ils deviennent inutilisables jusqu'Ă  ce qu'on les sorte pour les consulter. Pour que les transactions confidentielles fonctionnent, nous avons besoin 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 une personne extĂ©rieure.

La réponse réside spécifiquement dans le chiffrement homomorphique, dans un schéma appelé mise en gage de Pedersen. Ce type de chiffrement permet à un utilisateur externe d'effectuer des opérations sur des données chiffrées (qu'il ne peut pas voir) à diverses fins.

Un hachage rĂ©gulier peut ĂȘtre utilisĂ© pour s'engager dans des donnĂ©es que vous souhaitez afficher ultĂ©rieurement. Supposons que vous souhaitiez annoncer un concours sur les rĂ©seaux sociaux, oĂč quiconque devine votre exchange prĂ©fĂ©rĂ© gagnera un prix de 0,01 BTC. Les participants peuvent ĂȘtre sceptiques, car vous pourriez simplement regarder les rĂ©ponses aprĂšs la clĂŽture du concours et choisir un exchange n'ayant pas Ă©tĂ© mentionnĂ©.

Vous pouvez fournir un hash à vos abonnés : une chaßne de nombres et de caractÚres apparemment aléatoires qui correspond à une entrée spécifique. Vous soumettez le nom de votre exchange à une fonction afin d'obtenir une certaine sortie. Nous allons l'illustrer avec l'algorithme SHA256 :


f1624fcc63b615ac0e95daf9ab78434ec2e8ffe402144dc631b055f711225191


En regardant cette chaßne, vous ne pouvez pas deviner l'entrée. Vous ne pouvez pas non plus inverser la fonction pour l'obtenir. Si vous savez que l'entrée était « Binance », cependant, vous pouvez facilement vérifier que son hachage correspond à celui indiqué ci-dessus. De cette façon, vos abonnés ont l'assurance que vous ne changerez pas de réponse à la fin de la compétition, car cela produirait une sortie totalement différente.

Mais en réalité, cela n'est pas trÚs sûr. Si vos followers ne peuvent pas faire de l'ingénierie inverse de l'algorithme, ils peuvent établir une liste d'échanges possibles, en hachant chacun d'entre eux jusqu'à ce qu'ils obtiennent une correspondance. Nous pouvons réduire la probabilité de cela en ajoutant des données aléatoires appelées facteur aveugle aux données que nous allons hacher.

Si nous entendons « Binance est mon échange préféré que j'adore 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 n'importe qui tenterait de le faire).

Une mise en gage de Pedersen nous permet d'ajouter les commentaires derriĂšre les gages. Comme l'illustre Maxwell :



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

OĂč BF est le facteur d'obfuscation et D les donnĂ©es


Il y a encore quelques étapes à suivre pour atteindre la cryptographie de courbes elliptiques et les preuves d'intervalle, mais l'idée de base est qu'un utilisateur a un gage Pedersen pour son adresse. Lorsque vous envoyez de l'argent, deux engagements supplémentaires sont créés (un pour que l'adresse de modification soit renvoyée à l'utilisateur et un pour l'adresse de destination).

Personne ne sait quelle quantité est envoyée, mais on peut 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 cela est correctement évalué, la transaction de l'utilisateur est valide, car il est possible de prouver que les entrées sont égales aux sorties.


Que peuvent accomplir les transactions confidentielles ?

Si les transactions confidentielles Ă©taient mises en Ɠuvre dans le rĂ©seau Bitcoin, nous bĂ©nĂ©ficierions d'un systĂšme beaucoup plus confidentiel. Les entrĂ©es et les sorties seraient masquĂ©es Ă  partir du rĂ©seau plus large, et les entrĂ©es du registre seraient masquĂ©es, mais les nƓuds pourraient encore vĂ©rifier leur authenticitĂ©. GrĂące Ă  cette augmentation massive de la confidentialitĂ©, les bitcoins peuvent ĂȘtre rendus fongibles, car l'analyse de la chaĂźne ne rĂ©vĂšle plus l'historique d'une unitĂ© donnĂ©e.

Si vous vous demandez si les transactions confidentielles seront intégrées au protocole, cela ne semble pas probable à l'heure actuelle. Grùce à cette fonctionnalité supplémentaire, les transactions sont beaucoup plus importantes que les transactions standard. Compte tenu de l'espace limité dans le bloc, 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 avérée difficile.


Pour conclure

Certaines itĂ©rations dans d'autres cryptomonnaies et dans les sidechains Bitcoin ont prĂ©sentĂ© des transactions confidentielles. Par exemple, Monero les utilise en combinaison avec des constructions appelĂ©es signatures en anneau pour assurer l'anonymat et la fongibilitĂ©. La sidechain Liquid les met en Ɠuvre pour assurer une plus grande confidentialitĂ©, et MimbleWimble les utilise aux mĂȘmes fins.

Pour les avantages qu'elles apportent, les transactions confidentielles se font au détriment d'une empreinte plus importante. Les cryptomonnaies rencontrent souvent des difficultés de scalabilité et de débit au niveau de la couche de base, et les transactions de plus grande taille ne séduisent pas tout le monde. Cela dit, les ambassadeurs de la protection de la confidentialité pensent qu'il est essentiel de masquer les montants des transactions et les participants pour permettre aux cryptomonnaies de servir d'argent fongible.