Valor hash del diagrama de la cadena de transacciones de Satoshi Nakamoto

En el diagrama de Satoshi Nakamoto:

ingrese la descripción de la imagen aquí

La línea que viene del bloque de transacciones 1 y va a la etiqueta "Hash" en el bloque de transacciones 2 parece representar el hash de todo el bloque de transacciones (Clave pública del propietario 1 + Hash + Firma del propietario 0) en lugar de representar el valor Hash que se muestra en la transacción. bloque 1 (en cuyo caso la línea debe (técnicamente) adjuntarse al bloque Hash en lugar de al borde del bloque de transacción). ¿Alguien puede confirmar exactamente cómo se calcula el valor Hash que se muestra y si contiene o no la firma del propietario anterior?

Respuestas (1)

¿Alguien puede confirmar exactamente cómo se calcula el valor Hash que se muestra?

Tomando los datos sin procesar para la transacción (como en los bytes que se envían por cable para la transacción) y pasándolos a través de una función hash. Para Bitcoin, eso es SHA-256 doble (SHA-256 hecho dos veces).

y si contiene o no la firma del dueño anterior?

Eso depende. En aras de la sencillez, se podría decir que contiene la firma del anterior propietario.

Sin embargo, debido a la activación de segwit, no siempre contiene la firma. Para segwit, el hash no es en realidad el hash de toda la transacción, sino partes de ella que no son segwit. Las transacciones que no sean segwit tendrán las firmas como parte de los datos cifrados.

Genial gracias. Entonces, cuando el bloque de transacciones no contiene la firma, ¿el hash del bloque de transacciones 2 contiene una referencia a las cuentas calculadas del bloque de transacciones 1 (es decir, específicamente el hash de la clave pública del propietario 1 + el hash anterior)? De acuerdo con el diagrama, nada más que la clave pública se procesa a menos que se incluya la firma. ¿El diagrama es en gran parte abstracto? ¿Hay alguna especificación que pueda ver que muestre exactamente lo que se codifica, segwit o de otra manera?
El diagrama es en gran medida abstracto y no contiene lo que realmente se está procesando. Se puede encontrar una explicación más específica en BIP 144: github.com/bitcoin/bips/blob/master/bip-0144.mediawiki#hashes