En un intento por comprender mejor las transacciones sin procesar, etc., fui a ver tx 518c41d5e59114f6a23383afbe95f02cdd09cb50cabd8390bdd9162a890435b3 en su forma sin procesar :
01000000017871f56f7be2743293abb1adccf21526265e4ad793fddbc08508417293fd6b4e000000006a47304402201f3b98d55c16a1ff9e66cbdd5533fd74d18362477f50dbce357d66e1233ba469022066fd837cf7e1e030f5aab0f22fec06c7d98ee948fd8b9aba185512426079e0a201210284ca3e364bebb4cafb9fa76624927078e16a4244314f824ea8acff0ef1ba4627ffffffff0220a10700000000001976a91488d924f51033b74a895863a5fb57fd545529df7d88ac81f1d909000000001976a914db4c1f7949870fae5cdc366a45e2ea39c084547c88ac00000000
Luego traté de enviar ese formulario sin procesar, solo copié y pegué en mi programa de billetera bitcoin para "sendrawtransaction" y obtuve el error missing inputs (code -25)
. Esto parece extraño en sí mismo porque, dado que se trata de una copia y pegado exactos de la transacción sin procesar que está en la cadena de bloques, ¿no debería faltar nada en absoluto? Además, ¿no debería recibir el error "la transacción ya existe"? ¿O no entiendo algo sobre cómo se envían las transacciones sin procesar?
Bitcoin Core no tiene idea de qué transacciones ya existen en la cadena. No mantiene un índice completo, porque... no es necesario. De hecho, cuando se ejecuta en modo de poda, ni siquiera tiene la cadena o sus transacciones.
Lo único que tiene es el conjunto de salidas de transacciones no gastadas. Dado que está intentando reproducir una transacción existente, todas las entradas ya han sido gastadas por su instancia anterior. Como resultado, la respuesta esperada y correcta es que faltan entradas, es decir, su transacción es un gasto doble y, por lo tanto, no es válida.
Diría que esta es una de las ventajas del modelo UTXO: una repetición y un doble gasto son lo mismo, y no hay necesidad de distinguir.
colisionador de mallas
Nick ODell