¿Qué protecciones contra ataques de repetición proporciona Ropsten?

Entiendo que la red de prueba de Ropsten era en parte necesaria debido a algunas medidas de protección de reproducción rotas en Morden. Entonces, ¿qué es diferente para Ropsten?

¿El nonce simplemente se incrementa en un número más pequeño que el de Morden?

Mirando el bloque de génesis , parece que el noncevalor está establecido en 0x42, ¿es ese el desplazamiento de nonce? Entonces, después de que una cuenta de red principal tiene más de 66 transacciones, ¿sus transacciones de red de prueba se pueden reproducir en la red principal?

Esto no suena ideal, pero si esa es la respuesta, ¡házmelo saber!

Respuestas (1)

Los clientes de Ropsten, como Geth y Parity, utilizan la protección contra ataques de repetición simple EIP 155 para protegerse contra las transacciones de Ropsten que se reproducen en la red principal.

Extracto (EIP 155 tiene un ejemplo real):

v = CHAIN_ID * 2 + 35 o v = CHAIN_ID * 2 + 36, luego, al calcular el hash de una transacción con fines de firma o recuperación, en lugar de codificar solo los primeros seis elementos (es decir, nonce, gasprice, startgas, to, value, data), hash nueve elementos, con v reemplazado por CHAIN_ID, r = 0 y s = 0. El esquema de firma existente actualmente que usa v = 27 y v = 28 sigue siendo válido y continúa operando bajo las mismas reglas que ahora. .

CHAIN_ID para Ropsten es 3.

Una transacción de Ropsten debe diseñarse según las reglas de EIP 155 para obtener protección de repetición. Si una billetera implementa EIP 155 , puede emitir transacciones ilimitadas que están protegidas contra ataques de reproducción. Si una billetera no implementa EIP 155, las transacciones que crea se pueden reproducir en otras redes (porque aún son transacciones válidas y es lo que significa la última oración en el extracto anterior).

Brevemente, para implementar EIP 155 en Ropsten, haga un hash de 9 elementos (en lugar de 6) y use 41 o 42 para v.


El noncearchivo de génesis de Ropsten de Geth no está relacionado con la protección de reproducción: consulte ¿Qué significa cada parámetro de genesis.json? Como se indica aquí , Parity tiene un archivo de génesis separado para Ropsten y Parity lo llamaría (nonce de protección de reproducción anterior a EIP155) el archivo accountStartNonce.