Después de enviar algunos bitcoins, ¿por qué tengo cero disponibles para gastar cuando claramente no envié todo mi saldo?

Con algunos de los clientes que uso regularmente (Multibit, Bitcoin para Android), he notado que, después de enviar bitcoins a una dirección, tengo 0 BTC disponibles para gastar a pesar de tener quizás un saldo de varios bitcoins.

Mirando más de cerca los detalles de la transacción en Blockchain.info o Blockexplorer.com, observo que el cliente me devolvió todo el saldo en la misma transacción.

Por ejemplo, mi saldo en mi billetera antes de la transacción es 1 BTC. Envío 0,5 BTC a la dirección C desde mi billetera, más 0,0005 BTC por las tarifas de transacción. Debería tener 0,4995 disponibles inmediatamente para gastar en otra transacción. Sin embargo, los clientes muestran 0 BTC disponibles, pero un saldo de 0,4995 BTC.

Cuando observo la transacción, veo dos direcciones de entrada, las direcciones A y B. Las salidas son 0,5 BTC para la dirección C, el destino de mi pago, y 0,4995 para la dirección B.

Entonces, ¿por qué tengo 0 BTC disponibles cuando claramente debería tener 0,4995 BTC disponibles?

Respuestas (3)

En este escenario, ni la dirección A ni la dirección B tenían saldo suficiente para pagar 0,5 BTC por sí solas. Los dos juntos tuvieron suficiente. Por lo tanto, los clientes son lo suficientemente inteligentes como para combinar las cantidades de dos direcciones para cumplir con la cantidad de transacción deseada.

Desafortunadamente, la combinación tiene el efecto de enviarte bitcoins a ti mismo como "cambio" en la transacción. En este escenario, todo el saldo disponible se dividió entre la dirección A y la dirección B. Al combinarlos para satisfacer el pago a C, parte se consolidó como "cambio" en la dirección B.

Piense en ello matemáticamente, también. Esto muestra el equilibrio, desde el punto de vista de las cuentas que controlas.

balance(A) + balance(B) = payment_to(B) + payment_to(C) + transaction_fee(0.0005)

Esta es la transacción.

balance(A) + balance(B) - payment_to(C) - transaction_fee(0.0005) = payment_to(B) 

Ese payment_to(B)es el cambio.

Desafortunadamente, debido a la cantidad de confirmaciones que los clientes esperan antes de permitir que uno gaste las transacciones entrantes, el saldo está presente pero no disponible para gastar durante varios minutos, una hora o más.

Los clientes deben manejar esto mejor advirtiendo si la transacción a punto de enviarse creará esta situación confusa.

Bitcoin-Qt no tiene este problema porque le permite enviar monedas de cambio de confirmación 0.

Digamos que su saldo de 1 BTC fue el resultado de una sola transacción. Para pagarle a alguien 0,5 BTC, debe reclamar el resultado de esa transacción. Luego, debe pagar la tarifa de .0005 BTC. Eso deja .4995 BTC que debe dejarse como una salida de transacción no reclamada para que la gaste más tarde.

Para realizar otra transacción, debe reclamar la salida de .4995 BTC de esa transacción anterior. Pero ese .4995 BTC aún no ha sido confirmado. Así que no es gastable.

El sistema Bitcoin trata con transacciones que tienen entradas y salidas. Cosas como "cuentas" y "saldos" son solo formas en que el cliente hace que el sistema sea más fácil de entender para los humanos. No son parte del protocolo y no son cómo funciona el sistema internamente.

No hay forma de dejar parte de una salida. O una transacción lo reclama o no lo hace. Y las transacciones que te enviaste a ti mismo no son diferentes de las transacciones que otros te enviaron. (De hecho, en general, es imposible para las personas ajenas saber cuál es el cambio que se le devuelve a usted y cuál es el pago a otra persona. Ambos son solo salidas de transacciones).

Esta es la explicación que tengo en la ayuda de MultiBit:

¿Qué significa "Disponible para gastar"?

Cuando alguien te envía bitcoins, recibes una notificación en unos segundos. Sin embargo, no puede gastar este dinero inmediatamente. Las computadoras en la red bitcoin agrupan las transacciones y las confirman en 'bloques'. Estos se producen en promedio cada diez minutos. Una vez que se produce un bloque con su transacción, el bitcoin está disponible para gastar. Puede ver esto en la pantalla de transacciones una vez que el ícono de estado ya no esté vacío.

Además, cuando envías un pago a alguien, a menudo terminas devolviéndote el cambio. Esto es como darle a alguien 'veinte' y recibir 'diez' a cambio en una tienda. El cambio se le devuelve cuando se produce el siguiente bloque y hasta entonces no puede gastar el cambio.

El saldo total que se muestra (el número grande al lado de las monedas de oro) es la cantidad total de bitcoin que tiene en su billetera, INCLUYENDO los recibos no confirmados y su cambio. La cantidad 'Disponible para gastar' es la cantidad en su billetera que está confirmada y no involucrada en un gasto actual. En un momento dado, solo puede gastar hasta el monto 'Disponible para gastar'.