Qu'est-ce que Payjoin ? L'outil de confidentialité le plus sous-estimé de Bitcoin

Bitcoin ne fonctionne pas comme un compte bancaire. Il n'y a pas de « solde » stocké quelque part. Votre portefeuille détient plutôt des UTXO (Unspent Transaction Outputs, ou sorties de transaction non dépensées). Chaque UTXO correspond à un montant de Bitcoin reçu lors d'une transaction précédente. Pour mieux comprendre le fonctionnement des UTXO, lisez notre article en anglais : A Primer on UTXOs.

Vous préférez regarder plutôt que lire ? Découvrez notre guide du débutant sur Payjoin en vidéo : Cet outil protège votre vie privée Bitcoin.

Par exemple, si vous avez un UTXO de 2 BTC et un autre de 1 BTC, et que vous devez payer 3 BTC à quelqu'un, vous devrez dépenser les deux UTXO. Simple.

Mais la plupart du temps, vos UTXO ne correspondent pas exactement au montant à payer. Imaginons que vous ayez trois UTXO de 2 BTC chacun (6 BTC au total) et que vous deviez 5 BTC à quelqu'un. Vous devrez dépenser les trois, et 1 BTC vous reviendra en monnaie (le « change »).

C'est exactement ainsi que fonctionne une transaction Bitcoin standard. Les UTXO que vous dépensez s'appellent les entrées (inputs). Le paiement et le change qui vous revient s'appellent les sorties (outputs).

Graphique de la première transaction de l'histoire de Bitcoin, de Satoshi à Hal Finney, source mempool.space

La plupart des transactions suivent le même schéma prévisible : une ou quelques entrées d'un côté, deux sorties de l'autre, l'une pour le destinataire, l'autre qui vous revient comme change.

Ce sont ces schémas qu'utilisent les observateurs extérieurs malveillants pour vous pister.

L'heuristique de propriété commune des entrées

L'hypothèse la plus répandue en matière de surveillance de la blockchain est la suivante : si une transaction comporte plusieurs entrées, elles appartiennent toutes à la même personne. C'est ce qu'on appelle l'heuristique de propriété commune des entrées (Common Input Ownership Heuristic).

Représentation graphique d'une transaction de consolidation hypothétique

Ce n'est pas garanti mathématiquement. Mais dans la grande majorité des transactions actuelles, elle se vérifie, et cela suffit aux observateurs extérieurs malveillants pour construire des graphes de propriété sur toute la blockchain, suivre la propriété des Bitcoin et désanonymiser les transactions.

L'autre conséquence de ce modèle de transaction standard, c'est la fragmentation des UTXO. Votre portefeuille crée sans cesse des sorties de change. Avec le temps, vous accumulez des dizaines de petits UTXO. Tôt ou tard, vous devez les consolider, ce qui oblige à payer des frais plus élevés et crée des schémas encore plus identifiables.

C'est là que Payjoin change la donne.

Comment fonctionne Payjoin

Un Payjoin est une transaction collaborative. L'expéditeur et le destinataire apportent tous les deux des entrées.

Exemple de transaction payjoin vue sur https://mempool.space

Prenons un exemple hypothétique : vous voulez envoyer 1 BTC à quelqu'un.

Dans une transaction standard, vous avez un UTXO de 1,5 BTC. Vous envoyez 1 BTC au destinataire et récupérez 0,5 BTC de change. C'est propre, prévisible et totalement transparent pour quiconque observe.

Avec Payjoin, vous utilisez toujours votre UTXO de 1,5 BTC, mais le destinataire apporte lui aussi un UTXO de 0,5 BTC. La transaction compte deux entrées et deux sorties : vous récupérez 0,5 BTC, et le destinataire reçoit 1,5 BTC. Le paiement net reste exactement de 1 BTC. Mais pour un observateur extérieur, la transaction raconte désormais une tout autre histoire.

Pour quiconque regarde la blockchain, elle ressemble à un paiement parfaitement normal : plusieurs entrées, deux sorties, une structure standard. Mais l'hypothèse selon laquelle toutes les entrées appartiennent à l'expéditeur est désormais fausse. Le destinataire a lui aussi apporté une entrée, et un observateur extérieur n'a aucun moyen de savoir quelle entrée appartient à qui.

Votre historique d'UTXO se mêle à celui du destinataire, si bien que les observateurs extérieurs malveillants ne peuvent plus attribuer la propriété avec certitude. Le montant réel du paiement est masqué. La blockchain montre un mouvement de 1,5 BTC, et non de 1 BTC. Le chiffre inscrit dans le registre public est techniquement réel, mais économiquement faux.

Pourquoi cela déjoue l'analyse de chaîne

