¿Por qué el hash viene antes de la firma?

La primera figura en el papel original de Satoshi es un diagrama de transacciones. Este diagrama parece indicar que los datos de la transacción se codifican antes de agregar la firma del remitente. ¿Por qué no simplemente codificar toda la transacción, incluida la firma, para producir un hash de transacción que abarque todo?

Actualización : quiero resaltar el comentario de @David Schwartz sobre la respuesta aceptada.

Respuestas (1)

Porque no tendría una función. El hash que aparece en la imagen del documento técnico original es solo para hacer que la firma sea más corta (y posiblemente el proceso de creación sea más rápido) sin perder seguridad, su única función es la autenticación de una transacción, no se usa para nada más (o incluso almacenada).

Para aclarar, este es el diagrama mencionado en la pregunta:

Transacción en el documento técnico de Satoshi

Parece estar insinuando que la transacción original (sin cifrar) no está almacenada en la cadena de bloques. Si lo fuera, uno podría ver claramente todos los detalles de la transacción, incluida la firma y el mensaje que firma...
Hm, creo que entendí mal tu pregunta, editaré la respuesta.
Estoy marcando esto como la solución porque parece razonable. Todavía estaría interesado en ver algunas referencias para respaldar su reclamo. Si entiendo correctamente, afirma que el único propósito de ese hash es acortar (y/o acelerar) la firma. (Supongo entonces que estos hashes no tienen nada que ver con el árbol de hashes que conduce a la raíz de Merkle).
Eso es correcto. Tome PGP (o GPG) por ejemplo, casi nunca verá a alguien firmando un mensaje completo, porque esto agregaría una sobrecarga considerablemente larga. En su lugar, se construye y firma un hash de los datos para demostrar que los datos se originaron de alguna parte, porque con un algoritmo hash seguro es casi imposible encontrar otra pieza de datos que resulte en el mismo hash. Las raíces de Merkle tienen que ver con cómo se representan las transacciones dentro de los bloques.
Los algoritmos utilizados no pueden firmar nada que exceda el tamaño de la curva. Por lo tanto, debe hash antes de firmar.