Les paiements silencieux rendent Bitcoin plus privé
Ceci est un éditorial d’opinion de Seth For Privacy, un défenseur de la vie privée et hôte du « Opt Out Podcast ».
L’une des clés les plus élémentaires pour améliorer votre confidentialité sur Bitcoin a longtemps été d’éviter la réutilisation des adresses pour plusieurs paiements. Mais même si cela peut sembler simple de nos jours, la plupart des portefeuilles générant automatiquement de nouvelles adresses pour chaque paiement, que faites-vous lorsque vous devez simplement accepter des paiements à plusieurs reprises, de plusieurs personnes ou sans infrastructure complexe en place ?
C’est là qu’entre en jeu le concept de «code de paiement réutilisable», parfois appelé «adresse furtive», permettant d’utiliser de simples adresses statiques pour des paiements répétés tout en préservant la confidentialité de la chaîne en rendant plus difficile la liaison des paiements.
Pourquoi Bitcoin a-t-il besoin de codes de paiement réutilisables ?
S’il est actuellement possible d’utiliser des infrastructures plus complexes, comme le système de traitement des paiements proposé par Serveur BTCPaypour accepter des dons ou des paiements sans réutiliser les adresses, la nécessité de configurer un serveur entièrement séparé à côté d’un nœud Bitcoin rend les cas d’utilisation plus simples pour recevoir des paiements beaucoup trop complexes pour la plupart des gens.
Si vous voulez simplement pouvoir lancer une campagne de dons, laisser vos amis vous envoyer des bitcoins à plusieurs reprises ou laisser les autres vous donner un pourboire pour votre travail, vous devez généralement exécuter une infrastructure complexe ou avoir une confidentialité extrêmement médiocre en utilisant une adresse Bitcoin statique. .
Entrez des codes de paiement réutilisables, un concept qui remonte à 2015 avec l’original adresse furtive BIP créé par Peter Todd. Alors que la proposition originale n’est jamais officiellement devenue un BIP proposé (malgré le numéro 63 du BIP), un successeur, BIP47a commencé à voir une augmentation de l’utilisation ces dernières années dans des portefeuilles comme Portefeuille Samouraï et Portefeuille Moineaudeux excellents portefeuilles Bitcoin centrés sur la confidentialité.
Comment en sommes-nous arrivés aux paiements silencieux ?
Malheureusement, BIP47 a un sérieux inconvénient : pour que le destinataire sache qu’il reçoit une transaction (et puisse ainsi la dépenser !), l’expéditeur doit créer une transaction spéciale – appelée « transaction de notification » – sur- chaîne pour que le bénéficiaire retrouve ses fonds, en outre à envoyer lui-même séparément le paiement prévu. Bien que cela ne doive être fait qu’une seule fois par expéditeur et qu’il s’agisse de la fonctionnalité principale qui permet une utilisation légère du portefeuille pour BIP47, cela a des frais importants, une mise à l’échelle et, surtout pour les cas d’utilisation contradictoires de codes de paiement réutilisables, des implications sur la confidentialité.
Heureusement, Ruben Somsen a déposé une proposition extrêmement prometteuse sous la forme d’un GitHub Gist le 13 mars 2022, intitulée « Paiements silencieux » où le compromis clé est déplacé d’une transaction de notification (avec des résultats problématiques, comme nous le verrons plus tard) à un processus de numérisation plus complexe du côté des destinataires. Silent Payments est une autre itération de la proposition originale « Stealth Address », mais tire parti de nombreuses avancées dans la numérisation Bitcoin, les types de script (c’est-à-dire Taproot) et quelques astuces astucieuses.
Si vous voulez plonger plus profondément dans les origines et la fonction proposée de Silent Payments, je vous recommande fortement de lire l’excellent article de Shinobi, « Bitcoin Silent Payments And Secret Blinding Keys », mais nous allons le parcourir de manière très simplifiée. bien en dessous aussi.
Comment fonctionnent les paiements silencieux, simplifiés
Avant de plonger trop profondément dans les raisons pour lesquelles je suis enthousiasmé par les paiements silencieux, il est important que vous compreniez à un niveau très simpliste comment les paiements silencieux fonctionnent à la fois pour l’expéditeur et le destinataire.
Pour l’expéditeur
Lorsqu’une personne souhaite envoyer des fonds à une adresse de paiement silencieux, il lui suffit en pratique de scanner ou de copier/coller le code de paiement dans son portefeuille préféré (en supposant qu’il soit pris en charge) et d’envoyer le paiement comme d’habitude. Mais que se passe-t-il exactement dans les coulisses ?
Lorsque l’expéditeur saisit l’adresse de paiement silencieux dans son portefeuille, celui-ci combinera trois clés pour créer une adresse unique et unique à partir de laquelle seul le destinataire prévu peut effectuer des dépenses. Cette adresse unique est créée en combinant la clé publique (ou « adresse », en termes simples) de l’une des entrées que l’expéditeur souhaite remettre au destinataire, la clé publique du destinataire (contenue dans l’adresse de paiement silencieux), et une clé « secrète partagée » que l’expéditeur génère et que seuls l’expéditeur et le destinataire connaissent. Grâce à ce qu’on appelle la propriété « commutative » en cryptographie, l’expéditeur peut combiner ces clés mais ne peut pas dépenser à partir de l’adresse résultantecar ils ne connaissent pas la clé privée du destinataire (bien sûr).
Lorsque l’expéditeur combine ces trois clés, il génère une nouvelle clé publique (ou adresse) et envoie les fonds destinés à cette nouvelle adresse que seul le destinataire contrôle. En chaîne, cette transaction semble exactement comme toute autre dépense d’un type et d’un script similaires, et il n’y a aucun facteur distinctif qui indique aux observateurs extérieurs qu’un paiement silencieux a été utilisé, et encore moins à qui appartient l’adresse de paiement silencieux.
Pour le destinataire
Une fois que nous arrivons au destinataire, nous voyons où se situe le principal compromis pour les paiements silencieux. Si vous vous souvenez que l’expéditeur utilise la clé publique d’une entrée dépensée pour générer l’adresse unique et unique, vous vous demandez peut-être : « Comment le destinataire sait-il qu’il a reçu des fonds et à quelle adresse ? »
Cette question est au cœur de la proposition de paiements silencieux et signifie que les destinataires doivent effectuer une numérisation relativement coûteuse des tous transaction sur la blockchain Bitcoin après avoir créé leur adresse de paiement silencieux. Cette analyse permet au destinataire de voir si une clé publique d’entrée plus un secret partagé généré à l’aide de son adresse de paiement silencieux et une clé publique de sortie dans toute transaction correspondent correctement à ses clés privées, et de l’ajouter à son portefeuille si c’est le cas.
Cette analyse est assez coûteuse par rapport à l’analyse de portefeuille Bitcoin standard, car vous ne pouvez pas simplement comparer une liste d’adresses dérivées de votre portefeuille avec une liste de sorties de transaction pour obtenir le solde de votre portefeuille. Au lieu de cela, vous devez parcourir chaque transaction, calculer le secret partagé pour chaque entrée et comparer aux sorties, ce que Somsen a comparé à « vérifier chaque signature deux fois, au lieu d’une » dans « Bitcoin expliqué ».
Idéalement, cette analyse sera effectuée lors du téléchargement initial du bloc (la première fois que vous synchronisez l’intégralité de la blockchain Bitcoin) ou d’un logiciel autonome qui décharge l’analyse de votre portefeuille et de votre nœud Bitcoin.
Optimisation du temps de numérisation pour le destinataire
Bien que cette analyse soit assez coûteuse en calcul, elle peut être rendue plus efficace sans sacrifier la confidentialité ou la fongibilité grâce à trois optimisations principales :
- Créez une date « d’anniversaire » lorsque vous créez une adresse de paiement silencieux et enregistrez-la, de sorte que lorsque vous devez restaurer, vous pouvez commencer à numériser uniquement à partir de ce bloc en avant sur la chaîne, au lieu du bloc de genèse.
- Vérifiez uniquement les sorties Taproot, car très peu de sorties sur la chaîne sont actuellement Pay-to-Taproot (« P2TR”) cela éliminera un grand pourcentage de transactions et réduira considérablement le temps de numérisation. Idéalement, cela deviendra moins utile à mesure que Taproot sera davantage utilisé, mais ce sera probablement une optimisation extrêmement efficace pendant un certain temps.
- Vérifiez uniquement l’ensemble UTXO au lieu d’analyser chaque transaction historique, car vous ne vous préoccupez que des nouvelles sorties entrantes et non dépensées destinées à votre adresse de paiement silencieux. Cela a l’inconvénient de ne pas fournir d’historique des transactions et nécessiterait une base de données supplémentaire par rapport aux méthodes normales.
Où les paiements silencieux conviennent mieux que PayNyms
Passons maintenant au cœur du problème : si nous avons déjà PayNyms (BIP47) et qu’ils sont actuellement de plus en plus adoptés, pourquoi avons-nous besoin de quelque chose de nouveau ? Malheureusement, le problème persistant avec BIP47 reste la transaction de notification pour deux raisons principales, et c’est ce problème qui rend les paiements silencieux supérieurs pour les cas d’utilisation contradictoires à mon avis.
Tout d’abord, exiger une transaction de notification rend les paiements uniques extrêmement inefficaces, car vous devez envoyer deux transactions pour envoyer un seul paiement. Pour de nombreux cas d’utilisation courants d’un code de paiement réutilisable, il s’agit d’un inconvénient prohibitif car il entraîne des frais de chaîne considérablement augmentés et gonfle la blockchain. Deuxièmement, cette opération de notification a également une massif inconvénient de confidentialité, dans la mesure où toute personne dans le monde disposant d’une connexion Internet peut consulter la blockchain Bitcoin et déterminer quels clusters de portefeuilles (et combien) se sont « connectés » à un PayNym donné.
Prenons comme exemple le scénario de protestation des camionneurs « Freedom Convoy » qui s’est produit au Canada en février dernier. Si ceux qui avaient collecté et distribué des dons en bitcoins pour les manifestants avaient utilisé un BIP47 PayNym pour collecter ces dons, il serait manifestement évident sur la chaîne quels clusters de portefeuilles avaient connecté au PayNym, et donc très probablement que chacun de ces portefeuilles a envoyé un don. au « Freedom Convoy », permettant aux gouvernements et aux échanges de sévir contre ceux qui ont fait des dons.
Alors que Bitcoin empêcherait la simple saisie des fonds des donateurs (contrairement à GoFundMe), si ces donateurs avaient déjà connecté leurs portefeuilles en chaîne avec un compte d’échange de connaissance de votre client (KYC) ou leurs identités, leurs gouvernements locaux pourraient venir frapper pour une explication voire les poursuivre directement.
Avec ces problèmes critiques, je suis d’avis que les BIP47 PayNyms ne sont tout simplement pas suffisants pour les cas d’utilisation contradictoires courants de codes de paiement réutilisables, c’est pourquoi je suis si excité par cette nouvelle proposition. Pendant les paiements silencieux aurait augmentent la complexité de la réception de fonds vers un code de paiement réutilisable sur un PayNym, les gains de confidentialité, d’efficacité et de non-interactivité qui en résultent en valent la peine et en font le pas en avant idéal pour les codes de paiement réutilisables en Bitcoin pour la plupart des cas d’utilisation, quelque chose qui est désespérément besoin.
Cela dit, PayNyms répond à un cas d’utilisation très spécifique – ils permettent des codes de paiement réutilisables sans pour autant exécutant un nœud complet Bitcoin. Dans les situations où les problèmes supplémentaires de transaction et de confidentialité sont moins pertinents que le coût d’exécution d’un nœud complet (en tant que destinataire), PayNyms peut toujours servir à des fins utiles en tant qu’excellente méthode pour les codes de paiement réutilisables tout en conservant les avantages de l’expérience utilisateur d’un léger porte monnaie. Il existe également la possibilité de futures méthodes alternatives de gestion de la transaction de notification qui déchargeraient la transaction de notification sur un tiers, réduisant ainsi certains des problèmes de confidentialité en chaîne (mais en introduisant un tiers de confiance) qui sont à l’étude. ici.
Samourai Wallet utilise actuellement une variante de celui-ci afin d’utiliser PayNyms pour les transactions collaboratives sans avoir besoin d’une transaction de notification au préalable.
Quelles sont les prochaines étapes?
Bien que les paiements silencieux soient extrêmement excitants, il est important de comprendre que la proposition n’en est qu’à ses débuts. La proposition Gist sur GitHub fait l’objet d’un examen et de commentaires approfondis, et de nombreuses approches clés sont examinées par de nombreuses personnes dans l’espace pour la tester, l’optimiser et l’améliorer en cours de route. Les principaux éléments d’exploration en cours pour Silent Payments sont des références détaillées de diverses approches et la recherche de moyens de mieux optimiser la numérisation sans perte de confidentialité ou de fongibilité.
Si vous êtes un utilisateur ou un développeur plus technique : plus nous pourrons recruter de personnes pour tester, évaluer et réviser les concepts plus tôt dans le cycle de vie de cette proposition, mieux ce sera à long terme, alors assurez-vous de donner le Jetez un œil sur GitHub si vous avez un penchant plus technique.
Si vous êtes moins technique, assurez-vous de garder un œil ici sur Bitcoin Magazine pour de futurs articles, et donnez l’excellent épisode explicatif de « Bitcoin, expliqué » sur les paiements silencieux et le présentation de Ruben Somsen sur les paiements silencieux regarde ou écoute pour avoir une compréhension plus détaillée de la façon dont tout cela fonctionne et des approches adoptées.
Et enfin, je voulais juste dire qu’il est toujours excitant de voir de nouveaux développements et recherches en cours pour aider à faire avancer la confidentialité de Bitcoin, un domaine qui n’est souvent pas considéré comme « sexy » mais qui est absolument vital pour permettre la résistance à la censure et faire du bitcoin un véritable « argent de la liberté ».
Un merci spécial à Ruben Somsen et TdevD de Samourai Wallet pour le temps qu’ils ont passé à réviser et à donner leur avis sur l’article.
Ceci est un article invité de Seth For Privacy. Les opinions exprimées sont entièrement les leurs et ne reflètent pas nécessairement celles de BTC Inc ou de Bitcoin Magazine.