Author

Topic: No entiendo bien el proceso para evitar el doble gasto (Read 1368 times)

hero member
Activity: 952
Merit: 1005
frantorres_995 at socialmedia

Creo que es importante entender el tema del mal llamado "doble gasto". En realidad es un ataque que aprovecha la posibilidad de crear dos transacciones iguales, con la misma firma, pero con distinto hash (Transaction Malleability). NUNCA SE LLEGA A CONFIRMAR UN DOBLE GASTO. Ojo con eso. Ese ataque se hace sobre un exchange, no sobre el blockchain y consiste en lo siguiente:

El atacante debe tener bitcoins en MtGox y enviar sus bitcoins desde MtGox a otra dirección suya.

Después debe mirar esa transacción en la red, copiar los datos y crear una nueva transacción idéntica, pero cambiando un dato irrelevante, de los que no van firmados, para que el hash resultante (el ID de la transacción) sea ahora distinto.

Ambas transacciones estan correctamente firmadas, es más, tienen la misma firma y por tanto ambas se considerarán válidas, pero evidentemente al final sólo una de ellas se confirmará y la otra será desechada por considerarse un doble gasto de la anterior.

El atacante logrará su objetivo si al final tiene suerte y se confirma la transacción creada por él. En ese caso llamará a MtGox para decirles que la transacción no se ha confirmado, MtGox buscará la transacción por su ID y efectivamente comprobará que no se ha confirmado, por lo que repondrá el saldo del atacante.

Si además de su ID MtGox hubiese comprobado otros datos de la transacción, por ejemplo los inputs de la dirección a la que iban destinados los bitcoins, podría ver que la transacción se confirmó, aunque con otro ID.

El problema es que MtGox sólo comprobaba la transacción por su ID, ese es el error que cometían. Supongo que también contribuye el hecho de que MtGox es un mercado continuo 24/7 en el que no hay cierres que permitan verificar saldos con facilidad.



Por último le diré a todos los que echan pestes de MtGox, que se preparen, porque como estas habrá muchas más. Por lo menos MtGox ha demostrado varias veces estar a la altura. Yo confío en ellos y estoy seguro de que responderán bien y saldrán reforzados. Nadie está exento de meter la pata, así que sólo les podemos valorar por cómo responden una vez que les ha pasado. Ya veremos cómo responde MtGox.


Mejor explicado imposible. Y +1 en lo final.
sr. member
Activity: 339
Merit: 250
División de Poderes s.XXI es Descentralización
Hago la pregunta aca ya que se ha empezado el tema en este hilo.

Alguien podría explicar en forma sencilla, a los que no tenemos un conocimiento tan profundo del mecanismo interno en las transferencias de bitcoin que es esto del doble gasto?

Desde lo de mtgox se ha transformado casi en una pandemia que ha tirado el precio bastante abajo.

Basicamente mis dudas son:

¿Cualquier transferencia desde cualquier wallet puede sufrir el problema este del "doble gasto"? ¿O está sucediendo sólo en los monederos de mtgox? Lo pregunto porque yo he transferido muchas de veces y nunca me ha pasado, o al menos no me he dado cuenta y mis transferencias han llegado siempre en tiempo y forma. El tema es saber si afecta sólo a exchanges que han hecho algo mal o es un problema implícito en el sistema Bitcoin.

Yendo al problema en si: si me pasa esto con un pago, es un "inconveniente" temporal de unas horas/días que se termina resolviendo solo, o finalmente se terminan perdiendo los bitcoins transferidos, dado que una transferencia de bitcoins no se puede revertir.

A la hora de hacer un pago, ¿Hay alguna cosa que podamos hacer para tener menos posibilidades de caer en este tipo de problema del doble gasto? ¿algún recaudo que podamos tomar o algun "vicio" que debamos evitar?

Desde ya, muchas gracias.



