Saltar al contenido

Reproducción de transacciones y protección de reproducción con horquillas rígidas explicadas

01/02/2020

Comprensión de reproducción y criptografía

 

Cuando una moneda hace un tenedor duro, existen dos cadenas de bloques idénticas hasta que se realizan cambios en una de las cadenas. Para evitar repeticiones de transacciones (las transacciones realizadas en una cadena se transmiten en la otra), al menos una cadena debe implementar protección de reproducción (los desarrolladores de una cadena deben cambiar el formato de las transacciones para que sean únicas). [1] [2]

 

Si no se agrega protección de reproducción, entonces cualquier transacción realizada en una cadena puede ser “reproducida” (retransmitida) en la otra. Después de todo, la única diferencia entre las dos cadenas (si los desarrolladores no cambian nada) es que hay dos copias de la cadena y los mineros están confirmando transacciones en cada cadena por separado. Las direcciones son las mismas, las claves son las mismas, el formato de las transacciones es el mismo, etc., y esto deja una abertura para los exploits.

 

Cuando un actor malicioso explota una cadena con una falta de “protección de repetición”, por ejemplo, al transmitir una transacción destinada a una cadena en la otra cadena, se denomina “ataque de repetición”.

 

Los ataques de repetición pueden provocar la pérdida de fondos debido a que tanto la moneda original como la moneda bifurcada se envían a la misma dirección.

 

En los casos en que hay una bifurcación contenciosa (como BCH y BSV) o una bifurcación implementada apresuradamente (como ETH y ETC), es posible que no se agregue protección de reproducción de inmediato y el usuario tendrá que protegerse.

 

Un usuario puede, en teoría, protegerse contra los ataques de repetición mediante “división de monedas”. Sin embargo, no he encontrado una solución de división de monedas perfecta que pueda recomendar con un 100% de confianza.

 

Por lo tanto, un usuario inexperto puede esperar hasta que se confirme la protección de repetición para enviar monedas después de que ocurra una bifurcación para limitar la cantidad de cosas que pueden salir mal (esto es especialmente importante si ya ha reclamado sus monedas bifurcadas pero no se movió su saldo original después del bloque de instantáneas antes de que MainNet se activara).

 

Con todo eso cubierto, hay una tonelada de detalles técnicos y detalles que no cubrí anteriormente.

 

Para una comprensión completa de todo lo que se repite, realmente debes investigar cómo funcionan las cadenas de bloques y cómo entender algunos aspectos técnicos del código. Dicho claramente, eso está fuera del alcance del sitio.

 

Para el usuario promedio, la mejor protección contra ataques de repetición es 1. usar un servicio de custodia que honre un tenedor y luego no moverlo a otra billetera hasta después de que se confirme la protección de repetición, o 2. tener el control de su privado teclas, moviendo sus fondos después de la instantánea pero antes de que la nueva MainNet entre en funcionamiento, reclamando la bifurcación, y luego esperando mover los fondos en cualquier cadena hasta después de que se confirme la protección de reproducción, o 3. tener el control de sus claves privadas y simplemente no hacer nada en absoluto hasta que se confirme la protección de repetición.

 

La conclusión aquí es esto, no puede encontrarse con problemas de reproducción a menos que comparta su transmisión, por lo que si no transmite una transacción (envío o gasto), no pondrá en peligro sus monedas un tenedor que carece de protección de repetición.

 

SUGERENCIA : la protección de repetición no es lo único para protegerse con horquillas. Para reclamar un tenedor, debe importar sus llaves en la billetera de la moneda bifurcada. Para hacerlo de forma segura, debe mover su saldo original … si lo hace después de que MainNet de la moneda bifurcada esté activa, tiene un catch-22, ¡porque tiene que enviar sus monedas a una nueva dirección!

 

SUGERENCIA : Los ataques de repetición también pueden ocurrir si uno usa las mismas teclas en una TestNet que en una MainNet. En general, un ataque de repetición consiste en realizar una transacción en una cadena de bloques y repetirla de manera maliciosa o fraudulenta en otra cadena de bloques. [3] No tiene que tener nada que ver con un tenedor duro, aunque el tema de la página es el tenedor duro y la protección de repetición.

 

Explicación de Hardfork sin protección de repetición | Bitcoin Cash (15-11-18) .