Ashigaru - Stowaway

Loïc MorelLoïc Morel
13 nov. 2025
13 nov. 2025
Force blockchain spies to rethink everything they think they know.
Le Payjoin est une structure de transaction Bitcoin conçue pour renforcer la confidentialité des utilisateurs en impliquant une collaboration directe avec le destinataire du paiement. Plusieurs implémentations existent afin de faciliter sa mise en œuvre et d’automatiser le processus. Parmi elles, la plus connue reste sans doute Stowaway, initialement développée par l’équipe de Samourai Wallet et aujourd’hui intégrée dans son fork Ashigaru.

Comment fonctionne Stowaway ?

Comme mentionné précédemment, Ashigaru intègre un outil de PayJoin appelé Stowaway. Celui-ci est disponible dans l’application Ashigaru sur Android. Pour qu’un Payjoin puisse être réalisé, le destinataire (qui endosse également le rôle de collaborateur) doit utiliser un logiciel compatible avec Stowaway, c’est-à-dire seulement Ashigaru pour le moment.
Stowaway repose sur une catégorie de transactions que Samourai désignait sous le nom de "Cahoots". Un Cahoot est une transaction collaborative entre plusieurs utilisateurs, impliquant un échange d’informations en dehors de la blockchain Bitcoin. À l’heure actuelle, Ashigaru propose deux outils de Cahoots : Stowaway (les Payjoins) et StonewallX2.
Les transactions Cahoots nécessitent un échange de transactions partiellement signées entre les utilisateurs. Ce processus peut être long et fastidieux, surtout lorsqu’il est réalisé à distance. Il reste toutefois possible de le faire manuellement si les collaborateurs se trouvent au même endroit. Concrètement, cela implique de scanner successivement cinq codes QR échangés entre les deux participants.
À distance, cette méthode devient trop complexe. Pour y remédier, Samourai a développé un protocole de communication chiffré reposant sur Tor, nommé "Soroban". Grâce à Soroban, les échanges indispensables à un Payjoin sont automatisés et s’effectuent en arrière-plan.
Ces communications chiffrées nécessitent d’établir une connexion et une authentification entre les participants au Cahoot. C’est pourquoi Soroban s’appuie sur les Paynyms des utilisateurs. Si vous ne maîtrisez pas encore le fonctionnement des Paynyms, je vous invite à consulter ce tutoriel dédié pour en apprendre davantage :
Pour résumer, un Paynym est un identifiant unique associé à votre portefeuille, permettant d’activer différentes fonctionnalités, notamment des échanges chiffrés. Il se matérialise sous la forme d’un identifiant accompagné d’une illustration. Voici, par exemple, celui que j’utilise sur le Testnet :
Pour résumer :
  • Payjoin = Structure spécifique de transaction collaborative ;
  • Stowaway = Implémentation de Payjoin disponible sur Ashigaru ;
  • Cahoots = Nom donné par Samourai à tous leurs types de transactions collaboratives, notamment les Payjoin Stowaway, repris aujourd'hui sur Ashigaru ;
  • Soroban = Protocole de communication chiffré établi sur Tor permettant de collaborer avec d'autres utilisateurs dans le cadre d'une transaction Cahoots ;
  • Paynym = Identifiant unique d'un portefeuille permettant d'établir une communication avec un autre utilisateur sur Soroban, en vue d'effectuer une transaction Cahoots.
Pour approfondir le fonctionnement des Payjoins et leur utilité en matière de confidentialité onchain, je vous recommande de consulter cet autre tutoriel :

Comment établir une connexion entre Paynyms ?

Pour commencer, vous devrez bien entendu installer Ashigaru et y créer un portefeuille :
Pour effectuer une transaction Cahoots à distance, notamment un PayJoin (Stowaway) via Ashigaru, vous devez d’abord “follow” l’utilisateur avec lequel vous souhaitez collaborer, en utilisant son Paynym. Dans le cadre d’un Stowaway, cela signifie suivre la personne à qui vous souhaitez envoyer des bitcoins. Si vous ne savez pas encore comment suivre un autre Paynym, vous trouverez la procédure détaillée dans ce tutoriel :

Comment faire un Payjoin sur Ashigaru ?

Pour effectuer une transaction Stowaway, cliquez sur l’image de votre Paynym en haut à gauche de l’écran, puis ouvrez le menu Collaborate. La personne qui participe avec vous à cette transaction doit faire la même manipulation, sauf si vous réalisez l’échange de QR codes en personne.
Deux options s’offrent à vous: sélectionnez Initiate si vous êtes l’émetteur du paiement, ou Participate si vous êtes le destinataire du paiement de ce payjoin.
Si vous avez le rôle du destinataire, la procédure est très simple. Pour une collaboration à distance via le réseau Soroban, cliquez sur Participate, choisissez le compte que vous souhaitez utiliser, puis appuyez sur LISTEN FOR CAHOOTS REQUESTS afin d’attendre la requête envoyée par le payeur.
En revanche, pour une collaboration en personne via le scan de QR codes, rendez-vous sur la page d’accueil de votre wallet, appuyez sur l’icône du QR code en haut de l’écran, puis scannez le QR code fourni par le payeur qui initie la transaction.
Si vous êtes dans le rôle du payeur, c’est-à-dire celui qui initie la transaction, rendez-vous dans le menu Collaborate, puis sélectionnez Initiate.
Pour le type de transaction, puisque l'on souhaite ici effectuer un Payjoin Stowaway, choisissez cette option.
Vous pouvez ensuite choisir entre une collaboration en ligne (Cahoots via Soroban) ou une collaboration en personne, avec les échanges de QR codes.