Creo que es importante entender el tema del mal llamado "doble gasto". En realidad es un ataque que aprovecha la posibilidad de crear dos transacciones iguales, con la misma firma, pero con distinto hash (Transaction Malleability). NUNCA SE LLEGA A CONFIRMAR UN DOBLE GASTO. Ojo con eso. Ese ataque se hace sobre un exchange, no sobre el blockchain y consiste en lo siguiente:

El atacante debe tener bitcoins en MtGox y enviar sus bitcoins desde MtGox a otra dirección suya.

Después debe mirar esa transacción en la red, copiar los datos y crear una nueva transacción idéntica, pero cambiando un dato irrelevante, de los que no van firmados, para que el hash resultante (el ID de la transacción) sea ahora distinto.

Ambas transacciones estan correctamente firmadas, es más, tienen la misma firma y por tanto ambas se considerarán válidas, pero evidentemente al final sólo una de ellas se confirmará y la otra será desechada por considerarse un doble gasto de la anterior.

El atacante logrará su objetivo si al final tiene suerte y se confirma la transacción creada por él. En ese caso llamará a MtGox para decirles que la transacción no se ha confirmado, MtGox buscará la transacción por su ID y efectivamente comprobará que no se ha confirmado, por lo que repondrá el saldo del atacante.

Si además de su ID MtGox hubiese comprobado otros datos de la transacción, por ejemplo los inputs de la dirección a la que iban destinados los bitcoins, podría ver que la transacción se confirmó, aunque con otro ID.

El problema es que MtGox sólo comprobaba la transacción por su ID, ese es el error que cometían. Supongo que también contribuye el hecho de que MtGox es un mercado continuo 24/7 en el que no hay cierres que permitan verificar saldos con facilidad.



Por último le diré a todos los que echan pestes de MtGox, que se preparen, porque como estas habrá muchas más. Por lo menos MtGox ha demostrado varias veces estar a la altura. Yo confío en ellos y estoy seguro de que responderán bien y saldrán reforzados. Nadie está exento de meter la pata, así que sólo les podemos valorar por cómo responden una vez que les ha pasado. Ya veremos cómo responde MtGox.














legendary
Activity: 1974
Merit: 1029
todo muy lindo tu argumento, pero el btc esta llendo en picada...mira las cotizaciones

Y con esto, lo que quieres decir es que… ¿?
sr. member
Activity: 406
Merit: 250
¿Cualquier transferencia desde cualquier wallet puede sufrir el problema este del "doble gasto"? ¿O está sucediendo sólo en los monederos de mtgox?

Sólo con las de mtgox, debido a problemas internos de contabilidad que tenían ellos (los cuales tienen que ver con los problemas técnicos que también tienen).


El tema es saber si afecta sólo a exchanges que han hecho algo mal o es un problema implícito en el sistema Bitcoin.

Lo primero. Si fuera un problema con el protocolo, ten por seguro que 1 BTC no valdría los más de 400€ que vale en este momento.


si me pasa esto con un pago, es un "inconveniente" temporal de unas horas/días que se termina resolviendo solo, o finalmente se terminan perdiendo los bitcoins transferidos, dado que una transferencia de bitcoins no se puede revertir.

No te va a pasar. Lo de gox, ya te digo, deriva de problemas suyos y es responsabilidad suya reintegrar a sus clientes.


A la hora de hacer un pago, ¿Hay alguna cosa que podamos hacer para tener menos posibilidades de caer en este tipo de problema del doble gasto? ¿algún recaudo que podamos tomar o algun "vicio" que debamos evitar?

Mantener los fondos en tu propio monedero, nunca en un servicio de terceros.

todo muy lindo tu argumento, pero el btc esta llendo en picada...mira las cotizaciones

ok no habia bug...pero hay un "bot" que hace bajar los precios...lo avise y no bola me dieron...y eso que puse "urgente"
legendary
Activity: 1974
Merit: 1029
¿Cualquier transferencia desde cualquier wallet puede sufrir el problema este del "doble gasto"? ¿O está sucediendo sólo en los monederos de mtgox?

