Dans une blockchain, une attaque par rejeu est un type de cyberattaque qui implique qu'un attaquant envoie une copie d'une transaction valide d'une blockchain à une autre, dans le but de faire croire à la deuxième blockchain que la transaction est légitime et doit être traitée. Voici un exemple simple pour expliquer comment cela fonctionne :
![](https://public.bnbstatic.com/image/pgc/202302/7b517537b2591246722a63a2d43fce7d.jpg)
Imaginez qu'Alice et Bob jouent à un jeu dans lequel ils peuvent s'envoyer des « pièces » virtuelles à l'aide d'une blockchain. Alice a 10 pièces et elle souhaite envoyer 5 pièces à Bob. Elle crée une transaction sur la blockchain qui envoie 5 pièces de son compte vers le compte de Bob, et la transaction est traitée et enregistrée sur la blockchain.
![](https://public.bnbstatic.com/image/pgc/202302/97c81a1cb470f7476f82ed9f2714e74e.jpg)
Maintenant, supposons qu'un attaquant nommé Eve veuille tromper la blockchain en lui faisant croire qu'Alice a envoyé 10 pièces à Bob au lieu de 5. Elle pourrait le faire en copiant la transaction créée par Alice et en la renvoyant à la blockchain, mais cette fois, elle change le nombre de pièces à 10 au lieu de 5. Si la blockchain accepte cette transaction copiée comme légitime, elle pensera qu'Alice a envoyé 10 pièces à Bob, même si elle n'avait l'intention d'en envoyer que 5.
![](https://public.bnbstatic.com/image/pgc/202302/3c015c29895802a59b0c814277aa50ad.jpg)
C'est ce qu'on appelle une attaque par relecture, et elle peut être dangereuse car elle peut permettre à un attaquant de manipuler la blockchain et potentiellement de voler des pièces à d'autres utilisateurs. Pour empêcher les attaques par relecture, de nombreuses blockchains utilisent des techniques spéciales comme la « protection par relecture » pour rendre plus difficile pour les attaquants de copier et d'envoyer des transactions plusieurs fois.