obtenga la identificación de transacción de Bitcoin fuera de línea, encadene múltiples transacciones fuera de línea

digamos que creo una transacción válida (fuera de línea sin enviarla, como esta: http://brainwallet.org/#tx . Llamemos a esto "A"

a) antes de haber enviado A, ¿puedo obtener el ID de transacción de A?

b) Deseo crear una nueva Transacción fuera de línea (llamada B), utilizando las salidas de A como entradas para B. Aún así, A no se ha enviado a la red de bitcoin. es posible? Por ejemplo, A envía dinero de la cuenta x a la cuenta y. B envía los mismos bitcoins enviados de x a y, de y a z.

c) si la parte b) es posible, y envío A, luego envío inmediatamente B a la red bitcoin. ¿qué pasaría?

Respuestas (1)

antes de haber enviado A, ¿puedo obtener el ID de transacción de A?

Sí, puede calcular el TXID sin ninguna conexión a la red.

Deseo crear una nueva Transacción fuera de línea (llamada B), usando las salidas de A como entradas para B. Aún así, A no se ha enviado a la red de bitcoin. es posible?

Sí, pero hay un pequeño tecnicismo cuando se trabaja con transacciones no confirmadas anidadas. Si construye una gran cantidad de ellos uno encima del otro, y uno de ellos nunca se confirma, toda la cadena de transacciones desaparecerá. Es decir, si crea A, B y C, y A tenía una tarifa incorrecta, ninguna de las transacciones posteriores se confirmará y eventualmente se eliminará de la red.

Dicho esto, no hay nada que le impida hacer cadenas de longitudes infinitas, solo deben transmitirse para que los nodos puedan ver las entradas anteriores. Si los hace fuera de orden (C, A, B), es probable que sean rechazados.

es posible, y envío A, luego envío inmediatamente B a la red bitcoin. ¿qué pasaría?

Esto es completamente válido y un flujo razonablemente normal para algunas aplicaciones, no es inválido o desaconsejado si las tarifas de cada entrada se pagan correctamente.

Disculpas. Mi pregunta original hizo que pareciera que estaba preguntando si podía gastar dos veces los mismos bitcoins, desde la misma cuenta. Reformulé mi pregunta original b). Por ejemplo: la cuenta x tiene 1 BTC. cuenta y tiene 0 BTC. ¿Puedo crear transacciones fuera de línea enviando 1 BTC de x a Y (transacción A)? al mismo tiempo, cree una transacción fuera de línea enviando 1 BTC de y a z (el mismo 1 BTC de la transacción A). y luego enviar ambos a la red. A, luego B, pero muy rápido
Mi error por completo, he actualizado la respuesta para que coincida.
Digamos que los envié en orden inverso, pero aún en rápida sucesión. ¿Todavía de alguna manera "flotarían" el tiempo suficiente para encadenarse juntos? Supongo que mi pregunta es: en términos generales, ¿es una pequeña diferencia de tiempo una causa para evitar que se procesen las cadenas de transacciones?
No apostaría a que eso funcione, podría deberse a pura suerte con la latencia entre los nodos que hace que algunos de ellos acepten la cadena, pero ciertamente es algo en lo que no desea confiar. Si envía B y un nodo no ha oído hablar de A, entonces el nodo lo rechazará porque B está tratando de gastar una salida que aún no existe. Puede jugar con esto en la red de prueba, si está enviando la cadena demasiado rápido, simplemente no la verá en otros nodos, testnet.btclook.com es bueno para verlos en tiempo real. Es un buen campo de juego para probar comportamientos como este.