En una cadena de bloques, un ataque de repetición es un tipo de ciberataque que implica que un atacante envíe una copia de una transacción válida de una cadena de bloques a otra, en un intento de engañar a la segunda cadena de bloques haciéndole creer que la transacción es legítima y debe procesarse. Aquí hay un ejemplo simple para ayudar a explicar cómo funciona esto:
![](https://public.bnbstatic.com/image/pgc/202302/7b517537b2591246722a63a2d43fce7d.jpg)
Imagine que Alice y Bob están jugando un juego en el que pueden enviarse "monedas" virtuales entre sí utilizando una cadena de bloques. Alice tiene 10 monedas y quiere enviarle 5 monedas a Bob. Ella crea una transacción en la cadena de bloques que envía 5 monedas desde su cuenta a la cuenta de Bob, y la transacción se procesa y registra en la cadena de bloques.
![](https://public.bnbstatic.com/image/pgc/202302/97c81a1cb470f7476f82ed9f2714e74e.jpg)
Ahora, supongamos que un atacante llamado Eve quiere engañar a la cadena de bloques haciéndole creer que Alice le envió a Bob 10 monedas en lugar de 5. Podría hacer esto copiando la transacción que Alice creó y enviándola nuevamente a la cadena de bloques, pero esta vez cambia el cantidad de monedas a 10 en lugar de 5. Si la cadena de bloques acepta esta transacción copiada como legítima, pensará que Alice envió 10 monedas a Bob, aunque solo tenía la intención de enviar 5.
![](https://public.bnbstatic.com/image/pgc/202302/3c015c29895802a59b0c814277aa50ad.jpg)
Esto se llama ataque de repetición y puede ser dañino porque puede permitir que un atacante manipule la cadena de bloques y potencialmente robe monedas de otros usuarios. Para evitar ataques de repetición, muchas cadenas de bloques utilizan técnicas especiales como "protección de repetición" para dificultar que los atacantes copien y envíen transacciones varias veces.