¿Cómo manejar múltiples transacciones desde la misma cuenta (dirección)?

Soy nuevo en Bitcoin, así que por favor tenga en cuenta mi pregunta. Para comprender las entradas y salidas de este mundo criptográfico, estoy creando un banco ficticio para comprender mejor el sistema.

Así que tengo un núcleo de bitcoin ejecutándose en mi sistema local. Ahora, para cada usuario en el sistema, creo una cuenta para ellos usando el archivo getaccountaddress.

Entonces, consideremos que tengo una cuenta llamada A que tiene un depósito de 10 BTC. Ahora, supongamos que el usuario A desea retirar 1 BTC de su cuenta, así que primero encuentro todas las transacciones no gastadas, las filtro por la dirección asociada a la cuenta A y envío este 1 BTC al usuario A. Ahora que entiendo que el bitcoin no se puede gastar parcialmente, entonces el el cambio restante irá a una dirección de cambio, así que proporcioné la dirección de la cuenta A desde la cual se creó la transacción.

Ahora mi problema es que si el usuario desea retirar nuevamente , no puedo encontrar ninguna transacción no gastada ya que el cambio aún no se recibe de inmediato y solo estará disponible cuando se confirme la transacción. Entonces, ¿cuál es la mejor manera de manejar esto? ¿Cuál es un estándar típico para manejar tal situación? ¿Cómo funciona una billetera como Electrum? Ya que puedo ver que puedo enviar múltiples transacciones una tras otra.

¿Por qué enviarlos uno tras otro en lugar de agregarlos en una sola transacción?
¿Qué tal un sistema de procesamiento de pedidos en el que deseo procesar un pedido tan pronto como lo reciba?
Entonces trataría todos los bitcoins que tenía como un fondo común. Si el pago fuera en nombre de una cuenta en particular, debitaría esa cuenta por el pago, pero no intentaría usar bitcoins segregados para cada cuenta, hace que las cosas sean mucho menos eficientes. Cuando tienes $10,000 en un banco, no hay facturas específicas que tengan que sean tus $10,000, eso es lo que crea el problema que estás teniendo.
Tengo tu punto. ;-)

Respuestas (1)

El concepto de confirmación generalmente es útil para que la contraparte se asegure de que la transacción a través de la cual recibió el BTC no se puede revertir. Nada le impide crear una nueva transacción que haga referencia a los puntos de salida ( txidy n) de la transacción a través de la cual acaba de gastar su 1 BTC, si no planea cambiar la transacción transmitida anteriormente, por ejemplo, con una tarifa más alta. Ambas transacciones pueden extraerse en un solo bloque, o la segunda transacción puede extraerse en bloque después de que se haya extraído la primera transacción.