Comprender una transacción de doble gasto de Bitcoin realizando una en usted mismo

Todo el mundo habla de evitar una transacción de doble gasto, pero ¿cómo uno se hace uno a sí mismo para comprender mejor los pasos del atacante?

  • ¿Qué se necesita para hacer un doble gasto? ¿Dos teléfonos con la misma billetera btc?
  • ¿Envían a la misma hora exacta?
  • ¿Es aleatorio que ocurra un gasto doble cuando se envía a varias direcciones?
  • ¿Cómo se mantienen en funcionamiento ciertos servicios en línea que no esperan la primera confirmación? ¿No querrían todos los atacantes estafar ese servicio sin confirmación?
  • ¿Cuáles son algunas medidas preventivas que una empresa puede usar para evitar un gasto doble además de esperar la 1-confirmación?

Respuestas (1)

Cómo duplicar el gasto

Puede duplicar el gasto usando Electrum con bastante facilidad. Incluso sin duplicar su billetera, ya sea en la misma o en 2 máquinas diferentes. Por cierto: duplicar billeteras es muy fácil con Electrum.

Sólo tienes que ir Tools → Preferences → Transactionsy comprobar View transaction before signing.

Cierre la configuración, vaya a la pestaña "Enviar" e ingrese la primera dirección a la que desea pagar y la cantidad que desea enviar. Haz clic en "Enviar...".

Se abre una ventana titulada "Transacción". Haga clic en el botón "Firmar". Esto requerirá que ingrese su contraseña para firmar la transacción, pero aún no la envía.

Tenga en cuenta que en mis capturas de pantalla, dice que la cantidad enviada es 0. Esto se debe a que Electrum notó que usé direcciones de esa misma billetera. Todavía enviará las transacciones y una de ellas (probablemente) sucederá, pero le dice que no está enviando dinero a otra persona. Si desea que esto sea diferente, cree una segunda billetera Electrum para enviar el dinero. No gastes el doble cuando pagues a otros.

Después de presionar el botón, se genera el ID de la transacción, desaparece el botón "Firmar" y aparece el botón "Transmitir". No hagas clic en ese botón.

En su lugar, regrese a la ventana principal e ingrese la segunda dirección a la que desea enviar. Deje la cantidad para enviar lo mismo.

Debido a que la selección de moneda (si no la cambiaste mientras tanto, por supuesto ;-) ) y la cantidad permanecieron iguales, se seleccionan los mismos UTXO cuando presionas "Enviar". Puede verificar esto asegurándose de que las entradas sean las mismas. Firme esta transacción también.

Ahora tiene 2 transacciones gastando los mismos UTXO:

Luego, transmita ambas transacciones rápidamente una tras otra.

No importa si las direcciones a las que envías pertenecen a la misma billetera o a una diferente.

Alternativamente, puede duplicar su billetera simplemente copiando el archivo de su billetera (que por defecto está almacenado ~/.electrum/walletso restaurando la billetera (aunque todavía la tenga) con su semilla. Por supuesto, es posible usar la misma billetera en un dispositivo diferente, también.

¿Los gastos dobles ocurren por accidente?

Las billeteras generalmente intentan no gastar los mismos UTXO dos veces porque cuando no estás jugando con él, solo causa problemas.

Si está usando la misma billetera en su PC y su teléfono inteligente, por supuesto, puede suceder que esté gastando los mismos UTXO dos veces accidentalmente porque el dispositivo en el que realizó la primera transacción no la transmitió de inmediato o el dispositivo que usó realizó la segunda transacción el no sabía acerca de la primera transacción cuando realizó la segunda.

¿Cómo se mantienen en el negocio los servicios en línea que aceptan transacciones no confirmadas?

¿Cómo se mantienen en el negocio los restaurantes que sirven comida sin que los clientes hayan pagado esa comida primero? Sería una pregunta mucho mejor.

Si compra algo en línea, generalmente es algo que se entrega en su hogar o al menos está conectado a una cuenta suya que planea usar. Tiene interés en no defraudar a las personas o empresas que brindan los servicios que utiliza porque no desea que lo demanden por no pagar lo que ordenó o por cerrar una cuenta suya.

En el caso de los restaurantes, es simplemente que la gente suele sentir una obligación moral de pagar por lo que consumieron mucho más que temer ser atrapados porque la posibilidad de que esto último suceda es bastante pequeña. Los restaurantes no pueden demandarlo porque no saben su nombre o su dirección y tampoco pueden cerrar una cuenta que contenga cosas que son valiosas para usted.

Y además, ¿qué pasa con todos los servicios en línea que aceptan pagos mediante domiciliación bancaria? ¿Cómo saben que eres el propietario de esa cuenta? No lo hacen, solo lo esperan. Si hay una transacción no confirmada en la dirección en la que le pidieron que pague, al menos saben que el pago fue autorizado por la persona propietaria de los fondos que utiliza y no pueden meterse en problemas con otras personas y sus bancos.

Detección del doble gasto

Las empresas no pueden evitarlo porque no tienen poder para que suceda. Pero pueden detectarlo. Simplemente no pueden procesar un pedido si, en un período de tiempo relativamente corto, aparece una segunda transacción que gasta los mismos fondos que la que recibieron primero, y solo procesan el pedido cuando la transacción que les envía fondos suficientes tiene 3 confirmaciones. Si alguien trató de defraudar a un negocio, dejarlo esperar un poco más de lo normal es justo. Si el doble gasto ocurrió por accidente, las consecuencias no son malas de todos modos, por lo que nadie se ve realmente perjudicado de manera significativa.

¿Sería capaz de proporcionar capturas de pantalla de cómo se hace en electrum? Gracias.
@duckx Capturé casi todo lo que se puede capturar.