● articles / Wallets
Subaddresses Monero : pourquoi en utiliser une nouvelle à chaque fois
· subaddress · privacy · OPSEC · wallet
Un détail Monero qui sépare ceux qui utilisent le wallet de ceux qui exploitent sa privacy : la subaddress. Si tu donnes ton adresse principale à plusieurs personnes, tu détruis silencieusement la privacy que Monero te donne par défaut. Si tu génères une nouvelle subaddress à chaque transaction reçue, tu la préserves intégralement. Cinq secondes de friction, des années de tranquillité.
C’est quoi une subaddress
Un wallet Monero a une adresse principale (commence par 4) et peut générer un nombre arbitraire de subaddresses (commencent par 8). Toutes pointent vers le même wallet, contrôlé par la même seed. Les fonds reçus sur n’importe quelle subaddress arrivent dans le même solde global.
Pour un observateur externe, deux subaddresses du même wallet sont indistinguables de deux adresses de wallets totalement différents. C’est cryptographiquement vrai. Personne ne peut, en regardant la blockchain, savoir que ta subaddress 8XYZ... et ta subaddress 8ABC... appartiennent au même wallet.
C’est cette propriété qui rend Monero vraiment privé en pratique.
Pourquoi ne pas réutiliser ton adresse principale (ou la même subaddress) ?
Imagine que tu donnes ton adresse principale 4ABC... à trois personnes différentes :
- Ton client A pour qu’il te paye 200€.
- Ton ami B pour qu’il te rembourse 30€.
- Un site marchand C qui t’envoie un remboursement de 50€.
Sur la blockchain, les trois transactions arrivent à la même adresse. Ce n’est pas grave en soi pour la privacy de tes clés (Monero protège ça), mais :
- Les trois personnes savent maintenant que cette adresse t’appartient.
- Si A discute avec C, ils peuvent croiser : “tiens, j’ai payé Daniel à
4ABC..., c’est marrant, j’ai reçu un remboursement de Daniel depuis ce qui s’apparente au même service.” - Si l’un d’eux est compromis (leak, vol de carnet d’adresses, hack d’un service), ton adresse “publique” sort, et les autres flux deviennent identifiables.
- Sur le long terme, cette adresse devient un identifiant pseudonyme lié à toi — exactement le problème que Monero est censé résoudre.
Avec une subaddress par contact :
- A te paye sur
8XYZ..., B sur8DEF..., C sur8GHI.... - Aucun ne sait que les autres adresses existent.
- Aucun ne peut croiser quoi que ce soit.
- Si A leak
8XYZ..., B et C n’apparaissent pas.
La règle pratique : une subaddress par interlocuteur, ou par transaction
Deux niveaux de paranoïa, choisis ce qui te convient :
Niveau standard (recommandé pour la plupart) :
- Une subaddress par contact récurrent. Ton client A garde la même subaddress pour les futurs paiements. Ton ami B aussi. Tu ne donnes jamais la même à deux personnes différentes.
Niveau strict (pour OPSEC sérieuse, profils à risque, ou marchand) :
- Une nouvelle subaddress par transaction. Même un seul contact reçoit une subaddress différente à chaque paiement. Aucune corrélation possible entre deux paiements du même contact.
Pour le marchand / freelance, c’est même obligatoire : une nouvelle subaddress par invoice = workflow comptable propre + privacy intacte.
Comment générer une subaddress (selon le wallet)
Feather Wallet (desktop)
- Onglet Receive.
- Bouton New subaddress (ou raccourci
Ctrl+N). - Tu peux ajouter un label (par exemple : “Client A — facture #2024-03”).
- Copie l’adresse
8...qui s’affiche, donne-la à ton interlocuteur. - Le label reste local à ton wallet, jamais envoyé sur la blockchain.
Cake Wallet (mobile + desktop)
- Écran Receive (icône principale).
- Bouton Subaddresses ou Add new.
- Optionnel : ajoute un label.
- Copie l’adresse, partage.
Monerujo (Android)
- Onglet Receive.
- Bouton Add subaddress.
- Label optionnel.
- Copie / partage.
Dans tous les cas : génération instantanée, gratuite, illimitée. Pas de transaction sur la blockchain, pas de fee. Tu peux générer 10 000 subaddresses si tu veux, ça ne coûte rien.
Recevoir sur une subaddress : ce que tu vois côté wallet
Quand un paiement arrive sur ta subaddress 8XYZ..., ton wallet :
- Détecte la transaction (via la view key, qui voit toutes les subaddresses du wallet).
- Met à jour ton solde global.
- Affiche dans l’historique : “+0.5 XMR reçu sur subaddress
8XYZ...(label : Client A)”.
Tu peux dépenser depuis ton solde global. Quand tu envoies, le wallet pioche dans les outputs disponibles, sans révéler quelle subaddress les a reçus initialement.
Ce qu’il ne faut PAS faire
- Donner ton adresse principale
4...pour des paiements récurrents. Génère systématiquement des subaddresses pour les receveurs. - Réutiliser la même subaddress pour des contacts non liés. Aucune raison de risquer une corrélation.
- Stocker la mapping subaddress → contact en dehors de ton wallet. Le label local du wallet suffit. Pas besoin d’un Excel “qui a quelle adresse” — c’est exactement le genre de fichier qui devient catastrophique en cas de compromission de ton appareil.
- Publier ta subaddress sur un site public attendu (don, profil) et la garder pour des paiements privés non liés. Si tu fais un don public sur
8XYZ..., n’utilise plus jamais8XYZ...pour autre chose.
Cas particulier : adresse de don publique
Si tu publies une adresse de don sur un site, un blog, un profil X — utilise une subaddress dédiée. Toutes les donations arriveront là, identifiables par toi (et par le public, qui peut voir les flux entrants sur cette adresse). Garde tes autres subaddresses pour tout ce qui n’est pas public. Une subaddress publique de don doit toujours rester séparée de l’adresse principale et des subaddresses utilisées pour des paiements privés.
Subaddresses et payment IDs
Les payment IDs étaient l’ancien mécanisme pour distinguer plusieurs paiements arrivant à la même adresse. Ils sont dépréciés depuis 2019 : les subaddresses font le même travail en mieux, sans étape supplémentaire pour le payeur. Si un service te demande encore un payment ID en plus de l’adresse, c’est qu’il utilise un wallet ou une intégration ancienne. Ce n’est pas dangereux, mais c’est un signal que l’intégration n’est pas à jour.
En résumé
| Action | Privacy | Effort |
|---|---|---|
| Réutiliser ton adresse principale partout | Faible (corrélation triviale) | Zéro |
| Une subaddress par contact récurrent | Bonne (corrélation impossible entre contacts) | 5 secondes par contact |
| Une subaddress par transaction | Excellente (aucune corrélation possible) | 5 secondes par paiement |
Le coût marginal d’une subaddress est nul. Le bénéfice cumulé sur des années est massif. Mets le réflexe en place dès la première transaction reçue.
Sources : documentation getmonero.org sur subaddresses, Monero Research Lab papers.
● profils liés