Sólo con las de mtgox, debido a problemas internos de contabilidad que tenían ellos (los cuales tienen que ver con los problemas técnicos que también tienen).


El tema es saber si afecta sólo a exchanges que han hecho algo mal o es un problema implícito en el sistema Bitcoin.

Lo primero. Si fuera un problema con el protocolo, ten por seguro que 1 BTC no valdría los más de 400€ que vale en este momento.


si me pasa esto con un pago, es un "inconveniente" temporal de unas horas/días que se termina resolviendo solo, o finalmente se terminan perdiendo los bitcoins transferidos, dado que una transferencia de bitcoins no se puede revertir.

No te va a pasar. Lo de gox, ya te digo, deriva de problemas suyos y es responsabilidad suya reintegrar a sus clientes.


A la hora de hacer un pago, ¿Hay alguna cosa que podamos hacer para tener menos posibilidades de caer en este tipo de problema del doble gasto? ¿algún recaudo que podamos tomar o algun "vicio" que debamos evitar?

Mantener los fondos en tu propio monedero, nunca en un servicio de terceros.
hero member
Activity: 868
Merit: 1009
Dave
Hago la pregunta aca ya que se ha empezado el tema en este hilo.

Alguien podría explicar en forma sencilla, a los que no tenemos un conocimiento tan profundo del mecanismo interno en las transferencias de bitcoin que es esto del doble gasto?

Desde lo de mtgox se ha transformado casi en una pandemia que ha tirado el precio bastante abajo.

Basicamente mis dudas son:

¿Cualquier transferencia desde cualquier wallet puede sufrir el problema este del "doble gasto"? ¿O está sucediendo sólo en los monederos de mtgox? Lo pregunto porque yo he transferido muchas de veces y nunca me ha pasado, o al menos no me he dado cuenta y mis transferencias han llegado siempre en tiempo y forma. El tema es saber si afecta sólo a exchanges que han hecho algo mal o es un problema implícito en el sistema Bitcoin.

Yendo al problema en si: si me pasa esto con un pago, es un "inconveniente" temporal de unas horas/días que se termina resolviendo solo, o finalmente se terminan perdiendo los bitcoins transferidos, dado que una transferencia de bitcoins no se puede revertir.

A la hora de hacer un pago, ¿Hay alguna cosa que podamos hacer para tener menos posibilidades de caer en este tipo de problema del doble gasto? ¿algún recaudo que podamos tomar o algun "vicio" que debamos evitar?

Desde ya, muchas gracias.
legendary
Activity: 1974
Merit: 1029
Correcto.
newbie
Activity: 56
Merit: 0
Gracias por la respuesta.

Entonces, si no he entendido mal, si mi transacción lleva 3 confirmaciones, y se encuentra dentro de una de las cadenas cortas, esta vuelve a empezar con 0 confirmaciones aumentando el tiempo en que se tramita.
legendary
Activity: 1974
Merit: 1029
Si desechamos la cadena más corta, ¿como se evita que todas las transacciones que se encuentran en esa cadena se desechen también?, porque habrá transacciones de la cadena corta que no tienen por qué estar en la cadena más larga con la que nos hemos quedado, ¿No?

No se evita, esas transacciones vuelven a estar 0/unconfirmed. Los mineros vuelven a trabajar en ellas y tarde o temprano se añaden a otro bloque.
newbie
Activity: 56
Merit: 0
Hola, tengo una duda sobre el doble gasto.

Si intentamos hacer un doble gasto, llamémosle Gasto A y Gasto B.

Si el gasto A se encuentra en la cadena más larga, y el Gasto B en la cadena más corta, se supone que se desecha la cadena más corta y nos quedamos con la más larga, pero... ahora viene mi duda.

Si desechamos la cadena más corta, ¿como se evita que todas las transacciones que se encuentran en esa cadena se desechen también?, porque habrá transacciones de la cadena corta que no tienen por qué estar en la cadena más larga con la que nos hemos quedado, ¿No?
Jump to: