|
July 13, 2018, 09:30:49 AM |
|
Hola a todos,no se si se ha tratado este tema o si es el sitio correcto para plantearlo,si ya se ha tratado o no es el sitio adecuado pido disculpas.
Leyendo documentación acerca de btc y como funcionan las transacciones y la cadena de bloques me ha surgido una duda acerca de la seguridad de la transacción,espero poder explicar correctamente lo que quiero decir y lo voy a hacer con un ejemplo. Si no he entendido mal al generar una nueva transacción se debe incluir un campo UTXO donde se referencia una transacción anterior confirmada que apunte a la dirección pública de quien enviar los btc y que debe contar con fondos suficientes para poder ser confirmada por la blockchain. Pongámonos en la extraña circunstancia que alguien tiene secuestrado mi tráfico de red y es capaz de capturar todo el tráfico que envío y reenviarlo,lo que es un "man in the middle" de toda la vida,pongámonos ahora en la situación que ese alguien,es capaz de detectar las transacciones hacia los nodos de la red bitcoin y retenerlas. Imaginemos ahora que tengo una wallet donde tengo unos fondos asociados a una clave pública de 40 btc y que han sido recibidos en una única transacción y en ese momento decido enviar 20 btc a otra dirección con la que estoy haciendo negocios,mi wallet a la hora de generar esa transacción referenciará como UTXO la transacción en la que he recibido los 40 btc y genera la misma con los 20 btc y la dirección de destino,genera el hash y lo firma con mi clave privada y la lanza hacia internet.En ese momento el usuario malicioso intercepta la transmisión,la duplica (porque es un cabroncete que me quiere dejar sin mis btc) y la envía a los nodos de la red.En ese momento tengo dos transacciones exactamente iguales en la red,pero que son en teoría válidas,están las dos referenciadas al mismo UTXO de 40 btc,con lo que la red no puede saber que no son válidas pues hay fondos suficientes,¿alguien sabe que mecanismo se usa para que esto no pase?
Un saludo y muchas gracias
|