Pendant des années, les analystes ont supposé que la plus petite sortie était le paiement et la plus grande, le change. Avec Payjoin, le paiement peut être plus gros, plus petit, ou réparti sur plusieurs sorties. Parfois, il n'y a même pas de change. Les entrées et les sorties s'équilibrent naturellement, ce qui produit une transaction à sortie unique qui peut être un paiement, un transfert à soi-même ou une consolidation : impossible de le savoir.

Contrairement au CoinJoin, Payjoin ne laisse aucun schéma reconnaissable sur la blockchain. On n'y trouve aucune transaction géante aux sorties identiques qui crierait « outil de confidentialité ». Il se fond dans les transactions normales. Ou plus exactement, il rend les transactions normales impossibles à catégoriser.

Schéma comparant CoinJoin, avec beaucoup d'entrées et de sorties identiques, et Payjoin, où les entrées fusionnent en une sortie ambiguë

Si ne serait-ce que cinq à dix pour cent des utilisateurs de Bitcoin adoptent Payjoin, l'heuristique de propriété commune des entrées ne vaut plus rien. Les analystes perdent leur modèle le plus fiable pour déduire la propriété, le sens des flux et les montants des transactions. Et pas seulement pour les utilisateurs de Payjoin, mais pour tout le monde.

L'avantage sur les frais dont personne ne parle

La plupart des techniques de confidentialité coûtent plus cher : plus d'entrées, plus de sorties, plus de frais. Payjoin fait exactement l'inverse.

Quand vous recevez une transaction Payjoin, vos anciens UTXO sont fusionnés avec le paiement entrant en un seul UTXO, plus gros. C'est une consolidation gratuite.

Avec Payjoin, vous obtenez à la fois la confidentialité et des frais réduits.

Payjoin V2 : plus besoin d'être en ligne tous les deux

Le protocole Payjoin d'origine avait un gros point de friction : l'expéditeur et le destinataire devaient être en ligne en même temps pour coordonner la transaction. Pour un portefeuille mobile, c'est rédhibitoire.

Payjoin V2, formalisé dans le BIP77, résout ce problème grâce à une coordination asynchrone. Le destinataire n'a pas besoin d'être en ligne au moment où l'expéditeur lance la transaction. Les messages chiffrés transitent entre les deux parties par un répertoire Payjoin (Payjoin Directory) et un serveur Oblivious HTTP, et ni l'un ni l'autre de ces serveurs ne peut voir le contenu de la transaction.

C'est ce qui rend Payjoin pratique au quotidien. Aucun serveur à faire tourner, aucune contrainte de temps : il suffit de scanner et d'envoyer, le protocole s'occupe du reste. Pour en savoir plus sur notre implémentation, lisez cet article (en anglais).

Payjoin sur BULL Wallet

BULL Wallet a été le premier portefeuille Bitcoin au monde à intégrer Payjoin V2 (BIP77), et Payjoin y est activé par défaut pour toutes les transactions on-chain.

Quand un BULL Wallet envoie des Bitcoin on-chain à un autre BULL Wallet, la transaction utilise Payjoin par défaut, à condition que les deux portefeuilles disposent d'assez d'UTXO pour la couvrir. Si le portefeuille de l'autre partie ne prend pas en charge Payjoin, la transaction repasse automatiquement en transaction standard. L'utilisateur n'a jamais rien à faire de différent.

Pour recevoir un Payjoin dans BULL Wallet, allez simplement dans l'onglet Recevoir et partagez votre adresse ou votre code QR. C'est tout. Si l'expéditeur utilise un portefeuille compatible Payjoin, le paiement se fait en Payjoin. Sinon, il passe quand même, par une transaction classique.

Essayez par vous-même

Téléchargez BULL Wallet sur Android ou iOS : https://wallet.bullbitcoin.com, ou récupérez directement l'APK sur GitHub : https://github.com/SatoshiPortal/bullbitcoin-mobile/releases.

Envoyez quelques sats à un ami avec BULL Wallet (demandez-lui de télécharger BULL, lui aussi). Vérifiez ensuite la transaction sur https://mempool.space. Vous verrez que le montant réellement envoyé est masqué : c'est Payjoin en action.

Envie d'en savoir plus sur l'écosystème Payjoin ? Rendez-vous sur payjoin.org pour découvrir le protocole, sa feuille de route et la communauté qui le porte.

Payjoin incarne exactement ce que défend Bull Bitcoin : la confidentialité et l'efficacité qui travaillent ensemble, et non l'une contre l'autre. De notre calculateur de multiple de frais à notre implémentation intégrée des swaps atomiques et de Payjoin, chaque fonctionnalité que nous développons est conçue pour réduire votre empreinte numérique sans vous coûter plus cher.