He visto muchos métodos que usan las cadenas bifurcadas para proporcionar una protección de reproducción sólida y opcional para que las transacciones solo sean válidas en una de las cadenas. Los ejemplos de tales reglas incluyen el uso de una salida de invalidación de transacciones y el uso de una OP_RETURN
cadena específica.
Mi pregunta es ¿por qué alguno de estos mecanismos es necesario para proteger a un titular de un ataque de repetición? Más específicamente, ¿por qué una persona que tiene monedas antes de la bifurcación no puede protegerse simplemente gastando un par de transacciones de división de monedas en cada cadena como esta?
A
que tiene un valor de 1 "LegacyCoin" antes de la bifurcación dura.A
ahora contiene 1 LegacyCoin según la red LegacyCoin y 1 NewCoin según la red NewCoin porque así es como funcionan las bifurcaciones duras.A
en B
y otra que gasta A
en C
(ambas de las cuales Alice también tiene conocimiento exclusivo de la clave privada).A->B
solo en la red LegacyCoin y la transacción A->C
solo en la red NewCoin.A
en las dos cadenas de bloques en ausencia total de mecanismos de protección de repetición implementados por NewCoin. Las monedas ahora se pueden considerar divididas porque incluso si ella gasta B
, nadie más puede gastar C
(y viceversa) porque son UTXO diferentes y requieren firmas diferentes para gastar. Además, obviamente nadie puede gastar A
porque ya está gastado en ambas cadenas.¿Por qué la declaración en el paso 5 no es verdadera? ¿Dónde se rompe esta lógica que requiere que las cadenas bifurcadas implementen un mecanismo de protección de reproducción real?
Es cierto que lo que propone dividiría efectivamente las monedas y evitaría más repeticiones, si tuviera éxito.
Sin embargo, sufre los siguientes problemas:
Cada persona que quiera dividir sus monedas debe crear una transacción adicional para hacerlo (y pagar una tarifa de transacción). Presumiblemente, nadie realmente quiere estar sujeto a ataques de repetición, por lo que todos querrán hacer esto. Eso es costoso para los usuarios y es una gran cantidad de transacciones. Por ejemplo, Bitcoin tiene actualmente unos 50 millones de utxos; dividirlos a todos requeriría suficientes transacciones para llenar unos 5000 bloques, por lo que toda la red se atascaría durante varias semanas y las tarifas de transacción se dispararían.
Es posible que algunas personas no conozcan este requisito y, sin darse cuenta, pueden someterse a tales ataques. Incluso si el software lo hace automáticamente, es posible que todavía estén usando el software LegacyCoin antiguo que no lo hace. Eso no es muy fácil de usar.
Un atacante puede derrotarlo, al menos temporalmente. Suponga que Alice transmite sus transacciones A->B y A->C como usted propone. Mallory, un malvado minero de NewCoin, ve la transacción A->B en la red de LegacyCoin y decide intentar reproducirla en la red de NewCoin. Pone A->B en su bloque de candidatos (¡lo cual puede hacer porque es reproducible!) y tiene la suerte de minarlo antes de que nadie más confirme la transacción A->C. Ahora las monedas de Alice viven en utxo B en ambas redes, que es exactamente lo que está tratando de evitar. En el mejor de los casos, se da cuenta de que esto sucede y tiene que comenzar de nuevo (y pagar otra tarifa de transacción), hasta que logre que los mineros honestos confirmen las transacciones correctas en ambas redes. En el peor de los casos, ella no se da cuenta y, sin saberlo, es vulnerable a futuras repeticiones.
La red LegacyCoin y la red NewCoin no están claramente separadas entre sí. A menos que se cambien los puertos y la magia de la red, los nodos de LegacyCoin podrán conectarse a los nodos de NewCoin y probablemente muchos se conectarán entre sí. Entonces, si transmite una transacción A->B
en la red LegacyCoin, es probable que llegue a un nodo NewCoin que luego hace que la transacción también se transmita en la red NewCoin.
Además, incluso si las redes están claramente separadas, las personas pueden operar un nodo tanto en la red LegacyCoin como en la red NewCoin. Sin protección de repetición, alguien puede tomar transacciones que está escuchando en la red LegacyCoin y transmitirlas a través de su nodo NewCoin y viceversa.
Por último, la protección de repetición bidireccional debería ser obligatoria porque el proceso de dividir sus monedas con contaminación UTXO es bastante difícil. Debe tener un conocimiento técnico decente para hacerlo y es probable que necesite tener un software modificado para hacerlo. No es algo que los usuarios comunes probablemente puedan hacer sin algunas instrucciones muy específicas y existe una alta probabilidad de que lo arruinen y posiblemente pierdan monedas.
RBF06
andres chow
RBF06
andres chow