Cahoots en ligne

Si vous avez opté pour l’option Online, sélectionnez ensuite le destinataire parmi les Paynyms que vous suivez.
Cliquez sur Set up transaction, puis choisissez le compte à partir duquel vous souhaitez effectuer la dépense.
Sur la page suivante, renseignez les détails de la transaction: le montant à envoyer au destinataire et le taux de frais. Pas besoin de renseigner d'adresse de réception, puisque c'est le destinataire lui-même qui la transmettra lors des échanges de PSBT.
Cliquez ensuite sur Review transaction setup.
Vérifiez attentivement les informations, assurez-vous que votre collaborateur est bien en train d’écouter les requêtes de Cahoots, puis cliquez sur le bouton vert BEGIN TRANSACTION pour initier l’échange des PSBTs via Soroban.
Patientez jusqu’à la signature complète de la transaction par les deux participants, puis diffusez-la sur le réseau Bitcoin.

Échanges en personne

Si vous souhaitez effectuer l’échange en personne, sélectionnez le type de transaction STONEWALL X2, puis choisissez l’option In Person / Manual.
Cliquez sur Set up transaction, puis choisissez le compte à partir duquel vous souhaitez effectuer la dépense.
Sur la page suivante, renseignez les détails de la transaction: le montant à envoyer au destinataire et le taux de frais. Pas besoin de renseigner d'adresse de réception, puisque c'est le destinataire lui-même qui la transmettra lors des échanges de PSBT.
Cliquez ensuite sur Review transaction setup.
Vérifiez les détails, puis appuyez sur le bouton vert BEGIN TRANSACTION pour lancer l’échange des PSBTs via le scan de QR codes.
L’échange se fait en alternant le scan avec le collaborateur: cliquez sur SHOW QR CODE pour afficher votre QR code à votre collaborateur, qui le scannera. Ensuite, il affichera à son tour le sien en cliquant sur SHOW QR CODE, et vous devrez le scanner avec LAUNCH QR Scanner. Puis répétez ce processus jusqu’à ce que les cinq étapes de l’échange soient complètes.
Une fois tous les échanges effectués, vérifiez les détails de la transaction, puis diffusez-la en faisant glisser la flèche verte située en bas de l’écran.
La transaction a bien été diffusée. Sa structure se présente ainsi :
Crédit: mempool.space
Si l'on analyse cette transaction, on observe en entrée mon UTXO de 164 211 sats ainsi que l’UTXO de 190 002 sats appartenant au destinataire effectif du paiement. En sortie, je récupère un UTXO de change de 63 995 sats, tandis que le destinataire reçoit un UTXO de 290 002 sats. En comparant inputs et outputs, on constate que le destinataire a bien gagné 100 000 sats, ce qui correspond au montant de mon paiement effectif, et que de mon côté, j’ai perdu 100 000 sats, auxquels s’ajoutent les frais de minage.
Évidemment, je peux décrire cette structure car j’ai moi-même construit la transaction. Mais pour un observateur extérieur, il est généralement impossible de déterminer quels UTXOs appartiennent à quel participant, que ce soit en inputs ou en outputs.
Pour approfondir vos connaissances sur la gestion de la confidentialité onchain sur Bitcoin, je vous recommande de suivre ma formation BTC 204 sur Plan ₿ Academy:
Cela a-t-il bien fonctionné pour vous ?
0
0

Auteur

Ce tutoriel a été écrit par Loïc Morel

Vous pouvez dire merci en donnant un pourboire au professeur.

Crédits

Ce tutoriel a été relu par LoicPandul & CarlAdm12

2/3Statut de relecture

Même si cette page est dans sa langue d'origine, une relecture humaine est toujours nécessaire pour garantir son exactitude.

Progress: 2/3LoicPandulCarlAdm120 sats
*Les récompenses peuvent varier en fonction du taux de change $

Chaque élément de contenu sur la plateforme est le produit d'un effort collaboratif : chaque leçon, traduction et révision est rendue possible grâce au travail des contributeurs. C'est pour cette raison que nous sommes toujours à la recherche de correcteurs qui peuvent examiner notre contenu dans un grand nombre de langues. Si vous souhaitez participer au processus de relecture, veuillez nous rejoindre dans notre groupe Telegram et consulter notre tutoriel. Nous vous rappelons que ce contenu est open-source - sous licence CC BY-SA - et peut donc être partagé et utilisé librement, à condition que la source originale soit reconnue.