Estoy tratando de aprender más sobre el protocolo bitcoin y estoy escribiendo un software de python para hacer una billetera ligera. He avanzado bastante y me he encontrado con algo que realmente no entiendo al leer sobre los cambios en el protocolo de testigo segregado en términos de transacciones.
https://bitcoincore.org/en/segwit_wallet_dev/
Si va aquí y lee la parte con el título "Serialización de transacciones", el texto se lee así:
Si una txin no está asociada con ningún dato testigo, su campo testigo correspondiente es un 0x00 exacto, lo que indica que la cantidad de elementos de la pila testigo es cero.
¿Cómo sé si una entrada que estoy usando en mi secuencia de comandos está asociada con datos testigo? Intenté usar API públicas para ver los resultados que estoy usando y no puedo entender lo que significa. Veo campos testigo asociados con las entradas de la transacción que produjo las salidas que intento incluir en mi transacción, pero no al revés.
¿Cómo sé si una entrada que estoy usando en mi secuencia de comandos está asociada con datos testigo? Intenté usar API públicas para ver los resultados que estoy usando y no puedo entender lo que significa. Veo campos testigo asociados con las entradas de la transacción que produjo las salidas que intento incluir en mi transacción, pero no al revés.
Creo que tu confusión se debe a esta línea.
Si una txin no está asociada con ningún dato testigo, su campo testigo correspondiente es un 0x00 exacto, lo que indica que la cantidad de elementos de la pila testigo es cero.
no aplicándose al formato de serialización, sino a los contenidos.
Un testigo siempre se serializa como:
Un corolario es que un testigo vacío siempre se serializa como un byte 0x00 (lo que indica que no hay elementos de pila).
Por lo tanto, su código de serialización y análisis no necesita saber si una txin en particular tiene datos testigo asociados. Simplemente serializa/analiza el testigo, que puede estar vacío.
Ocurre que las reglas de validez exigen que el testigo de un gasto no segwit siempre tenga que estar vacío y, como resultado, la serialización de dicho testigo siempre será solo 0x00.
pieter wuille
criptodescriptor
pieter wuille
criptodescriptor
pieter wuille
criptodescriptor
pieter wuille
criptodescriptor
criptodescriptor
pieter wuille
criptodescriptor
pieter wuille
criptodescriptor
pieter wuille