Aller au contenu principal
Attaque

Replay attack

Une replay attack rejoue une transaction valide sur une autre chaîne (ex : lors d'un hard fork). Évitable par signature spécifique au réseau. Pertinent lors des forks (BCH, BSV).

Définition

Une replay attack consiste à reprendre une transaction Bitcoin valide diffusée sur une chaîne, et à la rediffuser telle quelle sur une autre chaîne qui partage le même format. Si les deux chaînes acceptent la même signature, la transaction est exécutée deux fois sans que l'auteur initial n'en ait l'intention. C'est typiquement le risque lors d'un hard fork "naïf" qui ne change pas la sérialisation des transactions.

Pourquoi ça arrive lors d'un fork

Lors d'un hard fork, l'UTXO set est dupliqué : chaque adresse contrôle "le même" solde sur les deux chaînes. Sans précaution, la même clé privée signe une transaction valide sur les deux. Conséquences :

  • Vous voulez vendre votre coin "forké" sur un exchange → cet exchange peut rejouer la tx sur Bitcoin et vider votre adresse principale.
  • Vous voulez juste consolider vos UTXO → votre activité fork est dupliquée chez vous, exposant des liens d'analyse.

Cas historiques

| Fork | Année | Protection contre replay | |------|-------|--------------------------| | Bitcoin XT/Classic | 2015 | Aucune (jamais activé) | | Bitcoin Cash (BCH) | 2017 | Oui, via SIGHASH_FORKID | | Bitcoin Gold (BTG) | 2017 | Oui, SIGHASH_FORKID + algo PoW différent | | Bitcoin SV (BSV) | 2018 | Hérite de BCH | | Bitcoin Cash ABC/SV | 2018 | Période de risque réel pendant le fork |

Bitcoin Cash a introduit le flag SIGHASH_FORKID qui marque les transactions BCH comme invalides sur Bitcoin, fournissant une replay protection forte.

Comment se protéger

Sans replay protection native, on peut séparer manuellement les UTXO :

  1. Créer une transaction "tainted" qui inclut un input n'existant que sur une chaîne (par exemple un coin minté après le fork côté BCH).
  2. Signer et diffuser uniquement sur cette chaîne ; la tx est invalide sur l'autre.
  3. Une fois confirmée, les UTXO restants sont propres et peuvent être manipulés indépendamment.

C'était la procédure standard recommandée par bien des exchanges en août 2017.

Autres formes

Hors contexte de fork, "replay attack" désigne parfois la rediffusion d'un message signé dans des protocoles annexes (LNURL-auth, BIP-322, signatures de message). La parade est toujours la même : inclure un nonce ou un identifiant unique au contexte dans le message signé.

À retenir

La replay attack rappelle qu'une signature Bitcoin n'a de sens que dans le contexte de sa chaîne. Tout fork respectueux des utilisateurs doit implémenter une replay protection dès le bloc d'activation, sous peine d'exposer les détenteurs à un risque inutile.

Termes lies

← Retour au glossaire complet

Glossaire inspire du dictionnaire de Loic Morel sur Pandul.fr.