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 :
- 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).
- Signer et diffuser uniquement sur cette chaîne ; la tx est invalide sur l'autre.
- 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
- Hard forkUn hard fork est un changement non rétro-compatible des règles de Bitcoin, créant deux chaînes distinctes. Bitcoin Cash (BCH) ou Bitcoin SV (BSV) sont issus de hard forks. C'est généralement la marque d'un désaccord politique fort. Bitcoin évite autant que possible les hard forks pour préserver l'unité de la chaîne.
- Bitcoin Cash (BCH)Bitcoin Cash est un altcoin né en août 2017 du hard fork de Bitcoin par les big blockers. Il augmente la taille des blocs à 8, puis 32 MB. Il s'éloigne progressivement de Bitcoin et perd l'essentiel de sa pertinence. Il est lui-même issu de fractures successives (BSV, BCHA).
- Bitcoin SV (BSV)Bitcoin SV (Satoshi Vision) est un fork de Bitcoin Cash apparu en novembre 2018, mené par Craig Wright et Calvin Ayre. Il prétend revenir à la « vision originale » de Satoshi avec des blocs géants. Il est largement considéré comme un altcoin en perte de pertinence. Craig Wright a été reconnu fautif en 2024 pour ses prétentions à être Satoshi.
Glossaire inspire du dictionnaire de Loic Morel sur Pandul.fr.