Race attack
Une race attack envoie deux transactions concurrentes en double-spend, espérant que le destinataire accepte sans confirmation. Mitigée par le full RBF et le fait d'attendre les confirmations.
Définition
La race attack est une forme de double-dépense où l'attaquant diffuse simultanément deux transactions contradictoires : la première vers la victime, la seconde vers une adresse qu'il contrôle. Il parie sur le fait que la seconde arrive avant la première chez les mineurs, qui ne confirmeront que celle-ci dans le prochain bloc. La victime, ayant accepté en zéro confirmation, se retrouve sans paiement valide.
Comment elle s'opère
- L'attaquant prépare deux transactions dépensant les mêmes UTXO.
- Il envoie la première directement à un commerçant connecté à peu de pairs (point de vente physique, terminal de paiement BTCPay sans full node).
- Il diffuse immédiatement la seconde aux principaux mineurs, parfois via des connexions privilégiées ou des pools complices.
- Si la propagation au mempool global favorise la seconde, le bloc suivant l'inclura.
L'attaque exploite la latence et la fragmentation du mempool. À l'époque pré-RBF, elle était bien plus fiable que la simple attente de transactions concurrentes.
Mitigations modernes
- Attendre une confirmation : même une seule confirmation rend une race attack quasi impossible à concrétiser.
- Full RBF activé par défaut (Bitcoin Core 26.0, novembre 2023) : la transaction de remplacement est officiellement acceptée si elle paie plus de frais, donc le commerçant sait que zeroconf n'est plus une garantie.
- Lightning : pour les petits montants, Lightning fournit la finalité instantanée sans risque on-chain.
Race attack vs Finney attack
L'attaque de Finney suppose que l'attaquant mine lui-même un bloc contenant la transaction frauduleuse ; la race attack n'exige aucune capacité de minage. Elle est donc plus simple mais aussi plus aléatoire.
À retenir
La race attack est l'ennemi historique du zéro confirmation. Sa parade reste la plus simple : exigez au moins une confirmation pour tout montant non négligeable, ou basculez sur Lightning pour les petits achats.
Termes lies
- Double dépenseLa double dépense est la tentative de dépenser deux fois la même UTXO. Bitcoin la rend coûteuse via la preuve de travail et le consensus. Risque réel uniquement avec des transactions zeroconf. La cause principale de la nécessité d'une blockchain.
- Attaque de FinneyL'attaque de Finney (Hal Finney, 2011) est une double-dépense où un mineur prépare un bloc privé puis l'utilise après une transaction zeroconf. Mitigée en attendant les confirmations. N'est plus une menace majeure.
- Zero-confirmation (zeroconf)Une transaction zeroconf est acceptée sans attendre de confirmation on-chain. Pratique pour les paiements rapides (commerçants, ATM) mais vulnérable à la double dépense. Full RBF a affaibli sa fiabilité. Lightning Network l'a rendue largement obsolète.
Glossaire inspire du dictionnaire de Loic Morel sur Pandul.fr.