De acuerdo con la información que encontré aquí: https://en.bitcoin.it/wiki/Transaction contiene una transacción de bitcoin,
PARA CADA ENTRADA:
PARA CADA SALIDA:
Ahora mi pregunta es: ¿qué tipo de información está implícitamente contenida en ScriptSig? Sé que desde ScriptPubKey se puede calcular la dirección de destino, pero no veo si se puede recuperar otra información de ScriptSig.
Además, si solo se almacena el hash de la transacción entrante, ¿cómo busca un nodo la transacción entrante en la cadena de bloques cuando necesita validar la nueva transacción? ¿Y cómo sabe en qué bloque está incluida esa transacción? Si no sabe en qué bloque está esa transacción, ¿tiene que hojear toda la cadena de bloques solo para encontrarla?
¿Qué datos hay en scriptSig?
scriptSig
en un escenario típico de p2pkh , que es la gran mayoría de las transacciones de bitcoin, solo contiene la clave pública del scriptPubKey
hash, así como la firma. Esto significa que no hay más metadatos que la clave pública y la firma para autorizar el pago.
Para transacciones que no son p2pkh, como por ejemplo transacciones p2sh , se incluyen más datos en el archivo scriptSig
. Por ejemplo, en p2sh multisig , se revelarán las múltiples claves públicas capaces de autorizar el multisig. En secuencias de comandos aún más complicadas, scriptSig
pueden revelar información importante, según lo que scriptPubKey
solicite la secuencia de comandos. Por ejemplo, hay transacciones de copos de nieve que requieren scriptSig
ser soluciones a ciertos rompecabezas . Sin embargo, estas transacciones son muy raras.
Cómo se validan las transacciones
Existen múltiples modelos de seguridad en la validación de una transacción. La validación de transacciones es una noción diferente de la confirmación de transacciones de la que está hablando. La validación de transacciones pregunta si una transacción es válida; por ejemplo, si tiene el formato correcto, sigue la Ley de Kirchhoff (es decir, la suma de las salidas es menor que la suma de las entradas) y las salidas que gasta no se gastaron dos veces. La validación de una transacción requiere acceso a la UTXO actual .
La confirmación de la transacción , por otro lado, valida que una transacción ha sido ocultada bajo una cierta cantidad de prueba de trabajo, por ejemplo, k = 6 bloques. Verificar el estado de confirmación de una transacción no requiere atravesar todos los datos en la cadena de bloques. Solo requiere mirar los encabezados de blockchain. En el modelo de seguridad SPV , el estado de confirmación de la transacción se verifica simplemente verificando que se haya incluido en un bloque y enterrado bajo una cierta cantidad de prueba de trabajo. Esto se hace rápidamente sin mirar todos los datos de la cadena de bloques (pero solo todos los encabezados de la cadena de bloques) proporcionando una prueba de inclusión que consta de los hermanos de la ruta del árbol de Merkle .
Nate Eldredge
a.costa
Nate Eldredge
a.costa
Nate Eldredge