The first figure in the original paper of Satoshi is a diagram of transactions. This diagram seems to indicate that the transaction data is hashed before the sender's signature is appended. Why not just hash the entire transaction, including the signature, to produce all-encompassing transaction hash?

Update: I want to highlight the comment by @David Schwartz on the accepted answer.


Because it would not have a function. The hash listed in the picture of the original whitepaper is just to make the signature shorter (and possibly the process of creating it faster) without losing security, its only function is the authentication of a transaction, it is not used for anything else (or even stored).

To clarify, this is the diagram mentioned in the question:

Transaction in the Satoshi whitepaper

  • You seem to be implying that the original transaction (unencrypted) is not stored in the block chain. If it were, one could plainly view all details of the transaction, including the signature and the message that it signs ... – zkurtz Apr 15 '14 at 17:37
  • 1
    Hm, I think I understood your question wrong, I'll edit the answer. – Jori Apr 15 '14 at 18:06
  • I'm marking this as the solution because it seems reasonable. I would still be interested in seeing some references to support your claim. If I understand correctly, you are claiming that the sole purpose of that hash is to shorten (and/or speed up) the signature. (I assume then that these hashes have nothing to do with the tree of hashes that leads up to the Merkle root.) – zkurtz Apr 15 '14 at 20:38
  • That is correct. Take PGP (or GPG) for example, you almost never see someone signing an entire message, because this would add a considerably long overhead. Instead a hash of the data is constructed and signed to prove that the data indeed originated from some party, because with a secure hashing algorithm it is almost impossible to find an other piece of data that results in the same hash. Merkle roots have to with how transactions are represented inside blocks. – Jori Apr 15 '14 at 21:41
  • 4
    The algorithms used can't sign anything that exceeds the curve size. So you must hash before signing. – David Schwartz Apr 16 '14 at 17:08

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.